IP Library Granted Patent US 8,291,305
Granted Patent B2
US 8,291,305 · App. 12/205,222 · Granted Oct 16, 2012

Error detection schemes for a cache in a data processing system

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,291,305
App. No.
12/205,222
Granted
Oct 16, 2012
Kind
B2
Abstract

A method includes providing a cache; and providing a plurality of cache lines within the cache, wherein a first one of the plurality of cache lines has a tag entry and a data entry, wherein the tag entry has a parity field for storing one or more parity bits associated with a first portion of the tag entry, wherein the tag entry has an EDC field for storing one or more EDC check bits associated with a second portion of the tag entry and wherein the EDC check bits are used for detecting multiple bit errors, and wherein both the first parity field and the EDC field are stored in the tag entry of said first one of the plurality of cache lines.

Claims (55)

1. A method, comprising:

providing a cache;

providing a plurality of cache lines within the cache,

wherein a first one of the plurality of cache lines has a tag entry and a data entry,

wherein the tag entry has a parity field for storing one or more parity bits associated with a first portion of the tag entry,

wherein the tag entry has an EDC field for storing one or more EDC check bits associated with a second portion of the tag entry and wherein the EDC check bits are used for detecting multiple bit errors,

wherein both the parity field and the EDC field are stored in the tag entry of said first one of the plurality of cache lines, and

wherein the first portion of the tag entry and the second portion of the tag entry are mutually exclusive portions of the tag entry;

providing a read access to the cache; and

in response to the read access resulting in a hit of the first one of the plurality of cache lines, providing the first portion of the tag entry and the one or more parity bits to parity logic which detects occurrence of a single-bit parity error in the first portion of the tag entry and providing the second portion of the tag entry and the EDC field to EDC logic which detects occurrence of a multiple-bit error in the second tag portion.

2. The method as in claim 1 , wherein the second portion of the tag entry comprises one or more tag address bits, and wherein the tag address bits are associated with the EDC field.

3. The method as in claim 1 , wherein the second portion of the tag entry comprises a valid bit, and wherein the valid bit is associated with the EDC field.

4. The method as in claim 1 , wherein the first portion of the tag entry comprises a lock bit, and wherein the lock bit is associated with the parity field.

5. The method as in claim 1 , wherein the first portion of the tag entry comprises a dirty bit, and wherein the dirty bit is associated with the parity field.

6. The method as in claim 1 , wherein the first portion of the tag entry comprises a lock bit and a dirty bit, wherein both the lock bit and the dirty bit are associated with the parity field, and wherein the parity field comprises a plurality of lock parity bits and a plurality of dirty parity bits.

7. The method as in claim 1 , wherein the cache comprises a level one cache.

8. The method as in claim 1 , wherein the cache comprises a data cache.

9. A cache, comprising:

a data array for storing a data entry, wherein the data entry is a first part of a same cache line; and

a tag array for storing a tag entry, wherein the tag entry is a second part of said same cache line,

wherein the tag entry comprises:

a parity field for storing one or more parity bits associated with a first portion of the tag entry; and

an EDC field for storing one or more EDC check bits associated with a second portion of the tag entry,

wherein the EDC check bits are used in combination with the second portion of the tag entry for generating syndrome bits for detecting multiple bit errors,

wherein both the parity field and the EDC field are associated with said same cache line, and

wherein the first portion of the tag entry and the second portion of the tag entry are mutually exclusive.

10. The cache as in claim 9 , wherein the second portion of the tag entry comprises one or more tag address bits, and wherein the tag address bits are associated with the EDC field.

11. The cache as in claim 9 , wherein the second portion of the tag entry comprises a valid bit, and wherein the valid bit is associated with the EDC field.

12. The cache as in claim 9 , wherein the first portion of the tag entry comprises a lock bit, and wherein the lock bit is associated with the parity field.

13. The cache as in claim 9 , wherein the first portion of the tag entry comprises a dirty bit, and wherein the dirty bit is associated with the parity field.

14. The cache as in claim 9 , wherein the first portion of the tag entry comprises a lock bit and a dirty bit, wherein both the lock bit and the dirty bit are associated with the parity field, and wherein the parity field comprises a plurality of lock parity bits and a plurality of dirty parity bits.

15. The cache as in claim 9 , wherein the cache comprises a level one cache.

16. The cache as in claim 9 , wherein the cache comprises a data cache.

17. An integrated circuit comprising the cache as in claim 9 .

18. The cache as in claim 9 , further comprising:

error detection logic, coupled to the tag array, the error detection logic checking the one or more EDC check bits to detect a first error; and

parity logic, coupled to the tag array, the parity logic checking the one or more parity bits to detect a second error.

19. A method, comprising:

generating one or more lock parity bits associated with a lock bit;

generating one or more dirty parity bits associated with a dirty bit;

generating one or more EDC check bits associated with a plurality of tag address bits and a valid bit;

storing the one or more lock parity bits and the lock bit within a tag entry of a same single cache line;

storing the one or more dirty parity bits and the dirty bit within the tag entry of the same single cache line; and

storing the one or more EDC check bits, the plurality of tag address bits, and the valid bit within the tag entry of the same single cache line.

20. An integrated circuit comprising an instruction cache and a data cache,

wherein the instruction cache comprises:

a first tag array for storing first tag address information;

first parity logic, coupled to the first tag array, the first parity logic using one or more first parity bits to detect a first error in the first tag address information;

a first cache data array for storing instruction type information; and

first EDC logic, coupled to the first cache data array, the first EDC logic using a first plurality of EDC check bits to detect a second error in the instruction type information; and

wherein the data cache comprises:

a second tag array for storing second tag address information;

second EDC logic, coupled to the second tag array, the second EDC logic using a second plurality of EDC check bits to detect a third error in the second tag address information;

a second cache data array for storing data type information; and

second parity logic, coupled to the second cache data array, the second parity logic using one or more second parity bits to detect a fourth error in the data type information.

Assignments (20)
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 →
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 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 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
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 037354/0757 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Dec 9, 2008
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 021936/0772 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2008
From: MOYER, WILLIAM C.; PHO, QUYEN; ROCHFORD, MICHAEL J.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 021493/0622 →