Snoop request arbitration in a data processing system
Abstract
A snoop look-up operation is performed in a system having a first cache and a first processor. The first processor generates access requests to the first cache for data. Snoop look-up operations are performed in the cache. The snoop look-up operations are based on snoop requests from a snoop queue. The snoop requests correspond to entries in the snoop queue. An access request from the first processor is performed in response to a consecutive number of snoop look-up operations exceeding a first limit. This is useful in avoiding having no processor operations while performing snoop look-up operations. Similarly, consecutive access requests can be counted and if a second limit is exceeded, a snoop look-up operation can be performed.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method of performing a snoop look-up operation in a system having a first cache and a first processor, wherein the first processor generates access requests to the first cache for data, comprising:
performing snoop look-up operations in the first cache, wherein the snoop look-up operations are based on snoop requests from a snoop queue, and the snoop requests correspond to entries in the snoop queue;
performing an access request from the first processor in response to a consecutive number of snoop look-up operations exceeding a first limit;
loading the snoop queue with snoop requests, wherein a fullness of the snoop queue is a measure of how many snoop requests are in the snoop queue;
determining if the fullness of the snoop queue exceeds a first threshold; and
giving priority to the snoop requests over access requests in response to the fullness of the snoop queue exceeding the first threshold; wherein
the step of performing an access request in response to a consecutive number of snoop look-up operations exceeding the first limit is performed even if the first threshold is exceeded.
2. The method of claim 1 further comprising:
responding to performing a consecutive number of access requests that exceeds a second limit by performing a snoop look-up operation.
3. The method of claim 1 , further comprising:
processing a pending snoop request in response to a consecutive number of access requests exceeding a second limit.
4. The method of claim 3 , wherein the step of processing a snoop request is further characterized by the second limit comprising a number of clock cycles.
5. The method of claim 3 , wherein the step of processing a snoop request is further characterized by the second limit comprising a number of access requests.
6. The method of claim 3 , further comprising:
updating a first counter in response to performing a snoop look-up operation; and
updating a second counter in response to performing an access request from the first processor.
7. The method of claim 6 , wherein:
the step of performing the access request is further characterized as using the first counter to determine if consecutive snoop look-up operations have exceeded the first limit; and
the step of processing a pending snoop request is further characterized as using the second counter to determine if the consecutive number of access requests has exceeded the second limit.
8. The method of claim 3 , further comprising:
selecting the first limit based on an amount of the fullness of the snoop queue.
9. The method of claim 3 , further comprising providing a counter, wherein;
the step of performing the access request is further characterized by using the counter to count cycles until reaching the first limit if the first threshold is exceeded; and
the step of processing a pending snoop request is further characterized by using the counter to count cycles until reaching the second limit if the first threshold is not exceeded.
10. A system comprising,
a first processor;
a first cache coupled to the first processor;
an arbiter coupled to the first cache and the first processing unit;
a snoop queue coupled to the arbiter that stores snoop requests; and
a snoop control circuit coupled to the snoop queue that provides snoop requests to the snoop queue, wherein, in response to the arbiter detecting that a consecutive number of snoop look-up operations exceeding a first limit have been performed and that the first processor has an access request, the arbiter instructs the first processor to perform the access request
wherein:
the snoop queue provides an output indicating a fullness of the snoop queue; and
the arbiter compares the output indicating the fullness of the snoop queue to a threshold and performs a snoop look-up operation in the first cache in response to the fullness of the snoop queue exceeding the threshold;
in response to the arbiter detecting that a consecutive number of access requests exceeding a second limit have been performed and the snoop queue has a snoop request, the arbiter instructs the first processor to perform the access request;
the arbiter comprises:
a first counter for use in detecting if the first limit has been exceeded; and
a second counter for use in detecting if the second limit has been exceeded.
11. The system of claim 10 , wherein:
in response to the arbiter detecting that a consecutive number of access requests exceeding a second limit have been performed and the snoop queue has a snoop request, the arbiter instructs the first processor to perform the access request.
12. The system of claim 10 , wherein the arbiter selects a value of the first limit based on an amount of fullness of the snoop queue and loads a counter with the first limit.
13. The system of claim 10 , wherein the first counter counts one of a group consisting of snoop look-up operations and clock cycles.
14. A system comprising:
a first processor;
a first cache coupled to the first processor;
an arbiter coupled to the first cache and the first processing unit;
a snoop queue coupled to the arbiter that stores snoop requests;
a snoop control circuit coupled to the snoop queue that provides snoop requests to the snoop queue, wherein, in response to the arbiter detecting that a consecutive number of snoop look-up operations exceeding a first limit have been performed and that the first processor has an access request, the arbiter instructs the first processor to perform the access request, wherein:
the snoop queue provides an output indicating a fullness of the snoop queue; and
the arbiter compares the output indicating the fullness of the snoop queue to a threshold and performs a snoop look-up operation in the first cache in response to the fullness of the snoop queue exceeding the threshold;
in response to the arbiter detecting that a consecutive number of access requests exceeding a second limit have been performed and the snoop queue has a snoop request, the arbiter instructs the first processor to perform the access request;
the arbiter comprises:
a counter for use in determining if the first limit has been exceeded by counting cycles during a time when the threshold has been exceeded and snoop look-up operations are being performed and in determining if the second limit has been exceeded by counting cycles during a time when access requests are being performed.
15. The system of claim 10 , further comprising:
a system interconnect connected to the first processor; and
a monitor coupled to the system interconnect, wherein the monitor tracks snoop look-up operations and access requests and adjusts the first limit based on the look-up operations and the access requests.
16. A method of performing a snoop look-up operation in a system having a first cache and a first processor, wherein the first processor generates access requests to the first cache for data, comprising:
loading a snoop queue with snoop requests, wherein a fullness of the snoop queue is a measure of how many snoop requests are in the snoop queue;
determining if the fullness of the snoop queue exceeds a first threshold;
giving priority to the snoop requests over access requests in response to the fullness of the snoop queue exceeding the first threshold, wherein the snoop look-up operation is based on a snoop request from the snoop queue corresponding to an entry in the snoop queue;
in response to consecutive granted snoop requests exceeding a first limit, performing an access request even if the first threshold is still exceeded; and
processing a pending snoop request in response to a consecutive number of access requests exceeding a second limit.
17. The method of claim 16 , further comprising providing a counter, wherein;
the step of performing the access request is further characterized by using the counter to count cycles until reaching the first limit if the first threshold is exceeded; and
the step of processing a pending snoop request is further characterized by using the counter to count cycles until reaching the second limit if the first threshold is not exceeded.Join the waitlist — get patent alerts
Track US8131948B2 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.