Patent US5404499A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5404499A Expired / Lapsed US ⏱️ 0.0 years remaining

Semi-automatic program execution error detection

Assignee: Logical Services Inc
•
Filing: 1992-08-24
•
Granted: 1995-04-04
•
Expires: 2012-08-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for generating an early indication of a fault in the operation of a computer program is described. In one embodiment, each location in a computer's memory space is assigned a code indicating the conditions under which the programmer expects the memory location to be accessed during the program's execution. When a memory location is accessed, the control/status signals generated by the CPU are compared to the assigned code. If the type of access, as indicated by the control/status signal, does not conform to the expected type of access, as indicated by the assigned code, an output is generated to indicate that a fault has occurred in the operation of the program. In another embodiment, a truncated numerical difference between the present memory address and the immediately previous memory address is generated. This difference is used along with the assigned code and the control/status signal to determine whether access to the present memory address is unexpected. Once again, if the access is unexpected, an output is generated to so indicate. The system allows the detection of a fault in program operation before an incorrect output is generated. The system is useful in applications such as fault detection during the development of a computer program or computer based controller, or monitoring the operation of a critical computer based controller.

Inventors

  • 👤 John L. Nichols

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 18:19
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/366

Claims Analysis

Total Claims: 29
Claim 1
Independent Claim 188 words
A system for generating an early indication of a fault in the operation of a computer program due, for example, to a coding error, or a fault in the operation of a computer based dedicated controller due to an error in its construction, design, programming, or due, for example, to a failed component, before the fault results in the generation of an incorrect output, said system comprising: means for monitoring output signals of a CPU of a data processing system under test; means for independently assigning to each and every location in a computer's memory space one code selected from a set of three or more codes, the code defining at least one condition which, if true when the memory location is accessed during the program's execution, is an indication of a fault in the operation of the program or controller; means for determining, on every access to a memory location during the program's execution, if the condition, defined by the code assigned to the memory location, is true when the memory location is being accessed; and means for generating an output indicating whether the condition is true.
Claim 2
Independent Claim 188 words
A system for generating an early indication of a fault in the operation of a computer program due, for example, to a coding error, or a fault in the operation of a computer based dedicated controller due to an error in its construction, design, programming, or due, for example, to a failed component, before the fault results in the generation of an incorrect output, said system comprising: means for monitoring output signals of a CPU of a data processing system under test; means for independently assigning to each and every location in a computer's memory space one code selected from a set of three or more codes, the code defining at least one condition which, if true when the memory location is accessed during the program's execution, is an indication of a fault in the operation of the program or controller; means for determining, on every access to a memory location during the program's execution, if the condition, defined by the code assigned to the memory location, is true when the memory location is being accessed; and means for generating an output indicating whether the condition is true.
Claim 3
Dependent Claim 31 words
A system according to claim 1, wherein the means for assigning comprises a memory containing a location for each location in the computer's memory space, addressed by the CPU's Address bus.
Claim 4
Dependent Claim 57 words
A system according to claim 1, wherein the means for determining comprises a combinational logic circuit that, on every access to a memory location during the program's execution, generates an output indicating whether the condition is true, as a function of: the code assigned to the memory location accessed; and the Control/Status signals generated by the CPU.
Claim 5
Dependent Claim 71 words
A system according to claim 1, wherein said means for determining comprises a state machine logic circuit that, on every access to a memory location during the program's execution, selects a next state of the state machine, and generates an output indicating whether the condition is true, as a function of: the state machine's present state; the code assigned to the memory location accessed; and the Control/Status signals from the CPU.
Claim 6
Dependent Claim 56 words
A system according to claim 1, further comprising means for changing said code assigned to a memory location when, as a result of the program's execution, the condition changes which, if true when said memory location is accessed during the program's execution, is an indication of a fault in the operation of the program or controller.
Claim 7
Dependent Claim 69 words
A system according to claim 5, wherein said means for determining and said means for changing are a combinational logic circuit that, on every access to a memory location, determines a fault output signal as a function of said code and said Control/Status signals, and, if a code change is indicated by said fault output signal, selects a new code and assigns the new code to said memory location.
Claim 8
Dependent Claim 82 words
A system according to claim 5, wherein said means for determining and said means for changing are a state machine logic circuit that, on every access to a memory location, determines a fault output signal and selects the state machine's next state as a function of said state machine's present state, said code and said Control/Status signals, and, if a code change is indicated by said fault output signal, selects a new code and assigns the new code to said memory location.
Claim 9
Independent Claim 196 words
A system for generating an early indication of a fault in the operation of a computer program due, for example, to a coding error, or a fault in the operation of a computer based dedicated controller due, for example, to an error in its construction, design, programming, or due to a failed component, before the fault results in the generation of an incorrect output from the computer, said system comprising: (a) means for assigning, to each location in the computer's memory space, a code indicating when the memory location is expected to be accessed during the program's execution; (b) means for generating a truncated numerical difference between the present memory address and the previous memory address; (c) means for determining, when a memory location is accessed during the program's execution, if the access to the memory location was expected, as a function of: the code assigned to the memory location accessed; the Control/Status signals generated by the CPU when the memory location is accessed; and the truncated numerical difference between the present memory address and the previous memory address; and (d) means for generating an output indicating that the access to the memory location is unexpected.
Claim 10
Independent Claim 196 words
A system for generating an early indication of a fault in the operation of a computer program due, for example, to a coding error, or a fault in the operation of a computer based dedicated controller due, for example, to an error in its construction, design, programming, or due to a failed component, before the fault results in the generation of an incorrect output from the computer, said system comprising: (a) means for assigning, to each location in the computer's memory space, a code indicating when the memory location is expected to be accessed during the program's execution; (b) means for generating a truncated numerical difference between the present memory address and the previous memory address; (c) means for determining, when a memory location is accessed during the program's execution, if the access to the memory location was expected, as a function of: the code assigned to the memory location accessed; the Control/Status signals generated by the CPU when the memory location is accessed; and the truncated numerical difference between the present memory address and the previous memory address; and (d) means for generating an output indicating that the access to the memory location is unexpected.
Claim 11
Dependent Claim 31 words
A system according to claim 8, wherein said means for assigning is a memory containing a location for each location in the computer's memory space addressed by the CPU's Address bus.
Claim 12
Dependent Claim 46 words
A system according to claim 8, wherein the truncated numerical difference between the present memory address and the previous memory address generated by the means for generating is a single logic signal indicating if the present memory address is one greater than the previous memory address.
Claim 13
Dependent Claim 73 words
A system according to claim 8, wherein said means for determining is provided by a combinational logic circuit that generates an output indicating if the access to the memory location is unexpected, as a function of: the present code assigned to the memory location being accessed by the CPU; the present Control/Status signals generated by the CPU; and the present truncated numerical difference between the present memory address and the previous memory address.
Claim 14
Dependent Claim 79 words
A system according to claim 8, wherein said means for determining is provided by a sequential logic circuit that generates an output indicating if the access to the memory location is unexpected, as a function of: the present and past codes assigned to the memory locations being accessed by the CPU; the present and past Control/Status signals generated by the CPU; and the present and past truncated numerical differences between the present memory address and the previous memory address.
Claim 15
Dependent Claim 39 words
A system according to claim 8, further comprising means for changing said code assigned to a memory location when, as a result of the program's execution, the expectation changes regarding when said memory location is expected to be accessed.
Claim 16
Dependent Claim 64 words
A system according to claim 13, wherein said means for determining and said means for changing are a combinational logic circuit that, on every access to a memory location, determines a fault output signal as a function of said code and said Control/Status signals, and, if a code change is indicated, selects a new code and assigns the new code to said memory location.
Claim 17
Dependent Claim 77 words
A system according to claim 13, wherein said means for determining and said means for changing are a state machine logic circuit that, on every access to a memory location, determines a fault output signal and selects the state machine's next state as a function of said state machine's present state, said code and said Control/Status signals, and, if a code change is indicated, selects a new code and assigns the new code to said memory location.
Claim 18
Independent Claim 256 words
A system for generating an early indication of a fault in the operation of a computer program due, for, example, to a coding error, or a fault in the operation of a computer based dedicated controller due, for example, to an error in its construction, design, programming, or due to a failed component or noise, before the fault results in the generation of an incorrect output from the computer, said system comprising: (a) means for assigning, to each location in the computer's memory space, a code indicating when the memory location is expected to be accessed during the program's execution; (b) first means for generating a truncated numerical difference between a present memory address and a previous memory address; (c) second means for generating a truncated numerical difference between the present memory address and the previous memory address used to access a memory location assigned an instruction Op-Code or Operand; (d) means for determining, when a memory location is accessed during the program's execution, if the access to the memory location was expected, as a function of: the code assigned to the memory location accessed; the Control/Status signals generated by the CPU when the memory location is accessed; the truncated numerical difference between the present memory address and the previous memory address; and the truncated numerical difference between the present memory address and the previous memory address used to access a memory location assigned an instruction Op-Code or Operand; and (e) means for generating an output indicating if the access to the memory location is unexpected.
Claim 19
Independent Claim 256 words
A system for generating an early indication of a fault in the operation of a computer program due, for, example, to a coding error, or a fault in the operation of a computer based dedicated controller due, for example, to an error in its construction, design, programming, or due to a failed component or noise, before the fault results in the generation of an incorrect output from the computer, said system comprising: (a) means for assigning, to each location in the computer's memory space, a code indicating when the memory location is expected to be accessed during the program's execution; (b) first means for generating a truncated numerical difference between a present memory address and a previous memory address; (c) second means for generating a truncated numerical difference between the present memory address and the previous memory address used to access a memory location assigned an instruction Op-Code or Operand; (d) means for determining, when a memory location is accessed during the program's execution, if the access to the memory location was expected, as a function of: the code assigned to the memory location accessed; the Control/Status signals generated by the CPU when the memory location is accessed; the truncated numerical difference between the present memory address and the previous memory address; and the truncated numerical difference between the present memory address and the previous memory address used to access a memory location assigned an instruction Op-Code or Operand; and (e) means for generating an output indicating if the access to the memory location is unexpected.
Claim 20
Dependent Claim 31 words
A system according to claim 16, wherein the means for assigning comprises a memory containing a location for each location in the computer's memory space addressed by the CPU's Address bus.
Claim 21
Dependent Claim 47 words
A system according to claim 16 wherein the truncated numerical difference between the present memory address, and the previous memory address generated by the first means for generating is a single logic signal indicating if the present memory address is one greater than the previous memory address.
Claim 22
Dependent Claim 63 words
A system according to claim 16 wherein the truncated numerical difference between the present memory address and the previous memory address used to access an instruction Op-Code or operand generated by the second means for generating is a single logic signal indicating if the present memory address is one greater than the previous memory address used to access an instruction Op-Code or Operand.
Claim 23
Dependent Claim 100 words
A system according to claim 16, wherein the means for determining is provided by a combinational logic circuit that generates an output indicating if the access to the memory location is expected, as a function of only: the present code assigned to the memory location accessed by the CPU; the present Control/Status signals generated by the CPU; the present truncated numerical difference between the present memory address and the previous memory address; and the present truncated numerical difference between the present memory address and the previous memory address used to access a memory location assigned an instruction Op-Code or Operand.
Claim 24
Dependent Claim 98 words
A system according to claim 16, wherein the means for determining is provided by a sequential logic circuit that generates an output indicating if the access to the memory location is expected, as a function of: the present and past codes; the present and past Control/Status signals generated by the CPU; the present and past truncated numerical difference between the present memory address and the previous memory address; and the present and past truncated numerical difference between the present memory address and the previous memory address used to access a memory location assigned an instruction Op-Code or Operand.
Claim 25
Independent Claim 175 words
A method of generating an early indication of a fault in the operation of a computer program due, for example, to a coding error, or a fault in the operation of a computer based dedicated controller due, for example, to an error in its construction, design, programming, or due to a failed component, before the fault results in the generation of an incorrect output from the computer, said method comprising the steps of: assigning, to each location in the computer's memory space, a code selected from a set of three or more codes, the code defining at least one condition which, if true when the memory location is accessed during the program's execution, is an indication of a fault in the operation of the program or controller; determining, on every access to a memory location during the program's execution, if the condition specified by the code assigned to the memory location accessed is true; and generating an output indicating that the memory location is accessed incorrectly if the condition specified by the code is true.
Claim 26
Independent Claim 175 words
A method of generating an early indication of a fault in the operation of a computer program due, for example, to a coding error, or a fault in the operation of a computer based dedicated controller due, for example, to an error in its construction, design, programming, or due to a failed component, before the fault results in the generation of an incorrect output from the computer, said method comprising the steps of: assigning, to each location in the computer's memory space, a code selected from a set of three or more codes, the code defining at least one condition which, if true when the memory location is accessed during the program's execution, is an indication of a fault in the operation of the program or controller; determining, on every access to a memory location during the program's execution, if the condition specified by the code assigned to the memory location accessed is true; and generating an output indicating that the memory location is accessed incorrectly if the condition specified by the code is true.
Claim 27
Dependent Claim 54 words
A method according to claim 22, further comprising changing said code assigned to a memory location when, as a result of the program's execution, the condition changes which, if true when said memory location is accessed during the program's execution, is an indication of a fault in the operation of the program or controller.
Claim 28
Dependent Claim 23 words
A method according to claim 23, wherein said step of determining and said step of changing are performed by a combinational logic circuit.
Claim 29
Dependent Claim 24 words
A method according to claim 23, wherein said step of determining and said step of changing are performed by a state machine logic circuit.

References Cited (Backward Citations)

US3562717A Cited
JPS59148958A Cited
US4890223A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag