IP Library Granted Patent US 11,200,114
Granted Patent B2
US 11,200,114 · App. 16/821,548 · Granted Dec 14, 2021

System and method for facilitating elastic error correction code in memory

Inventor: Jian Chen (San Jose, CA)
Assignee: Alibaba Group Holding Limited
G06F11/1044G06F9/30189G06F11/076G06F11/106G06F11/1032G06F11/1068G06F11/3037
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 11,200,114
App. No.
16/821,548
Granted
Dec 14, 2021
Kind
B2
Abstract

A system is provided for performing error correction in memory. During operation, the system can receive a memory access request from a host processor. The system can then compare a memory address specified in the memory access request with a set of entries in an error correction code (ECC) mapping table. In response to the system determining that the memory address corresponds to at least one entry in the ECC mapping table, the system may determine, based on value in the counter field, whether the memory address belongs to a first portion or a second portion of the address range specified in the ECC mapping table entry. The system can then select a current ECC mode when the memory address belongs to the first portion; and select a previous ECC mode when the memory address belongs to the second portion. The system may then process the memory access request based on the selected ECC mode.

Claims (84)

1. A method for performing error correction in memory, comprising:

receiving a memory access request from a host processor;

comparing a memory address specified in the memory access request with a set of entries in an error correction code (ECC) mapping table;

determining that the memory address corresponds to at least one entry in the ECC mapping table,

determining whether the memory address belongs to a first portion or a second portion of the address range specified in the ECC mapping table entry;

in response to the memory address belonging to the first portion and not being the last address in the first portion, selecting a first ECC mode;

in response to the memory address being the last address in the first portion and the memory access request being a write request selecting the first ECC mode, and indicating that a range of memory using the first ECC mode is expanded by one cache block; and

selecting a second ECC mode in response to the memory address belonging to the second portion; and

processing the memory access request based on the selected ECC mode.

2. The method of claim 1 , wherein each entry in the ECC mapping table includes:

a start address field;

an end address field;

a previous ECC mode field;

a current ECC mode field; and

a counter field.

3. The method of claim 1 , wherein the second ECC mode and the first ECC mode use a class of cyclic error correcting codes that is capable of performing at least one of:

a 4-bit error correction and 5-bit error detection;

a 5-bit error correction and 6-bit error detection; and

a 6-bit error correction and 7-bit error detection.

4. The method of claim 1 , wherein a counter field in the ECC mapping table entry tracks a boundary separating the address range into two regions: the first portion of the address range and the second portion of the address range, and wherein the address range is defined by a start address and an end address specified in the ECC mapping table entry.

5. The method of claim 1 , wherein the memory includes a dynamic random access memory (DRAM).

6. The method of claim 1 , wherein in response to the memory address being the last address in the first portion and the memory access request being a write request updating the ECC mapping table by:

setting a write ECC mode to the first ECC mode; and

incrementing a value in a counter field of the ECC mapping table entry.

7. The method of claim 1 , further comprising:

in response to determining that the memory address is not included in the ECC mapping table, selecting a default ECC mode.

8. The method of claim 7 , wherein the default ECC mode represents a Hamming code with 64 bits data and 8 bit parity code.

9. A system for performing error correction in memory, comprising:

a receiving module configured to receive a memory access request from a host processor, wherein the memory includes a dynamic random access memory (DRAM);

an analysis module configured to:

compare a memory address specified in the memory access request with a set of entries in an error correction code (ECC) mapping table; and

determine that the memory address corresponds to at least one entry in the ECC mapping table;

determine whether the memory address belongs to a first portion or a second portion of the address range specified in the ECC mapping table entry;

an ECC mode selector module configured to:

in response to the memory address belonging to the first portion and not being the last address in the first portion selecting the first ECC mode;

in response to the memory address being the last address in the first portion and the memory access request being a write request selecting the first ECC mode, and indicating that a range of memory using the first ECC mode is expanded by one cache block; and

select a second ECC mode in response to the memory address belonging to the second portion; and

a processing module configured to process the memory access request based on the selected ECC mode.

10. The system of claim 9 , wherein each entry in the ECC memory mapping table includes:

a start address field;

an end address field;

a previous ECC mode field;

a current ECC mode field; and

a counter field.

11. The system of claim 9 , wherein the second ECC mode and the first ECC mode use a class of cyclic error correcting codes for performing at least one of:

a 4-bit error correction and 5-bit error detection;

a 5-bit error correction and 6-bit error detection; and

a 6-bit error correction and 7-bit error detection.

12. The system of claim 9 , wherein the ECC mode selector module is further configured to:

select a default ECC mode in response to determining that the memory address is not included in the ECC mapping table.

13. The system of claim 9 , wherein a counter field in the ECC mapping table entry tracks a boundary separating the address range into two regions: the first portion of the address range and the second portion of the address range, and wherein the address range is defined by a start address and an end address specified in the ECC mapping table entry.

14. The system of claim 9 ,

wherein an ECC mapping table update module is configured to update the ECC mapping table in response to determining that the memory access request is the write request by:

setting a write ECC mode to the first ECC mode; and

incrementing a value in the counter field of the ECC mapping table entry.

15. An apparatus for performing error correction in memory, comprising:

one or more processors; and

a storage medium storing instructions that, when executed by the one or more processors, cause the apparatus to perform a method comprising:

monitoring error correction code (ECC) decoding statistics to determine intensity of soft errors in different address ranges in memory; and

in response to determining that intensity of soft errors in an address range is greater than a corresponding threshold:

reading an ECC mapping table; and

in response to determining that the address range is fully or partially included in an entry of the ECC mapping table,

prioritizing memory scrubbing when the address range is not completely protected with a current ECC mode specified in a current ECC mode field of the entry in the ECC mapping table; and

updating a previous ECC mode field in the entry of the ECC mapping table with the current ECC mode.

16. The apparatus of claim 15 , further comprising:

setting, based on the threshold, the current ECC mode field to a new mode, wherein the new mode has a higher strength than the mode in the updated previous ECC mode field; and

resetting a counter field in the entry of the ECC mapping table.

17. The apparatus of claim 15 , the method further comprising:

in response to determining that the address range is not included in any entry of the ECC mapping table,

adding a new entry to the ECC mapping table;

setting a previous ECC mode field in the new entry to a default mode;

setting, based on the threshold, the current ECC mode field in the new entry to a new mode, wherein the new mode has higher strength than the default mode; and

resetting a counter field in the entry of the ECC mapping table.

18. The apparatus of claim 15 , wherein each entry in the ECC mapping table includes:

a start address field;

an end address field;

a previous ECC mode field;

the current ECC mode field; and

a counter field.

19. The apparatus of claim 15 , wherein the memory includes a dynamic random access memory (DRAM).

20. The apparatus of claim 15 , wherein the threshold being a first threshold, a second threshold, or a third threshold; and wherein:

when the intensity of soft errors exceeds the first threshold the current ECC mode field is set to mode 1 ;

when the intensity of soft errors exceeds the second threshold the current ECC mode field is set to mode 2 ; and

when the intensity of soft errors exceeds the third threshold, the current ECC mode field is set to mode 3 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2020
From: CHEN, JIAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052153/0942 →
Continuity (1)
Related Publication 20210294692A1 · Sep 23, 2021
Cited By (1)
US 12,306,711