US5535116A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Flat cache-only multi-processor architectures
Assignee: STANDFORD UNIVERSITY
•
Filing: 1993-05-18
•
Granted: 1996-07-09
•
Expires: 2013-05-18
Abstract
Abstract A flat directory organization is used to create a flat cache-only multi-processor architecture. Directory memories are uniformly distributed among all the processor nodes. Every valid memory partition has an associated physical address, which is used to determine a statically assigned home node for that partition. The home directory at the home node is the only directory that maintains state information for that partition. The home directory keeps track of which nodes have a copy of a partition and the current state of that partition. The flat directory organization does not depend on any specific interconnection. Any scalable network can be used to interconnect the processing nodes.
Inventors
- 👤 Anoop Gupta
- 👤 Truman Joe
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-02 09:53
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0817; G06F12/0813; G06F2212/00; G06F2212/27; G06F2212/272
Claims Analysis
Total Claims: 44
Claim 1
Independent Claim
170 words
A shared-memory computer system having a plurality of coupled processing nodes, each processing node having a processor for executing software instructions, and a main memory portion of a global shared memory space organized in pages, each page having a plurality of respectively addressed data items, the computer system comprising: a plurality of home processing nodes assigned from the plurality of processing nodes, each data item in the global shared memory space assigned to a home processing node based on the address of the respective data item; for a data item in the global shared memory space, a master processing node from the plurality of processing nodes wherein a current copy of the data item is stored, there being at least one data item in the global shared memory space having its home processing node different from its master processing node; and for each home processing node, a home directory memory located at the home processing node for centralizing directory information for each data item assigned to the home processing node.
Claim 2
Dependent Claim
170 words
A shared-memory computer system having a plurality of coupled processing nodes, each processing node having a processor for executing software instructions, and a main memory portion of a global shared memory space organized in pages, each page having a plurality of respectively addressed data items, the computer system comprising: a plurality of home processing nodes assigned from the plurality of processing nodes, each data item in the global shared memory space assigned to a home processing node based on the address of the respective data item; for a data item in the global shared memory space, a master processing node from the plurality of processing nodes wherein a current copy of the data item is stored, there being at least one data item in the global shared memory space having its home processing node different from its master processing node; and for each home processing node, a home directory memory located at the home processing node for centralizing directory information for each data item assigned to the home processing node.
Claim 3
Dependent Claim
66 words
The computer system of claim 1 wherein the directory information comprises: an indication of the current state of the data item: a pointer to the master processing node for the data item, the master processing node being the exactly one processing node having a master copy of the data item; and a list of sharer nodes, each sharer node having a copy of the data item.
Claim 4
Dependent Claim
21 words
The computer system of claim 1 wherein the assignments of home processing nodes are essentially uniformly distributed among the processing nodes.
Claim 5
Dependent Claim
17 words
The computer system of claim 1 wherein the home processing nodes are assigned by a hashing function.
Claim 6
Dependent Claim
27 words
The computer system of claim 4 wherein the hashing function is based on the high-order bits of the address in the memory space of each data item.
Claim 7
Dependent Claim
22 words
The computer system of claim 1 wherein the main memory portion of the global shared memory space is an attraction memory cache.
Claim 8
Dependent Claim
19 words
The computer system of claim 6 wherein the main attraction memory cache is divided into a plurality of banks.
Claim 9
Dependent Claim
25 words
The computer system of claim 1 wherein the home directory memory controls dissemination of requests for operations on data items centralized in the home directory.
Claim 10
Dependent Claim
17 words
The computer system of claim 1 further comprising a general interconnection network for coupling the processing nodes.
Claim 11
Independent Claim
131 words
A method of maintaining memory coherence in a shared-memory computer system having a plurality of coupled processing nodes, the processing nodes sharing a memory space organized in pages, each page having a plurality of respectively addressed data items, the method comprising the steps of: assigning a home processing node from the plurality of processing nodes for each data item in the memory space based on the address of the respective data item; storing a current copy of a data item in the memory space in a master processing node from the plurality of processing nodes, there being at least one data item in the memory space having its home processing node different from its master processing node; and centralizing directory information for each data item assigned to each home processing node.
Claim 12
Independent Claim
131 words
A method of maintaining memory coherence in a shared-memory computer system having a plurality of coupled processing nodes, the processing nodes sharing a memory space organized in pages, each page having a plurality of respectively addressed data items, the method comprising the steps of: assigning a home processing node from the plurality of processing nodes for each data item in the memory space based on the address of the respective data item; storing a current copy of a data item in the memory space in a master processing node from the plurality of processing nodes, there being at least one data item in the memory space having its home processing node different from its master processing node; and centralizing directory information for each data item assigned to each home processing node.
Claim 13
Dependent Claim
70 words
The method of claim 10 wherein the step of centralizing comprises: maintaining a state for each data item centralized in the home processing node; maintaining a pointer to the master processing node for each data item, the master processing node being the exactly one processing node having a master copy of the data item; and maintaining a sharer list of the processing nodes having a copy of the data item.
Claim 14
Dependent Claim
36 words
The method of claim 10 wherein the step of assigning comprises essentially uniformly distributing the assignments of home processing nodes among the processing nodes based on the address of each data item in the memory space.
Claim 15
Dependent Claim
19 words
The method of claim 12 wherein the step of assigning comprises hashing on the address of the data item.
Claim 16
Dependent Claim
23 words
The method of claim 13 wherein the step of hashing is based on the high-order bits of the address of the data item.
Claim 17
Dependent Claim
41 words
The method of claim 10 further comprising the step of disseminating a request from a requestor processing node to a master processing node, the master processing node being the exactly one processing node having a master copy of the data item.
Claim 18
Dependent Claim
189 words
A shared-memory computer having a plurality of coupled processing nodes, comprising: a) a global shared memory space organized in pages, each page having a plurality of respectively addressed data items; b) a plurality of master processing nodes from the plurality of coupled processing nodes, each master processing node having stored therein a master copy of a data item in the global shared memory space; c) a plurality of home processing nodes from the plurality of coupled processing nodes, each home processing node including: a data processor for executing software instructions; a main memory cache to the global shared memory space; a plurality of assigned data items, each assigned data item assigned to the assigned home processing node based on the address of the respective data item; and a directory memory for centralizing directory information for each data item assigned to the assigned home processing node, the directory information including an indication of the master processing node for the respective data item; d) at least one data item having its home processing node differing from its master processing node; and e) a general interconnection network for coupling the processing nodes.
Claim 19
Dependent Claim
189 words
A shared-memory computer having a plurality of coupled processing nodes, comprising: a) a global shared memory space organized in pages, each page having a plurality of respectively addressed data items; b) a plurality of master processing nodes from the plurality of coupled processing nodes, each master processing node having stored therein a master copy of a data item in the global shared memory space; c) a plurality of home processing nodes from the plurality of coupled processing nodes, each home processing node including: a data processor for executing software instructions; a main memory cache to the global shared memory space; a plurality of assigned data items, each assigned data item assigned to the assigned home processing node based on the address of the respective data item; and a directory memory for centralizing directory information for each data item assigned to the assigned home processing node, the directory information including an indication of the master processing node for the respective data item; d) at least one data item having its home processing node differing from its master processing node; and e) a general interconnection network for coupling the processing nodes.
Claim 20
Dependent Claim
72 words
The computer of claim 16 wherein the directory memory comprises: a state memory for maintaining the current state of each data item assigned to the processing node; a pointer to the master processing node for each data item, the master processing node being the exactly one processing node having a master copy of the data item; and a list of sharer nodes, each sharer node having a copy of the data item.
Claim 21
Dependent Claim
16 words
The computer of claim 16 wherein the main memory cache is organized as an attraction memory.
Claim 22
Dependent Claim
15 words
The computer of claim 18 wherein the attraction memory is not backed-up by physical memory.
Claim 23
Dependent Claim
18 words
The computer of claim 16 wherein there is one home processing node assigned for each addressed data item.
Claim 24
Independent Claim
116 words
A method of accessing a data item from a memory page of data items, the data item stored external to a local processing node of a shared-memory computer system having a plurality of processing nodes, comprising the steps of: transmitting a first access request from the local processing node to a home processing node, the home processing node being statically assigned to the data item; in the home processing node, determining a master processing node having a current copy of the data item; transmitting a second access request from the home processing node to the master processing node; and transmitting a copy of the data item from the master processing node to the local processing node.
Claim 25
Independent Claim
116 words
A method of accessing a data item from a memory page of data items, the data item stored external to a local processing node of a shared-memory computer system having a plurality of processing nodes, comprising the steps of: transmitting a first access request from the local processing node to a home processing node, the home processing node being statically assigned to the data item; in the home processing node, determining a master processing node having a current copy of the data item; transmitting a second access request from the home processing node to the master processing node; and transmitting a copy of the data item from the master processing node to the local processing node.
Claim 26
Dependent Claim
47 words
The method of claim 21 wherein the first access request is a read access request and further comprising the step of adding the local processing node to a list of processing nodes having read access to the data item, the list maintained in the home processing node.
Claim 27
Dependent Claim
59 words
The method of claim 21 wherein the first access request is a write access request and further comprising the steps of: invalidating shared copies of the data item, the shared copies of the data item being on at least one processing node other than the local processing node; and designating the local processing node as the master processing node.
Claim 28
Dependent Claim
23 words
The method of claim 23 wherein the step of invalidating comprises invalidated the copy of the data item on the master processing node.
Claim 29
Dependent Claim
34 words
The method of claim 21 further comprising a step of transmitting an acknowledgement message from the local processing node to the home processing node to acknowledge receipt of the copy of the data item.
Claim 30
Dependent Claim
18 words
The method of claim 21 wherein the second access request is a duplicate of the first access request.
Claim 31
Dependent Claim
127 words
A shared-memory computer system having a plurality of coupled processing nodes, each processing node having a processor for executing software instructions, a main memory portion of a global shared memory space organized in pages, each page having a plurality of respectively addressed data items, the computer system comprising: a plurality of home processing nodes assigned from the plurality of processing nodes, each data item assigned to a home processing node by a hashing function based on the address of each data item; and for each home processing node, a home directory memory located at the home processing node for centralizing directory information for each data item assigned to the home processing node, each data item residing in a master processing node from the plurality of processing nodes.
Claim 32
Dependent Claim
127 words
A shared-memory computer system having a plurality of coupled processing nodes, each processing node having a processor for executing software instructions, a main memory portion of a global shared memory space organized in pages, each page having a plurality of respectively addressed data items, the computer system comprising: a plurality of home processing nodes assigned from the plurality of processing nodes, each data item assigned to a home processing node by a hashing function based on the address of each data item; and for each home processing node, a home directory memory located at the home processing node for centralizing directory information for each data item assigned to the home processing node, each data item residing in a master processing node from the plurality of processing nodes.
Claim 33
Dependent Claim
66 words
The computer system of claim 27 wherein the directory information comprises: an indication of the current state of the data item: a pointer to the master processing node for the data item, the master processing node being the exactly one processing node having a master copy of the data item; and a list of sharer nodes, each sharer node having a copy of the data item.
Claim 34
Dependent Claim
21 words
The computer system of claim 27 wherein the assignments of home processing nodes are essentially uniformly distributed among the processing nodes.
Claim 35
Dependent Claim
32 words
The computer system of claim 27 wherein there is at least one data item in the global shared memory space which has its home processing node different from its master processing node.
Claim 36
Dependent Claim
22 words
The computer system of claim 27 wherein the main memory portion of the global shared memory space is an attraction memory cache.
Claim 37
Dependent Claim
25 words
The computer system of claim 27 wherein the home directory memory controls dissemination of requests for operations on data items centralized in the home directory.
Claim 38
Dependent Claim
17 words
The computer system of claim 27 further comprising a general interconnection network for coupling the processing nodes.
Claim 39
Independent Claim
104 words
A method of maintaining memory coherence in a shared-memory computer system having a plurality of coupled processing nodes, the processing nodes sharing a memory space organized in pages, each page having a plurality of respectively addressed data items, the method comprising the steps of: assigning a home processing node from the plurality of processing nodes for each data item in the memory space by a hashing function based on the address of each data item; and centralizing directory information for each data item assigned to each home processing node, each data item residing in a master processing node from the plurality of processing nodes.
Claim 40
Independent Claim
104 words
A method of maintaining memory coherence in a shared-memory computer system having a plurality of coupled processing nodes, the processing nodes sharing a memory space organized in pages, each page having a plurality of respectively addressed data items, the method comprising the steps of: assigning a home processing node from the plurality of processing nodes for each data item in the memory space by a hashing function based on the address of each data item; and centralizing directory information for each data item assigned to each home processing node, each data item residing in a master processing node from the plurality of processing nodes.
Claim 41
Dependent Claim
70 words
The method of claim 34 wherein the step of centralizing comprises: maintaining a state for each data item centralized in the home processing node; maintaining a pointer to the master processing node for each data item, the master processing node being the exactly one processing node having a master copy of the data item; and maintaining a sharer list of the processing nodes having a copy of the data item.
Claim 42
Dependent Claim
24 words
The method of claim 34 wherein the step of assigning comprises essentially uniformly distributing the assignments of home processing nodes among the processing nodes.
Claim 43
Dependent Claim
27 words
The method of claim 34 further comprising the step of providing at least one data item having its home processing node different from its master processing node.
Claim 44
Dependent Claim
41 words
The method of claim 34 further comprising the step of disseminating a request from a requestor processing node to a master processing node, the master processing node being the exactly one processing node having a master copy of the data item.
References Cited (Backward Citations)
US4975833A
Cited
US5151989A
Cited
US5055999A
Cited
US5179702A
Cited
US5202987A
Cited
US5297269A
Cited
US5191578A
Cited
US5394555A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-07-09 | 2000-01-08 | 2000-07-09 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-07-09 | 2004-01-08 | 2004-07-09 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-07-09 | 2008-01-08 | 2008-07-09 | $7700.00 | Window Closed / Lapsed |