IP Library Granted Patent US 7,162,589
Granted Patent B2
US 7,162,589 · App. 10/321,078 · Granted Jan 9, 2007

Methods and apparatus for canceling a memory data fetch

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 7,162,589
App. No.
10/321,078
Granted
Jan 9, 2007
Kind
B2
Abstract

According to the present invention, methods and apparatus are provided for increasing the efficiency of data access in a multiple processor, multiple cluster system. Mechanisms for transmitting memory cancels to memory controllers in the various clusters of a multiple cluster system are provided. In one example, memory cancels are transmitted between clusters when it is determined that a memory line associated with a probe is dirty. The memory cancel directs the memory controller to no longer proceed with a data fetch from main memory. In another example, memory cancels are transmitted at a home cluster based on information in a coherence directory in order to more quickly end a data fetch.

Claims (43)

1. A computer system, comprising:

a home cluster including a first plurality of processors and a home cache coherence controller, the first plurality of processors and the home cache coherence controller interconnected in a point-to-point architecture;

a remote cluster including a second plurality of processors and a remote cache coherence controller, the second plurality of processors and the remote cache coherence controller interconnected in a point-to-point architecture;

wherein the remote cluster cache coherence controller is configured to receive a probe request associated with a memory line and send a memory cancel to the home cluster if a probed memory line associated with one of the second plurality of processors is dirty, wherein the memory cancel prevents an extraneous data fetch by a home cluster memory controller.

2. The computer system of claim 1 , wherein the memory line is dirty if the memory line is in the modified or owned state.

3. The computer system of claim 1 , wherein the memory cancel directs the home cluster memory controller to cancel a data fetch from main memory.

4. The computer system of claim 1 , wherein the probed memory line is determined to be dirty by the remote cluster.

5. A method for probing a system, the method comprising:

receiving a probe request associated with a memory line at a remote cluster, the remote cluster including a plurality of processors and a remote cache coherence controller, the plurality of processors and the remote cache coherence controller interconnected in a point-to-point architecture;

determining if the probed memory line associated with one of the plurality of processors is dirty; and

sending a memory cancel to a home cluster including a home cluster cache coherence controller, wherein the memory cancel prevents an extraneous data fetch by a home cluster memory controller.

6. The method of claim 5 , wherein the memory line is dirty if the memory line is in the modified or owned state.

7. The method of claim 5 , wherein the memory cancel directs the home cluster memory controller to cancel a data fetch from main memory.

8. The method of claim 5 , wherein the probed memory line is determined to be dirty by the remote cluster.

9. A cache coherence controller, the cache coherence controller comprising:

means for receiving a probe request associated with a memory line at a remote cluster cache coherence controller, the remote cluster including a plurality of processors and the remote cache coherence controller, the plurality of processors and the remote cache coherence controller interconnected in a point-to-point architecture;

means for determining if the probed memory line associated with one of the plurality of processors is dirty; and

means for sending a memory cancel to a home cluster including a home cluster cache coherence controller, wherein the memory cancel prevents an extraneous data fetch by a home cluster memory controller.

10. A computer system, comprising:

a home cluster including a first plurality of processors and a home cache coherence controller, the first plurality of processors and the home cache coherence controller interconnected in a point-to-point architecture;

a remote cluster including a second plurality of processors and a remote cache coherence controller, the second plurality of processors and the remote cache coherence controller interconnected in a point-to-point architecture;

wherein the home cluster cache coherence controller is configured to forward a probe to the remote cluster and send a memory cancel to a home cluster memory controller if the home cluster cache coherence controller determines that the memory line is dirty, wherein the memory cancel prevents an extraneous data fetch by a home cluster memory controller.

11. The computer system of claim 10 , wherein the memory line is dirty if the memory line is in the modified or owned state.

12. The computer system of claim 10 , wherein the home cluster cache coherence controller determines that the memory line associated with the probe in the remote cluster is dirty by referencing a coherence directory.

13. The computer system of claim 10 , wherein the home cluster cache coherence controller forwards a probe with a memory cancel indicator to the remote cluster.

14. The computer system of claim 13 , wherein the home cluster cache coherence controller further tracks the condition that no memory cancel will be received from the remote cluster.

15. The computer system of claim 13 , wherein the home cluster coherence controller sets the cancel bit in the read response from the remote cluster based on knowledge of a previously generated cancel response.

16. A method for probing remote nodes, the method comprising:

determining at a home cluster if the memory line associated with a request is dirty, a home cluster including a first plurality of processors and a home cache coherence controller, the first plurality of processors and the home cache coherence controller interconnected in a point-to-point architecture;

forwarding a probe to a remote cluster, the remote cluster including a second plurality of processors and a remote cache coherence controller, the second plurality of processors and the remote cache coherence controller interconnected in a point-to-point architecture; and

sending a memory cancel to the home cluster memory controller before a response to the probe is received from the remote cluster, wherein the memory cancel prevents an extraneous data fetch by a home cluster memory controller.

17. The method of claim 16 , wherein the memory line is dirty if the memory line is in the modified or owned state.

18. The method of claim 16 , wherein the home cluster cache coherence controller determines that the memory line associated with the probe in the remote cluster is dirty by referencing a coherence directory.

