← Back to Patent Explorer
US5481552A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and structure for providing error correction code for 8-byte data words on SIMM cards

Assignee: International Business Machines Corp
•
Filing: 1993-12-30
•
Granted: 1996-01-02
•
Expires: 2013-12-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention relates to a method and structure for implementing a 64/8 ECC algorithm on a SIMM using a computer which has a 32-bit bus and is configured with a 36-bit wide memory. This is accomplished by writing two successive 4 byte words from the system to latches, to form an 8 byte quad word, and writing 8 check bits utilizing the entire 64 bits of the quad word. One-half of the quad word (i.e., 32 bits) together with 4 of the 8 check bits for a total of 36 bits is stored at one address location in memory, and the remaining 32 bits of the quad word, together with the remaining 4 check bits, are stored at another, preferably the successive 36 bit, address location in memory. When the quad word and check bits are read from the memory, they are read serially, i.e., the first 32 bits and 4 associated check bits are read and latched, followed by the second 32 bits and the 4 associated check bits being read and combined with the first 32 bits of data and 4 check bits so as to essentially "reconstitute" the original 64-bit quad word with 8 check bits. From the "reconstituted" 64-bit data word and 8 check bits, the error correction is performed. The 64-bit quad word with the corrected data is latched and asserted successively on the data bus as two 32-bit words. Also, preferably logic and circuitry to perform a read-modify-write (R-M-W) function are provided.

