IP Library Granted Patent US 7,890,700
Granted Patent B2
US 7,890,700 · App. 12/051,736 · Granted Feb 15, 2011

Method, system, and computer program product for cross-invalidation handling in a multi-level private cache

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,890,700
App. No.
12/051,736
Granted
Feb 15, 2011
Kind
B2
Abstract

A method, system, and computer program product for cross-invalidation handling in a multi-level private cache are provided. The system includes a processor. The processor includes a fetch address register logic in communication with a level 1 data cache, a level 1 instruction cache, a level 2 cache, and a higher level cache. The processor also includes a set of cross-invalidate snapshot counter implemented in the fetch address register. Each cross-invalidate snapshot counter tracks an amount of pending higher level cross-invalidations received before new data for the corresponding cache miss is returned from the higher-level cache. The processor also includes logic executing on the fetch address register for handling level 1 data cache misses and interfacing with the level 2 cache. In response to the new data, and upon determining that older cross-invalidations are pending, the new data is prevented from being used by the processor.

Claims (15)

1. A processor for cross-invalidation handling in a multi-level private cache, comprising:

a fetch address register logic in communication with a level 1 data cache, a level 1 instruction cache, a level 2 cache, and a higher level cache;

a set of cross-invalidate (XI) snapshot counters implemented in the fetch address register logic, each cross-invalidate snapshot counter tracking an amount of pending higher level cross-invalidations received before new data for a corresponding cache miss is returned from the higher-level cache; and

logic executing on the fetch address register for handling level 1 data cache misses and interfacing with the level 2 cache;

wherein, in response to the new data, and upon determining that older cross-invalidations are pending, preventing the new data from being used by the processor.

2. The system of claim 1 , wherein the level 2 cache comprises two concurrently running sliced caches.

3. The system of claim 1 , wherein the higher level cache is a storage controller.

4. The system of claim 2 , wherein the higher level cache comprises two concurrently running sliced caches.

5. The system of claim 1 , wherein the fetch address register logic further comprises free running cross-invalidate counters that increment on any cross-invalidate received from higher level cache, and decrement when the cross-invalidate is processed.

6. The system of claim 5 , wherein each cross invalidate snapshot register is updated from the free running cross invalidate counter when data is received from the higher level cache on any level 2 cache miss.

7. The system of claim 6 , wherein the processor further comprises a generic XI snapshot counter that is updated from the free running cross invalidate counter on other non-data cache misses that get new data from higher level cache.

8. The system of claim 1 , wherein preventing new data being used by the processor comprises masking the sector valid bits on the corresponding cache miss line address to mimic a data transit waiting condition.

9. The system of claim 1 , wherein the processor further comprises a forward progress counter that is incremented when a pipeline restart after data received from higher level cache encounters a subsequent cache miss to the same cache line.

10. The system of claim 9 , wherein the processor further comprises a forward progress threshold that upon the forward progress counter reaching such threshold, the XI snapshot mechanism is disabled, and XI processing is disabled until a pipeline restart can successfully obtain the pipelines desired data.

11. The system of claim 1 , wherein the processor further comprises detection of architecturally serializing instruction, upon which, the processor flushes the pipeline and any buffered fetches if the free running cross invalidate counter is non-zero.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2008
From: CHOY, KA SHAN; NAVARRO, JENNIFER A.; SHUM, CHUNG-LUNG KEVIN; TSAI, AARON
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020810/0318 →
Continuity (1)
Related Publication 20090240889A1 · Sep 24, 2009