×

Memory efficient program pre-execution verifier and method

  • US 7,120,572 B1
  • Filed: 03/01/2000
  • Issued: 10/10/2006
  • Est. Priority Date: 01/06/2000
  • Status: Expired due to Term
First Claim
Patent Images

1. A method of operating a computer system, comprising:

  • (A) storing a program in a memory, the program including a sequence of instructions, where each of a multiplicity of the instructions represents an operation on data of a specific data type;

    said each instruction having associated data type restrictions on the data type of data to be manipulated by said each instruction;

    (B) processing the program to determine whether execution of any instruction in the program would violate the data type restrictions for that instruction and generating a first fault signal when execution of any instruction in the program would violate the data type restrictions for that instruction;

    the program processing including;

    (B1) determining a subset of the instructions, comprising target instructions, that are successor instructions of conditional jump, unconditional jump, branch and flow control instructions;

    (B2) generating, for at least one target instruction in the program, a data type snapshot, the data type snapshot including data type information for at least one datum stored in an operand stack or a local variable prior to execution of the at least one target instruction;

    (B3) determining for an identified target instruction whether a set of selection criteria are met, the set of selection criteria including whether the identified target instruction is a successor to at least two distinct predecessor instructions of the program and whether the data types associated with data stored in the operand stack and local variables by the program immediately after execution of all the predecessor instructions are identical; and

    (B4) when the determination for the identified target instruction is negative, storing the snapshot for the identified target instruction in an array of supplemental information, and when the determination is positive, determining whether the identified target instruction is the target of any predecessor instruction positioned later in the program than the identified target instruction, and when this determination is positive, storing information identifying the identified target instruction in the array of supplemental information; and

    (C) when the first fault signal is not generated, storing in the memory a modified version of the program having the array of supplemental information that includes the data type snapshot generated for at least one of the target instructions of the program;

    wherein the supplemental information includes data type snapshots only for instructions determined to be target instructions.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×