Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
First Claim
1. An apparatus to control a write-back cache, comprising:
- a processor bus;
a system interface connected to said processor bus;
a processor connected to said processor bus;
a cache memory connected to said processor bus;
a cache controller connected to said processor bus;
first request means for said cache controller to request from said processor control of said processor bus;
means for said processor to grant control of said processor bus to said cache controller;
second request means for said system interface to request control of said processor bus from said cache controller; and
means, responsive to said second request means, for said cache controller to grant control of said processor bus to said system interface, after said processor has granted control of said processor bus to said cache controller
2 Assignments
0 Petitions
Accused Products
Abstract
A CPU module has a processor, cache memory, cache controller, and system interface attached to a processor bus. The system interface is attached to a system bus shared by memory, I/O, and other CPU modules. The cache controller requests control of the processor bus from the processor, and grants control to the system interface. The system interface uses the processor bus to store fill data obtained from memory into the cache in response to a read miss. The system interface also monitors system bus traffic and forwards the addresses of cache blocks to be invalidated to the cache controller over an invalidate bus. The cache controller requests control of the processor bus during a read miss to perform invalidates and writebacks. The processor grants control to the cache controller before the read miss completes, enabling the cache controller to proceed, and then re-issues the read. A protocol between the cache controller and the system interface ensures that cache fills, invalidates, and writebacks are done in the correct order to maintain data coherency. As part of this protocol, the cache controller decides when the system interface may proceed with a fill, and grants the processor bus to the system interface accordingly.
65 Citations
19 Claims
-
1. An apparatus to control a write-back cache, comprising:
-
a processor bus; a system interface connected to said processor bus; a processor connected to said processor bus; a cache memory connected to said processor bus; a cache controller connected to said processor bus; first request means for said cache controller to request from said processor control of said processor bus; means for said processor to grant control of said processor bus to said cache controller; second request means for said system interface to request control of said processor bus from said cache controller; and means, responsive to said second request means, for said cache controller to grant control of said processor bus to said system interface, after said processor has granted control of said processor bus to said cache controller - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus to control a write-back cache, comprising:
-
a processor bus; a system interface connected to said processor bus; a processor connected to said processor bus; a cache memory connected to said processor bus; a cache controller connected to said processor bus; first decision means for said cache controller to decide when writebacks and invalidates need to be performed in order to keep a remote one processor of a plurality of procesors communicating via said system bus from stalling; second decision means for said cache controller to decide when cache fills may be performed to said cache memory; means, responsive to said first decision means and to said second decision means, for said cache controller to assert a bus request signal when cache fills may be performed, and for said cache controller to assert said bus request signal and a retry signal when a writeback transaction needs to be performed and when an invalidate transaction needs to be performed; and means for said processor to grant control of said processor bus to said cache controller immediately after receiving both said bus request signal and said retry signal
-
-
8. A method for controlling a write-back cache in a system having a system interface, a processor, a cache memory, and a cache controller connected to a processor bus, said method comprising the steps of:
-
requesting control of said processor bus by said cache controller, said request directed to said processor; granting control of said processor bus to said cache controller by said processor; requesting control of said processor bus from said cache controller by said system interface; and granting control of said processor bus to said system interface by said cache controller, in response to said requesting control from said cache controller by said system interface, and after control of said processor bus has been granted to said cache controller by said processor.
-
-
9. A computer system, comprising:
-
a processor bus; a processor connected to said processor bus having means for granting, while not waiting for delivery of read data, control of said processor bus to a requestor asserting a non-interrupting request; a cache memory connected to said processor bus to provide data to said processor in response to a processor read hit; a system interface connected to said processor bus and having means for requesting control of said processor bus to store data in said cache memory in response to a processor read miss, said system interface to be connected to a system bus; a cache controller having means for non-interruptingly requesting from said processor control of said processor bus in response to a processor read miss and means for granting to said system interface control of said processor bus to enable said system interface to store data obtained from said system bus into said cache memory. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computer system, comprising:
-
a processor bus; an invalidate bus; a processor connected to said processor bus having (i) a primary cache connected to said processor bus;
(ii) means for granting, while not waiting for delivery of read data, control of said processor bus in response to a non-interrupting request; and
(iii) means for granting, while waiting for the delivery of read data, control of said processor bus in response to an interrupting request;a cache memory connected to said processor bus to provide data to said processor in response to a processor read hit; a system interface connected to said processor bus and to said invalidate bus having (i) means for requesting control of said processor bus to store data in said cache memory in response to a processor read miss; and
(ii) means for sending over said invalidate bus the addresses of cache blocks to be invalidated;a cache controller connected to said processor bus and to said invalidate bus to receive from said system interface the addresses of cache blocks to be invalidated, said cache controller having (i) means for non-interruptingly requesting from said processor control of said processor bus in response to a processor read miss;
(ii) means for granting to said system interface control of said processor bus to enable said system interface to store data in said cache memory;
(iii) means for interruptingly requesting from said processor control of said processor bus during an interval between a processor read miss and a subsequent request by said system interface for control of said processor bus;
(iv) means for sending to said primary cache over said processor bus the addresses of cache blocks to be invalidated during said interval; and
(v) means for writing back from said cache memory to said system interface dirty ones of those cache blocks to be invalidated during said interval. - View Dependent Claims (16, 17)
-
-
18. A method of operating a computer system having a processor, cache memory, system interface, and cache controller connected to a processor bus, comprising the steps of:
-
requesting the transfer of control of said processor bus non-interruptingly from said processor to said cache controller when a read miss occurs; transferring control of said processor bus from said processor to said cache controller when a read miss completes; and transferring control of said processor bus from said cache controller to said system interface after a read miss completes to enable said system interface to store fill data in said cache memory. - View Dependent Claims (19)
-
Specification