System and method for maintaining memory coherency in a computer system having multiple system buses
First Claim
Patent Images
1. A multiple-bus, multiprocessing system comprising:
- a system memory;
a first bus in communication with said system memory, said first bus having at least one cache memory coupled thereto, said cache memory configured to store a plurality of data values obtained from said system memory, said cache memory further configured to maintain cache coherency information about said data values with a first set of coherency states;
a coherency memory in communication with said first bus, said coherency memory configured to maintain a coherency status record associated with said data values;
a second bus in communication with said system memory, said second bus capable of transmitting a bus transaction; and
a coherency filter in communication with said second bus and said coherency status record, but not connected to said first bus, said coherency filter configured to monitor said bus transaction on said second bus and to inhibit cross-bus transactions from said second bus to said first bus based on said coherency status record.
2 Assignments
0 Petitions
Accused Products
Abstract
A cache-coherent, multiple-bus, multiprocessing system and method interconnects multiple system buses and an I/O bus to a shared main memory and efficiently maintains cache coherency while minimizing the impact to latency and total bandwidth within the system. The system provides coherency filters which coordinate bus-to-bus communications in such a way as to maintain cache memory coherency with a small amount of cross-bus traffic. In addition, the system provides a multiported pool of memory cells which interconnect the multiple buses.
70 Citations
43 Claims
-
1. A multiple-bus, multiprocessing system comprising:
-
a system memory; a first bus in communication with said system memory, said first bus having at least one cache memory coupled thereto, said cache memory configured to store a plurality of data values obtained from said system memory, said cache memory further configured to maintain cache coherency information about said data values with a first set of coherency states; a coherency memory in communication with said first bus, said coherency memory configured to maintain a coherency status record associated with said data values; a second bus in communication with said system memory, said second bus capable of transmitting a bus transaction; and a coherency filter in communication with said second bus and said coherency status record, but not connected to said first bus, said coherency filter configured to monitor said bus transaction on said second bus and to inhibit cross-bus transactions from said second bus to said first bus based on said coherency status record. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of maintaining cache coherency in a multiple-bus system comprising:
-
maintaining cache status information associated with a first plurality of data values existing in a cache unit coupled to a first bus; maintaining a first-bus coherency status record associated with said first plurality of data values; monitoring with a first coherency filter bus transactions on said first bus; monitoring with a second coherency filter, bus transactions on a second bus; transmitting a bus transaction on said second bus; and inhibiting with said second coherency filter a cross-bus transaction from said second bus to said first bus when said first-bus coherency status record indicates that memory incoherency will not result from inhibiting said cross-bus transaction. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A multiple-bus, multiprocessing system comprising:
-
a system memory; a system bus in communication with said system memory, said system bus having at least one cache memory coupled thereto, said cache memory configured to store a plurality of data values obtained from said system memory, said first system bus capable of transmitting multiple bus transactions; a coherency memory in communication with said system bus, said coherency memory configured to maintain a system bus coherency status record associated with said data values; an Input/Output bus in communication with said system memory, said Input/Output bus capable of transmitting multiple bus transactions; an Input/Output coherency filter in communication with said Input/Output bus and said coherency memory said Input/Output coherency filter configured to monitor said bus transactions on said Input/Output bus but not bus transactions on said system bus, said Input/Out put coherency filter further configured to inhibit cross-bus transactions from said Input/Out put bus to said system bus based on said system bus coherency status record. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A method of maintaining cache coherency in a multiple-bus system comprising:
-
maintaining cache status information associated with a first plurality of data values existing in a cache unit coupled to a system bus, said cache status information based on a first set of coherency states; maintaining a coherency status record associated with said first plurality of data values; monitoring with a first coherency filter bus transactions on said system bus; monitoring with a second coherency filter bus transactions on an Input/Out put bus; transmitting a bus transaction on said Input/Output bus; and inhibiting with said second coherency filter a cross-bus transaction from said Input/Out put bus to said system bus when said coherency status record indicates that memory incoherency will not result from inhibiting said cross-bus transaction. - View Dependent Claims (21, 22, 23, 24, 25)
-
-
26. A multiple-bus, multiprocessing system comprising:
-
a system memory; a first system bus and a second system bus in communication with said system memory, said first system bus having at least one cache memory coupled thereto, and said second system bus having at least one cache memory coupled thereto, said cache memories configured to store a plurality of data values obtained from said system memory; a first coherency memory in communication with said first system bus, said first coherency memory configured to maintain a first coherency status record associated with said data values in said cache units connected to said first system bus; a second coherency memory in communication with said second system bus, said second coherency memory configured to maintain a second coherency status record associated with said data values in said cache memories connected to said second system bus; a first coherency filter in communication with said first system bus and said second coherency memory, said first coherency filter configured to monitor bus transactions on said first system bus and to inhibit cross-bus transactions from said first system bus to said second system bus based on said second coherency status record; and a second coherency filter in communication with said second system bus and said first coherency memory, said second coherency filter configured to monitor bus transactions on said second system bus and to inhibit cross-bus transactions from said second system bus to said first system bus based on said first coherency status record. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A multiple-bus, multiprocessing system comprising:
-
a system memory; a first bus and a second bus in communication with said system memory, said first bus having at least one cache memory coupled thereto and said second bus having at least one cache memory coupled thereto, said cache memories configured to store a plurality of data values obtained from said system memory, said cache memories further configured to maintain cache coherency information about said data values; a first coherency memory means for maintaining a first coherency status record of said data values associated with said first bus; a second coherency memory means for maintaining a second coherency status record of said data values associated with said second bus; a first coherency filter means for monitoring bus transactions on said first bus and for inhibiting cross-bus transactions from said first bus to said second bus based on said second coherency status record; and a second coherency filter means for monitoring bus transactions on said second bus and for inhibiting cross-bus transactions from said first bus to said second bus based on said first coherency status record.
-
-
32. A multiple-bus, multiprocessing system comprising:
-
a system memory; a first bus in communication with said system memory, said first bus having at least one cache memory coupled thereto, said cache memory configured to store a plurality of data values obtained from said system memory, said cache memory further configured to maintain coherency status information about said data values; a coherency memory in communication with said first bus, said coherency memory configured to maintain a coherency status record associated with said data values with a second set of coherency states wherein said second set of coherency states are different than said first set of coherency states; a second bus in communication with said system memory, said second bus capable of transmitting a bus transaction; and a coherency filter in communication with said second bus and said coherency memory, said coherency filter configured to monitor bus transactions on said second bus, but not monitor bus transactions on said first bus, said coherency filter configured to inhibit cross-bus transactions from said second bus to said first bus based on said coherency status record. - View Dependent Claims (33, 34, 35, 36)
-
-
37. A method of maintaining cache coherency in a multiple-bus system comprising:
-
maintaining cache status information associated with a first plurality of data values existing in a cache unit coupled to a first bus, said cache status information based on a first set of coherency states; maintaining a coherency status record associated with said data values, said coherency status record based on a second set of coherency states wherein said second set of coherency states are different that said first set of coherency states; monitoring with a first coherency filter bus transactions on said first bus; monitoring with a second coherency filter bus transactions on a second bus; transmitting a bus transaction on said second bus; and inhibiting with said second coherency filter a cross-bus transaction from said second bus to said first bus when said coherency status record indicates that memory incoherency will not result from inhibiting said cross-bus transaction. - View Dependent Claims (38, 39, 40, 41)
-
-
42. A multiple-bus, multiprocessing system comprising:
-
a system memory; a first bus and a second bus in communication with said system memory, said first bus having a plurality of cache memories coupled thereto and said second bus having a plurality of cache memories coupled thereto, said cache memories configured to perform snoop operations and maintain cache status information for a plurality of data values obtained from said system memory, said cache memories further configured to internally modify said cache status information associated with some of said data values without outputting said internal modifications; a coherency memory in communication with said first bus, said coherency memory configured to maintain a coherency status record associated with said data values obtained by a cache memory on said first bus; and a coherency filter in communication with said second bus and said coherency memory, said coherency filter configured to monitor bus transactions on said second bus and not configured to monitor transactions on said first bus, said coherency filter further configured to inhibit cross-bus transactions from said second bus to said first bus based on said coherency status record.
-
-
43. A method of maintaining cache coherency in a multiple-bus system comprising:
-
maintaining cache status information associated with a first plurality of data values existing in a cache unit coupled to a first system bus; internally modifying said cache status information in said cache unit without outputting said internal modification; maintaining a coherency status record associated with said data values; monitoring with a coherency filter, bus transactions on a second bus but not bus transactions on said first bus; transmitting a bus transaction on said second bus; and inhibiting a cross-bus transaction from said second system bus to said system bus when said coherency status record indicates that memory incoherency will not result from inhibiting said cross-bus transaction.
-
Specification