IP Library › Granted Patent US 8,972,665
Granted Patent B2
US 8,972,665 · App. 13/524,574 · Granted Mar 3, 2015

Cache set selective power up

Inventors: Brian R. Prasky (Wappingers Falls, NY); Anthony Saporito (Highland, NY); Aaron Tsai (Poughkeepsie, NY)
Assignee: International Business Machines Corporation
G06F1/3275G06F17/30982
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,972,665
App. No.
13/524,574
Granted
Mar 3, 2015
Kind
B2
Abstract

Embodiments of the disclosure include selectively powering up a cache set of a multi-set associative cache by receiving an instruction fetch address and determining that the instruction fetch address corresponds to one of a plurality of entries of a content addressable memory. Based on determining that the instruction fetch address corresponds to one of a plurality of entries of a content addressable memory a cache set of the multi-set associative cache that contains a cache line referenced by the instruction fetch address is identified and only powering up a subset of cache. Based on the identified cache set not being powered up, selectively powering up the identified cache set of the multi-set associative cache and transmitting one or more instructions stored in the cache line referenced by the instruction fetch address to a processor.

Claims (74)

1. A computer program product for implementing selectively powering up a cache set of a multi-set associative cache, the computer program product comprising:

a tangible storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

receiving an instruction fetch address;

based on determining that the instruction fetch address corresponds to one of a plurality of entries of a content addressable memory, identifying, by a computer, a cache set of the multi-set associative cache that contains a cache line referenced by the instruction fetch address, wherein only a subset of cache sets are powered up;

based on the identified cache set not being powered up, selectively powering up the identified cache set of the multi-set associative cache;

transmitting one or more instructions stored in the cache line referenced by the instruction fetch address to a processor,

wherein each of the plurality of entries of the content addressable memory correspond to a recently accessed cache line and comprise an instruction address field that includes the address of the recently accessed instruction cache line and a set field that includes the cache set within the multi-set associative cache that contains the recently accessed instruction cache line, and

based on determining that the instruction fetch address does not correspond to one of the plurality of recently accessed cache lines stored in the content addressable memory:

powering up each of the cache sets of the multi-set associative cache in parallel;

reading the cache lines of each of the cache sets referenced by the instruction fetch address;

selecting the cache line of a cache set based on the instruction fetch address; and

transmitting a data stored in the cache line referenced by the instruction fetch address to a processor.

2. The computer program product of claim 1 , wherein the determining further comprises:

comparing, by the computer, the instruction fetch address to the plurality of entries of the content addressable memory;

powering down a least recently used cache line of the subset;

reading the powered up cache line referenced by the instruction fetch address; and

selecting the one or more instructions to be transmitted from the powered up cache line.

3. The computer program product of claim 1 , wherein each of the plurality of entries further comprise

a valid bit field.

4. The computer program product of claim 3 , wherein the valid bit field of an entry is set to zero to indicate that the recently accessed instruction cache line is invalidated; and

wherein the valid bit field of all of the plurality of entries of the content addressable memory are set to zero to indicate that states affecting all of the plurality of entries of the content addressable memory are altered.

5. The computer program product of claim 1 , wherein the content addressable memory is configured to:

simultaneously receive a plurality of possible instruction fetch addresses;

simultaneously compare the plurality of entries of the content addressable memory to the multiple possible instruction fetch addresses; and

based on the comparison, determine whether one of the plurality of possible instruction fetch address corresponds to one of the plurality of entries of the content addressable memory

6. A computer implemented method for selectively powering up a cache set of a multi-set associative cache, the method comprising:

receiving an instruction fetch address;

based on determining that the instruction fetch address corresponds to one of a plurality of entries of a content addressable memory, identifying, by a computer, a cache set of the multi-set associative cache that contains a cache line referenced by the instruction fetch address, wherein only a subset of cache sets are powered up;

based on the identified cache set not being powered up, selectively powering up the identified cache set of the multi-set associative cache;

transmitting one or more instructions stored in the cache line referenced by the instruction fetch address to a processor,

wherein each of the plurality of entries of the content addressable memory correspond to a recently accessed cache line and comprise an instruction address field that includes the address of the recently accessed instruction cache line and a set field that includes the cache set within the multi-set associative cache that contains the recently accessed instruction cache line, and

based on determining that the instruction fetch address does not correspond to one of the plurality of recently accessed cache lines stored in the content addressable memory:

powering up each of the cache sets of the multi-set associative cache in parallel;

