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

Method and apparatus for executing load instructions speculatively

Assignee: Intel Corp
•
Filing: 1997-07-09
•
Granted: 1998-09-01
•
Expires: 2017-07-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A load is executed speculatively as a dismissible load instruction, which does not take exceptions, and a check instruction, which is in the same format as the dismissible load, that when executed determines whether an exception should be taken on the dismissible load. In this manner, a load may be executed speculatively while ensuring that an exception occurs at the same time it would have occurred had the load been executed non-speculatively.

Inventors

  • 👤 Kent G. Fielden

Bibliographic Details

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

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 102 words
A method for speculatively executing a load having an original position in a series of executable instructions and having a load address, said method comprising the steps of: converting the load instruction into a dismissible load instruction; moving the dismissible load instruction to a location prior to the original position of the load in the series of executable instructions; placing a check instruction at the original position of the load wherein the check instruction includes the load address of the load; executing the dismissible load instruction; executing the check instruction to determine whether to take an exception for the dismissible load instruction.
Claim 2
Independent Claim 102 words
A method for speculatively executing a load having an original position in a series of executable instructions and having a load address, said method comprising the steps of: converting the load instruction into a dismissible load instruction; moving the dismissible load instruction to a location prior to the original position of the load in the series of executable instructions; placing a check instruction at the original position of the load wherein the check instruction includes the load address of the load; executing the dismissible load instruction; executing the check instruction to determine whether to take an exception for the dismissible load instruction.
Claim 3
Dependent Claim 14 words
The method defined in claim 1 wherein the step of converting occurs during compiling.
Claim 4
Dependent Claim 40 words
The method defined in claim 1 further comprising the step of taking an exception on the dismissible load instruction if execution of the check instruction indicates that an exception would have occurred on the dismissible load instruction if not dismissible.
Claim 5
Dependent Claim 69 words
The method defined in claim 1 wherein the step of executing said another instruction comprises: accessing a tag array of a cache memory to locate a tag associated with a memory reference address of the dismissible load instruction; taking the exception for the dismissible load instruction if the tag is not located; and determining not to take any exception for the dismissible load instruction if the tag is located.
Claim 6
Dependent Claim 34 words
The method defined in claim 1 wherein the exception, if any, occurs at the same time execution of the load would have resulted in generation of the exception had the load been executed non-speculatively.
Claim 7
Dependent Claim 20 words
The method defined in claim 1 wherein the check instruction occurs at the position in the series of executable instructions.
Claim 8
Independent Claim 130 words
A method for executing a load located at a first position in a plurality of instructions and having a load address, said method comprising the steps of: converting the load into a dismissible load instruction with the load address at a second position in the plurality of instructions, wherein the second position is prior to the first position and a check instruction is placed at the first position, the check instruction having an instruction format that includes the load address; executing the dismissible load instruction prior to when the load would have been non-speculatively executed; executing the check instruction to determine whether an exception is to be taken for the dismissible load instruction, such that the load is executed speculatively if no exception is taken for the dismissible load instruction.
Claim 9
Independent Claim 130 words
A method for executing a load located at a first position in a plurality of instructions and having a load address, said method comprising the steps of: converting the load into a dismissible load instruction with the load address at a second position in the plurality of instructions, wherein the second position is prior to the first position and a check instruction is placed at the first position, the check instruction having an instruction format that includes the load address; executing the dismissible load instruction prior to when the load would have been non-speculatively executed; executing the check instruction to determine whether an exception is to be taken for the dismissible load instruction, such that the load is executed speculatively if no exception is taken for the dismissible load instruction.
Claim 10
Dependent Claim 40 words
The method deferred in claim 7 further comprising the step of taking the exception for the dismissible load instruction if execution of the check instruction determines that the load would have generated an exception had the load been executed non-speculatively.
Claim 11
Dependent Claim 34 words
The method defined in claim 8 wherein the exception, if any, occurs at the same time execution of the load would have resulted in generation of the exception had the load been executed non-speculatively.
Claim 12
Dependent Claim 14 words
The method defined in claim 7 wherein the step of converting occurs during compiling.
Claim 13
Dependent Claim 69 words
The method defined in claim 7 wherein the step of executing said check instruction comprises: accessing a tag array of a cache memory to locate a tag associated with a memory reference address of the dismissible load instruction; taking the exception for the dismissible load instruction if the tag is not located; and determining not to take any exception for the dismissible load instruction if the tag is located.
Claim 14
Dependent Claim 127 words
A processor that executes a load instruction, said processor comprising: a processing unit; a cache memory coupled to the processing unit, wherein the cache memory comprises a data cache random access memory (RAM) have a first number of ports to allow access to data therein; and a tag array having an extra port; wherein the processing unit executes a check instruction at a position of the load instruction, wherein the load instruction is converted into a dismissible load instruction causing an access to the tag array through the extra port without accessing the data cache RAM, wherein the processing unit executes the check instruction at the position of the load instruction to determine whether an exception is to be taken on the dismissible load instruction executed speculatively.
Claim 15
Dependent Claim 127 words
A processor that executes a load instruction, said processor comprising: a processing unit; a cache memory coupled to the processing unit, wherein the cache memory comprises a data cache random access memory (RAM) have a first number of ports to allow access to data therein; and a tag array having an extra port; wherein the processing unit executes a check instruction at a position of the load instruction, wherein the load instruction is converted into a dismissible load instruction causing an access to the tag array through the extra port without accessing the data cache RAM, wherein the processing unit executes the check instruction at the position of the load instruction to determine whether an exception is to be taken on the dismissible load instruction executed speculatively.
Claim 16
Dependent Claim 21 words
The processor defined in claim 12 wherein the processing unit executes a check instruction that causes access to the tag array.
Claim 17
Independent Claim 184 words
A method for executing a plurality of instructions, including a load located at a first position in the plurality of instructions, wherein the load has a load address, said method comprising the steps of: converting the load into a dismissible load instruction with the load address and a check instruction located at the first position and having an instruction format that includes the load address; moving the dismissible load to a position in the execution stream earlier than the first position; moving at least one other instruction dependent on data from the load to a position prior to the first position yet after the second position in the execution stream; executing the dismissible load prior to when the load would have been non-speculatively executed; executing said at least one other instruction, such that said one other instruction is executed prior to when it would have been executed, if not moved; executing the check instruction to determine whether an exception is to be taken for the dismissible load, such that the load is executed speculatively if no exception is taken for the dismissible load instruction.
Claim 18
Independent Claim 184 words
A method for executing a plurality of instructions, including a load located at a first position in the plurality of instructions, wherein the load has a load address, said method comprising the steps of: converting the load into a dismissible load instruction with the load address and a check instruction located at the first position and having an instruction format that includes the load address; moving the dismissible load to a position in the execution stream earlier than the first position; moving at least one other instruction dependent on data from the load to a position prior to the first position yet after the second position in the execution stream; executing the dismissible load prior to when the load would have been non-speculatively executed; executing said at least one other instruction, such that said one other instruction is executed prior to when it would have been executed, if not moved; executing the check instruction to determine whether an exception is to be taken for the dismissible load, such that the load is executed speculatively if no exception is taken for the dismissible load instruction.

References Cited (Backward Citations)

US5278985A Cited
US5526499A Cited
US5421022A Cited
US5420991A Cited
US5634023A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-08-31 2002-03-02 2002-09-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-08-31 2006-03-02 2006-09-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-08-31 2010-03-02 2010-09-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag