Inner and outer code generator for volatile memory
First Claim
Patent Images
1. A system, comprising:
- a volatile memory to store data;
a memory controller to manage the data in the volatile memory, the memory controller comprising;
an inner code generator to generate a respective inner correction code for each of a plurality of blocks of the data in the volatile memory;
an outer code generator to generate an outer correction code based on the plurality of blocks of the data, wherein the memory controller updates the outer correction code as part of a refresh to the plurality of blocks of the data in the volatile memory; and
a memory scrubber to correct single bit errors via the inner correction code in the plurality of blocks of the data and to correct multiple bit errors via the outer correction code in the plurality of blocks of the data; and
wherein the memory controller specifies a length N of bytes for the plurality of blocks of the data, if the memory controller updates all N bytes for the plurality of blocks of the data, the inner correction code is updated for the N bytes and the outer correction code is updated based on the updates to the N bytes, N being a positive integer, the inner correction code and the outer correction code being updated as part of the refresh to the data.
2 Assignments
0 Petitions
Accused Products
Abstract
A system includes a volatile memory to store data and a memory controller to manage the data in the volatile memory. The memory controller includes an inner code generator to generate a respective inner correction code for each of a plurality of blocks of the data in the volatile memory. An outer code generator generates an outer correction code based on the plurality of blocks of the data. The memory controller updates the outer correction code as part of a refresh to the plurality of blocks of the data in the volatile memory.
-
Citations
16 Claims
-
1. A system, comprising:
-
a volatile memory to store data; a memory controller to manage the data in the volatile memory, the memory controller comprising; an inner code generator to generate a respective inner correction code for each of a plurality of blocks of the data in the volatile memory; an outer code generator to generate an outer correction code based on the plurality of blocks of the data, wherein the memory controller updates the outer correction code as part of a refresh to the plurality of blocks of the data in the volatile memory; and a memory scrubber to correct single bit errors via the inner correction code in the plurality of blocks of the data and to correct multiple bit errors via the outer correction code in the plurality of blocks of the data; and wherein the memory controller specifies a length N of bytes for the plurality of blocks of the data, if the memory controller updates all N bytes for the plurality of blocks of the data, the inner correction code is updated for the N bytes and the outer correction code is updated based on the updates to the N bytes, N being a positive integer, the inner correction code and the outer correction code being updated as part of the refresh to the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
generating an inner correction code for each of a plurality of data blocks of volatile memory; generating an outer correction code based on processing the plurality of data blocks collectively; refreshing the volatile memory that includes the plurality of data blocks, the outer correction code being updated as part of the refreshing; correcting a single bit error via the respective inner correction code in response to detecting the single bit error in one of the plurality of data blocks; correcting a multiple bit error via the outer correction code in response to detecting the multiple bit error in a given data block in the plurality of data blocks; specifying a length N of bytes for the block of data, N being a positive integer; updating all N bytes for the block of data; updating the inner correction code for the N bytes and the outer correction code based on the updating to the N bytes; updating less than the length N of bytes specified for the block of data; and setting a flag indicating that a partial write has been initiated to update the block of data and that the outer correction code is invalid. - View Dependent Claims (10)
-
-
11. A system, comprising:
-
a volatile memory to store data; and a memory controller to manage the data in the volatile memory, the memory controller comprising; an inner code generator to generate a plurality of inner correction codes based on data values in each of a plurality of data blocks in the volatile memory, wherein each of the plurality of inner correction codes is assigned to correct a respective one of the plurality of data blocks; an outer code generator to generate an outer correction code based on processing the plurality of data blocks collectively, wherein the memory controller updates at least one of the inner correction code and the outer correction code during a refresh to the plurality of data blocks in the volatile memory; and a memory scrubber to correct single bit errors in a given one of the plurality of data blocks via its respective inner correction code and to correct multiple bit errors in the plurality data blocks via the outer correction code; and wherein the memory scrubber monitors a flag indicating a partial memory write has occurred to a subset of the data blocks and the outer code generator updates the outer correction code based on the partial memory write.
-
-
12. A system, comprising:
-
a volatile memory to store data; and a memory controller to manage the data in the volatile memory, the memory controller comprising; an inner code generator to generate a respective inner correction code for each of a plurality of blocks of the data in the volatile memory; and an outer code generator to generate an outer correction code based on the plurality of blocks of the data, wherein the memory controller updates the outer correction code as part of a refresh to the plurality of blocks of the data in the volatile memory; and
wherein;the inner code generator processes the plurality of blocks of the data and generates an error checking and correction code (ECC) as the inner correction code for each block of the data; and the inner code generator generates the ECC for the outer correction code to facilitate error correction of the outer correction code. - View Dependent Claims (13, 14, 15, 16)
-
Specification