IP Library Granted Patent US 7,069,306
Granted Patent B1
US 7,069,306 · App. 09/910,591 · Granted Jun 27, 2006

Providing shared and non-shared access to memory in a system with plural processor coherence domains

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,069,306
App. No.
09/910,591
Granted
Jun 27, 2006
Kind
B1
Abstract

A method and system for managing memory in a multiprocessor system includes defining the plurality of processor coherence domains within a system coherence domain of the multiprocessor system. The processor coherence domains each include a plurality of processors and a processor memory. Shared access to data in the processor memory of each processor coherence domain is provided only to elements of the multiprocessor system within the processor coherence domain. Non-shared access to data in the processor memory of each processor coherence domain is provided to elements of the multiprocessor system within and outside of the processor coherence domain.

Claims (67)

1. A method for managing memory in a multiprocessor system, comprising:

defining a plurality of processor coherence domains within a system coherence domain of a multiprocessor system, the processor coherence domains each including a plurality of processors and a processor memory;

providing shared access to data in the processor memory of each processor coherence domain only to elements of the multiprocessor system within the processor coherence domain;

providing non-shared access to data in the processor memory of each processor coherence domain to elements of the multiprocessor system within and outside of the processor coherence domain;

defining a plurality of partition coherence domains within the system coherence domain of the multiprocessor system, each partition coherence domain including at least one processor coherence domain, a router node, and a peer input/output node, each partition coherence domain providing memory coherence for its respective processor coherence domain, router node, and peer input/output node.

2. The method of claim 1 , the non-shared access comprising read-only access.

3. The method of claim 1 , the non-shared access comprising exclusive access.

4. The method of claim 1 , the non-shared access comprising transient access.

5. A method for managing memory in a multiprocessor system, comprising:

defining a plurality of processor coherence domains within a system coherence domain of a multiprocessor system, the processor coherence domains each including a plurality of processors and a processor memory;

providing shared access to data in the processor memory of each processor coherence domain only to elements of the multiprocessor system within the processor coherence domain; and

providing non-shared access to data in the processor memory of each processor coherence domain to elements of the multiprocessor system within and outside of the processor coherence domain;

providing a limited sharing vector for each processor memory, the limited sharing vector operable to identify only a portion of processors in the multiprocessor system.

6. The method of claim 5 , the limited sharing vectors each operable to identify processors only within their processor coherence domain.

7. The method of claim 5 , wherein each sharing vector comprises 32 bits and the multiprocessor system comprises more than 512 processors.

8. A method for managing memory in a multiprocessor system, comprising:

defining a plurality of processor coherence domains within a system coherence domain of a multiprocessor system, the processor coherence domains each including a plurality of processors and a processor memory;

providing shared access to data in the processor memory of each processor coherence domain only to elements of the multiprocessor system within the processor coherence domain; and

providing non-shared access to data in the processor memory of each processor coherence domain to elements of the multiprocessor system within and outside of the processor coherence domain;

determining whether an element requesting shared access to a processor memory is outside of the processor coherence domain of the processor memory; and

denying shared access if the element is outside of the processor coherence domain.

9. The method of claim 8 , wherein each processor and processor memory comprises an identifier having a set of most significant bits identifying the processor coherence domain of the element, further comprising determining whether the element requesting shared access is outside of the processor coherence domain based on the most significant bits of the element.

10. The method of claim 9 , further comprising determining whether the element requesting shared access is outside of the processor coherence domain of the processor memory by comparing the most significant bits of the identifier for the element to the most significant bits of the identifier for the processor memory.

11. A multiprocessor system for managing memory among a plurality of processors, comprising:

a system coherence domain;

plurality of processor coherence domains defined within the system coherence domain;

wherein the processor coherence domains each include a plurality of processors and a processor memory;

wherein the processor coherence domains are each operable to provide shared access to data in their processor memory only to elements of the multiprocessor system within the processor coherence domain and operable to provide non-shared access to data in their processor memory to elements within and outside of the processor coherence domain;

a plurality of partition coherence domains within the system coherence domain of the multiprocessor system, each partition coherence domain including at least one processor coherence domain, a router node, and a peer input/output node, each partition coherence domain providing memory coherence for its respective processor coherence domain, router node, and peer input/output node.

12. The multiprocessor system of claim 11 , the non-shared access comprising read-only access.

