IP Library Granted Patent US 7,340,666
Granted Patent B1
US 7,340,666 · App. 10/944,172 · Granted Mar 4, 2008

Method and apparatus for using memory compression to enhance error correction

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,340,666
App. No.
10/944,172
Granted
Mar 4, 2008
Kind
B1
Abstract

A system for improving a memory's error detecting and error correcting capabilities. During operation, the system receives a data-word. Next, the system compresses the data-word into a compressed-word. If the amount of compression is greater than or equal to a compression-threshold, the system applies a strong error-correcting-code to the compressed-word to generate a coded-word. On the other hand, if the amount of compression is less than the compression-threshold, the system applies a weak error-correcting-code to the data-word to generate a coded-word. In either case the size of the coded-word is less than or equal to the size of a storage-word. The system then generates a flag that indicates the type of error-correcting code that was used to generate the coded-word. The system then stores the flag along with the coded-word in the memory.

Claims (60)

1. A method for using data compression to improve error detecting and error correcting capabilities of a memory, wherein the memory supports error detection and error correction, and wherein the memory stores data in storage-words whose size is equal to a storage-word size, the method comprising:

receiving a data-word stored in a storage word;

compressing the data-word to obtain a compressed-word, whereby the data-word is compressed by an amount of compression;

responsive to determining that the amount of compression is greater than or equal to a compression-threshold, applying a strong error-correcting-code to the compressed-word to generate a coded-word in place of the data-word in the storage word, wherein the coded-word's size is less than or equal to the storage-word size;

generating a flag that is associated with the strong error-correcting code; and

storing the flag along with the coded-word in the memory;

thereby improving the overall reliability of the memory without requiring the memory to use storage-words whose size is greater than the storage-word size.

2. The method of claim 1 , further comprising:

receiving the coded-word along with the flag, which indicates the type of error-correcting code that was used to generate the coded-word; and

responsive to determining that the strong error-correcting-code was used to generate the coded-word,

using the strong error-correcting-code to decode the coded-word to obtain the compressed-word; and

decompressing the compressed-word to obtain the data-word.

3. The method of claim 1 , wherein the data-word is 64 bits long, the compression-threshold is equal to 28 bits, and the strong error-correcting-code is used only if the size of the compressed-word is less than or equal to 36 bits.

4. The method of claim 1 , wherein the strong error-correcting-code is a 3-error-correcting (23, 12) Golay code, which uses 23 bits to encode 12 bits of data.

5. The method of claim 1 , wherein applying the strong error-correcting-code to the compressed-word to generate the coded-word involves:

splitting the compressed-word into a plurality of sub-words;

applying the strong error-correcting-code to each sub-word; and

concatenating the coded sub-words to form the coded-word.

6. The method of claim 1 , wherein the flag is generated by applying a flag error-correcting-code to an indicator, which contains one or more bits that indicate the type of error-correcting code used to generate the coded-word.

7. The method of claim 6 , wherein applying the flag error-correcting-code to the indicator involves concatenating multiple copies of the indicator.

8. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for using data compression to improve error detecting and error correcting capabilities of a memory, wherein the memory supports error detection and error correction, and wherein the memory stores data in storage-words whose size is equal to a storage-word size, the method comprising:

receiving a data-word stored in a storage word;

compressing the data-word to obtain a compressed-word, whereby the data-word is compressed by an amount of compression;

responsive to determining that the amount of compression is greater than or equal to a compression-threshold, applying a strong error-correcting-code to the compressed-word to generate a coded-word in place of the data-word in the storage word, wherein the coded-word's size is less than or equal to the storage-word size;

generating a flag that is associated with the strong error-correcting code; and

storing the flag along with the coded-word in the memory;

thereby improving the overall reliability of the memory without requiring the memory to use storage-words whose size is greater than the storage-word size.

9. The computer-readable storage medium of claim 8 , the method further comprising:

