IP Library Granted Patent US 7,213,093
Granted Patent B2
US 7,213,093 · App. 10/608,708 · Granted May 1, 2007

Queued locks using monitor-memory wait

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,213,093
App. No.
10/608,708
Granted
May 1, 2007
Kind
B2
Abstract

A method, apparatus, and system are provided for monitoring locks using monitor-memory wait. According to one embodiment, a node associated with a contended lock is monitored; and a processor seeking the contended lock is put to sleep until a monitor event occurs.

Claims (54)

1. A method comprising:

monitoring a node associated with a contended lock;

identifying a processor waiting for the contended lock;

putting the processor to sleep until an event occurs;

relinquishing resources of the sleeping processor;

forming larger resources for non-sleeping processors to utilize while the processor sleeps, the larger resources including the relinquished resources; and

waking up the processor when the event occurs, wherein the waking up of the processor includes inactivating the monitoring of the node, and re-acquiring the relinquished resources for the awakened processor to utilize.

2. The method of claim 1 , wherein the monitoring of the node comprises monitoring a lock address corresponding to the contended lock by executing a monitor instruction to activate the monitoring of the node.

3. The method of claim 1 , further comprises executing an instruction to put the processor to sleep until the event occurs.

4. The method of claim 1 , wherein the event comprises the contended lock becoming available, and the processor acquiring the available lock.

5. The method of claim 1 , wherein the processor is next in a queue to acquire the contended lock.

6. The method of claim 1 , wherein the relinquishing of the resources comprises:

relinquishing of a plurality of registers in a register pool;

relinquishing of a plurality of instruction queue entries in an instruction queue;

relinquishing of a plurality of store buffer entries in a store buffer; and

relinquishing of a plurality of re-order buffer entries in a re-order buffer.

7. A processor, comprising:

a monitor to

monitor a node associated with a contended lock, and

identify a processor waiting for the contended lock;

logic to

put the processor to sleep until an event has occurred and

wake up the logical processor when the event occurs, wherein the waking up comprises inactivating the monitoring of the node, and re-acquiring the relinquished resources for the awakened processor to utilize; and

a resource manager to

relinquish resources of the sleeping processor, and

form larger resources for non-sleeping processors to utilize while the processor sleeps, the larger resources including the relinquished resources.

8. The processor of claim 7 , further comprising detection logic to detect the occurrence of the event, wherein the event comprises a designated event including the contended lock becoming available.

9. The processor of claim 7 , wherein the resource manager is further to:

relinquish a plurality of registers in a register pool;

relinquish a plurality of instruction queue entries in an instruction queue;

relinquish a plurality of store buffer entries in a store buffer; and

relinquish a plurality of re-order buffer entries in a re-order buffer.

10. A system comprising:

a storage medium; and

a processor coupled with the storage medium, the processor having

a monitor to

monitor a node associated with a contended lock, and

identify a processor waiting for the contended lock;

logic to

put the processor to sleep until an event has occurred and

wake up the logical processor when the event occurs, wherein the waking up comprises inactivating the monitoring of the node, and re-acquiring the relinquished resources for the awakened processor to utilize; and

a resource manager to

relinquish resources of the sleeping processor, and

form larger resources for non-sleeping processors to utilize while the processor sleeps, the larger resources including the relinquished resources.

11. The system of claim 10 , further comprising detection logic to detect the occurrence of the event, wherein the event comprises a designated event including the contended lock becoming available.

12. A machine-readable storage medium having instructions which, when executed by a machine, cause the machine to:

monitor a node associated with a contended lock;

identify a processor waiting for the contended lock;

put the processor to sleep until an event occurs;

relinquish resources of the sleeping processor; and

form larger resources for non-sleeping processors to utilize while the processor sleeps, the larger resources including the relinquished resources; and

wake up the processor when the event occurs, wherein the waking up of the processor includes inactivating the monitoring of the node, and re-acquiring the relinquished resources for the awakened processor to utilize.

13. The machine-readable storage medium of claim 12 , wherein the instructions when further executed by the machine, cause the machine to monitor the node to further cause the machine to monitor a lock address corresponding to the contended lock by executing a monitor instruction to activate the monitoring of the node.

14. The machine-readable storage medium of claim 12 , wherein the event comprises the contended lock becoming available, and allowing the processor to acquire the available lock.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT APPLICATION NUMBER PREVIOUSLY RECORDED ON REEL 014343 FRAME 0938. ASSIGNOR(S) HEREBY CONFIRMS THE INCORRECT PATENT APPLICATION NUMBER IS 10/609,814. Recorded Apr 23, 2014
From: HAMMARLUND, PER; KAUSHIK, SHIVNANDAN D.
To: INTEL CORPORATION
Reel/Frame 032805/0401 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT APPLICATION NUMBER PREVIOUSLY RECORDED ON REEL 014641 FRAME 0693. ASSIGNOR(S) HEREBY CONFIRMS THE INCORRECT PATENT APPLICATION NUMBER IS 10/609,814. Recorded Apr 23, 2014
From: HAMMARLUND, PER; KAUSHIK, SHIVNANDAN D.
To: INTEL CORPORATION
Reel/Frame 032817/0523 →