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

Method and system for supporting speculative execution using a speculative look-aside table

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1996-05-30
•
Granted: 1998-05-05
•
Expires: 2016-05-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract To support speculative execution in a processor, a speculative look aside table stores information about deferred exceptions. Labels attached to predicates in the predicate register file of the processor serve as indices to a speculative look aside table. When an exception is generated for a speculative operation, the speculative look aside table is updated. Deferred exceptions are detected and handled when the processor reads the corresponding entry in the speculative look aside table during an explicit or implicit check operation.

Inventors

  • 👤 Alan H. Karp
  • 👤 Rajendra Kumar

Bibliographic Details

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

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 136 words
In a processor, logic for supporting speculative execution comprising: a speculative look aside table including a plurality of entries for storing data indicating whether an exception is being deferred; a predicate register file including a plurality of entries operable to store a predicate for controlling execution of one or more operations and a label representing an index into the speculative look aside table; a predicate decoder operable to read a predicate and to locate a corresponding entry in the predicate register file; control logic operable to read a predicate value and a label from the corresponding entry in the predicate register file; and a label decoder communicative with the control logic, the label decoder operable to receive the label from the control logic and operable to locate a corresponding entry in the speculative look aside table.
Claim 2
Dependent Claim 136 words
In a processor, logic for supporting speculative execution comprising: a speculative look aside table including a plurality of entries for storing data indicating whether an exception is being deferred; a predicate register file including a plurality of entries operable to store a predicate for controlling execution of one or more operations and a label representing an index into the speculative look aside table; a predicate decoder operable to read a predicate and to locate a corresponding entry in the predicate register file; control logic operable to read a predicate value and a label from the corresponding entry in the predicate register file; and a label decoder communicative with the control logic, the label decoder operable to receive the label from the control logic and operable to locate a corresponding entry in the speculative look aside table.
Claim 3
Dependent Claim 51 words
The logic of claim 1 wherein the plurality of entries in the predicate register file include a first bit field for storing a 1 bit predicate, and an n-bit label for storing the index into the speculative look aside table, where n is an integer greater than or equal to two.
Claim 4
Dependent Claim 88 words
The logic of claim 1 wherein the processor includes a decode stage in which an operation is decoded, a read stage in which one or more operands of the operation are read, an execute stage in which the operation is executed, and a write stage in which a result of the operation is written to a target register; and wherein the predicate decoder is operable to control reading of the corresponding entry in the predicate register file at the read stage to determine whether the operation is speculative.
Claim 5
Dependent Claim 132 words
The logic of claim 1 wherein the processor includes a decode stage in which an operation is decoded, a read stage in which one or more operands of the operation are read, an execute stage in which the operation is executed, and a write stage in which a result of the operation is written to a target register; wherein the control logic is operable to issue the label from the corresponding entry in the predicate register file to the label decoder during the execute stage; and wherein the logic includes halt logic operable to read the corresponding entry in the speculative look aside table during the execute stage, and operable to halt execution of the operation when a poison bit is set in the corresponding entry in the speculative look aside table.
Claim 6
Dependent Claim 45 words
The logic of claim 1 further including check logic communicative with the speculative look aside table, the check logic operable to read the corresponding entry in the speculative look aside table and operable to initiate recovery from an exception when a poison bit is set.
Claim 7
Dependent Claim 32 words
The logic of claim 1 further including a second label decoder, the second label decoder operable to control writing a poison bit to the corresponding entry in the speculative look aside table.
Claim 8
Dependent Claim 86 words
The logic of claim 6 wherein the processor includes a decode stage in which an operation is decoded, a read stage in which one or more operands of the operation are read, an execute stage in which the operation is executed, and a write stage in which a result of the operation is written to a target register; and wherein the second label decoder is operable to control writing the poison bit to the corresponding entry in the speculative look aside table during the write stage.
Claim 9
Dependent Claim 36 words
The logic of claim 1 further including a second predicate decoder operable to control writing of results of an operation on a predicate, including a label, to one or more entries in the predicate register file.
Claim 10
Dependent Claim 80 words
The logic of claim 8 wherein the processor includes a decode stage in which an operation is decoded, a read stage in which one or more operands of the operation are read, an execute stage in which the operation is executed, and a write stage in which a result of the operation is written to a target register; and wherein the second predicate decoder controls the writing of the results of the operation on the predicate during the write stage.
Claim 11
Dependent Claim 32 words
The logic of claim 1 wherein the processor includes a functional unit, and the functional unit has a label operator to attach a label to a predicate in the predicate register file.
Claim 12
Dependent Claim 39 words
The logic of claim 1 wherein the processor includes a functional unit, and the functional unit has check logic to determine whether an entry in the speculative look aside table corresponding to a specified label includes a poison bit.
Claim 13
Dependent Claim 31 words
The logic of claim 1 wherein the plurality of entries in the speculative look aside table include a field for storing a poison bit indicating whether an exception is being deferred.
Claim 14
Dependent Claim 34 words
The logic of claim 1 wherein the plurality of entries in the speculative look aside table include a field for storing one or more status bits used to control processing of a deferred exception.
Claim 15
Dependent Claim 25 words
The logic of claim 13 wherein the status bits include status bits to control the processing of a deferred exception for a floating point operation.
Claim 16
Dependent Claim 28 words
The logic of claim 13 wherein the plurality of entries in the speculative look aside table include an address field for storing a memory location of recovery code.
Claim 17
Independent Claim 80 words
A method for supporting speculative execution using a speculative look aside table, the method comprising: decoding a predicate for an operation; reading the predicate and associated label; controlling execution of the operation based on a value of the predicate; decoding the label; reading an entry in the speculative look aside table corresponding to the label to determine whether an exception has been deferred; and based on the entry in the speculative look aside table, controlling further execution of the operation.
Claim 18
Independent Claim 80 words
A method for supporting speculative execution using a speculative look aside table, the method comprising: decoding a predicate for an operation; reading the predicate and associated label; controlling execution of the operation based on a value of the predicate; decoding the label; reading an entry in the speculative look aside table corresponding to the label to determine whether an exception has been deferred; and based on the entry in the speculative look aside table, controlling further execution of the operation.
Claim 19
Dependent Claim 45 words
The method of claim 16 further including: reading the label to determine whether the operation is a speculative operation; setting a poison bit in the entry of the speculative look aside table corresponding to the label when the operation is speculative and generates an exception.
Claim 20
Dependent Claim 47 words
The method of claim 16 further including: decoding the operation to determine whether the operation has a predicate target; computing results of the operation; and writing the results of the operation including the label to an entry in a predicate register file corresponding to the predicate target.
Claim 21
Dependent Claim 60 words
The method of claim 16 further including: in an explicit check operation, determining whether the entry corresponding to a label specified in the explicit check operation is storing a flag indicating that an exception has been deferred; and when the flag is detected, branching to re-execution code including operations qualified with predicates having the label specified in the check operation.
Claim 22
Dependent Claim 262 words
In a processor having a decode stage in which an operation is decoded, a read stage in which one or more operands of the operation are read, an execute stage in which the operation is executed, and a write stage in which a result of the operation is written to a target register, logic for supporting speculative execution comprising: a speculative look aside table including a plurality of entries for storing a poison bit indicating whether an exception is being deferred; a predicate register file including a plurality of entries operable to store a predicate value for controlling execution of one or more operations and a label representing an index into the speculative look aside table; a first predicate decoder operable to read a predicate and to locate a corresponding entry in the predicate file during the read stage of the processor; a second predicate decoder operable to control writing of results of an operation on a predicate, including a label, to one or more entries in the predicate file; control logic operable to read a predicate value and a label from the corresponding entry in the predicate file and to issue the label to a first label decoder; the first label decoder communicative with the control logic to receive the label from the control logic, and operable to read a corresponding entry in the speculative look aside table; and a second label decoder communicative with the speculative look aside table, the second label decoder operable to control writing a poison bit to the corresponding entry in the speculative look aside table.
Claim 23
Dependent Claim 262 words
In a processor having a decode stage in which an operation is decoded, a read stage in which one or more operands of the operation are read, an execute stage in which the operation is executed, and a write stage in which a result of the operation is written to a target register, logic for supporting speculative execution comprising: a speculative look aside table including a plurality of entries for storing a poison bit indicating whether an exception is being deferred; a predicate register file including a plurality of entries operable to store a predicate value for controlling execution of one or more operations and a label representing an index into the speculative look aside table; a first predicate decoder operable to read a predicate and to locate a corresponding entry in the predicate file during the read stage of the processor; a second predicate decoder operable to control writing of results of an operation on a predicate, including a label, to one or more entries in the predicate file; control logic operable to read a predicate value and a label from the corresponding entry in the predicate file and to issue the label to a first label decoder; the first label decoder communicative with the control logic to receive the label from the control logic, and operable to read a corresponding entry in the speculative look aside table; and a second label decoder communicative with the speculative look aside table, the second label decoder operable to control writing a poison bit to the corresponding entry in the speculative look aside table.

References Cited (Backward Citations)

US5276819A Cited
US5659722A 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-05-04 2001-11-03 2002-05-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-04 2005-11-03 2006-05-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-04 2009-11-03 2010-05-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag