System and method for handling stale data in a multiprocessor system
First Claim
1. A multiprocessor system comprising first and second processors coupled to each other and to a memory and associated memory controller, said system comprising:
- means for transferring a request for data from said first processor to said memory and associated memory controller;
means for determining that said second processor owns said requested data;
means for transferring ownership of said requested data from said second processor to said first processor;
said first processor including means for modifying said requested data transferred from said second processor to said first processor;
means for casting out said requested data modified by said means for modifying from said first processor to said memory and associated memory controller;
means for indicating receipt by said memory and associated memory controller of said requested data modified by said means for modifying and east out from said first processor;
said second processor including means for sending, to said memory and associated memory controller, a second processor acknowledgment of said transfer of ownership of said requested data from said second processor to said first processor, said second processor acknowledgment accompanied by a copy of said data without said modifications performed by said first processor;
means for storing within said memory said copy of said data without said modifications performed by said first processor when said second processor acknowledgment from said second processor of said transfer of ownership of said requested data from said second processor to said first processor is received by said memory controller prior to receipt of said means for indicating by said memory controller of said requested data modified by said means for modifying from said first processor to said memory and associated memory controller;
means for not storing within said memory said copy of said data without said modifications performed by said first processor when said second processor sends said second processor acknowledgment in response to said indication of receipt by said memory and associated memory controller of said requested data modified by said means for modifying and cast out from said first processor; and
means for dropping entries in a table including said means for indicating maintained by said memory controller upon receipt by said memory and associated memory controller of said second processor acknowledgment, sent by said second processor, of said transfer of ownership of said requested data from said second processor to said first processor, said second processor acknowledgment accompanied by a copy of said data without said modifications performed by said first processor.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for identifying which incoming write data is valid and for insuring that stale data does not overwrite valid data within system memory within a symmetrical multiprocessor data processing system. Upon receipt of a Load Miss request from a processor, a stale bit is established and set equal to zero. A determination is then made of which other processor has ownership of the requested cache line. The requested cache line is then transferred in a cache-to-cache transfer from the second processor to the first processor. If the first processor further modifies the cache line and writes back the cache line to system memory before the original owner of the cache line writes back the stale data with an acknowledgment of the cache-to-cache transfer, the stale bit is set to one. Upon receipt from the acknowledgment from the original owner of the cache line, the stale data is dropped when it is determined that the stale bit has been set.
38 Citations
12 Claims
-
1. A multiprocessor system comprising first and second processors coupled to each other and to a memory and associated memory controller, said system comprising:
-
means for transferring a request for data from said first processor to said memory and associated memory controller; means for determining that said second processor owns said requested data; means for transferring ownership of said requested data from said second processor to said first processor; said first processor including means for modifying said requested data transferred from said second processor to said first processor; means for casting out said requested data modified by said means for modifying from said first processor to said memory and associated memory controller; means for indicating receipt by said memory and associated memory controller of said requested data modified by said means for modifying and east out from said first processor; said second processor including means for sending, to said memory and associated memory controller, a second processor acknowledgment of said transfer of ownership of said requested data from said second processor to said first processor, said second processor acknowledgment accompanied by a copy of said data without said modifications performed by said first processor; means for storing within said memory said copy of said data without said modifications performed by said first processor when said second processor acknowledgment from said second processor of said transfer of ownership of said requested data from said second processor to said first processor is received by said memory controller prior to receipt of said means for indicating by said memory controller of said requested data modified by said means for modifying from said first processor to said memory and associated memory controller; means for not storing within said memory said copy of said data without said modifications performed by said first processor when said second processor sends said second processor acknowledgment in response to said indication of receipt by said memory and associated memory controller of said requested data modified by said means for modifying and cast out from said first processor; and means for dropping entries in a table including said means for indicating maintained by said memory controller upon receipt by said memory and associated memory controller of said second processor acknowledgment, sent by said second processor, of said transfer of ownership of said requested data from said second processor to said first processor, said second processor acknowledgment accompanied by a copy of said data without said modifications performed by said first processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for preventing stale data from being stored in system memory within a multiprocessor computer system including first and second processors coupled to said system memory which has a memory controller associated therewith, said method comprising the steps of:
-
transferring a read request for data from said first processor to said memory and associated memory controller; determining that said second processor owns said requested data in a modified form; transferring ownership of said requested data from said second processor to said first processor; modifying, by said first processor, said requested data transferred from said second processor to said first processor; casting out said requested data modified in said modifying step from said first processor to said memory and associated memory controller; indicating receipt by said memory and associated memory controller of said requested data modified in said modifying step and cast out from said first processor in said casting out step; sending a second processor acknowledgment of said transfer of ownership of said requested data from said second processor to said first processor, from said second processor to said memory and associated memory controller, said second processor acknowledgment accompanied by a copy of said data without said modifications performed by said first processor; storing within said memory said copy of said data without said modifications performed by said first processor when said second processor acknowledgment from said second processor of said transfer of ownership of said requested data from said second processor to said first processor is received by said memory controller prior to receipt in said indicating step by said memory controller of said requested data modified in said modifying step from said first processor to said memory and associated memory controller; not storing within said memory said copy of said data without said modifications performed by said first processor when said second processor acknowledgment from said second processor of said transfer of ownership of said requested data from said second processor to said first processor is received by said memory controller subsequent to receipt in said indicating step by said memory controller of said requested data modified in said modifying step from said first processor to said memory and associated memory controller; and dropping entries in a table from said indicating step upon receipt by said memory and associated memory controller of said second processor acknowledgment, sent by said second processor, of said transfer of ownership of said requested data from said second processor to said first processor wherein said second processor acknowledgment is accompanied by a copy of said data without said modifications performed by said first processor. - View Dependent Claims (10, 11, 12)
-
Specification