IP Library Granted Patent US 7,702,978
Granted Patent B2
US 7,702,978 · App. 11/737,089 · Granted Apr 20, 2010

Soft error location and sensitivity detection for programmable devices

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 7,702,978
App. No.
11/737,089
Granted
Apr 20, 2010
Kind
B2
Abstract

Circuits, methods, and apparatus that detect whether a soft error that occurs in stored configuration data is a false positive that can be ignored such that reloading configuration data or other remedial measures are not unnecessarily performed. One example provides an integrated circuit including an error detection circuit and a sensitivity processor. The error detection circuit detects the presence of errors. The sensitivity processor determines whether a detected error can be ignored, or whether remedial action, such as providing an error flag, reconfiguring the device, or correcting the error, should be commenced. The sensitivity processor may make this determination based on whether the error occurred in a memory cell that configures unused circuitry. The sensitivity processor may make use of an error log to track known errors that may be ignored, so that this determination does not need to be done each time the configuration data is checked.

Claims (53)

1. A method of detecting an error in a configuration memory of a programmable device, the method comprising:

with the programmable device:

reading configuration memory data from the configuration memory;

determining whether an error has occurred in the configuration memory data; and

in response to the determination that an error has occurred:

reading sensitivity data corresponding to the configuration memory data that is in error;

analyzing the sensitivity data to determine whether the error can be ignored; and

if the error cannot be ignored, then initiating a remedial activity; else

ignoring the error by not initiating a remedial activity.

2. The method of claim 1 , wherein the act of ignoring the error by not initiating a remedial activity further comprises:

storing a location of the error in an error log.

3. The method of claim 2 , wherein the response to the determination that an error has occurred further comprises:

comparing the location with an error log prior to reading the sensitivity data; and

reading the sensitivity data only if a location of the error has not been previously stored in the error log.

4. The method of claim 1 , wherein whether an error has occurred is determined using error check bits, the configuration memory is partitioned into regions, and error check bits are determined separately for each region.

5. The method of claim 1 , wherein the remedial activity includes correcting the error.

6. The method of claim 1 , wherein the remedial activity includes reconfiguring the programmable device.

7. The method of claim 1 wherein the sensitivity data is generated in part based on whether a circuit configured by the configuration data in error is used by an application running on the programmable device.

8. A method of checking for errors in configuration data stored in a configuration memory on a programmable device, where the configuration data configures the programmable device for a first application, the method comprising:

with the programmable device:

reading a portion of the configuration data from the configuration memory;

reading a portion of a plurality of error check bits corresponding to the portion of the configuration data;

determining whether there is a soft error in the portion of the configuration data, and if there is; then

determining whether the soft error detrimentally affects the first application, and if it does; then

providing an indication that a soft error has occurred; else

not providing the indication that a soft error has occurred.

9. The method of claim 8 wherein determining whether the soft error detrimentally affects the first application is done by reading sensitivity data from a memory.

10. The method of claim 8 further comprising:

before reading the portion of the configuration data, reading the configuration data from a configuration device and storing the configuration data in the configuration memory.

11. The method of claim 10 further comprising:

before reading the configuration data from the configuration memory; determining the plurality of error check bits using the configuration data.

12. The method of claim 11 further comprising:

storing the plurality of error check bits on the programmable device.

13. The method of claim 8 further comprising:

if it is determined that the error detrimentally affects the first application, then

correcting the soft error.

14. The method of claim 8 further comprising:

if it is determined that the error detrimentally affects the first application, then

reconfiguring the programmable device.

15. An integrated circuit comprising:

a first plurality of memory cells to store configuration data;

a second plurality of memory cells to store error check bits;

a third plurality of memory cells to store sensitivity data;

a configuration controller to receive a configuration bitstream comprising the configuration data, error check bits, and sensitivity data, and to write the configuration data in the first plurality of memory cells, the error check bits in the second plurality of memory cells, and the sensitivity data in the third plurality of memory cells;

an error detection circuit to read configuration data from the first plurality of memory cells and error check bits from the second plurality of memory cells, and to determine if an error has occurred in the configuration data, and if so, then to provide at least part of an address for a first one of the first memory cells where the error occurred;

a sensitivity processor to receive the at least part of the address, and to receive sensitivity data corresponding to the at least part of the address, and to determine if an application running on the integrated circuit is sensitive to the error that occurred.

16. The integrated circuit of claim 15 wherein when an error occurs and the application is sensitive to the error, data is written to the memory cell where the error occurred.

17. The integrated circuit of claim 16 further comprising:

an error correction circuit to correct errors detected by the error detection circuit.

18. The integrated circuit of claim 17 wherein the error correction circuit corrects errors detected by the error detection circuit whether or not the application is sensitive to the error that occurred.

19. The integrated circuit of claim 15 wherein when an error occurs and the application is sensitive to the error, the integrated circuit is reconfigured.

20. The integrated circuit of claim 15 wherein the plurality of sensitivity bits are determined in part based on which portions of the programmable device are used by the first application.

21. The integrated circuit of claim 15 wherein each of the sensitivity bits is determined in part based on whether a corresponding portion of the programmable device is used by the first application.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061827/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2022
From: ALTERA CORPORATION
To: INTEL CORPORATION
Reel/Frame 060778/0032 →
RE-RECORD TO ADD THE MIDDLE INITIALS OF THE SECOND AND THIRD ASSIGNOR, PREVIOUSLY RECORDED ON REEL 019337 FRAME 0900. Recorded May 30, 2007
From: LEWIS, DAVID; NGO, NINH D.; LEE, ANDY L.; HUANG, JOSEPH
To: ALTERA CORPORATION
Reel/Frame 019364/0893 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2007
From: LEWIS, DAVID; NGO, NINH; LEE, ANDY; HUANG, JOSEPH
To: ALTERA CORPORATION
Reel/Frame 019337/0900 →