Claims
- 1. A memory controller system, comprising:
a plurality of memory components; a bus for communicating data to and from said plurality of memory components; and a memory controller for storing and retrieving cache lines through at least said bus, said memory controller being operable to format cache lines into a plurality of portions for storage in said plurality of memory components, said memory controller being further operable to implement an error correction code (ECC) to correct a single-byte error in an ECC code word for pairs of said plurality of portions, said memory controller being operable to store even nibbles of respective pairs of said plurality of portions during respective first bus cycles and to store odd nibbles of said respective pairs of plurality of portions during respective second bus cycles such that each single-byte of said respective pairs of said plurality of portions is stored in a single one of said plurality of memory components.
- 2. The memory controller system of claim 1 wherein said bus has a bus width and said ECC code word has a code word length that is greater than said bus width.
- 3. The memory controller system of claim 2 wherein said code word length is twice as long as said bus width.
- 4. The memory controller system of claim 3 wherein said bus width is 144 bits and said code word length is 288 bits.
- 5. The memory controller system of claim 1 wherein each of said memory components has a bit-width of four bits.
- 6. The memory controller system of claim 1 wherein said plurality of memory components includes a plurality of dual in-line memory modules (DIMMs) that form a logical rank that has a bit-width equal to one-half of a length of said ECC code word.
- 7. The memory controller system of claim 6 wherein said memory controller stores pairs of said plurality of portions across said logical rank.
- 8. The memory controller system of claim 1 wherein said memory controller is further operable to correct an erasure byte in a second mode of ECC operation.
- 9. The memory controller system of claim 1 wherein said memory controller is operable to calculate an ECC syndrome, wherein said calculation of said syndrome includes applying combinations of retrieved first nibbles of an ECC code word to a set of XOR trees before second nibbles of said ECC code word are retrieved.
- 10. The memory controller system of claim 1 wherein said memory components are DRAM memory components.
- 11. A method for processing cache lines, comprising:
receiving cache line data; dividing said cache line data into a plurality of portions; calculating an error correction code (ECC) code word for pairs of said plurality of portions, wherein said ECC code words include sufficient redundant information to enable recovery of single-byte errors; storing respective even nibbles of said ECC code words into a plurality of memory components during respective first bus cycles; and storing respective odd nibbles of said ECC code words into said plurality of memory components during respective second bus cycles such that each byte of said respective pairs of said plurality of portion is stored in a single one of said plurality of memory components.
- 12. The method of claim 11 wherein said storing respective even nibbles and storing respective odd nibbles occurs over a bus that has a bus width and wherein said ECC code words have a code word length that is twice the bus width.
- 13. The method of claim 11 wherein each of said memory components has a bit-width of four bits.
- 14. The method of claim 13 further comprising:
retrieving said ECC code words from said plurality of memory components; correcting an erasure error in said ECC code words when a register value is set to identify a byte location of said erasure error; and correcting a single-byte error in said ECC code words.
- 15. The method of claim 14 further comprising:
retrieving a second set of ECC code words from a second plurality of memory components; and correcting a single-byte error in said ECC code words when a register value is set to a value that indicates that an erasure error is not present.
- 16. The method of claim 11 wherein said plurality of memory components form a logical rank that has a bit-width that is equal to a code word length of said ECC code words.
- 17. The method of claim 11 further comprising:
retrieving a first set of nibbles of an ECC code word from said plurality of memory components; retrieving a second set of nibbles of an ECC code word from said plurality of memory components; and calculating an ECC syndrome, wherein said calculating includes applying said combinations of said first set of nibbles to a set of XOR trees before said second set of nibbles are retrieved.
- 18. A memory controller system, comprising:
a plurality of memory buffers that are each coupled to a respective DRAM bus, wherein a plurality of DRAM components are accessible on each respective DRAM bus; a plurality of buses that are each coupled to a respective memory buffer of said plurality of memory buffers; and a memory controller for storing and retrieving cache line data through at least said plurality of buses, said memory controller being further operable to correct a single byte error in a first mode and at least one erasure byte error in a second mode according to an error correction code (ECC) algorithm for ECC code words that include cache line data, wherein said memory controller includes a first plurality of registers to identify erasure bytes caused by malfunctioning ones of said plurality of DRAM components, a second plurality of registers to identify erasure bytes caused by malfunctioning ones of said plurality of buses, and a third plurality of registers to identify erasure bytes causes by ones of said DRAM buses.
- 19. The memory controller system of claim 18 wherein said memory controller is operable to store even nibbles of an ECC code word during a first bus cycle and to store odd nibbles of said ECC code word during a second bus cycle.
- 20. The memory controller system of claim 19 wherein said ECC code words have a length that is greater than a width of logical ranks of defined by respective ones of said plurality of memory components, wherein said memory controller stores each ECC code word in a respective logical rank such that each single byte of a respective ECC code word is stored in a single DRAM component of said respective logical rank.
RELATED APPLICATION
[0001] This application is related to concurrently filed and commonly assigned U.S. patent application Ser. No. ______, ATTORNEY DOCKET NO. 200300007-1, entitled “SYSTEMS AND METHODS FOR TESTING ERROR CORRECTION CODE FUNCTIONALITY IN A MEMORY SYSTEM,” which is incorporated herein by reference.