19. The method of claim 16 , wherein the home cluster cache coherence controller forwards a probe with a memory cancel indicator to the remote cluster.

20. The method of claim 19 , wherein the home cluster cache coherence controller further tracks the condition that no memory cancel will be received from the remote cluster.

21. The method of claim 19 , wherein the home cluster coherence controller sets the cancel bit in the read response from the remote cluster based on knowledge of a previously generated cancel response.

22. The method of claim 16 , wherein sending the memory cancel to the home cluster memory controller before a response is received from the remote cluster increases the likelihood that a memory fetch will not complete.

23. The method of claim 22 , wherein the memory fetch includes acquiring invalid data from memory and forwarding the invalid data to a home cluster processor originating the probe request.

24. The method of claim 23 , wherein preventing the unnecessary memory fetch of invalid data saves system resources.

25. A multiple processor system, comprising:

means for determining at a home cluster if the memory line associated with a request is dirty, a home cluster including a first plurality of processors and a home cache coherence controller, the first plurality of processors and the home cache coherence controller interconnected in a point-to-point architecture;

means for forwarding a probe to a remote cluster, the remote cluster including a second plurality of processors and a remote cache coherence controller, the second plurality of processors and the remote cache coherence controller interconnected in a point-to-point architecture; and

means for sending a memory cancel to the home cluster memory controller before a response to the probe is received from the remote cluster, wherein the memory cancel prevents an extraneous data fetch by a borne cluster memory controller.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2019
From: U.S. BANK NATIONAL ASSOCIATION, SOLELY AS NOTES COLLATERAL AGENT
To: SANMINA CORPORATION; HADCO CORPORATION; HADCO SANTA CLARA; SCI TECHNOLOGY; SENSORWISE, INC.
Reel/Frame 049378/0927 →
SECURITY INTEREST Recorded Aug 3, 2018
From: SANMINA CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, NOT IN ITS INDIVIDUAL CAPACITY BUT SOLELY AS NOTES COLLATERAL AGENT
Reel/Frame 046797/0063 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2018
From: MEMORY INTEGRITY, LLC
To: SANMINA CORPORATION
Reel/Frame 046249/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2013
From: SANMINA CORPORATION
To: MEMORY INTEGRITY, LLC
Reel/Frame 030585/0980 →
MERGER Recorded Nov 28, 2012
From: SANMINA-SCI CORPORATION
To: SANMINA CORPORATION
Reel/Frame 029368/0472 →
MERGER Recorded Jul 27, 2012
From: NEWISYS, INC.
To: SANMINA-SCI CORPORATION
Reel/Frame 028652/0891 →
RELEASE OF SECURITY INTEREST Recorded Nov 25, 2008
From: CITIBANK, N.A.
To: HADCO SANTA CLARA, INC.; HADCO CORPORATION; SCIMEX, INC.; SANMINA-SCI SYSTEMS HOLDINGS, INC.; SCI TECHNOLOGY, INC.; SANMINA-SCI CORPORATION
Reel/Frame 021890/0312 →
RELEASE OF SECURITY INTEREST Recorded May 21, 2006
From: U.S. BANK NATIONAL ASSOCIATION (AS SUCCESSOR TO STATE STREET BANK AND TRUST COMPANY OF CALIFORNIA, N.A.), AS COLLATERAL TRUSTEE
To: SANMINA-SCI CORPORATION
Reel/Frame 017646/0661 →
PLEDGE AND SECURITY AGREEMENT Recorded Jan 3, 2005
From: SANMINA-SCI CORPORATION; HADCO CORPORATION; HADCO SANTA CLARA, INC.; SCI TECHNOLOGY, INC.; VIKING INTERWORKS INC.; COMPATIBLE MEMORY, INC.; SCI SYSTEMS, INC.; SANMINA-SCI SYSTEMS (ALABAMA) INC.; SANMINA-SCI SYSTEMS HOLDINGS, INC.; INTERAGENCY, INC.; SANMINA-SCI SYSTEMS ENCLOSURES (DENTON) INC.; SCIMEX, INC.; NEWISYS, INC.; SANMINA-SCI ENCLOSURES USA INC.; SCI PLANT NO. 5, L.L.C.; SCI PLANT NO. 22, L.L.C.; SANMINA GENERAL, L.L.C.; SANMINA LIMITED, L.L.C.; SANMINA-SCI, LLC; SANMINA TEXAS, L.P.
To: CITIBANK, N.A.
Reel/Frame 016097/0729 →
PLEDGE SUPPLEMENT Recorded Oct 12, 2004
From: VIKING INTERWORKS INC.; HADCO SANTA CLARA, INC.; SCI SYSTEMS, INC.; NEWISYS, INC.; HADCO CORPORATION; SANMINA-SCI CORPORATION; SCI TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS SUCCESSOR CORPORATE TRUSTEE TO STATE STREET BANK AND TRUST COMPANY, N.A.
Reel/Frame 015841/0960 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2002
From: GLASCO, DAVID B.; KOTA, RAJESH
To: NEWISYS, INC.
Reel/Frame 013587/0952 →