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

Software mechanism for accurately handling exceptions generated by speculatively scheduled instructions

Assignee: Hewlett Packard Development Co LP
•
Filing: 1994-07-01
•
Granted: 1997-05-27
•
Expires: 2014-07-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Methods for handling exceptions caused by speculatively scheduled instructions or predicated instructions executed within a computer program are described. The method for speculatively scheduled instructions includes checking at a commit point of a speculatively scheduled instruction, a semaphore associated with the speculatively scheduled instruction and branching to an error handling routine in the semaphore is set. A set semaphore indicates that an exception occurred when the speculatively scheduled instruction was executed. For a predicated instruction the method includes checking a predicate of a eliminated branch and a semaphore associated with the speculative instruction at a commit point of the speculative instruction and branching to an error handing routine if the semaphore indicates that an exception occurred when the speculative instruction was executed, and the predicate is true, which indicates that the speculative instruction was properly executed.

Inventors

  • 👤 Michael C. Adler
  • 👤 Steven O. Hobbs
  • 👤 Paul G. Lowney

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 17:46
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3861; G06F9/3865; G06F9/30003; G06F9/30072; G06F9/3836; G06F9/3842

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 65 words
A method for handling an exception caused by a speculatively scheduled instruction which is executed within a computer program, said method comprising the steps of: checking at a commit point of said speculatively scheduled instruction, a semaphore associated with said speculatively scheduled instruction; and branching to an error handling routine if the semaphore indicates that an exception occurred when said speculatively scheduled instruction was executed.
Claim 2
Independent Claim 65 words
A method for handling an exception caused by a speculatively scheduled instruction which is executed within a computer program, said method comprising the steps of: checking at a commit point of said speculatively scheduled instruction, a semaphore associated with said speculatively scheduled instruction; and branching to an error handling routine if the semaphore indicates that an exception occurred when said speculatively scheduled instruction was executed.
Claim 3
Dependent Claim 25 words
The method of claim 1 including the step of: continuing execution of the computer program if said semaphore indicates that an exception did not occur.
Claim 4
Dependent Claim 31 words
The method of claim 1 wherein prior to said checking step, the method includes the step of: executing said speculatively scheduled instruction in a program; and detecting whether an exception occurs.
Claim 5
Dependent Claim 25 words
The method of claim 3 further including the step of: noting the occurrence of the exception caused by the execution of said speculatively scheduled instruction.
Claim 6
Dependent Claim 47 words
The method of claim 4 wherein the step of noting the occurrence of the exception includes the steps of: determining a program counter value of said speculatively scheduled instruction; mapping said program counter value to a semaphore; and setting said semaphore associated with said speculatively scheduled instruction.
Claim 7
Dependent Claim 27 words
The method of claim 5 wherein said step of mapping further includes: locating a descriptor corresponding to said program counter value wherein said descriptor identifies said semaphore.
Claim 8
Dependent Claim 19 words
The method of claim 5 wherein said step of setting further includes: modifying a bit in a general register.
Claim 9
Dependent Claim 29 words
The method of claim 1 further including the step of: executing an additional non-speculative instruction; and detecting whether an exception occurs in response to executing said additional non-speculative instruction.
Claim 10
Dependent Claim 25 words
The method of claim 8 further including the step of: noting the occurrence of the exception caused by the execution of said additional non-speculative instruction.
Claim 11
Dependent Claim 52 words
The method of claim 9 wherein the step of noting the occurrence of the exception includes the steps of: determining a program counter value of said additional non-speculative instruction; mapping said program counter value to a semaphore; and raising the exception immediately if said program counter is not associated with a semaphore.
Claim 12
Dependent Claim 46 words
The method of claim 10 wherein said step of mapping further includes: searching a program counter array table to locate descriptor corresponding to said program counter value wherein said program counter array table or said descriptor does not associate a semaphore with said program counter value.
Claim 13
Dependent Claim 57 words
A computer language translator which speculatively schedules instructions comprising: means for translating a program into a target language; means for reordering an instruction within said target language program from the order specified in the program said reordered instruction being referred to as a speculatively scheduled instruction; and means for associating a semaphore with said speculatively scheduled instruction.
Claim 14
Dependent Claim 57 words
A computer language translator which speculatively schedules instructions comprising: means for translating a program into a target language; means for reordering an instruction within said target language program from the order specified in the program said reordered instruction being referred to as a speculatively scheduled instruction; and means for associating a semaphore with said speculatively scheduled instruction.
Claim 15
Dependent Claim 31 words
The translator of claim 12 further including: means for including in an executable image of said program, instructions to test said semaphore after a commit point of said speculatively scheduled instruction.
Claim 16
Dependent Claim 42 words
The translator of claim 13 wherein said translator further includes: means for including in an executable image of said program instructions to report an exception if said test of said semaphore indicates an exception occurred when said speculatively scheduled instruction was executed.
Claim 17
Dependent Claim 29 words
The translator of claim 12 further including: means for including in an executable image of said program instructions to initialize said semaphore prior to executing said speculatively scheduled instruction.
Claim 18
Dependent Claim 22 words
The translator of claim 12 wherein said semaphore is represented as a pattern of at least one bit in a general register.
Claim 19
Dependent Claim 34 words
The translator of claim 12 wherein said means for associating further comprises: means for including in an executable image of said program a data structure which maps said speculatively scheduled instruction to said semaphore.
Claim 20
Dependent Claim 21 words
The translator of claim 17 wherein said data structure maps a program counter of said speculatively scheduled instruction to said semaphore.
Claim 21
Dependent Claim 57 words
The translator of claim 12 wherein said means for associating includes: a program counter array table; a descriptor; and wherein said program counter table has a pointer field which is used to locate said descriptor and said descriptor has a number representing a bit within a general register of a processor on which translated code is run.
Claim 22
Dependent Claim 27 words
The translator of claim 19 wherein said program counter array table includes two fields: a program counter field; and said pointer field which points to said descriptor.
Claim 23
Dependent Claim 43 words
The translator of claim 20 wherein said descriptor includes: a number representing a displacement of said speculative instruction from said program counter; and said number representing a bit within said general register wherein said bit is said semaphore associated with said speculative instruction.

References Cited (Backward Citations)

US5421022A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-05-26 2000-11-25 2001-05-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-05-26 2004-11-25 2005-05-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-05-26 2008-11-25 2009-05-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag