Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency
First Claim
1. A method of maintaining memory consistency in a multinode computer, the method comprising the following steps:
- queuing a current invalidate request by a processor;
acknowledging to the processor that the queued current invalidate request is complete before it has actually completed;
waiting for previous invalidate requests by the processor to complete; and
once the previous invalidate requests are complete, completing the queued current invalidate request.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for maintaining processor consistency in a multiprocessor computer such as a multinode computer system are disclosed. A processor proceeds with write operations before its previous write operations complete, while processor consistency is maintained. A write operation begins with a request by the processor to invalidate copies of the data stored in other nodes. This current invalidate request is queued while acknowledging to the processor that the request is complete even though it has not actually completed. The processor proceeds to complete the write operation by changing the data. It can then execute subsequent operations, including other write operations. The queued request, however, is not transmitted to other nodes in the computer until all previous invalidate requests by the processor are complete. This ensures that the current invalidate request will not pass a previous invalidate request. The invalidate requests are added and removed from a processor'"'"'s outstanding invalidate list as they arise and are completed. An invalidate request is completed by notifying the nodes in a linked list related to the current invalidate request that data shared by the node is now invalid.
74 Citations
23 Claims
-
1. A method of maintaining memory consistency in a multinode computer, the method comprising the following steps:
-
queuing a current invalidate request by a processor; acknowledging to the processor that the queued current invalidate request is complete before it has actually completed; waiting for previous invalidate requests by the processor to complete; and once the previous invalidate requests are complete, completing the queued current invalidate request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An apparatus for maintaining memory consistency in a multinode computer comprising:
-
a queue for queuing current invalidate requests by a processor; and a protocol engine for; acknowledging to the processor that a current invalidate request is complete before it has actually completed; waiting for previous invalidate requests by the processor to complete; and once the previous invalidate requests are complete, completing the queued current invalidate request. - View Dependent Claims (16)
-
-
17. A method of maintaining memory consistency in a multinode computer, the method comprising the following steps:
-
receiving a signal from a processor or input/output (I/O) device in a first node which is ready for transmission to a second node; determining if there is a pending invalidate request by the processor or I/O device; if so, delaying transmission of the signal to the second node until the pending invalidate request is complete; and if not, transmitting the signal to the second node. - View Dependent Claims (18, 19, 20)
-
-
21. An apparatus for maintaining memory consistency in a multinode computer comprising:
-
a current invalidate list containing pending invalidate requests by a processor or I/O device; and a protocol engine for; receiving a signal from a processor or input/out (I/O) device in a first node which is ready for transmission to a second node; determining from the list if there is a pending invalidate request; if so, delaying transmission of the signal to the second node until the pending invalidate request determined from the list is complete; and if not, transmitting the signal to the second node.
-
-
22. A method of maintaining memory consistency in a multiprocessor computer, the method comprising the following steps:
-
queuing a current invalidate request by a processor; acknowledging to the processor that the queued current invalidate request is complete before it has actually completed; waiting for a previous invalidate request by the processor to complete; and completing the queued current invalidate request once the previous invalidate request is complete.
-
-
23. An apparatus for maintaining memory consistency in a multiprocessor computer comprising:
-
a queue for queuing current invalidate requests by a processor; means for acknowledging to the processor that a queued current invalidate request is complete before it has actually completed; means for waiting for a previous invalidate request by the processor to complete; and means for completing the queued current invalidate request once the previous invalidate request is complete.
-
Specification