13. The multiprocessor system of claim 11 , the non-shared access comprising exclusive access.

14. The multiprocessor system of claim 11 , the non-shared access comprising transient access.

15. The multiprocessor system of claim 11 , the processor memory comprising a plurality of discrete memories.

16. A multiprocessor system for managing memory among a plurality of processors, comprising:

a system coherence domain;

plurality of processor coherence domains defined within the system coherence domain;

wherein the processor coherence domains each include a plurality of processors and a processor memory; and

wherein the processor coherence domains are each operable to provide shared access to data in their processor memory only to elements of the multiprocessor system within the processor coherence domain and operable to provide non-shared access to data in their processor memory to elements within and outside of the processor coherence domain;

each processor memory further comprising:

a limited sharing vector for each data piece within the processor memory; and

the limited sharing vector operable to identity only a portion of processors in the multiprocessor system.

17. The multiprocessor system of claim 16 , the limited sharing vectors each operable to identify only processors within their processor coherence domain.

18. The multiprocessor system of claim 16 , wherein, the sharing each sharing vector comprises 32 bits and the multiprocessor system comprises more than 512 processors.

19. A multiprocessor system for managing memory among a plurality of processors, comprising:

a system coherence domain;

plurality of processor coherence domains defined within the system coherence domain;

wherein the processor coherence domains each include a plurality of processors and a processor memory; and

wherein the processor coherence domains are each operable to provide shared access to data in their processor memory only to elements of the multiprocessor system within the processor coherence domain and operable to provide non-shared access to data in their processor memory to elements within and outside of the processor coherence domain;

each processor memory operable to determine whether an element requesting shared access is outside of the processor coherence domain of the processor memory and to deny shared access if the element is outside of the processor coherence domain.

20. The multiprocessor system of claim 19 , wherein each element comprises an identifier and the processing coherence domain of each element is defined by a set of most significant bits of the identifier for the element, the processor memory further operable to determine whether an element requesting shared access is outside of the processor coherence domain based on the most significant bits of the element.

21. The multiprocessor system of claim 20 , further comprising the processor memory operable to determine whether the element requesting shared access is outside of the processing coherence domain by comparing the most significant bits of the identifier for the processor memory to the most significant bits of the identifier for the element.

22. A method for managing processor memory in a scalable processor system, comprising:

receiving a request from an element for shared access to data in a processor memory;

determining whether the element is outside of a processor coherence domain of the processor memory; and

denying the request for shared access if the element is outside of the processor coherence domain of the processor memory;

granting non-shared access to an element regardless of whether the element is within or outside of the processor coherence domain of the processor memory.

23. The method of claim 22 , further comprising:

including an identifier for the element in the request for shared access;

determining whether the element is outside of the processor coherence domain of the processor memory based on the identifier in the request.

24. The method of claim 23 , determining whether the element is outside of the processor coherence domain of the processor memory by comparing at least a portion of the identifier in the request to at least a portion of an identifier for the processor memory.

25. The method of claim 24 , wherein the portion comprises a set of most significant bits.

26. A system for managing processor memory in a scalable processor system, comprising:

a computer processable medium; and

logic stored on the computer processable medium, the logic operable to receive a request from an element for shared access to data in a processor memory, determine whether the element is outside of a processor coherence domain of the processor memory, and deny the request for shared access if the element is outside of the processor coherence domain of the processor memory, the logic further operable to grant non-shared access to an element regardless of whether the element is within or outside of the processor coherence domain of the processor memory.

27. The method of claim 26 , wherein the request for shared access includes an identifier for the element, the logic further operable to determine whether the element is outside of the processor coherence domain of the processor memory based on the identifier in the request.

28. The system of claim 27 , the logic further operable to determine whether the element is outside of the processor coherence domain of the processor memory by comparing at least a portion of the identifier in the request to at least a portion of an identifier for the processor memory.

29. The system of claim 28 , wherein the portion comprises a set of most significant bits.

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 17, 2014
From: SILICON GRAPHICS, INC.
To: SILICON GRAPHICS INTERNATIONAL, INC.
Reel/Frame 032704/0629 →
MERGER Recorded Apr 17, 2014
From: SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 032704/0807 →
CHANGE OF NAME Recorded Apr 17, 2014
From: SILICON GRAPHICS INTERNATIONAL, INC.
To: SGI INTERNATIONAL, INC.
Reel/Frame 032712/0754 →