Claims
- 1. A method of operating a digital computer system having a processor and a cache memory, and a main memory, said method comprising the steps of:
- storing ownership information in association with blocks of data in said cache memory, said ownership information indicating whether said cache memory owns each block of data stored in said cache memory;
- sending writeback transactions from said processor and cache memory through a writeback queue to said main memory, and sending non-writeback transactions from said processor and cache memory through a non-writeback queue to said main memory;
- accessing data in said cache memory, and upon finding error in the data accessed in said cache memory, entering an error transition mode to provide limited use of data in said cache, wherein said method during said error transition mode includes
- a) when said processor makes a memory access request for data not owned in said cache memory, making a memory access to said main memory instead of said cache memory, even when said memory access request is for data in a block of data in said cache memory;
- b) when said processor makes a memory read request for data owned by said cache memory, making a read access to said cache memory; and
- c) when said processor makes a first memory write request to a block of data not owned in said cache memory followed by a second memory write request to a block of data owned in said cache memory, preventing write data of said first memory write request from being received by said main memory after write data of said second memory write request while permitting writeback of data from said block of data owned in said cache memory.
- 2. The method as claimed in claim 1, which includes sending the write data of said first memory write request through said non-writeback queue to said main memory, and then sending the write data of said second memory write request through said non-writeback queue to said main memory.
- 3. The method as claimed in claim 2, which includes sending a writeback of said block of data owned in said cache memory through said writeback queue to said main memory in response to said second memory write request.
- 4. The method as claimed in claim 3, wherein said main memory receives said write data of said second memory write request before said writeback of said block of data owned by said cache memory, and waits for receipt of said writeback of said block of data owned in said cache memory before writing to memory said write data of said second memory write request.
- 5. The method as claimed in claim 3, which includes changing said ownership information in said cache memory to indicate that said block of data owned by said cache memory is no longer owned by said cache memory.
- 6. The method as claimed in claim 1, which includes sending a writeback of said block of data owned in said cache memory through said writeback queue to said main memory in response to said second memory write request.
- 7. The method as claimed in claim 6, wherein said write data of said second write request is included in the writeback of said block of data owned by said cache.
- 8. The method as claimed in claim 7, which includes sending write data of said first memory write request through said non-writeback queue to said main memory, and selecting priority between removal from said writeback queue and removal from said non-writeback queue so that said write data of said first write request is removed from said non-writeback queue before write data of said second write request is removed from said writeback queue.
- 9. The method as claimed in claim 8, wherein removal from said writeback queue is given priority over removal from said non-writeback queue unless said non-writeback queue includes write data loaded into said non-writeback queue before all writebacks in said writeback queue were loaded into said writeback queue.
- 10. The method as claimed in claim 9, which includes setting write order conflict bits in said non-writeback queue when a writeback is loaded in said writeback queue.
- 11. The method as claimed in claim 6, which includes sending said write data of said first write request through said writeback queue to said main memory.
- 12. The method as claimed in claim 11, which includes retrieving a block of data from said main memory, merging said write data of said first write request with said block of data retrieved from main memory to form a block of merged data, and loading the block of merged data into said writeback queue.
- 13. A method of operating a digital computer system having a processor and a cache memory, and a main memory, said method comprising the steps of:
- storing ownership information in association with blocks of data in said cache memory, said ownership information indicating whether said cache memory owns each block of data stored in said cache memory;
- sending writeback transactions from said processor and cache memory through a writeback queue to said main memory, and sending non-writeback transactions from said processor and cache memory through a non-writeback queue to said main memory; and
- accessing data in said cache memory, and upon finding error in the data accessed in said cache memory, entering an error transition mode to provide limited use of data in said cache;
- wherein said method during said error transition mode includes
- a) when said processor makes a memory access request for data not owned in said cache memory, making a memory access to said main memory instead of said cache memory, even when said memory access request is for data in a block of data in said cache memory;
- b) when said processor makes a memory read request for data owned by said cache memory, making a read access to said cache memory; and
- c) when said processor makes a first memory write request to a block of data not owned in said cache memory followed by a second memory write request to a block of data owned in said cache memory,
- (i) sending the write data of said first memory write request through said non-writeback queue to said main memory, and then
- (ii) sending the write data of said second memory write request through said non-writeback queue to said main memory, and sending a writeback of said block of data owned in said cache through said writeback queue to said main memory.
- 14. The method as claimed in claim 13, wherein said main memory receives said write data of said second memory write request before said writeback of said block of data owned by said cache memory, and waits for receipt of said writeback of said block of data owned in said cache memory before writing to memory said write data of said second memory write request.
- 15. The method as claimed in claim 13, which includes changing said ownership information in said cache memory to indicate that said block of data owned by said cache memory is no longer owned by said cache memory.
- 16. The method as claimed in claim 13, wherein said writeback of said block of data owned in said cache is loaded into said writeback queue after said write data of said second memory request is loaded into said non-writeback queue.
- 17. The method as claimed in claim 13, wherein removal of writebacks from said writeback queue is given priority over removal of write data from said non-writeback queue.
- 18. A digital computer system comprising:
- a processor having a cache memory, said cache memory containing ownership information in association with blocks of data in said cache memory, said ownership information indicating whether said cache memory owns each block of data contained in said cache memory;
- a main memory;
- a writeback queue interconnecting said processor and cache memory to said main memory for queuing writeback transactions from said cache memory to said main memory;
- a non-writeback queue interconnecting said processor and cache memory to said main memory for queuing non-writeback transactions from said processor and cache memory to said main memory; and
- control means coupled to said processor and cache memory, said writeback queue, and said non-writeback queue, for controlling limited use of data in said cache upon detecting erroneous data in said cache, said control means including
- a) means, responsive to a memory access request for data not owned in said cache memory, for making a memory access to said main memory instead of said cache memory, even when said memory access request is for data in a block of data in said cache memory;
- b) means, responsive to a memory read request for data owned by said cache memory, for making a read access to said cache memory; and
- c) means, responsive to a first memory write request to a block of data not owned in said cache memory followed by a second memory write request to a block of data owned in said cache memory, for preventing write data of said first memory write request from being received by said main memory after write data of said second memory write request while permitting writeback of data from said block of data owned in said cache memory.
- 19. The digital computer system as claimed in claim 18, wherein said means for preventing includes means for sending the write data of write requests through said non-writeback queue to said main memory, regardless of whether the write data of the write requests are included in blocks of data owned in said cache memory, and means for disowning and writing back through said writeback queue blocks of data owned in said cache that are accessed by the write requests sent through said non-writeback queue to said main memory.
- 20. The computer system as claimed in claim 18, wherein said means for preventing includes write order conflict detection means responsive to write order conflict between writebacks in said writeback queue and memory write requests in said non-writeback queue for selecting priority of removal of memory write requests from said non-writeback queue over removal of writebacks from said writeback queue.
RELATED CASES
The present application is a continuation-in-part of Ser. No. 07/547,699 filed Jun. 29, 1990, entitled BUS PROTOCOL FOR HIGH-PERFORMANCE PROCESSOR, by Rebecca L. Stamm et al., and Ser. No. 07/547,597, filed Jun. 29, 1990, entitled ERROR TRANSITION MODE FOR MULTI-PROCESSOR SYSTEM, by Rebecca L. Stamm et al., issued on Oct. 13, 1992 as U.S. Pat. No. 5,155,843, incorporated herein by reference.
US Referenced Citations (8)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0463967 |
Jan 1992 |
EPX |
Related Publications (1)
|
Number |
Date |
Country |
|
547597 |
Jun 1990 |
|
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
547699 |
Jun 1990 |
|