Browse Prior Art Database

Zeroing Memory during Compression

IP.com Disclosure Number: IPCOM000118427D
Original Publication Date: 1997-Feb-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 2 page(s) / 47K

Publishing Venue

IBM

Related People

Aschenbrenner, JM: AUTHOR

Abstract

The time required to zero large chunks of memory may have a large negative effect on performance in some applications. In some cases, time may be saved if only the NON-ZERO memory is zeroed while normal processing occurs. This is particularly true if the memory is already mostly zero.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 63% of the total text.

Zeroing Memory during Compression

      The time required to zero large chunks of memory may have a
large negative effect on performance in some applications.  In some
cases, time may be saved if only the NON-ZERO memory is zeroed while
normal processing occurs.  This is particularly true if the memory is
already mostly zero.

Assume an application uses a very large block of memory repeatedly as
follows:
  1.  Data is written to the block of memory.
  2.  The block of memory is compressed for storage or
       transmission to the next stage of processing.
  3.  The block of memory is cleared (filled with zeros) in
       preparation for the next iteration.

      It may be possible to realize performance gains if zeroing of
memory occurs at the same time as compression.  Factors affecting the
amount of performance improvement include:
  1.  If the compression algorithm involves reading each word
       and identifying whether it is zero, then it is possible
       to zero only those words which are non-zero without adding
       any additional code for testing for zero.  Note that the
       zeroing will occur when the word is already in the data
       cache, so no additional memory-to-cache transfer is required.
  2.  If the percentage of non-zero words is small, then fewer
       writes of zero need to be performed.
  3.  If the non-zero words are clustered, then fewer cache lines
       need to...