IP Library Granted Patent US 7,865,701
Granted Patent B1
US 7,865,701 · App. 11/227,422 · Granted Jan 4, 2011

Concurrent atomic execution

Assignee: Azul Systems, 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 7,865,701
App. No.
11/227,422
Granted
Jan 4, 2011
Kind
B1
Abstract

Executing a set one or more instructions atomically is disclosed. Executing includes saving a set of one or more register states in a software data structure, speculatively executing the set of instructions, and restoring the state of one or more registers when an abort indication is received.

Claims (30)

1. A method for attempting to execute a set of one or more instructions speculatively, comprising:

executing a speculative execution command to directly cause the set of one or more instructions to be executed speculatively, wherein the speculative execution command does not read any value from any memory location and does not write any value to any memory location;

reading data from at least one memory location after executing the speculative execution command and before executing the set of instructions, wherein the read data can be used to determine whether a synchronization mechanism has been exclusively acquired;

speculatively executing the set of one or more instructions, the set of one or more instructions including at least one store to a memory location;

receiving a commit command that is an instruction indicating that the speculative execution is successful and at least one store is ready to be committed or an abort command that is an instruction indicating that an abort condition of the speculative execution command is detected;

in the event that the commit command is received, committing the store to the memory location; and

in the event that the abort command is received, reverting the store to the memory location.

2. A method as recited in claim 1 , further comprising using the read data to determine whether the synchronization mechanism has been exclusively acquired.

3. A method as recited in claim 2 , further comprising aborting the speculative execution before it is committed if it is determined that the synchronization mechanism has been exclusively acquired.

4. A method as recited in claim 1 , wherein the synchronization mechanism includes at least one of the following: a lock, a mutex, a semaphore, an object associated with a Java Virtual Machine monitor, an object associated with a Java synchronized method, an object associated with a Java synchronized block, an object associated with a .NET synchronized method, and an object associated with a .NET SyncBlock.

5. A system for attempting to execute a set of one or more instructions speculatively, comprising:

a processor configured to:

execute a speculative execution command in hardware, wherein the speculative execution command directly causes the set of one or more instructions to be executed speculatively, the speculative execution command does not read any value from any memory location and does not write any value to any memory location;

read data from at least one memory location after executing the speculative execution command and before executing the set of instructions, wherein the read data can be used to determine whether a synchronization mechanism has been exclusively acquired;

speculatively execute the set of one or more instructions, the set of one or more instructions including at least one store to a memory location;

receive a commit command that is an instruction indicating that the speculative execution is successful and at least one store is ready to be committed or an abort command that is an instruction indicating that an abort condition of the speculative execution command is detected;

in the event that the commit command is received, commit the store to the memory location; and

in the event that the abort command is received, revert the store to the memory location; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions.

6. A system as recited in claim 5 , wherein the process is further configured to use the read data to determine whether the synchronization mechanism has been exclusively acquired.

7. A system as recited in claim 6 , further comprising aborting the speculative execution before it is committed if it is determined that the synchronization mechanism has been exclusively acquired.

8. A computer program product for attempting to execute a set of one or more instructions speculatively, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

executing a speculative execution command to directly cause the set of one or more instructions to be executed speculatively, wherein the speculative execution command does not read any value from any memory location and does not write any value to any memory location;

reading data from at least one memory location after executing the speculative execution command and before executing the set of instructions, wherein the read data can be used to determine whether a synchronization mechanism has been exclusively acquired;

speculatively executing the set of one or more instructions, the set of one or more instructions including at least one store to a memory location;

receiving a commit command that is an instruction indicating that the speculative execution is successful and the at least one store is ready to be committed or an abort command that is an instruction indicating that an abort condition of the speculative execution command is detected;

in the event that the commit command is received, committing the store to the memory location; and

in the event that the abort command is received, reverting the store to the memory location.

9. A computer program product as recited in claim 8 , further comprising using the read data to determine whether the synchronization mechanism has been exclusively acquired.

10. A method as recited in claim 9 , further comprising aborting the speculative execution before it is committed if it is determined that the synchronization mechanism has been exclusively acquired.

Assignments (8)
RELEASE OF SECURITY INTERESTS IN PATENTS RECORDED AT REEL/FRAME 052293/0121 Recorded Dec 3, 2025
From: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
To: AZUL SYSTEMS, INC.
Reel/Frame 073466/0064 →
SECURITY INTEREST Recorded Dec 3, 2025
From: AZUL SYSTEMS, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073828/0083 →
SECURITY INTEREST Recorded Apr 2, 2020
From: AZUL SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
Reel/Frame 052293/0121 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2020
From: SILICON VALLEY BANK
To: AZUL SYSTEMS, INC.
Reel/Frame 052293/0869 →
RELEASE OF SECURITY INTEREST Recorded Feb 21, 2019
From: PARTNERS FOR GROWTH IV, L.P.
To: AZUL SYSTEMS, INC.
Reel/Frame 048411/0138 →
SECURITY INTEREST Recorded Mar 1, 2016
From: AZUL SYSTEMS, INC.
To: PARTNERS FOR GROWTH IV, L.P.
Reel/Frame 037959/0694 →
SECURITY INTEREST Recorded Feb 2, 2016
From: AZUL SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 037641/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2005
From: TENE, GIL; POSVA, IVAN; WOLF, MICHAEL A.; GROVE, DANIEL DWIGHT; KRALJEVIC, TOM
To: AZUL SYSTEMS INC.
Reel/Frame 017085/0770 →
Continuity (1)
Provisional Application 6061002800 · Sep 14, 2004