IP Library Granted Patent US 8,095,831
Granted Patent B2
US 8,095,831 · App. 12/273,155 · Granted Jan 10, 2012

Programmable error actions 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,095,831
App. No.
12/273,155
Granted
Jan 10, 2012
Kind
B2
Abstract

A data processing system and method of operation has a processor coupled to a cache. Cache control circuitry is coupled to the cache and performs error detection. A user programmable error action control register stores a control value for selecting a type of error action to be taken when a cache error is detected. A first value of the control value permits handling of a cache error that is transparent to the processor, and a second value permits handling of the cache error by taking an exception that is visible to the processor. Various alternate actions to a detected error, including error correction or cache line invalidation, may be taken in response to other values of the control value.

Claims (30)

1. A data processing system, comprising:

a processor;

a cache coupled to the processor; and

cache control circuitry coupled to the cache, the cache control circuitry performing error detection, the cache control circuitry further comprising a user programmable error action control register for storing a control value for selecting one of a plurality of error actions to be taken when a cache error is detected, wherein a first value of the control value selected by a user implements an automatic invalidation of a cache line containing the cache error without an exception being taken regardless of whether the cache line is dirty or clean, and a second value of the control value selected by the user implements an automatic invalidation of a cache line containing the cache error with an exception being taken regardless of whether the cache line is dirty or clean, wherein the user dynamically programs the control value which determines whether error action to be taken is a transparent operation or a non-transparent operation.

2. The data processing system of claim 1 wherein a third value of the control value within the user programmable error action control register generates an exception without modifying contents of the cache, the exception permitting logging of the detected error and examination of stored information within the cache to gather information about the detected error.

3. The data processing system of claim 1 wherein a third value of the control value within the user programmable error action control register implements automatic correction of the detected error without invalidation of information associated with the detected error and without generating an exception.

4. The data processing system of claim 1 wherein a third value of the control value within the user programmable error action control register implements automatic correction of the detected error and generates an exception, wherein the cache control circuitry implements automatic correction by performing an error correction code (ECC) operation on the cache line containing the cache error to correct the cache error and outputting the corrected cache line from the cache.

5. The data processing system of claim 4 wherein a fourth value of the control value within the user programmable error action control register implements an automatic invalidation of the cache line containing the cache error if the cache line is a clean cache line, and if the cache line is a dirty cache line an exception is generated and the cache line is left unaltered such that the cache line is not invalidated.

6. The data processing system of claim 5 wherein a fifth value of the control value within the user programmable error action control register implements automatic correction of the detected error without invalidation of information associated with the detected error and without generating an exception, wherein the cache control circuitry implements automatic correction by performing an error correction code (ECC) operation on the cache line containing the cache error to correct the cache error and outputting the corrected cache line from the cache.

7. The data processing system of claim 1 wherein when the control value is set to the first value during a first portion of a time interval a first portion of an application is executed with transparency of cache errors to the processor, and when the control value is set to the second value during a second portion of the time interval wherein a second portion of the application is executed with cache errors being visible to the processor.

8. The data processing system of claim 1 wherein a third value of the control value within the user programmable error action control register implements an automatic invalidation of the cache line containing the cache error if the cache line is a clean cache line, and if the cache line is a dirty cache line an exception is generated and the cache line is left unaltered such that the cache line is not invalidated.

9. The data processing system of claim 1 wherein the user programmable error action control register further comprises a second control value, the second control value controlling enablement of the error detection of the cache control circuitry.

10. The data processing system of claim 1 , wherein when the control value has the second value, a current instruction being executed is suppressed and after automatic invalidation of the cache line and after processing the taken exception, the current instruction that was suppressed is re-executed.

11. A method comprising:

coupling a processor to a cache;

coupling cache control circuitry to the cache for performing error detection of information within the cache; and

coupling a user programmable error action control register to the cache control circuitry, the user programmable error action control register storing a control value for selecting one of a plurality of error actions to be taken when a cache error is detected, wherein a first value of the control value selected by a user implements an automatic invalidation of a cache line containing the cache error without an exception being taken regardless of whether the cache line is dirty or clean, and a second value of the control value selected by the user implements an automatic invalidation of a cache line containing the cache error with an exception being taken regardless of whether the cache line is dirty or clean, wherein the user dynamically programs the control value which determines whether error action to be taken is a transparent operation or a non-transparent operation.

12. The method of claim 11 further comprising:

assigning a third value of the control value within the user programmable error action control register to generate an exception without modifying contents of the cache, the exception permitting logging of the detected error and examination of stored information within the cache to gather information about the detected error.

13. The method of claim 11 further comprising:

assigning a third value of the control value within the user programmable error action control register to implement automatic correction of the detected error without invalidation of information associated with the detected error and without generating an exception, wherein implementing the automatic correction comprises performing an error correction code (ECC) operation on the cache line containing the cache error to correct the cache error and outputting the corrected cache line from the cache.

14. The method of claim 11 further comprising:

assigning a third value of the control value within the user programmable error action control register to implement automatic correction of the detected error and generates an exception.

15. The method of claim 11 further comprising:

setting the control value to the first value during a first portion of a time interval wherein a first portion of an application is executed with transparency of cache errors to the processor; and

setting the control value to the second value during a second portion of the time interval wherein a second portion of the application is executed with cache errors being visible to the processor.

16. The method of claim 11 further comprising:

providing a second control value in the user programmable error action control register, the second control value controlling enablement of the error detection of the cache control circuitry.

17. The method of claim 11 further comprising:

assigning a third value of the control value within the user programmable error action control register to implement an automatic invalidation of the cache line containing the cache error if the cache line is a clean cache line, and if the cache line is a dirty cache line an exception is generated and the cache line is left unaltered such that the cache line is not invalidated.

Assignments (19)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2026
From: NXP USA, INC.
To: NEX-X SILICON LLC
Reel/Frame 075615/0773 →
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/0807 →
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 Mar 12, 2009
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 022380/0409 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2008
From: MOYER, WILLIAM C.; WHISENHUNT, GARY L.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 021853/0134 →