Claims
- 1. A computer system comprising:a plurality of processing nodes; a hierarchical bus system comprising a plurality of address partitions; and a shared memory system comprising a plurality of physical memory locations wherein said plurality of physical memory location are either located in a node of said plurality of processing nodes, distributed in equal proportions among nodes of said plurality of processing nodes, or distributed in unequal proportions among at least two nodes of said plurality of processing nodes, wherein: said physical memory locations of said shared memory system are mapped to said plurality of address partitions of said hierarchy bus system, whereby each of said plurality of physical memory locations of said shared memory system are addressed by a plurality of address aliases, and wherein properties of said address partitions dictate whether a transaction in a transaction originating node of said plurality of nodes is visible to the remaining nodes of said plurality of nodes.
- 2. The computer system of claim 1 wherein said plurality of address partitions of said hierarchical bus system comprises: a symmetric multiprocessor (SMP) space, a local space, a remote read space, and a remote space.
- 3. The computer system of claim 2 wherein said physical memory locations are configured as a local memory and a global memory, wherein said local memory is adapted to store data local to a node of said processing nodes and global memory is adapted to store data global to said node of said processing nodes.
- 4. The computer system as recited in claim 3 wherein an access for data initiated in a first node of said plurality of processing nodes to either a local memory location of a second node of said plurality of processing nodes or a global memory location in said first node of said processing nodes is configured to use said address aliases included in said symmetric multiprocessor space, wherein said address aliases are broadcast globally on said hierarchy bus system.
- 5. The computer system as recited in claim 3 wherein an access for data initiated in a first node of said plurality of processing nodes to a local memory location of said first node of said processing nodes is configured to use said address aliases included in said local space, wherein said address aliases are broadcast locally within said first node.
- 6. The computer system as recited in claim 3 wherein an access to read data initiated in a first node of said plurality of processing nodes to a local memory location of a second node of said processing nodes is configured to use said address aliases included in said remote read space, wherein said address aliases are broadcast globally on said hierarchy bus system.
- 7. The computer system as recited in claim 3 wherein an access either to read or to write data initiated in a first node of said plurality of processing nodes to a local memory location of a second node of said processing nodes is configured to use said address aliases included in said remote space, wherein said address aliases are broadcast globally on said hierarchy bus system.
- 8. The computer system of claim 1, wherein said address partitions of said hierarchy bus system include:a global partition, wherein said transaction is visible to said remaining nodes; and a local partition, wherein said transaction is only visible to said transaction originating node.
- 9. The computer system of claim 8, wherein:said global partition is used by a first accessing node of said plurality of processing nodes to access a first portion of said physical memory locations addressed by said plurality of address aliases, wherein said portion of said physical memory locations are not allocated to said first accessing node of said processing nodes; and said local partition is used by a second accessing node of said plurality of processing nodes to access a second portion of said physical memory locations addressed by said plurality of address aliases, wherein said second portion of said physical memory locations are allocated to said second accessing node.
- 10. The computer system of claim 8, wherein if a node of said plurality of processing nodes attempts to use said local partition to access a first memory location addressed by said plurality of address aliases, wherein said first memory location is not allocated to said node, data stored in said first memory location is moved to a second memory location addressed by said plurality of address aliases, wherein said second memory location is allocated to said node.
- 11. A distributed shared memory system comprising:a physical memory including a plurality of distributed memory locations, wherein said distributed memory locations are distributed among a plurality of nodes, said distributed memory locations are configured to be accessible by any node of said plurality of nodes, and said plurality of nodes are connected through a shared bus; wherein: said distributed memory locations of said physical memory are mapped to a plurality of address partitions, whereby each of said distributed memory locations are addressed by a plurality of address aliases, and wherein properties of said address partitions dictate whether a transaction in a transaction originating node of said plurality of nodes is visible to the remaining nodes of said plurality of nodes.
- 12. The distributed shared memory system of claim 11, wherein said address partitions include:a global partition, wherein said transaction is visible to said remaining nodes; and a local partition, wherein said transaction is only visible to said transaction originating node.
- 13. The distributed shared memory system of claim 12, wherein:said global partition is used by a first accessing node of said plurality of nodes to access a first portion of said distributed memory locations addressed by said plurality of address aliases, wherein said first portion of said distributed memory locations are not allocated to said first accessing node; and said local partition is used by a second accessing node of said plurality of nodes to access a second portion of said distributed memory locations addressed by said plurality of address aliases, wherein said second portion of said distributed memory locations are allocated to said second accessing node.
- 14. The distributed shared memory system of claim 12, wherein if a node of said plurality of nodes attempts to use said local partition to access a first distributed memory location addressed by said plurality of address aliases, wherein said first distributed memory location is not allocated to said node, data stored in said first distributed location is moved to a second distributed memory location addressed by said plurality of address aliases, wherein said second distributed memory location is allocated to said node.
- 15. The distributed shared memory system of claim 11 wherein said distributed memory locations are distributed in either an equal or unequal proportion among said plurality of nodes.
- 16. A shared memory system comprising:a physical memory including a plurality of memory locations, wherein said memory locations are allocated to a first node of a plurality of nodes, and said memory locations are configured to be accessed by said plurality of nodes; wherein: said physical memory locations are mapped to a plurality of address partitions, whereby each of said physical memory locations are addressed by a plurality of address aliases, and wherein properties of said address partitions dictate whether a transaction in a transaction originating node of said plurality of nodes is visible to the remaining nodes of said plurality of nodes.
- 17. The shared memory system of claim 16, wherein said address partitions include:a global partition, wherein said transaction is visible to said remaining nodes; and a local partition, wherein said transaction is only visible to said transaction originating node.
- 18. The shared memory system of claim 17, wherein:said global partition is used by a first accessing node of said plurality of said nodes to access a first plurality of physical memory locations of said physical memory locations addressed by said plurality of address aliases, wherein said first plurality of physical memory locations are not allocated to said first accessing node; and said local partition is used by a second accessing node of said plurality of said nodes to access said physical memory locations addressed by said plurality of address aliases, wherein said physical memory locations are allocated to said second accessing node.
- 19. The shared memory system of claim 16, wherein if a node of said plurality of said nodes attempts to use said local partition to access a first memory location addressed by said plurality of address aliases, wherein said first memory location is not allocated to said node, data stored in said memory location is moved to a second memory location addressed by said plurality of address aliases, wherein said second memory location is allocated to said node.
Parent Case Info
This is a divisional of U.S. application Ser. No. 08/674,688, filed Jul. 2, 1996, and now U.S. Pat. No. 5,862,357, entitled “Shared Memory System for Symmetric Microprocessor Systems”, issued Jan. 19, 1999.
US Referenced Citations (1)
Number |
Name |
Date |
Kind |
5117350 |
Parrish et al. |
May 1992 |
|
Foreign Referenced Citations (2)
Number |
Date |
Country |
0 387 644 A1 |
Sep 1990 |
EP |
0 602 772 A1 |
Jun 1994 |
EP |
Non-Patent Literature Citations (4)
Entry |
Savo Savic et al., “Improved RMS for the PC Environment,” XP 000590918, Microprocessors and Microsystems, vol. 19, No. 10, Dec. 1, 1995, pp. 609-619. |
Lars Philipson, “A Communication for a Multiprocessor Computer with Distributed Global Memory,” XP 000212269, 10th Annual Intl. Conf. On Computer Architecture, Jun. 13, 1983, pp. 334-340. |
R. Jerome Folmar, “Distributed Memory Network: An 8 Gigabit Fiber Optic Tightly Coupled System,” XP 000212288, Proceedings of IEEE 1985 National Aerospace and Electronics Conference Naecon 1985, May 20, 1985, pp. 91-94. |
International Search Report for EP 97 30 4680 mailed on Jan. 11, 1999. |