IP Library Granted Patent US 8,392,651
Granted Patent B2
US 8,392,651 · App. 12/194,936 · Granted Mar 5, 2013

Data cache way prediction

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,392,651
App. No.
12/194,936
Granted
Mar 5, 2013
Kind
B2
Abstract

A microprocessor includes one or more N-way caches and a way prediction logic that selectively enables and disables the cache ways so as to reduce the power consumption. The way prediction logic receives an address and predicts in which one of the cache ways the data associated with the address is likely to be stored. The way prediction logic causes an enabling signal to be supplied only to the way predicted to contain the requested data. The remaining (N−1) of the cache ways do not receive the enabling signal. The power consumed by the cache is thus significantly reduced.

Claims (50)

1. A microprocessor comprising:

an N-way cache, N being an integer greater than one; and

a way prediction logic configured to receive an address and predict a first one of the N cache ways in which data associated with the address is likely to be stored; said way prediction logic further configured to supply an enabling signal to said predicted first one of the N cache ways, said way prediction logic further configured not to supply the enabling signal to a remaining (N−1) of the cache ways wherein said way prediction logic comprises:

a way prediction array having a plurality of entries, each entry in the array configured to store data representative of an address identifying a cache entry, data representative of a cache way, and one or more validation bits, wherein at least one of the validation bits is associated with the data representative of the cache way; and

a way prediction control unit configured to compare one or more bits of the received address with one or more bits of each of the addresses stored in the array to detect an address match, said way prediction control unit configured to generate the enabling signal in accordance with the detected address match and further in accordance with the stored validation bits wherein said way prediction logic is further configured to update the data representative of the cache way and the one or more validation bits in the way prediction array when a cache hit is detected.

2. The microprocessor of claim 1 wherein said way prediction logic is further configured to update the data representative of the address identifying the cache entry and the one or more validation bits in the way prediction array when no match in the addresses is detected.

3. The microprocessor of claim 1 wherein said way prediction logic is further configured to update the data representative of the address identifying the cache entry and the one or more validation bits in the way prediction array when the addresses are detected as being matched and one or more validation bits associated with the received address indicate that the data stored in the matched cache way is invalid.

4. The microprocessor of claim 1 wherein the received address is a virtual address.

5. The microprocessor of claim 1 wherein the microprocessor comprises a plurality of processing cores, each processing core comprising an N-way cache.

6. The microprocessor of claim 1 wherein the way prediction array is a Content Addressable Memory (CAM), said way prediction logic being further configured to flush at least one of the address validation bits stored in the CAM during a first clock cycle.

7. The microprocessor of claim 1 wherein the way prediction array is a Content Addressable Memory (CAM), said way prediction logic being further configured to flush all of the address validation bits stored in the CAM during a first clock cycle.

8. The microprocessor of claim 1 wherein said N-way cache is a data cache.

9. A method of operating a microprocessor comprising an N-way cache, the method comprising:

predicting a first one of the N cache ways in which data associated with a received address is likely to be stored;

supplying an enabling signal to said predicted first one of the N cache ways;

not supplying the enabling signal to a remaining (N−1) of the cache ways;

storing a plurality of entries, each entry comprising an address identifying a cache entry, data representative of a cache way, and one or more validation bits, wherein at least one of the validation bits is associated with the data representative of the cache way;

comparing one or more bits of the received address with one or more bits of the stored addresses to detect an address match;

generating the enabling signal in accordance with the detected address match and further in accordance with the stored validation bits; and

updating at least one of the plurality of entries with the data representative of the cache way and the one or more validation bits when a cache hit is detected.

10. The method of claim 9 further comprising:

updating at least one of the plurality of entries with the address identifying the cache entry and the one or more validation bits when no match in the addresses is detected.

11. The method of claim 9 further comprising:

updating at least one of the plurality of entries with the address identifying the cache entry and the one or more validation bits when an address match is detected and one or more validation bits associated with the received address indicate that the data stored in the matched cache way is invalid.

12. The method of claim 9 wherein the received address is a virtual address.

13. The method of claim 9 wherein said N-way cache is associated with one of a plurality of processing cores of a microprocessor.

14. The method of claim 9 wherein said plurality of entries are stored in a Content Addressable Memory (CAM), the method further comprising:

flushing at least one of the address validation bits stored in the CAM during a first clock cycle.

15. The method of claim 9 wherein said plurality of entries are stored in a Content Addressable Memory (CAM), the method further comprising:

flushing all of the address validation bits stored in the CAM during a first clock cycle.

16. The method of claim 9 wherein said N-way cache is a data cache.

17. A non-transitory computer readable storage medium including instructions defining logic blocks of a microprocessor comprising an N-way cache, the computer readable medium adapted for use by an electronic design automation application executed by a computer, wherein the logic blocks are configured to perform an operation comprising:

predicting a first one of the N cache ways in which data associated with a received address is likely to be stored;

supplying an enabling signal to said predicted first one of the N cache ways;

not supplying the enabling signal to a remaining (N−1) of the cache ways;

storing a plurality of entries, each entry comprising an address identifying a cache entry, data representative of a cache way, and one or more validation bits, wherein at least one of the validation bits is associated with the data representative of the cache way;

comparing one or more bits of the received address with one or more bits of the stored addresses to detect an address match;

generating the enabling signal in accordance with the detected address match and further in accordance with the stored validation bits; and

updating at least one of the plurality entries with the data representative of the cache way and the one or more validation bits when a cache hit is detected and subsequent to the generation of the enabling signal.

18. The non-transitory computer readable storage medium of claim 17 wherein the logic blocks are further configured to perform an operation comprising:

updating at least one of the plurality entries with the address identifying the cache entry and the one or more validation bits when no match in the addresses is detected.

19. The non-transitory computer readable storage medium of claim 17 wherein the logic blocks are further configured to perform an operation comprising:

updating at least one of the plurality entries with the address identifying the cache entry and the one or more validation bits when an address match is detected and one or more validation bits associated with the received address indicate that the data stored in the matched cache way is invalid.

20. The non-transitory computer readable storage medium of claim 17 wherein the received address is a virtual address.

21. The non-transitory computer readable storage medium of claim 17 wherein said N-way cache is associated with one of a plurality of processing cores of a microprocessor.

22. The non-transitory computer readable storage medium of claim 17 wherein said plurality of entries are stored in a Content Addressable Memory (CAM), wherein the logic blocks are further configured to perform an operation comprising:

flushing at least one of the address validation bits stored in the CAM during a first clock cycle.

23. The non-transitory computer readable storage medium of claim 17 wherein said plurality of entries are stored in a Content Addressable Memory (CAM), wherein the logic blocks are further configured to perform an operation comprising:

flushing all of the address validation bits stored in the CAM during a first clock cycle.

24. The non-transitory computer readable storage medium of claim 17 wherein said N-way cache is a data cache.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2014
From: BRIDGE CROSSING, LLC
To: ARM FINANCE OVERSEAS LIMITED
Reel/Frame 033074/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2013
From: MIPS TECHNOLOGIES, INC.
To: BRIDGE CROSSING, LLC
Reel/Frame 030202/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2008
From: MYLAVARAPU, AJIT KARTHIK
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 021418/0211 →