IP Library Granted Patent US 6,950,978
Granted Patent B2
US 6,950,978 · App. 09/821,061 · Granted Sep 27, 2005

Method and apparatus for parity error recovery

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 6,950,978
App. No.
09/821,061
Granted
Sep 27, 2005
Kind
B2
Abstract

A method, apparatus, and computer implemented instructions for processing and recovering from soft errors in computer array with a parity error checking design in a data processing system. In response to an occurrence of a parity error, processor status information is stored to form stored processor information. A determination is made as to whether the parity error is a recoverable parity error using the stored processor information. In response to the parity error being a recoverable parity error, a recovery action is performed. The specific action taken varies depending on the type of error.

Claims (66)

1. A method in a data processing system for preventing said system from crashing when a parity error occurs in a cache that is associated with a processor included in said system and for processing said parity error during runtime of said system, the method comprising:

responsive to an occurrence of a parity error in said cache that is associated with said processor, storing a single set of processor information, that indicates an error type, error states, and error status that are stored in said processor as a result of said occurrence of said parity error, in registers in said processor to form stored processor information;

determining whether the parity error is a recoverable parity error using the stored processor information by reading said registers to analyze said stored error type, error states, and error status; and

responsive to the parity error being a recoverable parity error, performing a recovery action.

2. The method of claim 1 , wherein the performing step comprising:

if said error type for the parity error is one of a level one data cache error or a level one cache tag error, incrementing an error count associated with the error type and invalidating the level one data cache; and

if the error count associated with the error type is greater than a threshold, disabling the failing portion of the level one data cache or data cache tag.

3. The method of claim 1 , wherein the performing step comprises:

if said error type is a translation lookaside buffer error, incrementing a translation lookaside buffer error count and invalidating all entries in a translation lookaside buffer.

4. The method of claim 3 , wherein the performing step further comprises:

if the translation lookaside buffer error count is greater than a threshold, disabling the failing portion of the translation lookaside buffer.

5. The method of claim 1 , wherein the performing step comprises:

if said error type is an effective to real address translation error, incrementing an error count and invalidating selected entries within a translation lookaside buffer.

6. The method of claim 5 , wherein the selected entries are every fourth entry within the translation lookaside buffer.

7. The method of claim 5 , wherein the performing step further comprises:

if the effective to real address translation error count is greater than a threshold, disabling the failing portion of the effective to real address translation unit.

8. The method of claim 1 , wherein the stored processor information includes at least one error state.

9. The method of claim 1 further comprising:

if the parity error is a non-recoverable parity error, generating an indication of the non-recoverable interrupt error and storing said indication in said registers.

10. A data processing system comprising:

a bus system;

a communications unit connected to the bus system;

a memory connected to the bus system, wherein the memory includes a set of instructions; and

a processing unit connected to the bus system, wherein the processing unit includes registers for storing a single set of processor information that indicates an error type, error states, and error status to form stored processor information in response to the detection of a parity error in said cache that is associated with said processor; branch to the machine check interrupt vector, a runtime system firmware executes by the processing unit at the interrupt vector to determine whether the parity error is a recoverable parity error using the stored processor information by reading said registers to analyze said stored error type, error states, and error status; and perform a recovery action in response to the parity error being a recoverable parity error.

11. The data processing system of claim 10 , wherein the bus system is a single bus.

12. The data processing system of claim 10 , wherein the bus system includes a primary bus and a secondary bus.

13. The data processing system of claim 10 , wherein the processing unit includes a plurality of processors.

14. The data processing system of claim 10 , wherein the communications unit is one of a modem and Ethernet adapter.

15. A data processing system for preventing crashing of said system when a parity error occurs in a cache that is associated with a processor included in said system and for processing a parity error, the data processing system comprising:

storing means, responsive to an occurrence of a parity error in said cache that is associated with said processor, for storing a single set of processor information, that indicates an error type, error states, and error status that are stored in said processor as a result of said occurrence of said parity error, in registers in said processor to form stored processor information;

