IP Library Granted Patent US 12,204,443
Granted Patent B2
US 12,204,443 · App. 18/449,025 · Granted Jan 21, 2025

Method and system for in-line ECC protection

Inventors: Denis Roland Beaudoin (Rowlett, TX); Ritesh Dhirajlal Sojitra (Murphy, TX); Samuel Paul Visalli (Allen, TX)
Assignee: Texas Instruments Incorporated
G06F12/0246G06F12/0292G06F12/0879G06F13/4027G11C11/409G11C29/42G11C29/76
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 12,204,443
App. No.
18/449,025
Granted
Jan 21, 2025
Kind
B2
Abstract

A memory system having an interconnect configured to receive commands from a system to read data from and/or write data to a memory device. The memory system also has a bridge configured to receive the commands from the interconnect, to manage ECC data and to perform address translation between system addresses and physical memory device addresses by calculating a first ECC memory address for a first ECC data block that is after and adjacent to a first data block having a first data address, calculating a second ECC memory address that is after and adjacent to the first ECC block, and calculating a second data address that is after and adjacent to the second ECC block. The bridge may also check and calculate ECC data for a complete burst of data, and/or cache ECC data for a complete burst of data that includes read and/or write data.

Claims (68)

1. A device comprising:

a memory configured to store data according to an address space; and

a circuit coupled to the memory and configured to:

receive a first write command associated with a first set of data;

generate a first set of error correction code (ECC) data for the first set of data;

receive a second write command associated with a second set of data;

generate second set of ECC data for the second set of data;

cause the first set of data to be stored in the memory;

cause the second set of data to be stored, in the memory, adjacent to the first set of data in the address space;

cause the first set of ECC data to be stored, in the memory, adjacent to and prior to the first set of data in the address space; and

cause the second set of ECC data to be stored, in the memory, adjacent to and after the second set of data in the address space.

2. The device of claim 1 , wherein the circuit is configured to:

receive a third write command associated with a third set of data;

generate third set of ECC data for the third set of data;

cause the third set of ECC data to be stored, in the memory, adjacent to the second set of ECC data in the address space; and

cause the third set of data to be stored, in the memory, adjacent to and after the third set of ECC data in the address space.

3. The device of claim 1 , wherein:

the first write command is a read-modify-write command that specifies a third set of data; and

the circuit includes a read-modify-write circuit configured to, based on the read-modify-write command:

read a fourth set of data from the memory; and

merge the third set of data with the fourth set of data to produce the first set of data.

4. The device of claim 1 , wherein the memory is a random-access memory.

5. The device of claim 1 , wherein the first set of ECC data is Single-Error-Correct-Double-Error-Detect (SECDED) data.

6. The device of claim 1 , wherein the first set of ECC data encodes at least one of: an address of the first set of data or an address of the first set of ECC data.

7. The device of claim 1 , wherein:

the first set of data has a size of 512 bytes; and

the first set of ECC data has a size of 512 bytes.

8. A device comprising:

a memory configured to store data according to an address space;

a processor configured to provide a first write command to write a first set of data and a second write command to write a second set of data; and

a memory control circuit coupled between the memory and the processor and configured to:

receive the first write command and the second write command; and

cause the first set of data, a first set of error correction code (ECC) data associated with the first set of data, the second set of data, and a second set of ECC data associated with the second set of data to be stored in the memory such that:

the first set of data is adjacent to the second set of data in the address space;

the first set of ECC data is adjacent to and prior to the first set of data in the address space; and

the second set of ECC data is adjacent to and after the second set of data in the address space.

9. The device of claim 8 , wherein the memory control circuit includes an ECC calculation circuit configured to generate the first set of ECC data and the second set of ECC data.

10. The device of claim 8 , wherein:

the processor is configured to provide a third write command to write a third set of data; and

the memory control circuit is configured to cause the third set of data and a third set of ECC data associated with the third set of data to be stored in the memory such that:

the third set of ECC data is adjacent to the second set of ECC data in the address space; and

the third set of data is adjacent to and after the third set of ECC data in the address space.

11. The device of claim 8 , wherein the memory is a random-access memory.

12. The device of claim 8 , wherein the first set of ECC data is Single-Error-Correct-Double-Error-Detect (SECDED) data.

13. The device of claim 8 , wherein the first set of ECC data encodes at least one of: an address of the first set of data or an address of the first set of ECC data.

14. The device of claim 8 , wherein:

the first set of data has a size of 512 bytes; and

the first set of ECC data has a size of 512 bytes.

15. A method comprising:

receiving a first set of data;

generating a first set of error correction code (ECC) data based on the first set of data;

receiving a second set of data;

generating a second set of ECC data based on the second set of data;

storing the first set of data, the first set of ECC data, the second set of data, and a second set of ECC data in a memory such that:

the first set of data is adjacent to the second set of data in an address space;

the first set of ECC data is adjacent to and prior to the first set of data in the address space; and

the second set of ECC data is adjacent to and after the second set of data in the address space.

16. The method of claim 15 , wherein the receiving of the first set of data include:

receiving a read-modify-write command that specifies a third set of data; and

based on the read-modify-write command:

reading a fourth set of data from the memory; and

merging the third set of data with the fourth set of data to produce the first set of data.

17. The method of claim 15 , wherein the memory is a random-access memory.

18. The method of claim 15 , wherein the first set of ECC data is Single-Error-Correct-Double-Error-Detect (SECDED) data.

19. The method of claim 15 , wherein the first set of ECC data encodes at least one of: an address of the first set of data or an address of the first set of ECC data.

20. The method of claim 15 , wherein:

the first set of data has a size of 512 bytes; and

the first set of ECC data has a size of 64 bytes.

Continuity (4)
Continuation 17474141 · Sep 14, 2021
Continuation 16590515 · Oct 2, 2019
Provisional Application 62777993 · Dec 11, 2018
Related Publication 20230393975A1 · Dec 7, 2023
References Cited (17)
US 6804799B2 · Zuraski, Jr. · 2004 [cited by applicant]
US 7043679B1 · Keltcher et al. · 2006 [cited by applicant]
US 8539313B2 · D'Abreu et al. · 2013 [cited by applicant]
US 9417821B2 · Slaight et al. · 2016 [cited by applicant]
US 11119909B2 · Beaudoin · 2021 [cited by examiner]
US 11726907B2 · Beaudoin · 2023 [cited by examiner]
US 20070061503A1 · Chiang et al. · 2007 [cited by applicant]
US 20070079217A1 · Haugan et al. · 2007 [cited by applicant]
US 20080235485A1 · Haertel et al. · 2008 [cited by applicant]
US 20130080853A1 · D'Abreu et al. · 2013 [cited by applicant]
US 20210406171A1 · Beaudoin · 2021 [cited by examiner]
CN 104464823A · 2015 [cited by applicant]
EP 0415547A2 · 1991 [cited by applicant]
Chinese Office Action for 201980068709.6 mailed Jan. 9, 2024. [cited by applicant]
Extended European Search report for EP 19895886.0 mailed May 24, 2022. [cited by applicant]
International Search Report for PCT/US2019/0065416 mailed Mar. 26, 2020. [cited by applicant]
Partial Supplementary European Search Report for EU 19895886.0; mailed Dec. 21, 2021. [cited by applicant]