IP Library Granted Patent US 8,732,408
Granted Patent B2
US 8,732,408 · App. 12/682,789 · Granted May 20, 2014

Circuit and method with cache coherence stress control

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,732,408
App. No.
12/682,789
Granted
May 20, 2014
Kind
B2
Abstract

A circuit contains a shared memory ( 12 ), that is used by a plurality of processing elements ( 10 ) that contain cache circuits ( 102 ) for caching data from the shared memory ( 12 ). The processing elements perform a plurality of cooperating tasks, each task involving caching data from the shared memory ( 12 ) and sending cache message traffic. Consistency between cached data for different tasks is maintained by transmission of cache coherence requests via a communication network. Information from cache coherence requests generated for all of said tasks is buffered. One of the processing elements provides an indication signal indicating a current task stage of at least one of the processing elements. Additional cache message traffic is generated adapted dependent on the indication signal and the buffered information from the cache coherence requests. Thus conditions of cache traffic stress may be created to verify operability of the circuit, or cache message traffic may be delayed to avoid stress.

Claims (70)

1. A processing element, comprising:

a cache circuit configured to cache data from a memory shared by the processing element and another processing element;

a cache coherence buffer configured to buffer information regarding cache coherence requests;

a configuration data memory configured to store status information indicative of a stage being executed; and

an instruction processor configured to execute a plurality of tasks, update the status information to indicate a task stage of the plurality of tasks being executed by the instruction processor, and generate cache coherence requests based on the status information and the buffered information.

2. The processing element of claim 1 , wherein the instruction processor is further configured to generate the cache coherence requests at a rate based on the status information and the buffered information.

3. The processing element of claim 1 , wherein the instruction processor is further configured to generate a type of cache coherence request based on the status information and the buffered information.

4. The processing element of claim 1 , wherein the instruction processor is further configured to select addresses in the cache coherence requests based on the status information and the buffered information.

5. The processing element of claim 1 , wherein the instruction processor is further configured to generate statistics based on the buffered information and program states of the instruction processor, and to generate the cache coherence requests based on the generated statistics.

6. The processing element of claim 1 , wherein the instruction processor is further configured to determine a predicted frequency of cache coherence requests based on the status information and the buffered information, and delay execution of an operation in response to determining the predicted frequency is above a threshold.

7. A system, comprising:

a first processing element coupled to a shared memory via a communication circuit, wherein the first processing element is configured to cache data from the shared memory, and generate a signal indicative of a task stage that the first processing element is currently executing; and

a second processing element coupled to the communication circuit and configured to buffer information from cache coherence requests on the communication circuit, and generate cache coherence requests on the communication circuit based on the buffered information and the signal indicative of the task stage.

8. The system of claim 7 , wherein:

the buffered information comprises addresses used in the cache coherence requests, and

the second processing element is configured to adapt addresses used in generated cache coherence requests based on the addresses of the buffered information and the signal indicative of the task stage.

9. The system of claim 7 , wherein the second processing element is further configured to perform an operation that comprises generating a cache coherence request, determine a predicted frequency of cache coherence requests based on the buffered information and the signal indicative of the task stage, and delay execution of the operation in response to determining the predicted frequency is above a threshold.

10. The system of claim 7 , wherein the second processing element is further configured to perform an operation that comprises generating a cache coherence request, determining based on the buffered information and the signal indicative of the task stage that an address of the cache coherence request is in an address range associated with a cache coherence frequency above a threshold, and delaying execution of the operation.

11. The system of claim 7 , further comprising:

a filter configured to select information from the cache coherence requests;

wherein the second processing element is configured to buffer information selected by the filter.

12. The system of claim 11 , wherein:

the second processing element is further configured to activate different modes of the filter based on the signal indicative of the task stage, and

the filter is configured to select information based on the active mode.

13. A method, comprising:

generating cache coherence requests in response to executing a plurality of tasks;

generating a signal indicative of a task stage of the plurality of tasks currently being executed;

buffering information from the generated cache coherence requests; and

adapting said generating cache coherence requests based on the buffered information and the signal indicative of the task stage.

