Claims
- 1. An apparatus for identifying non-cacheable requests to main memory in a computer system with multiple processors, comprising:a memory cache coupled to a first bridge unit; a main memory coupled to said first bridge unit; a processor coupled to said first bridge unit, said processor transmitting requests for data to the main memory, wherein said first bridge unit includes a cache coherence controller that implements a protocol to maintain the coherence of data stored in a plurality of processor caches in the computer system; and a cache coherence directory coupled to said cache coherence controller, said cache coherence directory including the addresses of data stored in each of the processor caches and the state of the data, wherein said first bridge unit identifies requests for data to main memory as cacheable or non-cacheable, and said first bridge unit requests the cache coherence controller to bypass the cache coherence directory lookup for non-cacheable data.
- 2. The apparatus of claim 1 wherein said first bridge unit comprises a memory controller.
- 3. The apparatus of claim 1, further comprising:a second bridge unit coupled to said first bridge unit; and a peripheral bus coupled to said second bridge unit, said peripheral bus transmitting requests from a peripheral device for data to the second bridge unit.
- 4. The apparatus of claim 3 wherein said second bridge unit transmits the peripheral device request for data to the first bridge unit and said first bridge unit identifies requests for data as cacheable or non-cacheable, said first bridge unit not requesting the cache coherence controller to perform a cache coherence directory lookup to maintain the coherence of data for non-cacheable data.
- 5. The apparatus of claim 3 wherein said peripheral bus is a peripheral component interconnect (“PCI”) bus.
- 6. The apparatus of claim 3 wherein said peripheral bus is a peripheral component interconnect extended (“PCIx”) bus.
- 7. The apparatus of claim 3 wherein said peripheral bus is an advanced graphic port (“AGP”) bus.
- 8. An apparatus in a computer system for identifying non-cacheable requests to main memory, comprising:a memory cache coupled to a host bridge unit; a main memory coupled to said host bridge unit; a processor coupled to said host bridge unit, said processor transmitting requests for data to the main memory, wherein said host bridge unit includes a cache coherence controller that implements a protocol to maintain the coherence of data stored in a plurality of processor caches in the computer system; a cache coherence directory coupled to said cache coherence controller, said cache coherence directory including the addresses of data stored in each of the processor caches and the state of the data, wherein said host bridge unit identifies requests for data to main memory as cacheable or non-cacheable, and said host bridge unit requests the cache coherence controller to bypass the cache coherence directory lookup for non-cacheable data; and a display coupled to said host bridge unit.
- 9. The apparatus of claim 8, further comprising:a secondary bridge unit coupled to said host bridge unit; and a peripheral bus coupled to said secondary bridge unit, said peripheral bus transmitting requests from a peripheral device for data to the secondary bridge unit.
- 10. The apparatus of claim 9 wherein said secondary bridge unit transmits the peripheral device request for data to the host bridge unit and said host bridge unit identifies requests for data as cacheable or non-cacheable, said host bridge unit not requesting the cache coherence controller to perform a cache coherence directory lookup to maintain the coherence of data for non-cacheable data.
- 11. The apparatus of claim 9 wherein said peripheral bus is a peripheral component interconnect (“PCI”) bus.
- 12. The apparatus of claim 9 wherein said peripheral bus is a peripheral component interconnect extended (“PCIx”) bus.
- 13. The apparatus of claim 9 wherein said peripheral bus is an advanced graphic port (“AGP”) bus.
- 14. The apparatus of claim 8 wherein said computer system includes multiple processors coupled together through a processor bus.
- 15. The apparatus of claim 8 wherein said secondary bridge unit is a South Bridge.
- 16. The apparatus of claim 8 wherein said secondary bridge unit comprises an I/O controller.
- 17. The apparatus of claim 8 wherein said host bridge unit comprises a memory controller.
- 18. The apparatus of claim 8 wherein said cache coherence directory is located in the host bridge unit.
- 19. An apparatus in a computer system with multiple processors for identifying non-cacheable requests to main memory, comprising:a main memory coupled to a host bridge unit; a processor coupled to said host bridge unit, said processor transmitting requests for data to the main memory, wherein said host bridge unit includes a cache coherence controller that implements a protocol to maintain the coherence of data stored in a plurality of processor caches in the computer system; a cache coherence directory coupled to said cache coherence controller, said cache coherence directory including the addresses of data stored in each of the processor caches and the state of the data, wherein said host bridge unit identifies requests for data to main memory as cacheable or non-cacheable, and said host bridge unit requests the cache coherence controller to bypass the cache coherence directory lookup for non-cacheable data; an I/O bridge unit coupled to said host bridge unit; and an advanced graphics port (“AGP”) bus coupled to said I/O bridge unit, said AGP bus transmitting requests from an I/O device for data to the I/O bridge unit.
- 20. A method for identifying non-cacheable requests to main memory to reduce cache coherence directory lookups and bus snoops in a multiprocessing computer system, comprising:transmitting requests for data from a processor or peripheral device to a host bridge unit, wherein said host bridge unit includes a cache coherence controller that implements a protocol to maintain the coherence of data stored in a plurality of processor caches in the computer system; identifying the requests for data as cacheable or non-cacheable; and requesting the cache coherence controller bypass the cache coherence directory lookup for non-cacheable data.
CROSS-REFERENCE TO RELATED APPLICATIONS
This application relates to the following commonly assigned co-pending application entitled “System For Identifying Memory Requests Originating On Remote I/O Devices As Non-cacheable,” Ser. No. 09/751,505, filed Dec. 29, 2000, which is incorporated by reference herein.
US Referenced Citations (4)
| Number |
Name |
Date |
Kind |
|
5890216 |
Derrick et al. |
Mar 1999 |
A |
|
5918069 |
Matoba |
Jun 1999 |
A |
|
6128711 |
Duncan et al. |
Oct 2000 |
A |
|
6338119 |
Anderson et al. |
Jan 2002 |
B1 |