IP Library Granted Patent US 7,930,525
Granted Patent B2
US 7,930,525 · App. 12/110,745 · Granted Apr 19, 2011

Method and apparatus for an efficient multi-path trace cache design

Assignee: International Business Machines Corporation
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,930,525
App. No.
12/110,745
Granted
Apr 19, 2011
Kind
B2
Abstract

A novel trace cache design and organization to efficiently store and retrieve multi-path traces. A goal is to design a trace cache, which is capable of storing multi-path traces without significant duplication in the traces. Furthermore, the effective access latency of these traces is reduced.

Claims (31)

1. An apparatus for providing a trace cache organization system, said apparatus comprising:

a header cache which stores only a header portion of traces; and

a trace cache adapted to store header and trailer portions of traces, the trace cache comprising at least one hierarchical cache level;

wherein the header cache portion of said trace cache includes a single header bank and further wherein the header bank has a pointer pointing to a first sequential trailer trace bank;

wherein a trailer cache portion of said trace cache includes multiple cache banks; and

at least one of the following (a), (b) and (c) prevails:

(a) the full trailer portion of a trace resides in only one cache bank;

(b) the trailer portion of a trace is broken up and distributed among multiple cache banks; and

(c) each trailer bank has a pointer pointing to a next sequential trailer trace bank.

2. The apparatus according to claim 1 , wherein a subset of said header cache is a L0 cache.

3. The apparatus according to claim 1 , wherein said header cache is a L0 cache.

4. The apparatus according to claim 1 , wherein said trace cache is a L1 cache.

5. The apparatus according to claim 1 , further comprising:

a filtering buffer for holding traces and selectively passing on traces to said trace cache;

said filtering buffer being adapted to distinguish between:

hot traces for being passed on to L1 trace cache; in addition, whose headers are passed on to L0 header cache; and

cold traces for being passed on to the L1 trace cache only.

6. The apparatus according to claim 5 , wherein:

said filtering buffer is adapted to hold a frequency counter corresponding to a trace; and

said filtering buffer distinguishes a trace as a hot trace upon a frequency counter exceeding a predetermined threshold value.

7. The apparatus according to claim 5 , wherein said filtering buffer is adapted to promote a header of a hot trace to said header cache and to write a copy of a header and trailer of a hot trace to said trace cache.

8. The apparatus according to claim 7 , further comprising an arrangement for replacing a cold trace in said filtering buffer, whereupon the cold trace is copied to said trace cache and a header of the cold trace is not promoted to said header cache.

9. A program storage device readable by machine, tangibly embodying a program of instructions executed by the machine to perform method steps for providing a trace cache organization system, said method comprising the steps of:

providing a header cache which stores only the header portion of traces; and

providing a trace cache adapted to store header and trailer portions of traces, the trace cache comprising at least one hierarchical cache level;

wherein the header cache portion of said trace cache includes a single header bank and further wherein the header bank has a pointer pointing to a first sequential trailer trace bank;

wherein a trailer cache portion of said trace cache includes multiple cache banks; and

at least one of the following (a), (b) and (c) prevails:

(a) the full trailer portion of a trace resides in only one cache bank;

(b) the trailer portion of a trace is broken up and distributed among multiple cache banks; and

(c) each trailer bank has a pointer pointing to a next sequential trailer trace bank.

Continuity (3)
Continuation 11069014 · Mar 1, 2005
Provisional Application 60632428 · Dec 1, 2004
Related Publication 20080263326A1 · Oct 23, 2008