IP Library Granted Patent US 8,131,948
Granted Patent B2
US 8,131,948 · App. 12/201,272 · Granted Mar 6, 2012

Snoop request arbitration in a data processing system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,131,948
App. No.
12/201,272
Granted
Mar 6, 2012
Kind
B2
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 (64)

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.

Assignments (12)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NORTH STAR INNOVATIONS INC.
Reel/Frame 037567/0531 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0757 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →