IP Library Granted Patent US 8,607,121
Granted Patent B2
US 8,607,121 · App. 13/097,721 · Granted Dec 10, 2013

Selective error detection and error correction for a memory interface

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 8,607,121
App. No.
13/097,721
Granted
Dec 10, 2013
Kind
B2
Abstract

Error correction code (ECC) checkbits are generated for each write access to a memory address based on both the data to be written (the write data) and the memory address. The ECC checkbits are stored with the write data at the memory device associated with the memory address. In addition, the memory device can selectively perform error detection and correction for write accesses using the ECC checkbits. For example, the memory device can include an ECC control register that stores control information to selectively enable and disable error detection and correction for write accesses. In an embodiment, error detection and correction can be selectively enabled and disabled for different sizes of write data.

Claims (61)

1. In a data processing device comprising a processor unit coupled to a memory, a method comprising:

receiving a write access comprising data to be written to the memory; and

executing a first error detection procedure in response to receiving the write access, the first error detection procedure comprising:

in response to determining the data is of a first size, performing error detection on the data; and

in response to determining the data is of a second size, writing the data to memory without performing error detection on the data.

2. The method of claim 1 , wherein executing the first error detection procedure comprises performing the first error detection procedure in response to determining access control policy information indicates a first access policy, and further comprising:

in response to determining the access control policy information indicates a second access policy, writing the data to memory without performing error detection when the data is of the first size and when the data is of the second size.

3. The method of claim 1 , wherein executing the first error detection procedure comprises executing the first error detection procedure in response to determining access control policy information indicates a first access policy, and further comprising:

in response to determining the access control policy information indicates a second access policy, performing error detection prior to writing the data to memory when the data is of the first size and when the data is of the second size.

4. The method of claim 3 , further comprising:

in response to determining the access control policy information indicates the second access policy, performing error correction on the data in response to detecting an error; and

in response to determining the access control policy information indicates a third access policy:

performing error detection when the data is of the first size and when the data is of the second size; and

indicating an error to the processor unit in response to detecting an error without performing error correction on the data.

5. The method of claim 1 , wherein performing error detection comprises performing error detection based on a set of ECC checkbits, the ECC checkbits based on a memory address associated with the memory request.

6. The method of claim 1 , wherein executing the first error correction procedure comprises executing the first error correction procedure at the memory, and further comprising:

performing a second error correction procedure at a module that generates the write access, the second error correction procedure generating a set of error correction code (ECC) checkbits for use by the first error correction procedure.

7. The method of claim 6 , further comprising:

receiving at the memory a read access for the data, the read access generated by a requesting module;

providing the data and ECC checkbits to the requesting module in response to the read access; and

performing error detection on the data at the requesting module based on the ECC checkbits.

8. The method of claim 1 , wherein the first size corresponds to a width of the memory.

9. A method, comprising:

receiving a write access comprising data to be written to the memory;

determining an access control policy in response to the write access; and

selectively performing a first error detection procedure on the data to be written to the memory based on the access control policy.

10. The method of claim 9 , further comprising:

providing the data from the memory to a requesting module via the interconnect in response to a read access; and

performing a second error detection procedure on the data at the requesting module in response to the memory providing the data

11. The method of claim 9 , wherein selectively performing the first error detection procedure comprises:

in response to determining the access control policy is a first policy, storing the data without performing error detection; and

in response to determining the access control policy is a second policy, performing error detection on the data.

12. The method of claim 9 , wherein selectively performing the first error detection procedure further comprises:

in response to determining the access control policy is the second policy, indicating an error to the source module in response to detecting an error.

13. The method of claim 12 , wherein selectively performing the first error detection procedure further comprises:

in response to determining the access control policy is the second policy, performing error correction on the data in response to detecting an error in the data; and

in response to determining the access control policy is a third policy:

performing error detection on the data prior to storing the data; and

storing the data without performing error correction in response to detecting an error in the data.

14. The method of claim 13 , wherein determining the access policy comprises determining the access policy based on a value stored at a register.

15. The method of claim 9 , wherein selectively performing the first error detection procedure further comprises:

selectively performing the first error detection procedure based on a size of the data.

16. The method of claim 15 , wherein selectively performing the first error detection procedure based on the size of the data comprises:

storing the data without performing error detection in response to determining the size of the data corresponds to a width of the memory; and

performing error detection prior to storing the data in response to determining the size of the data does not correspond to the width of the memory.

17. A data processing device, comprising:

a source module to generate, for a write access, a set of ECC checkbits based on data to be written;

a memory;

an interconnect to provide the write access to the memory;

a storage location to store access control policy information; and

the memory comprising an ECC module to selectively perform a first error detection procedure on the data based on the access control policy, the ECC module further to:

in response to determining the access control policy is a first policy:

perform error detection on the data prior to the memory storing the data; and

perform error correction on the data in response to detecting an error in the data; and

in response to determining the access control policy is a second policy:

perform error detection on the data prior to storing the data at the memory; and

store the data at the memory without performing error correction in response to detecting an error in the data.

18. The data processing device of claim 17 , further comprising:

a requesting module to generate a read request for the data, the memory to provide the data to the requesting module in response to the read request, the requesting module to perform a second error detection procedure on the data in response to the memory providing the data.

19. The data processing device of claim 17 , wherein the ECC module is to:

in response to determining the access control policy is a third policy, store the data at the memory without performing error detection.

Assignments (26)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0387 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →