IP Library › Granted Patent US 7,490,200
Granted Patent B2
US 7,490,200 · App. 11/054,924 · Granted Feb 10, 2009

L2 cache controller with slice directory and unified cache structure

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,490,200
App. No.
11/054,924
Granted
Feb 10, 2009
Kind
B2
Abstract

A cache memory logically partitions a cache array having a single access/command port into at least two slices, and uses a first cache directory to access the first cache array slice while using a second cache directory to access the second cache array slice, but accesses from the cache directories are managed using a single cache arbiter which controls the single access/command port. In the illustrative embodiment, each cache directory has its own directory arbiter to handle conflicting internal requests, and the directory arbiters communicate with the cache arbiter. An address tag associated with a load request is transmitted from the processor core with a designated bit that associates the address tag with only one of the cache array slices whose corresponding directory determines whether the address tag matches a currently valid cache entry. The cache array may be arranged with rows and columns of cache sectors wherein a given cache line is spread across sectors in different rows and columns, with at least one portion of the given cache line being located in a first column having a first latency and another portion of the given cache line being located in a second column having a second latency greater than the first latency. The cache array outputs different sectors of the given cache line in successive clock cycles based on the latency of a given sector.

Claims (17)

1. A method of operating a cache memory in a given level of a multilevel cache hierarchy, comprising:

logically partitioning a cache array of the cache memory into at least first and second slices wherein the first slice contains a first plurality of bytes arranged in at least a first row of the cache array and the second slice contains a second plurality of bytes arranged in at least a second row of the cache array, the first plurality of bytes and the second plurality of bytes further being arranged in columns defining common sectors;

receiving a load request at a controller of the cache memory, the load request including an address for a requested memory block, and the controller having a first directory associated with the first slice and a second directory associated with the second slice;

feeding the address to each of the rows in the cache array;

delivering the address selectively to only one of the first and second directories based on a setting of a designated bit in the address;

matching the address to an entry in the selected one of the first and second directories and responsively sending an enable signal from the selected one of the first and second directories to a corresponding one of the first and second rows; and

successively powering the sectors of the cache array to pipeline the requested memory block to an output of the cache array using a single cache arbiter of the cache controller.

2. The method of claim 1 wherein:

the second plurality of bytes are arranged in the second row and in a third row; and

the first plurality of bytes are arranged in the first row and in a fourth row.

3. The method of claim 1 wherein the cache arbiter schedules different tasks for different sectors to be carried out simultaneously.

4. The method of claim 1 wherein the cache arbiter powers different sectors in successive clock cycles based on the latency of a given sector.

5. The method of claim 1 wherein:

the first directory includes a first directory arbiter to handle conflicting access requests within the first slice;

the second directory includes a second directory arbiter to handle conflicting access requests within the second slice; and

the cache arbiter manages access requests from both the first directory arbiter and the second directory arbiter.

6. The method of claim 1 wherein the cache array includes one or more merge flow circuits for each sector which receive data to be stored in a designated sector of one of the rows of the bytes, and the cache arbiter controls the merge flow circuits to selectively store the data in the designated sector.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2005
From: CLARK, LEO JAMES; FIELDS, JAMES STEPHEN JR.; GUTHRIE, GUY LYNN; STARKE, WILLIAM JOHN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 015902/0856 →
Continuity (1)
Related Publication 20060179229A1 · Aug 10, 2006