receiving the coded-word along with the flag, which indicates the type of error-correcting code that was used to generate the coded-word; and

responsive to determining that the strong error-correcting-code was used to generate the coded-word,

using the strong error-correcting-code to decode the coded-word to obtain the compressed-word; and

decompressing the compressed-word to obtain the data-word.

10. The computer-readable storage medium of claim 8 , wherein the data-word is 64 bits long, the compression-threshold is equal to 28 bits, and the strong error-correcting-code is used only if the size of the compressed-word is less than or equal to 36 bits.

11. The computer-readable storage medium of claim 8 , wherein the strong error-correcting-code is a 3-error-correcting (23, 12) Golay code, which uses 23 bits to encode 12 bits of data.

12. The computer-readable storage medium of claim 8 , wherein applying the strong error-correcting-code to the compressed-word to generate the coded-word involves:

splitting the compressed-word into a plurality of sub-words;

applying the strong error-correcting-code to each sub-word; and

concatenating the coded sub-words to form the coded-word.

13. The computer-readable storage medium of claim 8 , wherein the flag is generated by applying a flag error-correcting-code to an indicator, which contains one or more bits that indicate the type of error-correcting code used to generate the coded-word.

14. The computer-readable storage medium of claim 13 , wherein applying the flag error-correcting-code to the indicator involves concatenating multiple copies of the indicator.

15. An apparatus for using data compression to improve error detecting and error correcting capabilities of a memory, wherein the memory supports error detection and error correction, and wherein the memory stores data in storage-words whose size is equal to a storage-word size, the apparatus comprising:

a receiving mechanism configured to receive a data-word stored in a storage word;

a compressing mechanism configured to compress the data-word to obtain a compressed-word, whereby the data-word is compressed by an amount of compression;

a strong-encoding mechanism, wherein responsive to determining that the amount of compression is greater than or equal to a compression-threshold, the strong-encoding mechanism is configured to apply a strong error-correcting-code to the compressed-word to generate a coded-word in place of the data-word in the storage word, wherein the coded-word's size is less than or equal to the storage-word size;

a flag-generating mechanism configured to generate a flag that is associated with the strong error-correcting code; and

a storing mechanism configured to store the flag along with the coded-word in the memory;

wherein the apparatus improves the overall reliability of the memory without requiring the memory to use storage-words whose size is greater than the storage-word size.

16. The apparatus of claim 15 , further comprising:

a second receiving mechanism configured to receive the coded-word along with the flag, which indicates the type of error-correcting code that was used to generate the coded-word; and

a strong-decoding mechanism, wherein responsive to determining that the strong error-correcting-code was used to generate the coded-word, the strong-decoding mechanism is configured to:

use the strong error-correcting-code to decode the coded-word to obtain the compressed-word; and

decompress the compressed-word to obtain the data-word.

17. The apparatus of claim 16 , wherein the data-word is 64 bits long, the compression-threshold is equal to 28 bits, and the strong error-correcting-code is used only if the size of the compressed-word is less than or equal to 36 bits.

18. The apparatus of claim 16 , wherein the strong error-correcting-code is a 3-error-correcting (23, 12) Golay code, which uses 23 bits to encode 12 bits of data.

19. The apparatus of claim 16 , wherein the strong-encoding mechanism is further configured to:

split the compressed-word into a plurality of sub-words;

apply the strong error-correcting-code to each sub-word; and

concatenate the coded sub-words to form the coded-word.

20. The apparatus of claim 16 , wherein the flag-generating mechanism is further configured to apply a flag error-correcting-code to an indicator to generate the flag, wherein the indicator contains one or more bits that indicate the type of error-correcting code used to generate the coded-word.

21. The apparatus of claim 20 , wherein the flag-generating mechanism is further configured to concatenate multiple copies of the indicator, thereby applying a flag error-correcting-code to the indicator.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0899 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2004
From: WRIGHT, GREGORY M.; WOLCZKO, MARIO I.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 015803/0108 →