Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
First Claim
1. A multiprocessing system comprising:
- a plurality of processing subsystems, each including a cache memory;
a memory subsystem including a directory;
a network interconnecting said plurality of processing subsystems and said memory subsystem;
a coherency mode storage unit configured to store an indication to control whether a given coherency request is transmitted through said network according to a directory protocol or a broadcast protocol.
3 Assignments
0 Petitions
Accused Products
Abstract
A multiprocessor computer system is configured to selectively transmit address transactions using either a broadcast mode or a point-to-point mode. Depending on the mode of transmission selected, either a directory-based coherency protocol or a broadcast snooping coherency protocol is implemented to maintain coherency within the system. A computing node is formed by a group of clients which share a common address and data network. The address network is configured to determine whether a particular transaction is to be conveyed in broadcast mode or point-to-point mode. In one embodiment, the address network includes a mode table with entries which are configurable to indicate transmission modes corresponding to different regions of the address space within the node. Upon receiving a coherence request transaction, the address network may then access the table in order to determine the transmission mode, broadcast or point-to-point, which corresponds to the received transaction. In a further embodiment, network congestion may be monitored and transmission modes adjusted accordingly. For example, when network utilization is high, the number of transactions which are broadcast may be reduced. Alternatively, when network utilization is low, the number of broadcasts may be increased to take advantage of available bandwidth.
48 Citations
24 Claims
-
1. A multiprocessing system comprising:
-
a plurality of processing subsystems, each including a cache memory;
a memory subsystem including a directory;
a network interconnecting said plurality of processing subsystems and said memory subsystem;
a coherency mode storage unit configured to store an indication to control whether a given coherency request is transmitted through said network according to a directory protocol or a broadcast protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A multiprocessing system comprising:
-
a plurality of processing subsystems, each including a cache memory;
a memory subsystem including a directory;
a network interconnecting said plurality of processing subsystems and said memory subsystem;
wherein ownership transitions for a first set of cache lines are governed according to a sequence of actions within said network;
and wherein ownership transitions for a second set of cache lines are governed according to a sequence of actions within said directory. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A multiprocessing system comprising:
-
a memory subsystem including a directory, the directory including a plurality of directory entries corresponding to memory locations mapped to said memory device;
a plurality of processing subsystems each including a cache for storing blocks corresponding to selected ones of said memory locations;
a network interconnecting said plurality of processing subsystems and said memory subsystem;
a coherency mode storage unit configured to store an indication of whether a given block is a point-to-point mode block or a broadcast mode block;
wherein the network is configured to route a coherency request for said given block initiated by one of said processing subsystems to said directory in response to said indication indicating said given block is a point-to-point mode block, and wherein said network is configured to broadcast said coherency request to said memory subsystem and to each of said plurality of processing subsystems in response to said indication indicating said given block is a broadcast mode block.
-
-
22. A multiprocessing system comprising:
-
a plurality of processing subsystems, each including a cache memory;
a memory subsystem including a directory;
a network interconnecting said plurality of processing subsystems and said memory subsystem;
wherein transitions of access rights for a first set of cache lines are governed according to a sequence of actions within said network;
and wherein transitions of access rights for a second set of cache lines are governed according to a sequence of actions within said directory.
-
-
23. A multiprocessing system comprising:
-
a plurality of processing subsystems, each including a cache memory;
a memory subsystem;
a network interconnecting said plurality of processing subsystems and said memory subsystem;
a control unit configured to monitor bandwidth utilization of said network and to control whether a given coherency request is transmitted through said network according to a directory protocol or a broadcast protocol depending upon the bandwidth utilization.
-
-
24. A method of operating a multiprocessing system including a plurality of processing subsystems and a memory subsystem interconnected through a network, the method comprising:
-
storing an indication to control whether a given coherency request is transmitted through said network according to a directory protocol or a broadcast protocol;
a first processing subsystem initiating a coherency request; and
said network conveying said coherency request according to said indication.
-
Specification