IP Library Granted Patent US 7,962,699
Granted Patent B2
US 7,962,699 · App. 12/843,828 · Granted Jun 14, 2011

Concurrent execution of critical sections by eliding ownership of locks

Assignee: Wisconsin Alumni Research Foundation
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,962,699
App. No.
12/843,828
Granted
Jun 14, 2011
Kind
B2
Abstract

One embodiment of the present invention provides a system that facilitates avoiding locks by speculatively executing critical sections of code. During operation, the system allows a process to speculatively execute a critical section of code within a program without first acquiring a lock associated with the critical section. If the process subsequently completes the critical section without encountering an interfering data access from another process, the system commits changes made during the speculative execution, and resumes normal non-speculative execution of the program past the critical section. Otherwise, if an interfering data access from another process is encountered during execution of the critical section, the system discards changes made during the speculative execution, and attempts to re-execute the critical section.

Claims (10)

1. An electronic computer coordinating access to common memory by multiple program threads comprising by performing the steps of:

in each given program thread,

(a) detecting the beginning of a critical section of the given program thread in which interruption to access of the common memory could occur resulting from execution of other program threads;

(b) speculatively executing the critical section; and

(c) committing the speculative execution of the critical section if there has been no interruption to access of the common memory and squashing the speculative execution of the critical section if there has been an interruption wherein step (a) deduces the beginning of a critical section by detecting special delimiter instructions.

2. An electronic computer coordinating access to common memory by multiple program threads comprising by performing the steps of:

in each given program thread,

(a) detecting the beginning of a critical section of the given program thread in which interruption to access of the common memo could occur resulting from execution of other program threads;

(b) speculatively executing the critical section; and

(c) committing the speculative execution of the critical section if there has been no interruption to access of the common memory and squashing the speculative execution of the critical section if there has been an interruption wherein the speculative execution is committed upon the occurrence of a non cacheable operation limiting further speculation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2013
From: GOODMAN, JAMES R.; RAJWAR, RAVI
To: WISCONSIN ALUMNI RESEARCH FOUNDATION
Reel/Frame 031348/0344 →
CONFIRMATORY LICENSE Recorded Dec 29, 2010
From: WISCONSIN ALUMNI RESEARCH FOUNDATION
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 025570/0740 →
Continuity (3)
Continuation 11539731 · Oct 9, 2006
Continuation 10037041 · Oct 19, 2001
Related Publication 20100287340A1 · Nov 11, 2010