Method and apparatus for high integrity hardware memory compression
First Claim
1. A computer memory system implementing a processing device for enabling indirect storage and retrieval of compressed data in a physical memory associated with a computing system and issuing real memory addresses for accessing said data from said physical memory, comprising:
- first redundant protection code generator device for receiving uncompressed data from said processor device and generating a redundant protection code associated with said uncompressed data during a compression operation;
a compressor mechanism for receiving said uncompressed data from said first redundant protection code generator and generating a compressor encoded output data for storage in said physical memory with its associated redundant protection code;
a decompressor mechanism for receiving said compressor encoded output data from said memory and decompressing said data information into an uncompressed form during a decompression operation;
a second redundant protection code generator device for receiving said data in uncompressed data form from said decompressor mechanism and recomputing said redundant protection code from said uncompressed data during said decompression operation; and
a comparator device for comparing a redundant protection code value associated with said uncompressed data during said compression operation and said recomputed redundant protection code value obtained during said decompression operation, said system flagging a data corruption occurrence when said redundant protection code values differ.
1 Assignment
0 Petitions
Accused Products
Abstract
In a processing system having a main memory, wherein information is stored in a compressed format for the purpose of gaining additional storage through compression efficiencies, a method and apparatus for providing compressed data integrity verification to insure detection of nearly any data corruption resulting from an anomaly anywhere in the logical processing or storage of compressed information. A cyclic redundancy code (CRC) is computed over a compressed data block as the data enters the compressor hardware, and the CRC is appended to the compressor output block before it is stored into the main memory. Subsequent read access results in comparing the CRC against a recomputation of the CRC as the block is uncompressed from the main memory. Any CRC miscompare implies an uncorrectable data error condition that may be used to interrupt the system operation.
47 Citations
17 Claims
-
1. A computer memory system implementing a processing device for enabling indirect storage and retrieval of compressed data in a physical memory associated with a computing system and issuing real memory addresses for accessing said data from said physical memory, comprising:
-
first redundant protection code generator device for receiving uncompressed data from said processor device and generating a redundant protection code associated with said uncompressed data during a compression operation;
a compressor mechanism for receiving said uncompressed data from said first redundant protection code generator and generating a compressor encoded output data for storage in said physical memory with its associated redundant protection code;
a decompressor mechanism for receiving said compressor encoded output data from said memory and decompressing said data information into an uncompressed form during a decompression operation;
a second redundant protection code generator device for receiving said data in uncompressed data form from said decompressor mechanism and recomputing said redundant protection code from said uncompressed data during said decompression operation; and
a comparator device for comparing a redundant protection code value associated with said uncompressed data during said compression operation and said recomputed redundant protection code value obtained during said decompression operation, said system flagging a data corruption occurrence when said redundant protection code values differ. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for providing data integrity in a computer memory system implementing compressed memory storage, said method comprising the steps of:
-
a) generating an original data protection code value associated with a unit of uncompressed data to be written in compressed form to a physical memory during a compression operation;
b) aggregating said original data protection code with a compressor encoded output data for storage in said physical memory as an aggregated data unit;
c) upon reading said compressed data from said memory, retrieving said original data protection code during a decompression operation;
d) recomputing said original data protection code value associated with resultant uncompressed data obtained output from a decompressor during a decompression operation;
e) comparing said original data protection code value with said recomputed data protection code; and
,f) generating a system error signal when said data protection code values differ. - View Dependent Claims (9, 10, 11, 12, 13)
extracting said original data protection code from said aggregated data unit; and
,storing said retrieved original data protection code until such time said comparing step is performed.
-
-
12. The method as claimed in claim 8, wherein said generating step a) includes the step of:
-
incrementally reading uncompressed data from a write queue associated with said computer memory system;
in each increment, comparing a total of said compressor encoded output data and said original data protection code value against a size of said uncompressed data; and
,signaling a memory controller device associated with said computer memory system to store said compressor encoded output data and said original data protection code value when said total is less than said uncompressed data size.
-
-
13. The method as claimed in claim 12, further including the step of bypassing said compression operation when said total of said compressor encoded output data and said original data protection code value is greater than said uncompressed data size.
-
14. An compressed data integrity verifier for a computer memory system having a first data path implementing a compressor device for writing compressed encoded output data to a physical memory in a compression operation, and a second data path implementing a decompressor device for retrieving said compressed encoded output data from said physical memory and generating a resultant uncompressed data output for use by a computing system during a decompression operation, said verifier comprising:
-
a) a cyclic redundancy code (CRC) generator device in said first data path for generating an original CRC data associated with a unit of uncompressed data to be compressed;
b) device for aggregating said original CRC data with its associated compressed encoded output data for storage in said physical memory as an aggregated data unit;
c) extractor device for retrieving said original CRC data from said stored aggregated data unit during a read request for said uncompressed data unit, and temporarily storing said original CRC data during said decompression operation;
d) a cyclic redundancy code (CRC) generator device in said second data path for receiving said resultant uncompressed data and recomputing a CRC data value; and
,e) comparator device for comparing said original CRC value with said recomputed CRC value and generating a system error signal when said original CRC and recomputed CRC values differ. - View Dependent Claims (15, 16, 17)
-
Specification