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

Method and system for utilizing benign fault occurrence to measure interrupt-blocking times

Assignee: International Business Machines Corp
•
Filing: 1991-08-21
•
Granted: 1994-04-05
•
Expires: 2011-08-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method in a computer system for monitoring time intervals during which external interrupts are inhibited within the computer system in a selected program being run on the computer system. The method and apparatus of the present invention includes identifying a first plurality of instructions, capable of blocking external interrupts and identifying a second plurality of instructions, capable of unblocking external interrupts. After identifying these instructions, a unique benign fault is inserted proximate to selected ones of the first plurality of instructions and selected ones of the second plurality of instructions to produce a special version program. The special version program is then run in the computer system. Faults which occur during the running of the special version program and associated external interrupt-blocking times are monitored.

Inventors

  • 👤 Kenneth W. Christopher, Jr.
  • 👤 Khoa D. Huynh
  • 👤 Virginia M. Roarabaugh
  • 👤 Theodore C. Waldron, III

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 17:44
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3616; G06F2201/00; G06F2201/865

Claims Analysis

Total Claims: 35
Claim 1
Independent Claim 144 words
A method in a computer system for monitoring time intervals during which external interrupts are inhibited within said computer system in a selected program being run on said computer system supporting benign faults comprising: identifying a first plurality of instructions, said first plurality of instructions for blocking external interrupts; identifying a second plurality of instructions, said second plurality of instructions for unblocking external interrupts; inserting a benign fault proximate to selected ones of said first plurality of instructions and selected ones of said second plurality of instructions to produce a special version program; running said special version program in said computer system; monitoring faults occurring during running of said special version program; and in response to said benign fault, monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions.
Claim 2
Independent Claim 144 words
A method in a computer system for monitoring time intervals during which external interrupts are inhibited within said computer system in a selected program being run on said computer system supporting benign faults comprising: identifying a first plurality of instructions, said first plurality of instructions for blocking external interrupts; identifying a second plurality of instructions, said second plurality of instructions for unblocking external interrupts; inserting a benign fault proximate to selected ones of said first plurality of instructions and selected ones of said second plurality of instructions to produce a special version program; running said special version program in said computer system; monitoring faults occurring during running of said special version program; and in response to said benign fault, monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions.
Claim 3
Dependent Claim 26 words
The method of claim 1 further comprising maintaining addresses on successive instructions for blocking external interrupts and maintaining addresses on successive instructions for unblocking external interrupts.
Claim 4
Dependent Claim 36 words
The method of claim 1, wherein said inserting step further comprises inserting said benign fault immediately before said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions.
Claim 5
Dependent Claim 15 words
The method of claim 1, wherein said unique benign fault is a benign invalid opcode.
Claim 6
Dependent Claim 102 words
The method of claim 1, wherein said step of monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions further comprises examining each of said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions; starting a timer if a particular one of said selected ones of said first plurality instructions is an explicit blocking instruction; and stopping said timer if a particular one of said selected ones of said second plurality of instructions is an explicit unblocking instruction.
Claim 7
Dependent Claim 159 words
The method of claim 5 further comprising: if said particular one of said selected ones of said first plurality of instructions can indirectly block external interrupts, determining a current state of an interrupt flag and comparing said current state of said interrupt flag with a stack image of said interrupt flag; if said particular one of said selected ones of said second plurality of instructions can indirectly block external interrupts, determining a current state of an interrupt flag and comparing said current state of said interrupt flag with a stack image of said interrupt flag; if said current state of interrupt flag and said image of said interrupt flag are different and if the computer system is not in an interrupt blocking state, starting said timer; and if said current state of said interrupt flag and said stack image of said interrupt flag are different and if said computer system is in an interrupt blocking state, stopping said timer.
Claim 8
Dependent Claim 13 words
The method of claim 6 further comprising maintaining historical data on interrupt-blocking times.
Claim 9
Dependent Claim 13 words
The method of claim 6 further comprising maintaining historical data on interrupt-unblocking times.
Claim 10
Dependent Claim 21 words
The method of claim 8 further comprising determining a maximum external interrupt-blocking time measured during execution of said special version program.
Claim 11
Dependent Claim 11 words
The method of claim 6 further comprising determining external interrupt-blocking times.
Claim 12
Dependent Claim 15 words
The method of claim 6 further comprising determining a maximum number of successive interrupt-blocking instructions.
Claim 13
Dependent Claim 14 words
Method of claim 6 further comprising determining a maximum number of successive interrupt-unblocking instructions.
Claim 14
Dependent Claim 20 words
The method of claim 6 further comprising determining locations of interrupts and saving said locations in a memory data buffer.
Claim 15
Dependent Claim 17 words
The method of claim 13 further comprising displaying said times and locations on a video display terminal.
Claim 16
Dependent Claim 23 words
The method of claim 13 further comprising determining locations of successive interrupt blocking instructions and saving said locations in a memory data buffer.
Claim 17
Dependent Claim 23 words
The method of claim 13 further comprising determining locations of successive interrupt unblocking instruction and saving said locations in a memory data buffer.
Claim 18
Dependent Claim 161 words
The method of claim 5 further comprising: if said particular one of said selected ones of said first plurality of instructions can indirectly block external interrupts, determining a current state of an interrupt flag and comparing said current state of said interrupt flag with a stack image of said interrupt flag; if said particular one of said selected ones of said second plurality of instructions can indirectly block external interrupts, determining a current state of an interrupt flag and comparing said current state of said interrupt flag with a stack image of said interrupt flag; if said current state of interrupt flag and said image of said interrupt flag are different and if the computer system is not in an interrupt blocking state, starting a second timer; and if said current state of said interrupt flag and said stack image of said interrupt flag are different and if said computer system is in an interrupt blocking state, stopping said second timer.
Claim 19
Dependent Claim 171 words
A data processing system for monitoring time intervals during which external interrupts are inhibited in a selected program running on a computer system supporting benign faults comprising: scanning means for scanning a source code of a selected program and modifying said source code, said scanning means identifying a first plurality of instructions, said first plurality of instructions for blocking external interrupts, and identifying a second plurality of instructions, said second plurality of instructions for unblocking external interrupts, and inserting a benign fault proximate to selected ones of said first plurality of instructions and selected ones of said second plurality of instructions to produce a special version program for running on said computer system; means for running said special version program; first monitoring means for monitoring faults occurring during running of said special version program; and second monitoring means for monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions during running of said special version program.
Claim 20
Dependent Claim 171 words
A data processing system for monitoring time intervals during which external interrupts are inhibited in a selected program running on a computer system supporting benign faults comprising: scanning means for scanning a source code of a selected program and modifying said source code, said scanning means identifying a first plurality of instructions, said first plurality of instructions for blocking external interrupts, and identifying a second plurality of instructions, said second plurality of instructions for unblocking external interrupts, and inserting a benign fault proximate to selected ones of said first plurality of instructions and selected ones of said second plurality of instructions to produce a special version program for running on said computer system; means for running said special version program; first monitoring means for monitoring faults occurring during running of said special version program; and second monitoring means for monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions during running of said special version program.
Claim 21
Dependent Claim 267 words
The data processing system of claim 18, wherein said means for monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions comprises: examination means for examining each of said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions; means for starting a timer if a particular one of said selected ones of said first plurality instructions is an explicit blocking instruction; mean for stopping said timer if a particular one of said selected ones of said second plurality of instructions is an explicit unblocking instruction; means for determining a current state of an interrupt flag and comparing said current state of said interrupt flag with a stack image of said interrupt flag if said particular one of said selected ones of said first plurality of instructions can indirectly block external interrupts; means for determining a current state of an interrupt flag and comparing said current state of said interrupt flag with a stack image of said interrupt flag if said particular one of said selected ones of said second plurality of instructions can indirectly block external interrupts; means for starting said timer if said current state of interrupt flag and said image of said interrupt flag are different and said computer system is not in an interrupt blocking state; and means for stopping said timer if said current state of said interrupt flag and said stack image of said interrupt flag are different and said computer system is in an interrupt blocking state.
Claim 22
Dependent Claim 188 words
A data processing system for monitoring time intervals during which external interrupts are inhibited in a selected program running on a computer system supporting benign faults comprising: scanning means for scanning a source code of a selected program and modifying said source code, said scanning means identifying a first plurality of instructions, said first plurality of instructions for blocking external interrupts, identifying a second plurality of instructions, aid second plurality of instructions for unblocking external interrupts, and inserting a benign fault proximate to a selected ones of said first plurality of instructions and a selected ones of said second plurality of instructions to produce a special version program; means for building a special version program from modified source code for running one said computer system; means for running said special version program; means for monitoring faults occurring during running of said special version program; means for monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions; and means for storing a historical record of data relating to said external interrupt-blocking times for evaluation.
Claim 23
Dependent Claim 188 words
A data processing system for monitoring time intervals during which external interrupts are inhibited in a selected program running on a computer system supporting benign faults comprising: scanning means for scanning a source code of a selected program and modifying said source code, said scanning means identifying a first plurality of instructions, said first plurality of instructions for blocking external interrupts, identifying a second plurality of instructions, aid second plurality of instructions for unblocking external interrupts, and inserting a benign fault proximate to a selected ones of said first plurality of instructions and a selected ones of said second plurality of instructions to produce a special version program; means for building a special version program from modified source code for running one said computer system; means for running said special version program; means for monitoring faults occurring during running of said special version program; means for monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions; and means for storing a historical record of data relating to said external interrupt-blocking times for evaluation.
Claim 24
Dependent Claim 121 words
The data processing system of claim 20, wherein said means for monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions further comprises: examination means for examining means of said selected ones of said first plurality of instructions and said selected ones of said second plurality of instructions; means, responsive to said examination means, for starting a timer of a particular one of said selected ones of said first plurality instructions is an explicit blocking instruction; and means, responsive to said examination means, for stopping said timer if a particular one of said selected ones of said second plurality of instructions is an explicit unblocking instruction.
Claim 25
Dependent Claim 193 words
The data processing system of claim 21, wherein said means for monitoring external interrupt-blocking times caused by said selected ones of said first plurality of instructions and said second plurality of instructions further comprising: means determining a current state of an interrupt flag and comparing said current state of said interrupt flag with a stack image of said interrupt flag if said particular one of said selected ones of said first plurality of instructions can indirectly block external interrupts; means for determining a current state of an interrupt flag and comparing said current sate of said interrupt flag with a stack image of said interrupt flag if said particular one of said selected ones of said second plurality of instructions can indirectly block external interrupts; means for starting a timer if said current state of interrupt flag and said image of said interrupt flag are different and if the computer system is not in an interrupt blocking state; and means for stopping said timer if said current state of said interrupt flag and said stack image of said interrupt flag are different and if said computer system is in an interrupt blocking state.
Claim 26
Dependent Claim 35 words
The data processing system of claim 20 wherein said means for storing said historical record of data relating to said external interrupt-blocking times includes means for storing historical data an interrupt-blocking times and interrupt-blocking means.
Claim 27
Dependent Claim 40 words
The data processing system of claim 20, wherein said means for storing historical data relating to said external interrupt-blocking times includes means for storing addresses on instructions blocking external interrupts and means for storing addresses on instructions unblocking external interrupts.
Claim 28
Dependent Claim 15 words
The data processing system of claim 20 further including means for determining external interrupt-blocking times.
Claim 29
Dependent Claim 27 words
The data processing system of claim 20 further including means for determining a maximum number of successive interrupt-blocking instructions and a maximum number of successive interrupt-blocking instruction.
Claim 30
Independent Claim 235 words
A method in a computer system for monitoring intervals during which external interrupts are inhibited within the computer system in a selected program being executed on the computer system, wherein the computer system supports benign faults, the method comprising the computer implemented steps of: scanning the selected program, wherein the selected program includes a plurality of instructions; responsive to the scanning step, identifying a first number of instructions, the first number of instructions for blocking external interrupts; responsive to the scanning step, identifying a second number of instructions, the second number of instructions for unblocking external interrupts; in response to identifying a first number of instructions, selecting a first subset of instruction from the first number of instructions; in response to identifying a second number of instructions, selecting a second subset of instructions from the second number of instructions; for each instruction in the first subset and the second subset, inserting a benign fault in a location that is proximate to the instruction, wherein a modified plurality of instructions is created; creating a special version of programs from the modified plurality of instructions; executing the special version program in the computer system; and monitoring for occurrences of faults occurring during the execution of the special version program; and in response to an occurrence of a fault caused by a benign fault, monitoring the external interrupt-blocking times caused by the first subset and the second subset.
Claim 31
Independent Claim 235 words
A method in a computer system for monitoring intervals during which external interrupts are inhibited within the computer system in a selected program being executed on the computer system, wherein the computer system supports benign faults, the method comprising the computer implemented steps of: scanning the selected program, wherein the selected program includes a plurality of instructions; responsive to the scanning step, identifying a first number of instructions, the first number of instructions for blocking external interrupts; responsive to the scanning step, identifying a second number of instructions, the second number of instructions for unblocking external interrupts; in response to identifying a first number of instructions, selecting a first subset of instruction from the first number of instructions; in response to identifying a second number of instructions, selecting a second subset of instructions from the second number of instructions; for each instruction in the first subset and the second subset, inserting a benign fault in a location that is proximate to the instruction, wherein a modified plurality of instructions is created; creating a special version of programs from the modified plurality of instructions; executing the special version program in the computer system; and monitoring for occurrences of faults occurring during the execution of the special version program; and in response to an occurrence of a fault caused by a benign fault, monitoring the external interrupt-blocking times caused by the first subset and the second subset.
Claim 32
Dependent Claim 45 words
The method of claim 27, wherein the inserting step further comprises inserting a benign fault in a location immediately before each instruction in the first subset and the second subset, wherein each benign fault is uniquely identifiable such that no two benign faults are alike.
Claim 33
Dependent Claim 239 words
A computer system for monitoring intervals during which external interrupts are inhibited within the computer system in a selected program being executed on the computer system, wherein the computer system supports benign faults, computer system comprising: scanning means for scanning the selected program, wherein the selected program includes a plurality of instructions; identification means, responsive to the scanning means, for identifying a first number of instructions, the first number of instructions for blocking external interrupts and for identifying a second number of instructions, the second number of instructions for unblocking external interrupts; selection means, responsive to the identification means, for selecting a first subset of instruction from the first number of instructions and for selecting a second subset of instructions from the second number of instructions; insertion means for inserting, for each instruction in the first subset and the second subset, a benign fault in a location that is proximate to the instruction, resulting in a set of modified instructions, including the plurality of instructions and the inserted instructions; means for creating a special version program from the set of modified instructions; means for securing the special version program in the computer system; and monitoring means for monitoring occurrences of faults occurring during the execution of the special version program and for monitoring the external interrupt-blocking times caused by the first subset and the second subset in response to an occurrence of a fault caused by a benign fault.
Claim 34
Dependent Claim 239 words
A computer system for monitoring intervals during which external interrupts are inhibited within the computer system in a selected program being executed on the computer system, wherein the computer system supports benign faults, computer system comprising: scanning means for scanning the selected program, wherein the selected program includes a plurality of instructions; identification means, responsive to the scanning means, for identifying a first number of instructions, the first number of instructions for blocking external interrupts and for identifying a second number of instructions, the second number of instructions for unblocking external interrupts; selection means, responsive to the identification means, for selecting a first subset of instruction from the first number of instructions and for selecting a second subset of instructions from the second number of instructions; insertion means for inserting, for each instruction in the first subset and the second subset, a benign fault in a location that is proximate to the instruction, resulting in a set of modified instructions, including the plurality of instructions and the inserted instructions; means for creating a special version program from the set of modified instructions; means for securing the special version program in the computer system; and monitoring means for monitoring occurrences of faults occurring during the execution of the special version program and for monitoring the external interrupt-blocking times caused by the first subset and the second subset in response to an occurrence of a fault caused by a benign fault.
Claim 35
Dependent Claim 49 words
The computer system method of claim 29, wherein the insertion means further comprises means for inserting a benign fault in a location immediately before each instruction in the first subset and the second subset, wherein each benign fault is uniquely identifiable such that not two benign faults are alike.

References Cited (Backward Citations)

US3813531A Cited
US4314329A Cited
US4601008A Cited
US4590550A Cited
US4638452A Cited
US4635193A Cited
US4791557A Cited
US4775957A Cited
US5047919A Cited
US4910663A Cited
US4974159A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-04-04 1997-10-04 1998-04-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-04-04 2001-10-04 2002-04-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-04-04 2005-10-04 2006-04-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag