IP Library Granted Patent US 9,547,524
Granted Patent B2
US 9,547,524 · App. 14/136,824 · Granted Jan 17, 2017

Methods and systems for enhancing hardware transactions using hardware transactions in software slow-path

Inventors: Nir N. Shavit (Cambridge, MA); Alexander Matveev (Tel Aviv-Jaffa, IL)
Assignee: Massachusetts Institute of Technology
G06F9/467G06F9/466G06F9/528
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 9,547,524
App. No.
14/136,824
Granted
Jan 17, 2017
Kind
B2
Abstract

Hybrid transaction memory systems and accompanying methods. A transaction to be executed is received, and an initial attempt is made to execute the transaction in a hardware path. Upon a failure to successfully execute the transaction in the hardware path, an attempt is made to execute the transaction in a hardware-software path. The hardware-software path includes a software path and at least one hardware transaction.

Claims (41)

1. A system, comprising:

at least one processor; and

at least one memory storing computer-executable instructions that, when executed by the at least one processor, configure the system to:

receive a transaction to be executed;

initially attempt to execute the transaction in a hardware path; and

upon a failure to successfully execute the transaction in the hardware path, attempt to execute the transaction in a hardware-software path, wherein the hardware-software path comprises a software path and at least one hardware transaction, wherein attempting to execute the transaction in the hardware-software path comprises performing writes from the software path in the at least one hardware transaction, wherein the transaction is executed without instrumenting reads in the hardware path, and

wherein the hardware-software path is configured to execute hardware transactions and software transactions concurrently.

2. The system of claim 1 , further comprising a shared memory space partitioned into a plurality of logical stripes, each stripe comprising an associated metadata entry.

3. The system of claim 2 , wherein transactions executed by the system communicate with each other using the metadata entries.

4. The system of claim 2 , wherein reads of the shared memory space executed in the hardware path do not require inspection of the metadata entries.

5. The system of claim 2 , wherein writes to the shared memory space executed in the hardware path do not require conditional branching based on the metadata entries.

6. The system of claim 1 , wherein the hardware transaction is atomic.

7. The system of claim 1 , wherein, in executing the transaction in the hardware-software path, the system is configured to:

execute a software transactional memory transaction in the software path while postponing writes until a commit phase; and

in the commit phase, perform the writes in the hardware transaction.

8. The system of claim 7 , wherein, in executing the transaction in the hardware-software path, the system is further configured to perform a commit validation in the commit phase.

9. The system of claim 1 , wherein execution of the instructions further configures the system to, upon a failure to successfully execute the hardware transaction, attempt to re-execute the hardware transaction.

10. The system of claim 9 , wherein execution of the instructions further configures the system to, upon exceeding a threshold number of failures to successfully execute the hardware transaction, execute the transaction in a full software path.

11. The system of claim 1 , wherein the at least one hardware transaction comprises a single hardware transaction.

12. The system of claim 1 , wherein the at least one hardware transaction comprises a plurality of hardware transactions.

13. The system of claim 1 , wherein the at least one hardware transaction comprises fewer operations than a number of operations in the hardware path.

14. In a system comprising at least one memory storing computer-executable instructions, a method comprising:

executing the instructions by at least one processor, the execution of the instructions resulting in operations that comprise:

receiving a transaction to be executed;

initially attempting to execute the transaction in a hardware path; and

upon a failure to successfully execute the transaction in the hardware path, attempting to execute the transaction in a hardware-software path, wherein the hardware-software path comprises a software path and at least one hardware transaction, wherein attempting to execute the transaction in the hardware-software path comprises performing writes from the software path in the at least one hardware transaction, wherein the transaction is executed without instrumenting reads in the hardware path, and

wherein the hardware-software path is configured to execute hardware transactions and software transactions concurrently.

15. The method of claim 14 , further comprising accessing a shared memory space partitioned into a plurality of logical stripes, each stripe comprising an associated metadata entry.

16. The method of claim 15 , wherein executed transactions communicate with each other using the metadata entries.

17. The method of claim 15 , wherein reads of the shared memory space executed in the hardware path do not require inspection of the metadata entries.

18. The method of claim 15 , wherein writes to the shared memory space executed in the hardware path do not require conditional branching based on the metadata entries.

19. The method of claim 14 , wherein the hardware transaction is atomic.

20. The method of claim 14 , wherein executing the transaction in the hardware-software path comprises:

executing a software transactional memory transaction in the software path while postponing writes until a commit phase; and

in the commit phase, performing the writes in the hardware transaction.

21. The method of claim 20 , wherein executing the transaction in the hardware-software path further comprises performing a commit validation in the commit phase.

22. The method of claim 14 , further comprising, upon a failure to successfully execute the hardware transaction, attempting to re-execute the hardware transaction.

23. The method of claim 22 , further comprising, upon exceeding a threshold number of failures to successfully execute the hardware transaction, executing the transaction in a full software path.

24. The method of claim 14 , wherein the at least one hardware transaction comprises a single hardware transaction.

25. The method of claim 14 , wherein the at least one hardware transaction comprises a plurality of hardware transactions.

26. The method of claim 14 , wherein the at least one hardware transaction comprises fewer operations than a number of operations in the hardware path.

Assignments (2)
CONFIRMATORY LICENSE Recorded May 26, 2015
From: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 035771/0525 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2014
From: SHAVIT, NIR N.; MATVEEV, ALEXANDER
To: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
Reel/Frame 033513/0681 →
Continuity (4)
Provisional Application 61840104 · Jun 27, 2013
Provisional Application 61832250 · Jun 7, 2013
Provisional Application 61739947 · Dec 20, 2012
Related Publication 20140181821A1 · Jun 26, 2014