Claims
- 1. A method of maintaining cache coherence comprising the steps of:
- (a) allocating an entry in a snoop queue to a snoopable request;
- (b) blocking the snoopable request to delay performing a snoop operation in response to the snoopable request until a blocking condition is satisfied;
- (c) performing the snoop operation in response to the snoopable request after the blocking condition is satisfied;
- (d) deallocating the entry from the snoop queue.
- 2. The method of claim 1 wherein the step (c) of performing the snoop operation further includes the step of
- (c1) sending a snoop inquiry to one or more caching units.
- 3. The method of claim 2 wherein the step (c) of performing the snoop operation further includes the step of
- (c2) receiving a snoop response from the one or more caching units.
- 4. The method of claim 2 wherein the step (c) of performing the snoop operation further includes the step of
- (c2) receiving a snoop response from the one or more caching units; and
- (c3) determining a cumulative snoop response from the snoop responses received from the one or more caching units, wherein if the cumulative snoop response indicates a hit to a modified cache line, then sending a snoop abort to the one or more caching units upon a first condition and sending a snoop confirm to the one or more caching units upon a second condition.
- 5. The method of claim 4 wherein the first condition is satisfied if an error occurred during the snoop operation.
- 6. The method of claim 4 wherein the first condition is satisfied if an address parity error occurred during the snoop operation.
- 7. The method of claim 4 wherein the first condition is satisfied if an address parity error occurred during the snoop operation, otherwise the second condition is satisfied.
- 8. The method of claim 4 wherein the steps (a)-(d) are performed for a first snoopable request and the steps (a)-(d) are performed for a second snoopable request, and performing the steps (a)-(d) corresponding to the first snoopable request at least partially overlaps in time with performing the steps (a)-(d) corresponding to the second snoopable request.
- 9. A method of maintaining cache coherence comprising the steps of:
- (a) allocating a first entry in a snoop queue corresponding to a first bus request having an unknown address;
- (b) allocating a second entry in the snoop queue corresponding to a second bus request;
- (c) blocking the second entry from starting a snoop operation corresponding to the second bus request until the first entry has been deallocated from the snoop queue.
- 10. The method of maintaining cache coherence of claim 9 wherein the first bus request is a deferred reply from a caching agent, wherein the deferred reply has an associated token instead of an address.
Parent Case Info
This is a divisional of application application Ser. No. 08/568,248, filed Dec. 6, 1995.
US Referenced Citations (5)
Number |
Name |
Date |
Kind |
5325503 |
Stevens et al. |
Jun 1994 |
|
5335335 |
Jackson et al. |
Aug 1994 |
|
5355467 |
MacWilliams et al. |
Oct 1994 |
|
5463753 |
Fry et al. |
Oct 1995 |
|
5572703 |
MacWilliams et al. |
Nov 1996 |
|
Divisions (1)
|
Number |
Date |
Country |
Parent |
568248 |
Dec 1995 |
|