IP Library Granted Patent US 9,654,148
Granted Patent B2
US 9,654,148 · App. 14/590,985 · Granted May 16, 2017

Reconfigurable ECC for memory

Inventors: Weifeng Zhao (Fremont, CA); Shupeng Sun (Pittsburgh, PA); Jianfeng Liu (Hwaseong-si, KR); Ming Zhang (Foster City, CA); Bernard Ho (Fremont, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
H03M13/353G06F11/1048G11C29/028G11C29/52H03M13/356G11C2029/0411H03M13/05
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 9,654,148
App. No.
14/590,985
Granted
May 16, 2017
Kind
B2
Abstract

According to one general aspect, an apparatus may include a memory and a reconfigurable error correction array. The memory may be configured to store data. The reconfigurable error correction array may be configured to provide a plurality of levels of error correction to the memory based, at least in part, upon a number of errors detected within the memory.

Claims (57)

1. An apparatus comprising:

a memory configured to store data;

a reconfigurable error correction array that includes a plurality of memory rows, each memory row configured to store a respective piece of data, and is configured to simultaneously provide a plurality of levels of error correction to the memory based, at least in part, upon a number of errors detected within the memory; and

a programmable address table configured to indicate which, if any, of the plurality of memory rows is associated with a respective one of the plurality of levels of error correction.

2. The apparatus of claim 1 ,

wherein the reconfigurable error correction array includes a plurality of error correction blocks, each error correction block associated with a respective level of error correction; and

wherein each error correction block is associated with a respective memory row.

3. The apparatus of claim 1 , wherein the memory includes a plurality of minimal error correction code blocks, wherein each minimal error correction code block is associated with a respective memory row and configured to provide the respective memory row with a minimal level of error correction; and

wherein the reconfigurable error correction array includes a plurality of error correction code blocks, wherein each error correction code block is reconfigurably associated with zero or one respective defective memory rows, and is configured to provide the respective defective memory row an increased level of error correction.

4. The apparatus of claim 1 , further comprising a read unit configured to process, at least in part, a read request for a piece of data that is stored in the memory,

wherein the read unit is configured to determine a level of error correction associated with the piece of data, and

based upon the level of error correction associated with the piece of data, determine if an error exists within the piece of data.

5. The apparatus of claim 1 , further comprising a write unit configured to process, at least in part, a write operation to store a piece of data within a location included by the memory; and

wherein the write unit is configured to:

determine a level of error correction associated with the location included by the memory, and,

based upon the level of error correction, generate an error correction code and store the error correction code within either the memory or the reconfigurable error correction array.

6. The apparatus of claim 1 , wherein at least one memory row is a defective memory row that includes a number, greater than zero, of errors; and

wherein the defective memory row is associated with one of the plurality of levels of error correction that is capable of correcting no more than the number of errors of the defective memory row.

7. The apparatus of claim 1 , wherein each level of error correction is associated with a respective number of error correction blocks; and

wherein the reconfigurable error correction array includes the error correction blocks.

8. A method comprising:

detecting an amount of error included in a memory row of a memory, wherein the memory row is configured to store data;

determining an associated error correction scheme that is associated with the amount of error; and

if the associated error correction scheme is other than a minimal error correction scheme, disassociating the memory row with a respective minimal error correction block, and associating, via a programmable address table, the memory row with an increased error correction block that is part of the associated error correction scheme.

9. The method of claim 8 , wherein the memory row is associated with an address, and

wherein associating the memory row with an increased error correction block includes storing the address of the memory row within the programmable address table configured to indicate which increased error correction block is associated with the memory row.

10. The method of claim 8 , wherein the memory includes the respective minimal error correction block; and

wherein a reconfigurable error correction array includes the increased error correction block.

11. The method of claim 8 , wherein the memory includes the respective minimal error correction block and wherein the respective minimal error correction block is fixedly associated with the memory row; and

wherein disassociating the memory row with a respective minimal error correction block includes disabling the respective minimal error correction block.

12. The method of claim 8 , further comprising:

receiving a request to read data stored by the memory row;

determining which error correction block the memory row is associated with, wherein the error correction block includes either the respective minimal error correction block or the increased error correction block;

reading an error correction code associated with the memory row; and

based upon the error correction block associated with the memory row, determining if an error has occurred in the data stored by the memory row.

13. The method of claim 8 , further including:

receiving a request to store data within the memory row;

determining which error correction block the memory row is associated with, wherein the error correction block includes either the respective minimal error correction block or the increased error correction block;

based upon the error correction block associated with the memory row, generating an error correction code associated with the data; and

storing the error correction code associated with the memory row within either the respective minimal error correction block or the increased error correction block, based upon which error correction block is associated with the memory row.

14. The method of claim 8 , wherein the memory row that includes a number, greater than zero, of errors; and

wherein the associated error correction scheme is capable of correcting one more error than the number of errors of the memory row.

15. The method of claim 8 , wherein associating the memory row with an increased error correction block includes compensating for the amount of error included by the memory row without altering an operational voltage of the memory row.

16. A system comprising:

a processor configured to perform operation upon data; and

a memory system, the memory system including:

a memory configured to store data and comprising a plurality of memory rows

a programmable address table configured to indicate which, if any, of the plurality of memory rows is associated with, at least a portion of, a reconfigurable error correction array, and

the reconfigurable error correction array configured to provide a plurality of levels of error correction to the memory based, at least in part, upon a number of errors detected within the memory.

17. The system of claim 16 , wherein the processor includes a load/store unit configured to process, at least in part, a write operation to store a piece of data within a location included by the memory; and

wherein the load/store unit is configured to:

determine a level of error correction associated with the location included by the memory, and,

based upon the level of error correction, generate an error correction code and store the error correction code within either the memory or the reconfigurable error correction array.

18. The system of claim 16 , wherein the processor includes a load/store unit configured to process, at least in part, a read request for a piece of data that is stored in the memory; and

wherein the load/store unit is configured to:

determine a level of error correction associated with the piece of data, and,

based upon the level of error correction associated with the piece of data, determine if an error exists within the piece of data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: ZHAO, WEIFENG; SUN, SHUPENG; LIU, JIANFENG; ZHANG, MING; HO, BERNARD
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 035506/0364 →
Continuity (1)
Related Publication 20160196179A1 · Jul 7, 2016