Inventors

  • 👤 Alfredo Aldereguia
  • 👤 Daryl C. Cromer
  • 👤 Kim K. Sendlein

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 15:29
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1008; G06F11/1048; G06F11/1056

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 248 words
A computer system and a memory storage device interfacing with said computer system through a memory controller, said computer system including a 32-bit data bus and logic to write 4-byte data words on said data bus, said memory storage device being configured to store 36 bits at each address location of said storage device, said memory controller comprising: logic to receive first and second successive 4-byte data words from said data bus and combine said two 4-byte data words to form a single 8-byte data word; error correction code generating logic to generate an 8 check bit error correction code from said 8-byte data word; logic to successively store one of said 4-byte data words with a first 4 of said generated check bits at a first address location, and the other of said 4-byte data words with a second 4 of said generated check bits at a second address location; logic to read successively each of said first and second 4-byte data words along with the check bits stored with each 4-byte data word from said first and second address location in said memory device, and combine said first and second 4-byte data words to reconstitute the originally formed 8-byte data word; error correcting decode logic to receive said reconstituted 8-byte data word and associated 8 check bits and correct errors detected; and logic to write said reconstituted and corrected 8-byte data word onto the data bus of said computer system as two successive 4-byte data words.
Claim 2
Dependent Claim 248 words
A computer system and a memory storage device interfacing with said computer system through a memory controller, said computer system including a 32-bit data bus and logic to write 4-byte data words on said data bus, said memory storage device being configured to store 36 bits at each address location of said storage device, said memory controller comprising: logic to receive first and second successive 4-byte data words from said data bus and combine said two 4-byte data words to form a single 8-byte data word; error correction code generating logic to generate an 8 check bit error correction code from said 8-byte data word; logic to successively store one of said 4-byte data words with a first 4 of said generated check bits at a first address location, and the other of said 4-byte data words with a second 4 of said generated check bits at a second address location; logic to read successively each of said first and second 4-byte data words along with the check bits stored with each 4-byte data word from said first and second address location in said memory device, and combine said first and second 4-byte data words to reconstitute the originally formed 8-byte data word; error correcting decode logic to receive said reconstituted 8-byte data word and associated 8 check bits and correct errors detected; and logic to write said reconstituted and corrected 8-byte data word onto the data bus of said computer system as two successive 4-byte data words.
Claim 3
Dependent Claim 51 words
The system as defined in claim 1 wherein said logic to receive said first and second data words written from said bus includes a first write data word latch device to latch said first data word written by said bus while said second data word is being written by said bus.
Claim 4
Dependent Claim 35 words
The system as defined in claim 2, including a second data word latch to latch said second data word after it has been written by said bus and during logic function generating error correction code.
Claim 5
Dependent Claim 33 words
The system as defined in claim 2, including logic to combine the first data word from the first data word latch device and the second data word to form said 8-byte data word.
Claim 6
Dependent Claim 22 words
The system as defined in claim 4, wherein the logic to combine the first and second written data words includes a multiplexor.
Claim 7
Dependent Claim 26 words
The system as defined in claim 1, wherein the logic to receive and successively store said 8-byte data word as two 4-byte words includes a multiplexor.
Claim 8
Dependent Claim 52 words
The system as defined in claim 1, wherein said logic to read each of said 8-byte data words and check bits from the memory storage device includes logic to read said first 4-byte data word and associated check bits first and read said second 4-byte data word and associated check bits next.
Claim 9
Dependent Claim 65 words
The system as defined in claim 7, wherein said logic to read said 8-byte data words and check bits stored therewith from the memory storage device includes a first read data word latch device to store said first 4-byte data word and associated check bits read from the address while said second 4-byte data word and associated check bits are being read from address storage.
Claim 10
Dependent Claim 39 words
The system as defined in claim 8, further including logic to read said 8-byte data word from storage includes a second 4-byte read data word latch device to latch said second data word when it is read from storage.
Claim 11
Dependent Claim 37 words
The system as defined in claim 1, further comprising said logic to write said corrected 8-byte data word onto the data bus including an 8-byte read data word latch device to store said corrected 8-byte data word.
Claim 12
Dependent Claim 46 words
The system as defined in claim 10, wherein said logic to write said corrected 8-byte data word onto the data bus includes a multiplexor to write said data from said 8-byte read data word latch device onto said data bus as two successive 4-byte data words.
Claim 13
Independent Claim 243 words
A method of forming 8-byte data words with error correction code in a computer system and a memory storage device interfacing with said computer system, and wherein said computer system includes a 32-bit data bus and logic to write 4-byte data words on said data bus, and said memory storage device is configured to store 36 bits at each address location of said storage device, and a memory controller, said method comprising: receiving first and second successive 4-byte data words from said data bus, combining said two successive 4-byte data words received from the data bus to form a single 8-byte data word; generating an 8 check bit error correction code from said 8-byte data word; successively storing one of said 4-byte data words with a first 4 of said generated check bits at a first address location, and the other 4-byte data word with 4 of said generated check bits at a second address location; reading successively each of said first and second 4-byte data words together with the check bits stored with said data words from said first and second address locations in said memory device, and combining said first and second 4-byte data words to reconstitute the originally formed 8-byte data word; correcting any errors in the reconstituted 8-byte data word using the associated 8 check bits; and writing said reconstituted and corrected 8-byte data word onto the data bus of said computer system as two successive 4-byte data words.
Claim 14
Independent Claim 243 words
A method of forming 8-byte data words with error correction code in a computer system and a memory storage device interfacing with said computer system, and wherein said computer system includes a 32-bit data bus and logic to write 4-byte data words on said data bus, and said memory storage device is configured to store 36 bits at each address location of said storage device, and a memory controller, said method comprising: receiving first and second successive 4-byte data words from said data bus, combining said two successive 4-byte data words received from the data bus to form a single 8-byte data word; generating an 8 check bit error correction code from said 8-byte data word; successively storing one of said 4-byte data words with a first 4 of said generated check bits at a first address location, and the other 4-byte data word with 4 of said generated check bits at a second address location; reading successively each of said first and second 4-byte data words together with the check bits stored with said data words from said first and second address locations in said memory device, and combining said first and second 4-byte data words to reconstitute the originally formed 8-byte data word; correcting any errors in the reconstituted 8-byte data word using the associated 8 check bits; and writing said reconstituted and corrected 8-byte data word onto the data bus of said computer system as two successive 4-byte data words.
Claim 15
Dependent Claim 28 words
The method as defined in claim 12, including latching said first data word written by said bus while said second data word is being written by said bus.
Claim 16
Dependent Claim 30 words
The method as defined in claim 13, including latching said second data word after it has been written by said bus and during the logic function generating error correction code.
Claim 17
Dependent Claim 35 words
The method as defined in claim 12, wherein said first 4-byte data word and associated check bits are read first and said second 4-byte data word and associated check bits are read next from memory.
Claim 18
Dependent Claim 39 words
The method as defined in claim 15, including latching said first 4-byte data word and associated check bits read from the address while said second 4-byte data word and associated check bits are being read from said storage device.
Claim 19
Dependent Claim 22 words
The method as defined in claim 16, including latching said second 4-byte data word when it is read from said storage device.

References Cited (Backward Citations)

US5235693A Cited
US5331645A Cited
US5335234A Cited
US5283877A Cited
US5313475A Cited
US5430742A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-01-01 1999-07-03 2000-01-02 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-01-01 2003-07-03 2004-01-02 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-01-01 2007-07-03 2008-01-02 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag