IP Library Granted Patent US 8,635,410
Granted Patent B1
US 8,635,410 · App. 09/909,700 · Granted Jan 21, 2014

System and method for removing data from processor caches in a distributed multi-processor computer system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,635,410
App. No.
09/909,700
Granted
Jan 21, 2014
Kind
B1
Abstract

A processor interface ( 24 ) receives a flush request from a processor ( 700 ) and performs a snoop operation to determine whether the data is maintained in a one of the local processors ( 700 ) and whether the data has been modified. If the data is maintained locally and it has been modified, an identified local processor ( 700 ) receives the flush request from the processor interface ( 24 ) and initiates a writeback to a memory directory interface unit ( 24 ). If the data is not maintained locally or has not been modified, the processor interface ( 24 ) forwards the flush request to the memory directory interface unit ( 22 ). Memory directory interface unit ( 22 ) determines which remote processors within the system ( 10 ) have a copy of the data and forwards the flush request only to those identified processors.

Claims (53)

1. A method for removing data from processor caches in a distributed multi-processor computer system, comprising:

receiving at a processor interface of a node controller a request to remove a particular cache line issued by a local processor coupled to the processor interface, the request operable to initiate removal of the particular cache line from any cache in the distributed multiprocessor computer system;

responding to the request with a negative acknowledgement when a request cannot be serviced;

determining whether the particular cache line is maintained locally in a cache of any of one or more local processors associated with the node controller;

determining that the particular cache line has been modified by the one or more local processors in response to determining that the particular cache line is maintained locally;

initiating removal of the particular cache line from the cache of the one or more local processors in response to determining that the particular cache line is maintained locally and has been modified;

responding to the request with a purge response when the request is an exclusive read only request;

self-invalidating the cache line when the request is a timed read and the cache line is an exclusive read only cache line; and

forwarding the request in response to determining that the particular cache line has not been modified to a memory directory interface of a remote node controller coupled to a memory at a home location of the particular cache line when the cache line is not in the exclusive read only state.

2. The method of claim 1 , further comprising sending an update request to a memory at a home location of the particular cache line to preserve contents of the particular cache line therein.

3. The method of claim 1 , wherein the node controller is coupled with a plurality of local processors.

4. The method of claim 1 , wherein the distributed multi-processor computer system includes a plurality of node controllers.

5. The method of claim 1 , wherein the node controller includes a network interface unit that provides a communication link to a network, a local memory directory interface unit providing a communication link with one or more local memory devices, and a processor interface unit providing a communication link with one or more local processors.

6. The method of claim 1 , including determining that the particular cache line is maintained locally in a cache of any of one or more local processors associated with the node controller using a local directory of the node controller.

7. The method of claim 1 , further comprising:

determining which caches in the computer system maintain a copy of the particular cache line;

forwarding the request to remove the particular cache line from the memory directory interface to only those processors having a cache maintaining the particular cache line.

8. The method of claim 7 , wherein the particular cache line is placed in an unowned state.

9. The method of claim 7 , further comprising:

determining that a remote processor has the particular cache line in a modified state;

removing the particular cache line from the remote processor in response to the request to remove data;

transferring the particular cache line to the memory directory interface of the home location for the particular cache line; and

sending an update request to the memory at the home location in order to preserve the particular cache line.

10. A system for removing data from processor caches in a distributed multi-processor computer system, comprising:

one or more processors operable to communicate over a local bus, the one or more processors operable to issue a request to remove a particular cache line, the request operable to initiate removal of the particular cache line from any cache in the distributed multiprocessor computer system;

a processor interface of a node controller coupled to the local bus and operable to receive the request to remove the particular cache line issued from the one or more processors,

the processor interface operable to respond with a negative acknowledgement when a request cannot be serviced;

the processor interface operable to determine that the particular cache line is located within any cache associated with any of the one or more processors,

the processor interface operable to determine that the particular cache line has been modified,

the processor interface operable to initiate removal of the particular cache line from only an identified processor having a cache maintaining the particular cache line in response to a determination that the particular cache line is maintained locally and the particular cache line has been modified,

the processor interface operable to respond to the request with a purge response when the request is an exclusive read only request;

one of the one or more processors self-invalidating the cache line when the request is a timed read and the cache line is an exclusive read only cache line; and

the processor interface operable to forward the request to remove the particular cache line from caches associated with other node controllers remote from the plurality of processors to a memory directory coupled to a home location for the particular cache line in response to a determination that the particular cache line has not been modified when the cache line is not in the exclusive read only state.