reading the cache lines of each of the cache sets referenced by the instruction fetch address;

selecting the cache line of a cache set based on the instruction fetch address; and

transmitting a data stored in the cache line referenced by the instruction fetch address to a processor.

7. The computer implemented method of claim 6 , wherein the determining further comprises:

comparing, by the computer, the instruction fetch address to the plurality of entries of the content addressable memory;

powering down a least recently used cache line of the subset;

reading the powered up cache line referenced by the instruction fetch address; and

selecting the one or more instructions to be transmitted from the powered up cache line.

8. The computer implemented method of claim 6 , wherein each of the plurality of entries further comprise

a valid bit field.

9. The computer implemented method of claim 8 , wherein the valid bit field of an entry is set to zero to indicate that the recently accessed instruction cache line is invalidated; and

wherein the valid bit field of all of the plurality of entries of the content addressable memory are set to zero to indicate that states affecting all of the plurality of entries of the content addressable memory are altered.

10. The computer implemented method of claim 6 , wherein the content addressable memory is configured to:

simultaneously receive a plurality of possible instruction fetch addresses;

simultaneously compare the plurality of entries of the content addressable memory to the multiple possible instruction fetch addresses; and

based on the comparison, determine whether one of the plurality of possible instruction fetch address corresponds to one of the plurality of entries of the content addressable memory.

11. A computer system for selectively powering up a cache set of a multi-set associative cache, the system comprising:

a processor comprising the multi-set associative cache and a content addressable memory, the system configured to perform a method comprising:

receiving an instruction fetch address;

based on determining that the instruction fetch address corresponds to one of a plurality of entries of a content addressable memory, identifying, by a computer, a cache set of the multi-set associative cache that contains a cache line referenced by the instruction fetch address, wherein only a subset of cache sets are powered up;

based on the identified cache set not being powered up, selectively powering up the identified cache set of the multi-set associative cache;

transmitting one or more instructions stored in the cache line referenced by the instruction fetch address to a processor,

wherein each of the plurality of entries of the content addressable memory correspond to a recently accessed cache line and comprise an instruction address field that includes the address of the recently accessed instruction cache line and a set field that includes the cache set within the multi-set associative cache that contains the recently accessed instruction cache line, and

based on determining that the instruction fetch address does not correspond to one of the plurality of recently accessed cache lines stored in the content addressable memory:

powering up each of the cache sets of the multi-set associative cache in parallel;

reading the cache lines of each of the cache sets referenced by the instruction fetch address;

selecting the cache line of a cache set based on the instruction fetch address; and

transmitting a data stored in the cache line referenced by the instruction fetch address to a processor.

12. The computer system of claim 11 , wherein the determining further comprises:

comparing, by the computer, the instruction fetch address to the plurality of entries of the content addressable memory;

powering down a least recently used cache line of the subset;

reading the powered up cache line referenced by the instruction fetch address; and

selecting the one or more instructions to be transmitted from the powered up cache line.

13. The computer system of claim 11 , wherein each of the plurality of entries further comprises

a valid bit field.

14. The computer system of claim 13 , wherein the valid bit field of an entry is set to zero to indicate that the recently accessed instruction cache line is invalidated; and

wherein the valid bit field of all of the plurality of entries of the content addressable memory are set to zero to indicate that states affecting all of the plurality of entries of the content addressable memory are altered.

15. The computer system of claim 11 , wherein the content addressable memory is configured to:

simultaneously receive a plurality of possible instruction fetch addresses;

simultaneously compare the plurality of entries of the content addressable memory to the multiple possible instruction fetch addresses; and

based on the comparison, determine whether one of the plurality of possible instruction fetch address corresponds to one of the plurality of entries of the content addressable memory.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE OMISSION OF INVENTOR 3 "TSAI, AARON" DOC. DATE: 06/15/2012" AS REFLECTED ON THE EXECUTED DOCUMENT PREVIOUSLY RECORDED ON REEL 028869 FRAME 0069. ASSIGNOR(S) HEREBY CONFIRMS THE ADDITION OF INVENTOR 3 "TSAI, AARON" DOC. DATE: 06/15/2012" AS REFLECTED ON THE EXECUTED DOCUMENT. Recorded May 22, 2014
From: PRASKY, BRIAN R.; SAPORITO, ANTHONY; TSAI, AARON
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032983/0540 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2012
From: PRASKY, BRIAN R.; SAPORITO, ANTHONY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028869/0069 →
Continuity (1)
Related Publication 20130339596A1 · Dec 19, 2013