IP Library › Granted Patent US 10,671,400
Granted Patent B2
US 10,671,400 · App. 15/897,974 · Granted Jun 2, 2020

Enhanced managed runtime environments that support deterministic record and replay

Inventors: Gil Tene (Los Altos Hills, CA); Michael A. Wolf (San Francisco, CA); Cliff N. Click, Jr. (San Jose, CA)
Assignee: Azul Systems, Inc.
G06F9/3842G06F9/30076G06F9/3834G06F9/3851G06F9/52G06F11/3636
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 10,671,400
App. No.
15/897,974
Granted
Jun 2, 2020
Kind
B2
Abstract

A system includes a processor configured to: initiate atomic execution of a plurality of instruction units in a thread, starting with a beginning instruction unit in the plurality of instruction units, wherein the plurality of instruction units in the thread are not programmatically specified to be executed atomically, and wherein the plurality of instruction units includes one or more memory modification instructions; in response to executing an instruction to commit inserted into the plurality of instructions units, incrementally commit a portion of the one or more memory modification instructions that have been atomically executed so far; and subsequent to incrementally committing the portion of the memory modification instructions that have been atomically executed so far, continue atomic execution of the plurality of instruction units. The system further includes a memory coupled to the processor, configured to provide the processor with the plurality of instruction units.

Claims (30)

1. A system comprising:

a processor configured to:

initiate atomic execution of a plurality of instruction units in a thread, starting with a beginning instruction unit in the plurality of instruction units, wherein the plurality of instruction units in the thread are not programmatically specified to be executed atomically, and wherein the plurality of instruction units includes one or more memory modification instructions;

in response to executing a first instruction to commit inserted by a runtime environment into the plurality of instruction units, invoke a trap handler, wherein the trap handler incrementally commits memory modification instructions that have been atomically executed since a previous time data was committed;

in response to the trap handler returning:

continue atomic execution of the plurality of instruction units; and

insert, by the runtime environment, a second instruction to commit; and

in response to detecting an atomicity terminating event, revert memory operations carried out between the first instruction to commit inserted by the runtime environment and the atomicity terminating event; and

a memory coupled to the processor, configured to provide the processor with the plurality of instruction units.

2. The system of claim 1 wherein the trap handler clears one or more memory markers.

3. The system of claim 1 wherein the trap handler records information associated with instructions that have been atomically executed so far.

4. The system of claim 1 wherein the atomicity terminating event is triggered by a memory access by another processor.

5. The system of claim 1 wherein the processor is further configured to, subsequent to reverting the memory operations carried out between the first instruction to commit and the atomicity terminating event, re-initiate atomic execution.

6. A method comprising:

initiating atomic execution of a plurality of instruction units in a thread, starting with a beginning instruction unit in the plurality of instruction units, wherein the plurality of instruction units in the thread are not programmatically specified to be executed atomically, and wherein the plurality of instruction units includes one or more memory modification instructions;

in response to executing a first instruction to commit inserted by a runtime environment into the plurality of instruction units, invoking a trap handler, wherein the trap handler incrementally commits memory modification instructions that have been atomically executed since a previous time data was committed;

in response to the trap handler returning:

continuing atomic execution of the plurality of instruction units; and

inserting, by the runtime environment, a second instruction to commit and in response to detecting an atomicity terminating event, reverting memory operations carried out between the first instruction to commit inserted by the runtime environment and the atomicity terminating event.

7. The method of claim 6 wherein the trap handler clears one or more memory markers.

8. The method of claim 6 wherein the trap handler records information associated with instructions that have been atomically executed so far.

9. The method of claim 6 wherein the atomicity terminating event is triggered by a memory access by another processor.

10. The method of claim 6 further comprising, subsequent to reverting the memory operations carried out between the first instruction to commit and the atomicity terminating event, re-initiating atomic execution.

11. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

initiating atomic execution of a plurality of instruction units in a thread, starting with a beginning instruction unit in the plurality of instruction units, wherein the plurality of instruction units in the thread are not programmatically specified to be executed atomically, and wherein the plurality of instruction units includes one or more memory modification instructions;

in response to executing a first instruction to commit inserted by a runtime environment into the plurality of instruction units, invoking a trap handler, wherein the trap handler incrementally commits memory modification instructions that have been atomically executed since a previous time data was committed;

in response to the trap handler returning:

continuing atomic execution of the plurality of instruction units; and

inserting, by the runtime environment, a second instruction to commit; and

in response to detecting an atomicity terminating event, reverting memory operations carried out between the first instruction to commit inserted by the runtime environment and the atomicity terminating event.

Assignments (3)
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 →
Continuity (4)
Continuation 12387477 · May 1, 2009
Provisional Application 61126231 · May 2, 2008
Provisional Application 61195407 · Oct 6, 2008
Related Publication 20180307493A1 · Oct 25, 2018