IP Library Granted Patent US 8,327,188
Granted Patent B2
US 8,327,188 · App. 12/618,282 · Granted Dec 4, 2012

Hardware transactional memory acceleration through multiple failure recovery

Assignee: Oracle America, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,327,188
App. No.
12/618,282
Granted
Dec 4, 2012
Kind
B2
Abstract

The described embodiments provide a processor (e.g., processor 102 ) for executing instructions. During execution, the processor starts by transactionally executing instructions from a protected section of program code. The processor then encounters a transactional failure condition while transactionally executing the instructions from the protected section of program code. In response to encountering the transactional failure condition, the processor enters a transactional-scout mode and speculatively executes subsequent instructions in the transactional-scout mode.

Claims (42)

1. A method for executing instructions in a transactional-scout mode in a processor, comprising:

transactionally executing instructions in the processor from a protected section of program code;

entering the transactional-scout mode and speculatively executing subsequent instructions in the transactional-scout mode when the transactional execution of the protected section of program causes a transactional failure condition;

executing subsequent instructions in the transactional-scout mode until the transactional failure condition is resolved or until the transactional failure condition and one or more additional transactional failure conditions are resolved; and

responsive to the transactional failure condition being resolved, returning to a normal-execution mode to execute instructions from a fail PC,

wherein a COMMIT instruction indicates an end of the protected section of program code, and wherein executing subsequent instructions in the transactional-scout mode comprises:

executing the instructions in the protected section including the COMMIT instruction in the transactional-scout mode, but preventing any transactional results from being committed to an architectural state of the processor in response to executing the COMMIT instruction; and

continuing to execute instructions following the protected section in the transactional-scout mode until the transactional failure condition is resolved.

2. The method of claim 1 , wherein the method further comprises:

before encountering the end of the protected section of program code and responsive to determining that the transactional failure condition has been resolved, leaving the transactional-scout mode and returning to the normal-execution mode to execute instructions from the fail PC.

3. The method of claim 1 , wherein entering the transactional-scout mode comprises setting a transactional-failure indicator, wherein executing the COMMIT instruction while executing instructions in a transactional-execution mode or the transactional-scout mode involves:

checking a state of the transactional-failure indicator; and

when the transactional-failure indicator is set, executing the COMMIT instruction without committing any transactional results to the architectural state of the processor.

4. The method of claim 1 , wherein executing program code in the transactional-scout mode involves executing instructions to generate prefetches for cache lines and to update processor state, but not committing transactional-scout mode results to an architectural state of the processor.

5. An apparatus for executing instructions in a transactional-scout mode, comprising:

a processor, wherein the processor is configured to:

transactionally execute instructions from a protected section of program code;

responsive to encountering a transactional failure condition, enter the transactional-scout mode and speculatively execute subsequent instructions in the transactional-scout mode;

execute subsequent instructions in the transactional-scout mode until the transactional failure condition is resolved or until the transactional failure condition and one or more additional transactional failure conditions are resolved; and

responsive to the transactional failure condition being resolved, return to a normal-execution mode to execute instructions from a fail PC,

wherein a COMMIT instruction indicates an end of the protected section of program code, and wherein when executing subsequent instructions in the transactional-scout mode until the transactional failure condition is resolved, the processor is configured to:

execute the instructions in the protected section including the COMMIT instruction in the transactional-scout mode, but prevent any transactional results from being committed to an architectural state of the processor in response to executing the COMMIT instruction; and

continue to execute instructions following the protected section in the transactional-scout mode until the transactional failure condition is resolved.

6. The apparatus of claim 5 , wherein before encountering an end of the protected section of program code and responsive to determining that the transactional failure condition has been resolved, the processor is configured to leave the transactional-scout mode and return to the normal-execution mode to execute instructions from the fail PC.

7. The apparatus of claim 5 , wherein when entering the transactional-scout mode the processor is configured to set a transactional-failure indicator, wherein when executing a COMMIT instruction while executing instructions in a transactional-execution mode or the transactional-scout mode, the processor is further configured to:

check a state of the transactional-failure indicator; and

when the transactional-failure indicator is set, execute the COMMIT instruction without committing any transactional results to the architectural state of the processor.

8. The apparatus of claim 5 , wherein executing program code in the transactional-scout mode involves executing instructions to generate prefetches for cache lines and to update processor state, but not committing transactional-scout mode results to an architectural state of the processor.

9. A computer system for executing instructions in a transactional-scout mode, comprising:

a processor, wherein the processor is configured to:

transactionally execute instructions from a protected section of program code;

responsive to encountering a transactional failure condition, enter the transactional-scout mode and speculatively execute subsequent instructions in the transactional-scout mode;

execute subsequent instructions in the transactional-scout mode until the transactional failure condition is resolved or until the transactional failure condition and one or more additional transactional failure conditions are resolved; and

responsive to the transactional failure condition being resolved, return to a normal-execution mode to execute instructions from a fail PC; and

a memory coupled to the processor, wherein the memory stores instructions and data for the processor,

wherein a COMMIT instruction indicates an end of the protected section of program code, and wherein when executing subsequent instructions in the transactional-scout mode until the transactional failure condition is resolved, the processor is configured to:

execute the instructions in the protected section including the COMMIT instruction in the transactional-scout mode, but prevent any transactional results from being committed to an architectural state of the processor in response to executing the COMMIT instruction; and

continue to execute instructions following the protected section in the transactional-scout mode until the transactional failure condition is resolved.

10. The computer system of claim 9 , wherein before encountering an end of the protected section of program code and responsive to determining that the transactional failure condition has been resolved, the processor is configured to leave the transactional-scout mode and return to the normal-execution mode to execute instructions from the fail PC.

11. The computer system of claim 9 , wherein when entering the transactional-scout mode the processor is configured to set a transactional-failure indicator, wherein when executing a COMMIT instruction while executing instructions in a transactional-execution mode or the transactional-scout mode, the processor is further configured to:

check a state of the transactional-failure indicator; and

when the transactional-failure indicator is set, execute the COMMIT instruction without committing any transactional results to the architectural state of the processor.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2009
From: KARLSSON, MARTIN R.; YIP, SHERMAN H.; CHAUDHRY, SHAILENDER
To: SUN MICROSYSTEMS, INC.
Reel/Frame 023630/0778 →
Continuity (1)
Related Publication 20110119528A1 · May 19, 2011