determining means for determining whether the parity error is a recoverable parity error using the stored processor information by reading said registers to analyze said stored error type, error states, and error status; and

performing means, responsive to the parity error being a recoverable parity error, for performing a recovery action.

16. The data processing system of claim 15 , wherein the performing means comprises:

incrementing means, if said error type for the parity error is one of a level one data cache error or a level one cache tag error, for incrementing an error count associated with the error type and invalidating the level one data cache; and

disabling means, if the error count is greater than a threshold, for disabling the failing portion of the level one data cache.

17. The data processing system of claim 15 , wherein the performing means comprises:

means for incrementing a translation lookaside buffer error count and invalidating all entries in a translation lookaside buffer if said error type is a translation lookaside buffer error.

18. The data processing system of claim 17 , wherein the performing means further comprises:

means for disabling the failing portion of the translation lookaside buffer if the error count is greater than a threshold.

19. The data processing system of claim 15 , wherein the performing means comprises:

means for incrementing an effective to real address translation error count and invalidating selected entries within a translation lookaside buffer if said error type is an effective to real address translation error.

20. The data processing system of claim 19 , wherein the selected entries are every fourth entry within the translation lookaside buffer.

21. The data processing system of claim 19 , wherein the performing means further comprises:

means for disabling the failing portion of the effective to real address translation unit if the error count is greater than a threshold.

22. The data processing system of claim 15 , wherein the stored processor information includes at least one error state.

23. The data processing system of claim 15 further comprising:

generating means for generating an indication of the non-recoverable interrupt if the parity error is a non-recoverable parity error and storing said indication in said registers.

24. A computer program product in a computer readable medium for preventing said system from crashing when a parity error occurs in a cache that is associated with a processor included in said system and for processing said parity error during runtime of said system, the product including the data processing implemented steps of:

responsive to an occurrence of a parity error in said cache that is associated with said processor, instructions for storing a single set of processor information, that indicates an error type, error states, and error status that are stored in said processor as a result of said occurrence of said parity error, in registers in said processor to form stored processor information;

instructions for determining whether the parity error is a recoverable parity error using the stored processor information by reading said registers to analyze said stored error type, error states, and error status; and

responsive to the parity error being a recoverable parity error, instructions for performing a recovery action.

25. The product of claim 24 , wherein the instructions for performing further comprises:

if said error type for the parity error is one of a level one data cache error or a level one cache tag error, instructions for incrementing an error count associated with the error type and invalidating the level one data cache; and

if the error count associated with the error type is greater than a threshold, instructions for disabling the failing portion of the level one data cache or data cache tag.

26. The product of claim 24 , wherein the instructions for performing further comprises:

if said error type is a translation lookaside buffer error, instructions for incrementing a translation lookaside buffer error count and invalidating all entries in a translation lookaside buffer.

27. The product of claim 26 , wherein the instructions for performing further comprises:

if the translation lookaside buffer error count is greater than a threshold, instructions for disabling the failing portion of the translation lookaside buffer.

28. The product of claim 24 , wherein the instructions for performing further comprises:

if said error type is an effective to real address translation error, instructions for incrementing an error count and invalidating selected entries within a translation lookaside buffer.

29. The product of claim 28 , wherein the selected entries are every fourth entry within the translation lookaside buffer.

30. The product of claim 28 , wherein the instructions for performing further comprises:

if the effective to real address translation error count is greater than a threshold, instructions for disabling the failing portion of the effective to real address translation unit.

31. The product of claim 24 , wherein the stored processor information includes at least one error state.

32. The product of claim 24 further comprising:

if the parity error is a non-recoverable parity error, instructions for generating an indication of the non-recoverable interrupt error and instructions for storing said indication in said registers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2013
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: INTELLECTUAL DISCOVERY, INC.
Reel/Frame 030628/0554 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2001
From: ARNDT, RICHARD LOUIS; KITAMORN, ALONGKORN; SILHA, EDWARD JOHN; WALTON, SCOTT DOUGLAS; WILLOUGHBY, DAVID R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 011685/0481 →