Apparatus and method for non-serializing split locks
First Claim
1. A processor comprising:
- a plurality of cores to execute instructions, each core comprising a core cache to cache data during instruction execution;
a shared cache to be shared by two or more of the plurality of cores;
a locking agent on a first core to initiate a split lock operation in response to detecting a transaction targeting two cache lines, the split lock comprising a first lock preventing more than one split lock operation being performed at once, and a second lock and third lock for each of the two cache lines, the locking agent to transmit a request for the two cache lines to be set to an Exclusive state, wherein to initiate the split lock operation, the locking agent is to transmit a request for the split lock operation to a lock master, the lock master to transmit a response to the locking agent to grant the split lock operation upon determining no other split lock operation is present;
at least one coherence enforcement engine to receive the request from the locking agent and to responsively cause any copies of the two cache lines in other cores to be invalidated;
the locking agent to permit the transaction targeting the two cache lines to complete upon receipt of an indication that the cache lines are in the Exclusive state and, upon completion of the transaction, to transmit an indication that the transaction is complete to the coherence enforcement engine.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method are described for performing split lock operations in a multi-core processor. For example, one embodiment of a processor comprises: a plurality of cores to execute instructions, each core comprising a core cache to cache data during instruction execution; a shared cache to be shared by two or more of the plurality of cores; a locking agent on a first core to initiate a split lock operation in response to detecting a transaction targeting at least two cache lines, the locking agent to transmit a request for the two cache lines to be set to an Exclusive state; at least one coherence enforcement engine to receive the request from the locking agent and to responsively cause any copies of the two cache lines in other cores to be invalidated; the locking agent to permit the transaction targeting the two cache lines to complete upon receipt of an indication that the cache lines are in the Exclusive state and, upon completion of the transaction, to transmit an indication that the transaction is complete to the coherence enforcement engine.
12 Citations
18 Claims
-
1. A processor comprising:
-
a plurality of cores to execute instructions, each core comprising a core cache to cache data during instruction execution; a shared cache to be shared by two or more of the plurality of cores; a locking agent on a first core to initiate a split lock operation in response to detecting a transaction targeting two cache lines, the split lock comprising a first lock preventing more than one split lock operation being performed at once, and a second lock and third lock for each of the two cache lines, the locking agent to transmit a request for the two cache lines to be set to an Exclusive state, wherein to initiate the split lock operation, the locking agent is to transmit a request for the split lock operation to a lock master, the lock master to transmit a response to the locking agent to grant the split lock operation upon determining no other split lock operation is present; at least one coherence enforcement engine to receive the request from the locking agent and to responsively cause any copies of the two cache lines in other cores to be invalidated; the locking agent to permit the transaction targeting the two cache lines to complete upon receipt of an indication that the cache lines are in the Exclusive state and, upon completion of the transaction, to transmit an indication that the transaction is complete to the coherence enforcement engine. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
initiating a split lock operation in a first core in response to detecting a transaction targeting two cache lines of a cache of the first core, the split lock comprising a first lock preventing more than one split lock operation being performed at once, and a second lock and third lock for each of the two cache lines, wherein to initiate the split lock operation, a locking agent of the first core is to transmit a request for the split lock operation to a lock master, the lock master to transmit a response to the locking agent to grant the split lock operation upon determining no other split lock operation is present; transmitting a request for the two cache lines to be set to an Exclusive state; responsively causing any copies of the two cache lines in other cores to be invalidated; permitting the transaction targeting the two cache lines to complete upon receipt of an indication that the cache lines are in the Exclusive state; and upon completion of the transaction, transmitting an indication that the transaction is complete. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a memory to store instructions and data; a processor to execute the instructions and process the data; a graphics processor to perform graphics operations in response to graphics instructions; a network interface to receive and transmit data over a network; an interface for receiving user input from a mouse or cursor control device, the plurality of cores executing the instructions and processing the data responsive to the user input; the processor comprising; a plurality of cores to execute instructions, each core comprising a core cache to cache data during instruction execution; a shared cache to be shared by two or more of the plurality of cores; a locking agent on a first core to initiate a split lock operation in response to detecting a transaction targeting two cache lines, the split lock comprising a first lock preventing more than one split lock operation being performed at once, and a second lock and third lock for each of the two cache lines, the locking agent to transmit a request for the two cache lines to be set to an Exclusive state, wherein to initiate the split lock operation, the locking agent is to transmit a request for the split lock operation to a lock master, the lock master to transmit a response to the locking agent to grant the split lock operation upon determining no other split lock operation is present; at least one coherence enforcement engine to receive the request from the locking agent and to responsively cause any copies of the two cache lines in other cores to be invalidated; the locking agent to permit the transaction targeting the two cache lines to complete upon receipt of an indication that the cache lines are in the Exclusive state and, upon completion of the transaction, to transmit an indication that the transaction is complete to the coherence enforcement engine. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification