IP Library › Granted Patent US 8,751,745
Granted Patent B2
US 8,751,745 · App. 12/854,658 · Granted Jun 10, 2014

Method for concurrent flush of L1 and L2 caches

Inventors: Robert Krick (Longmont, CO); David Kaplan (Austin, TX)
Assignee: Advanced Micro Devices, Inc.
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,751,745
App. No.
12/854,658
Filed
Aug 11, 2010
Granted
Jun 10, 2014
Kind
B2
Examiner
YU, JAE UN
Art Unit
2185
USPC
711/122
Abstract

The present invention provides a method and apparatus for use with a hierarchical cache system. The method may include concurrently flushing one or more first caches and a second cache of a multi-level cache. Each first cache is smaller and at a lower level in the multi-level cache than the second level cache.

Claims (21)

1. A method, comprising:

concurrently flushing at least one first cache and a second cache of a multi-level cache of a processor, wherein each first cache is smaller and at a lower level in the multi-level cache than the second cache, and wherein concurrently flushing comprises:

flushing a single way of the second cache using hardware in response to a signal provided by microcode, wherein the second cache includes N ways; and

flushing a number of lines of said at least one first cache using the microcode, wherein the number corresponds to 1/N of the lines.

2. The method of claim 1 , wherein concurrently flushing said at least one first cache and the second cache comprises flushing said at least one first level cache using at least one of microcode or hardware and flushing the second cache using at least one of microcode or hardware.

3. The method of claim 1 , wherein concurrently flushing said at least one first cache and the second cache comprises concurrently flushing a first portion of said at least one first cache and a second portion of the second cache.

4. The method of claim 1 , comprising iteratively repeating concurrent flushing a single way of the second cache and the number of the lines of said at least one first cache until said at least one first cache and the second cache are completely flushed.

5. The method of claim 4 , comprising determining that an iteration of said concurrent flushing is complete by polling the hardware used to flush the second cache using the microcode.

6. The method of claim 4 , comprising using the microcode to determine whether an interrupt is pending after each iteration and stopping said concurrent flushing to service pending interrupts.

7. A multi-level cache, comprising:

at least one first cache and a second cache, wherein each first cache is smaller and at a lower level in the multi-level cache than the second cache, and wherein the second cache includes N ways; and

a cache controller configured to control concurrent flushing of said at least one first cache and the second cache, wherein the cache controller is to control the concurrent flushing to flush only those ways of said at least one first cache and said second cache that include valid data, and wherein the cache controller is to control concurrent flushing by:

providing a signal to hardware to initiate flushing a selected portion or combination of ways of the second cache; and

flushing 1/N of lines of said at least one first cache using microcode.

8. The multi-level cache of claim 7 , wherein the cache controller is configured to select a first portion of said at least one first cache and a second portion of the second cache so that the first portion and the second portion can be flushed concurrently.

9. The multi-level cache of claim 8 , wherein the second cache includes N ways; and wherein the cache controller is configured to:

provide a signal to the hardware to initiate flushing a selected portion or combination of ways of the second cache; and

flush approximately 1/N of the lines of said at least one first cache using the microcode.

10. The multi-level cache of claim 9 , wherein the cache controller is configured to iteratively repeat concurrent flushing of the first portion and the second portion until said at least one first cache and the second cache are completely flushed.

11. The multi-level cache of claim 10 , wherein the cache controller is configured to determine that an iteration of said concurrent flushing of the first portion and a second portion is complete by polling the hardware used to flush the second cache using the microcode.

12. The multi-level cache of claim 10 , wherein the cache controller is configured to use the microcode to determine whether an interrupt is pending after each iteration and to stop said concurrent flushing so that pending interrupts can be serviced.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2010
From: KRICK, ROBERT; KAPLAN, DAVID
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 024825/0198 →
Continuity (1)
Related Publication 20120042126A1 · Feb 16, 2012