IP Library Granted Patent US 7,353,513
Granted Patent B2
US 7,353,513 · App. 10/081,308 · Granted Apr 1, 2008

Method and apparatus for establishing a bound on the effect of task interference in a cache memory

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 7,353,513
App. No.
10/081,308
Granted
Apr 1, 2008
Kind
B2
Abstract

A method and apparatus are disclosed for establishing a bound on the effect of task interference in an instruction cache shared by multiple tasks. The bound established by the present invention is the maximum number of “live” frames of a given task that are coexistent during the execution of an application. A “live cache frame” contains a block that is accessed in the future without an intervening eviction. The eviction of blocks from a live frame by an interrupt causes a future miss that would not otherwise occur and evictions from live frames are the only evictions that cause misses that would not otherwise occur. The invention provides a more accurate estimate of the maximum addition time of a task that results from servicing an interrupt during its execution. Additional accuracy is obtained by exploiting knowledge of the character of an intervening task to achieve a tighter bound, when possible.

Claims (27)

1. A method for establishing a bound on the execution time of an application due to task interference in an instruction cache shared by a plurality of tasks, said method comprising the steps of:

determining a number of live frames of said application that are coexistent during execution of said application; and

establishing said bound based on said number of live frames, wherein said bound is suitable for use in allocating processing resources, and wherein said step of establishing said bound further comprises the step of comparing sets that contain live frames of said application with sets accessed by an interrupting task to determine a maximum number of live-frames that may be affected by an interrupting task.

2. The method of claim 1 , wherein said number of live frames is a number of cache frames that contain a block that is accessed by said application in the future without an intervening eviction.

3. The method of claim 1 , wherein said number of live frames is determined by a post-execution analysis of cache access patterns of said application.

4. The method of claim 1 , wherein said number of live frames is determined by a run-time analysis of cache access patterns of a simulation of said application.

5. The method of claim 1 , wherein said step of establishing said bound further comprises the steps of determining an effect of an interrupt at each possible interrupt point and establishing said bound based on a maximum of said effect of an interrupt at each possible interrupt point.

6. A system for establishing a bound on the execution time of an application due to task interference in an instruction cache shared by a plurality of tasks, said system comprising:

a memory that stoles computer-readable code; and

a processor operatively coupled to said memory, said processor configured to implement said computer-readable code, said computer-readable code configured to:

determine a number of live frames of said application that are coexistent during execution of said application; and

establish said bound based on said number of live frames, wherein said bound is suitable for use in allocating processing resources, and wherein said processor is further configured to compare sets that contain live frames of said application with sets accessed by an interrupting task to determine a maximum number of live-frames that may be affected by an interrupting task.

7. The system of claim 6 , wherein said number of live frames is a number of cache frames that contain a block that is accessed by said application in the future without an intervening eviction.

8. The system of claim 6 , wherein said number of live frames is determined by a post-execution analysis of cache access patterns of said application.

9. The system of claim 6 , wherein said number of live frames is determined by a run-time analysis of cache access patterns of a simulation of said application.

10. The system of claim 6 , wherein said processor is farther configured to determine an effect of an interrupt at each possible interrupt point and establish said bound based on a maximum of said effect of an interrupt at each possible interrupt point.

11. An article of manufacture for establishing a bound on the execution time of an application due to task interference in an instruction cache shared by a plurality of tasks, comprising:

a computer recordable medium having computer instructions embodied thereon, said instructions when executed by a computer to perform the steps comprising:

a step to determine a number of live frames of said application that are coexistent during execution of said application;

a step to establish said bound based on said number of live frames, wherein said bound is suitable for use in allocating processing resources, and a step to compare sets that contain live frames of said application with sets accessed by an interrupting task to determine a maximum number of live frames that may be affected by an interrupting task.

12. The article of manufacture of claim 11 , wherein the instructions further performs a step to determine an effect of an interrupt at each possible interrupt and establish said bound based on a maximum of said effect of an interrupt at each possible interrupt point.

13. A system having a processor for establishing a bound on an effect of task interference on an application in an instruction cache shared by a plurality of tasks, said system comprising:

means for determining a number of live frames of said application that are coexistent during execution of said application; and

means for establishing said bound based on said number of live frames, wherein said bound is suitable for use in allocating processing resources, and further comprising means for comparing sets that contain live frames of said application with sets accessed by an interrupting task to determine a maximum number of live frames that may be affected by an interrupting task.

14. The system of claim 13 , wherein said number of live frames is determined by a post-execution analysis of cache access patterns of said application.

15. The system of claim 13 , wherein said number of live frames is determined by a run-time analysis of cache access patterns of a simulation of said application.

16. The system of claim 13 , further comprising means for determining an effect of an interrupt at each possible interrupt point and establish said bound based on a maximum of said effect of an interrupt at each possible interrupt point.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded Nov 18, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034286/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2014
From: AGERE SYSTEMS LLC
To: LSI CORPORATION
Reel/Frame 034245/0655 →
CERTIFICATE OF CONVERSION Recorded Oct 19, 2014
From: AGERE SYSTEMS INC.
To: AGERE SYSTEMS LLC
Reel/Frame 034014/0846 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2002
From: BETKER, MICHAEL RICHARD; DWYER, HARRY; FERNANDO, JOHN SUSANTHA
To: AGERE SYSTEMS INC.
Reel/Frame 012788/0758 →