| US 7,584,330 B2 | ||
| Multi-processor data coherency | ||
| Arthur C. McKinney, Madison, Ala. (US); Charles H. McCarver, Jr., Huntsville, Ala. (US); and Vahid Samiee, Austin, Tex. (US) | ||
| Assigned to Intergraph Hardware Technologies Company, Las Vegas, Nev. (US) | ||
| Filed on Jul. 07, 2004, as Appl. No. 10/886,231. | ||
| Application 10/886231 is a continuation of application No. 10/037129, filed on Jan. 04, 2002, abandoned. | ||
| Application 10/037129 is a continuation of application No. 08/802827, filed on Feb. 19, 1997, granted, now 6,374,329. | ||
| Claims priority of provisional application 60/011979, filed on Feb. 20, 1996. | ||
| Claims priority of provisional application 60/011932, filed on Feb. 20, 1996. | ||
| Prior Publication US 2005/0188009 A1, Aug. 25, 2005 | ||
| Int. Cl. G06F 12/08 (2006.01) | ||
| U.S. Cl. 711—146 [711/144] | 6 Claims |

| 4. A method for maintaining coherent data in a multiprocessor system having a plurality of processors coupled to a memory
segment, where each processor has a private cache, the method comprising:
tracking data entering and exiting a first processor so as to derive a status of the data in a private cache associated with
the first processor;
storing the status in an external tag memory associated with the first processor, the external tag memory non-hardwired to
the private cache associated with the first processor;
receiving a data request from a second processor, the data request requesting data associated with a memory location in the
memory segment;
determining if the tag memory associated with the first processor indicates that the requested data is held within the private
cache associated with the first processor;
snooping the first processor if the tag memory associated with the first processor indicates that the requested data is held
within the private cache associated with the first processor;
re-posting the data request if the private cache associated with the first processor indicates it no longer holds the requested
data, and setting the tag status for the requested data so as to indicate that the private cache associated with the first
processor no longer holds the requested data;
determining if the tag status is correct in indicating that the requested data is modified;
re-posting the data request and setting the tag status for the requested line so as to indicate that the first processor no
longer holds the requested data, if the tag status incorrectly indicates that the requested data is modified; and
posting a transaction of the requested data from the private cache if the tag status correctly indicates that the requested
data is modified.
|