System and method for avoiding deadlocks when performing storage updates in a multi-processor environment
First Claim
1. A processor in a multi-processor shared data environment having a cache memory structure involving various ownership states as to a cache line, which state includes a read-only or shared state and an exclusive state for holding the line exclusively, with such processor comprising:
- a local cache adapted for communication with one or more shared higher level caches for sourcing cache lines;
a store queue having a temporary buffer with capability to reject exclusive cross-interrogates (XI) while an interrogated cache line is owned exclusive and is to be stored; and
a mechanism for performing a method comprising;
setting the processor into a slow mode to fetch, decode and execute a single instruction at a time;
receiving a current instruction that includes a data store of data to one or more target lines;
executing the current instruction, the executing including storing the data into the temporary buffer;
preventing the store queue from rejecting an exclusive XI corresponding to the target lines of the current instruction; and
acquiring each of the target lines with a status of exclusive ownership and writing contents from the temporary buffer to each target line after instruction completion.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for avoiding deadlocks when performing storage updates in a multi-processor environment. The system includes a processor having a local cache, a store queue having a temporary buffer with capability to reject exclusive cross-interrogates (XI) while an interrogated cache line is owned exclusive and is to be stored, and a mechanism for performing a method. The method includes setting the processor into a slow mode. A current instruction that includes a data store having one or more target lines is received. The current instruction is executed, with the executing including storing results associated with the data store into the temporary buffer. The store queue is prevented from rejecting an exclusive XI corresponding to the target lines of the current instruction. Each target line is acquired with a status of exclusive ownership, and the contents from the temporary buffer are written to each target line after instruction completion.
-
Citations
20 Claims
-
1. A processor in a multi-processor shared data environment having a cache memory structure involving various ownership states as to a cache line, which state includes a read-only or shared state and an exclusive state for holding the line exclusively, with such processor comprising:
-
a local cache adapted for communication with one or more shared higher level caches for sourcing cache lines; a store queue having a temporary buffer with capability to reject exclusive cross-interrogates (XI) while an interrogated cache line is owned exclusive and is to be stored; and a mechanism for performing a method comprising; setting the processor into a slow mode to fetch, decode and execute a single instruction at a time; receiving a current instruction that includes a data store of data to one or more target lines; executing the current instruction, the executing including storing the data into the temporary buffer; preventing the store queue from rejecting an exclusive XI corresponding to the target lines of the current instruction; and acquiring each of the target lines with a status of exclusive ownership and writing contents from the temporary buffer to each target line after instruction completion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for avoiding deadlocks when performing storage updates in a multi-processor environment, the method comprising:
-
setting a processor into a slow mode to fetch, decode and execute a single instruction at a time; receiving a current instruction that includes a data store of data to one or more target lines; executing the current instruction, the executing including storing the data into a temporary buffer; preventing the store queue from rejecting an exclusive XI corresponding to the target lines of the current instruction; and acquiring each of the target lines with a status of exclusive ownership and writing contents from the temporary buffer to each target line after instruction completion. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A processor in a multi-processor, shared data environment, the processor comprising:
-
a local cache adapted for communication with one or more shared higher level caches for sourcing cache lines; and a mechanism for performing a method comprising; receiving an instruction that includes a data store; setting the processor to a fast mode where multiple instructions are executed in parallel and a target cache line associated with the data store is acquired from the local cache with a status of exclusive ownership prior to execution of the instruction; initiating execution of the instruction in the fast mode; in response to detecting a possible deadlock during the execution in fast mode; aborting execution of the instruction in the fast mode; setting the processor to a slow mode where a single instruction at a time is executed and the target cache line is acquired from the local cache with a status of exclusive ownership prior to execution of the instruction; and initiating execution of the instruction in the slow mode; and in response to detecting a possible deadlock during the execution in slow mode; aborting execution of the instruction in the slow mode; setting the processor to an enhanced slow mode where a single instruction at a time is executed and the target cache line is acquired from the local cache with a status of read only prior to execution of the instruction and in a status of exclusive ownership after execution of the instruction has completed; and initiating execution of the instruction in the enhanced slow mode. - View Dependent Claims (18, 19, 20)
-
Specification