← Back to Patent Explorer
US6202174B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method for identifying and correcting errors in a central processing unit

Assignee: GlobalFoundries Inc
•
Filing: 1996-09-16
•
Granted: 2001-03-13
•
Expires: 2016-09-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A central processing unit (CPU) repeatedly interrupts execution of software to save the CPU state, i.e. contents of various storage elements internal to the CPU, until an error occurs during the execution. On occurrence of the error, the CPU once again saves state and only then passes control to a handler in the software for handling the error. The state saving steps can be implemented in a computer process by use of a timer interrupt or by use of system management, or ICE breakpoint instructions that are included in the x86 instruction set. Errors can be debugged off-line in a development system, for example, by use of an in-circuit emulator to load the saved CPU states sequentially into the development system, thereby to recreate the error condition. Errors can also be debugged proactively, even before the error occurs, by use of a number of known-to-be-erroneous instructions and corresponding fix instructions. For proactive debugging, the CPU compares instructions to be executed with each of the known-to-be-erroneous instructions, and on finding a match, injects the corresponding fix instructions into the to-be-executed instructions. Therefore, known errors e.g. the PENTIUM arithmetic bug are avoided, e.g. by replacing one arithmetic instruction with another arithmetic instruction. Moreover, if an error has not yet been debugged, a temporary fix instruction can be used to gracefully terminate an application.

Inventors

  • 👤 Sherman Lee
  • 👤 David G. Kyle

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 00:50
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/366; G06F11/3648; G06F11/3652

Claims Analysis

Total Claims: 14
Claim 1
Independent Claim 123 words
A computer process for identifying an error in a central processing unit (CPU), the computer process comprising: executing software in said CPU, wherein the software comprises a plurality of instructions; repeatedly interrupting said executing by said CPU, and saving contents of storage elements in said CPU until an error occurs during said executing, said contents saved at each interruption forming one state in a sequence of states of said CPU maintained by said repeatedly saving; comparing an instruction in said plurality of instructions with a known-to-be-erroneous instruction prior to execution of said instruction in said plurality of instructions; and injecting a fix instruction into the plurality of instructions on finding a match during said comparing, said fix instruction corresponding to the known-to-be-erroneous instruction.
Claim 2
Dependent Claim 123 words
A computer process for identifying an error in a central processing unit (CPU), the computer process comprising: executing software in said CPU, wherein the software comprises a plurality of instructions; repeatedly interrupting said executing by said CPU, and saving contents of storage elements in said CPU until an error occurs during said executing, said contents saved at each interruption forming one state in a sequence of states of said CPU maintained by said repeatedly saving; comparing an instruction in said plurality of instructions with a known-to-be-erroneous instruction prior to execution of said instruction in said plurality of instructions; and injecting a fix instruction into the plurality of instructions on finding a match during said comparing, said fix instruction corresponding to the known-to-be-erroneous instruction.
Claim 3
Dependent Claim 22 words
The computer process of claim 1 wherein the known-to-be-erroneous instruction is a jump instruction and the fix instruction is a no-op instruction.
Claim 4
Dependent Claim 24 words
The computer process of claim 1 wherein the known-to-be-erroneous instruction is a first arithmetic instruction and the fix instruction is a second arithmetic instruction.
Claim 5
Dependent Claim 64 words
A computer process for identifying and correcting an error in a central processing unit (CPU), the computer process comprising: executing software; repeatedly interrupting said executing and comparing a to-be-executed instruction in the software with a first predetermined instruction; and injecting a second predetermined instruction corresponding to the first predetermined instruction into a plurality of to-be-executed instructions on finding a match during said repeatedly interrupting.
Claim 6
Dependent Claim 64 words
A computer process for identifying and correcting an error in a central processing unit (CPU), the computer process comprising: executing software; repeatedly interrupting said executing and comparing a to-be-executed instruction in the software with a first predetermined instruction; and injecting a second predetermined instruction corresponding to the first predetermined instruction into a plurality of to-be-executed instructions on finding a match during said repeatedly interrupting.
Claim 7
Dependent Claim 24 words
The computer process of claim 4 wherein said first instruction is a first arithmetic instruction and said second instruction is a second arithmetic instruction.
Claim 8
Dependent Claim 29 words
The computer process of claim 4 wherein: said first predetermined instruction is known to be erroneous; and said second predetermined instruction implements a fix for said first predetermined instruction.
Claim 9
Dependent Claim 30 words
The computer process of claim 6 wherein: said first instruction causes a crash on execution by said CPU; and said second instruction terminates said executing thereby to avoid said crash.
Claim 10
Dependent Claim 38 words
The computer process of claim 6 wherein: said first instruction causes an error on execution by said CPU; and said second instruction is one of a group of instructions that when executed by said CPU avoid said error.
Claim 11
Dependent Claim 77 words
A computer process for identifying and correcting an error, the computer process comprising: executing software, the software comprising an operating system and at least one application; repeatedly interrupting said executing and comparing a to-be-executed instruction in the software with a known-to-be-erroneous instruction thereby to detect an upcoming error; and injecting into a plurality of to-be-executed instructions a fix instruction corresponding to the known-to-be-erroneous instruction on finding a match during said comparing, thereby avoiding occurrence of said error.
Claim 12
Dependent Claim 77 words
A computer process for identifying and correcting an error, the computer process comprising: executing software, the software comprising an operating system and at least one application; repeatedly interrupting said executing and comparing a to-be-executed instruction in the software with a known-to-be-erroneous instruction thereby to detect an upcoming error; and injecting into a plurality of to-be-executed instructions a fix instruction corresponding to the known-to-be-erroneous instruction on finding a match during said comparing, thereby avoiding occurrence of said error.
Claim 13
Dependent Claim 37 words
The computer process of claim 9 wherein: the known-to-be-erroneous instruction is one of a sequence of known-to-be-erroneous instructions; and the fix instruction is one of a sequence of fix instructions corresponding to the sequence of known-to-be-erroneous instructions.
Claim 14
Dependent Claim 32 words
The computer process of claim 10 further comprising: adding to the sequence of known-to-be-erroneous instructions an erroneous instruction; and adding to the sequence of fix instructions an instruction that terminates said executing.

References Cited (Backward Citations)

US3905023A Cited
US4410938A Cited
US4412285A Cited
US4792955A Cited
US4819234A Cited
US5125087A Cited
US4982402A Cited
US5119377A Cited
EP0442277A2 Cited
US5214652A Cited
US5437039A Cited
US5533192A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-03-12 2004-09-11 2005-03-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-03-12 2008-09-11 2009-03-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-03-12 2012-09-11 2013-03-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag