US8131948B2ActiveUtilityA1

Snoop request arbitration in a data processing system

Assignee: MOYER WILLIAM CPriority: Aug 29, 2008Filed: Aug 29, 2008Granted: Mar 6, 2012
Est. expiryAug 29, 2028(~2.1 yrs left)· nominal 20-yr term from priority
G06F 12/0831
74
PatentIndex Score
6
Cited by
25
References
17
Claims

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-modified
What 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.