14. The method of claim 13 , wherein said adapting comprises generating the cache coherence requests at a rate based on the buffered information and the signal indicative of the task stage.

15. The method of claim 13 , wherein said adapting comprises generating a type of cache coherence request based on the buffered information and the signal indicative of the task stage.

16. The method of claim 13 , wherein said adapting comprises selecting addresses in the cache coherence requests based on the buffered information and the signal indicative of the task stage.

17. The method of claim 13 , further comprising:

generating statistics based on the buffered information and a program state;

wherein said adapting comprises generating the cache coherence requests based on the generated statistics.

18. The method of claim 13 , further comprising:

determining a predicted frequency of cache coherence requests based on the buffered information and the signal indicative of the task stage; and

delaying execution of an operation in response to determining the predicted frequency is above a threshold.

19. The method of claim 13 , wherein said buffering comprises filtering the cache coherence requests based on an alterable filter mode to obtain the buffered information.

20. A non-transitory computer readable medium, comprising a plurality of instructions that, in response to being executed, result in a computing device:

generating cache coherence requests in response to executing a plurality of tasks;

generating a signal indicative of a task stage of the plurality of tasks currently being executed;

buffering information from the generated cache coherence requests; and

adapting said generating cache coherence requests based on the buffered information and the signal indicative of the task stage.

21. The non-transitory computer readable medium of claim 20 , wherein the plurality of instructions further result in the computing device generating the cache coherence requests at a rate based on the buffered information and the signal indicative of the task stage.

22. The non-transitory computer readable medium of claim 20 , wherein the plurality of instructions further result in the computing device generating a type of cache coherence request based on the buffered information and the signal indicative of the task stage.

23. The non-transitory computer readable medium of claim 20 , wherein the plurality of instructions further result in the computing device selecting addresses in the cache coherence requests based on the buffered information and the signal indicative of the task stage.

24. The non-transitory computer readable medium of claim 20 , wherein the plurality of instructions further result in the computing device generating statistics based on the buffered information and a program state, and generating the cache coherence requests based on the generated statistics.

25. The non-transitory computer readable medium of claim 20 , wherein the plurality of instructions further result in the computing device determining a predicted frequency of cache coherence requests based on the buffered information and the signal indicative of the task stage, and delaying execution of an operation in response to determining the predicted frequency is above a threshold.

26. The non-transitory computer readable medium of claim 20 , wherein the plurality of instructions further result in the computing device filtering the cache coherence requests based on an alterable filter mode to obtain the buffered information.

27. A system comprising:

means for caching data from a shared memory;

means for generating a signal indicative of a task stage that is being executed;

means for buffering information from cache coherence requests; and

means for generating cache coherence requests based on the buffered information and the signal indicative of the task stage.

28. The system of claim 27 , wherein:

the buffered information comprises addresses used in the cache coherence requests, and

the means for generating cache coherence requests adapts addresses used in generated cache coherence requests based on the addresses of the buffered information and the signal indicative of the task stage.

29. The system of claim 27 , further comprising a means for filtering the cache coherence requests to obtain the buffered information.

30. The system of claim 27 , further comprising:

means for executing an operation that includes generating a cache coherence request;

means for determining a predicted frequency of cache coherence requests based on the buffered information and the signal indicative of the task stage; and

means for delaying execution of the operation in response to determining the predicted frequency is above a threshold.

31. The system of claim 27 , further comprising:

means for executing an operation that comprises generating a cache coherence request;

means for determining, based on the buffered information and the signal indicative of the task stage, whether an address of the cache coherence request is in an address range associated with a cache coherence frequency above a threshold; and

means for delaying execution of the operation in response to determining that the address is in an address range associated with a cache coherence frequency above the threshold.

32. The system of claim 27 , further comprising:

means for activating different filter modes based on the signal indicative of the task stage, and

a means for filtering the cache coherence requests based on an activated filter mode to obtain the buffered information.

Assignments (12)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2011
From: NXP B.V.
To: NYTELL SOFTWARE LLC
Reel/Frame 026634/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2010
From: KARLAPALEM, SAINATH; TERECHKO, ANDREI SERGEEVICH
To: NXP, B.V.
Reel/Frame 024223/0055 →