11. The system of claim 10 , wherein the identified processor maintaining the particular cache line as modified is operable to send an update to memory request to a home location for the particular cache line in order to preserve contents of the particular cache line therein.

12. The system of claim 10 , wherein the node controller is coupled with a plurality of local processors.

13. The system of claim 10 , wherein the distributed multi-processor computer system includes a plurality of node controllers.

14. The system of claim 10 , wherein the node controller includes a network interface unit that provides a communication link to a network and a local memory directory interface unit providing a communication link with one or more local memory devices.

15. The system of claim 10 , wherein the processor interface is operable to determine that the particular cache line is maintained locally in a cache of any of one or more local processors associated with the node controller using a local directory of the node controller.

16. The system of claim 10 , further comprising a memory directory associated with a home location for the particular cache line, the memory directory operable to determine which processors in the distributed multi-processor computer system have caches that maintain the particular cache line, the memory directory operable to forward the request to remove the particular cache line only to those processors that have caches maintaining the particular cache line.

17. The system of claim 16 , wherein the processors receiving the request to remove the particular cache line are operable to remove the particular cache line from their respective caches in response to the request to remove the particular cache line.

18. The system of claim 17 , wherein a particular processor receiving the request to remove the particular cache line is operable to determine that the particular cache line maintained in its cache has been modified, the particular processor operable to remove the particular cache line from its cache, the particular processor operable to send to the memory directory an update to memory request for a memory at the home location to preserve the particular cache line in its home memory.

19. A non-transitory computer readable storage medium having embodied thereon a program executable by a processor to remove data from processor caches in a distributed multi-processor computer system, comprising:

receiving at a processor interface of a node controller a request to remove a particular cache line issued by a local processor coupled to the processor interface, the request operable to initiate removal of the particular cache line from any cache in the distributed multiprocessor computer system;

responding to the request with a negative acknowledgement when a request cannot be serviced;

determining whether the particular cache line is maintained locally in a cache of any of one or more local processors associated with the node controller;

determining that the particular cache line has been modified by the one or more local processors in response to determining that the particular cache line is maintained locally;

initiating removal of the particular cache line from the cache of the one or more local processors in response to determining that the particular cache line is maintained locally and has been modified;

responding to the request with a purge response when the request is an exclusive read only request;

self-invalidating the cache line when the request is a timed read and the cache line is an exclusive read only cache line; and

forwarding the request in response to determining that the particular cache line has not been modified to a memory directory interface of a remote node controller coupled to a memory at a home location of the particular cache line when the cache line is not in the exclusive read only state.

20. A non-transitory computer readable storage medium of claim 19 , further comprising:

determining which caches in the computer system maintain a copy of the particular cache line;

forwarding the request to remove the particular cache line from the memory directory interface to only those processors having a cache maintaining the particular cache line.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2017
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 044128/0149 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 040545/0362 →
ORDER. . . AUTHORIZING THE SALE OF ALL OR SUBSTANTIALLY ALL OF THE ASSETS OF THE DEBTORS FREE AND CLEAR OF ALL LIENS, CLAIMS, ENCUMBRANCES, AND INTERESTS. Recorded Jul 25, 2016
From: WELLS FARGO FOOTHILL CAPITAL, INC.
To: SILICON GRAPHICS INC.
Reel/Frame 039461/0418 →
ORDER. . .AUTHORIZING THE SALE OF ALL OR SUBSTANTIALLY ALL OF THE ASSETS OF THE DEBTORS FREE AND CLEAR OF ALL LIENS, CLAIMS, ENCUMBRANCES, AND INTERESTS. Recorded Jul 25, 2016
From: MORGAN STANLEY & CO., INCORPORATED
To: SILICON GRAPHICS, INC.
Reel/Frame 039461/0713 →
SECURITY INTEREST Recorded Mar 13, 2015
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035200/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2014
From: SILICON GRAPHICS, INC.
To: SILICON GRAPHICS INTERNATIONAL, INC.
Reel/Frame 032680/0751 →
MERGER Recorded Apr 15, 2014
From: SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 032680/0920 →
CHANGE OF NAME Recorded Apr 15, 2014
From: SILICON GRAPHICS INTERNATIONAL, INC.
To: SGI INTERNATIONAL, INC.
Reel/Frame 032694/0431 →