IP Library › Granted Patent US 8,291,157
Granted Patent B2
US 8,291,157 · App. 12/822,364 · Granted Oct 16, 2012

Concurrent refresh in cache memory

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 8,291,157
App. No.
12/822,364
Granted
Oct 16, 2012
Kind
B2
Abstract

Concurrent refresh in a cache memory includes calculating a refresh time interval at a centralized refresh controller, the centralized refresh controller being common to all cache memory banks of the cache memory, transmitting a starting time of the refresh time interval to a bank controller, the bank controller being local to, and associated with, only one cache memory bank of the cache memory, sampling a continuous refresh status indicative of a number of refreshes necessary to maintain data within the cache memory bank associated with the bank controller, requesting a gap in a processing pipeline of the cache memory to facilitate the number of refreshes necessary, receiving a refresh grant in response to the requesting, and transmitting an encoded refresh command to the bank controller, the encoded refresh command indicating a number of refresh operations granted to the cache memory bank associated with the bank controller.

Claims (64)

1. A computer program product for concurrent refresh in a cache memory, 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:

calculating a refresh time interval based upon system operating conditions at a centralized refresh controller, the centralized refresh controller being common to all cache memory banks of the cache memory;

transmitting a starting time of the refresh time interval to a bank controller, the bank controller being local to, and associated with, only one cache memory bank of the cache memory;

sampling a continuous refresh status indicative of a number of refreshes necessary to maintain data within the cache memory bank associated with the bank controller, the continuous refresh status being a combination of refresh request signals updated based on a concurrent refresh status of embedded dynamic random access memory (EDRAM) macros in operative communication with the bank controller;

requesting a gap in a processing pipeline of the cache memory to facilitate the number of refreshes necessary;

receiving a refresh grant in response to the requesting; and

transmitting an encoded refresh command to the bank controller, the encoded refresh command indicating a number of refresh operations granted to the cache memory bank associated with the bank controller.

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

receiving the starting time of the refresh time interval at the bank controller; and

updating the continuous refresh status.

3. The computer program product of claim 1 , wherein the method further comprises:

receiving the starting time of the refresh time interval at the bank controller; and

updating the continuous refresh status, the continuous refresh status update being gathered as a logical OR output of a plurality of EDRAM macro refresh requests, each refresh request of the plurality of EDRAM macro refresh requests representing a maximum number of refresh operations required by each respective EDRAM macro.

4. The computer program product of claim 1 , wherein calculating the refresh time interval includes:

selecting between a predetermined number of different refresh frequencies.

5. The computer program product of claim 4 , wherein the predetermined number of different refresh frequencies include at least a normal refresh frequency and a fast refresh frequency.

6. The computer program product of claim 5 , wherein the fast refresh frequency is selected in response to increased system temperature.

7. The computer program product of claim 1 , wherein a plurality of different refresh time interval starting times are transmitted to a plurality of different bank controllers, each bank controller being local to, and associated with, only one cache memory bank of the cache memory, and each cache memory bank of the cache memory being associated with only one bank controller.

8. The computer program product of claim 7 , wherein the plurality of different refresh time interval starting times are staggered.

9. A system for concurrent refresh in a cache memory, comprising:

at least one cache memory bank;

a bank controller local to, and in communication with, the at least one cache memory bank;

a centralized refresh controller in communication with the bank controller, the centralized refresh controller configured to perform a method, comprising:

calculating a refresh time interval based upon system operating conditions;

transmitting a starting time of the refresh time interval to a bank controller, the bank controller being local to, and associated with, only one cache memory bank of the cache memory;

sampling a continuous refresh status indicative of a number of refreshes necessary to maintain data within the cache memory bank associated with the bank controller, the continuous refresh status being a combination of refresh request signals updated based on a concurrent refresh status of embedded dynamic random access memory (EDRAM) macros in operative communication with the bank controller;

requesting a gap in a processing pipeline of the cache memory to facilitate the number of refreshes necessary to maintain data within the cache memory bank associated with the bank controller;

receiving a refresh grant in response to the requesting; and

transmitting an encoded refresh command to the bank controller, the encoded refresh command indicating a number of refresh operations granted to the at least one cache memory bank.

10. The system of claim 9 , wherein the method further comprises:

receiving the starting time of the refresh time interval at the bank controller; and

updating the continuous refresh status.

11. The system of claim 9 , wherein the method further comprises:

receiving the starting time of the refresh time interval at the bank controller; and

updating the continuous refresh status, the continuous refresh status update being gathered as a logical OR output of a plurality of EDRAM macro refresh requests, each refresh request of the plurality of EDRAM macro refresh requests representing a maximum number of refresh operations required by each respective EDRAM macro.

12. The system of claim 9 , wherein calculating the refresh time interval includes:

selecting between a predetermined number of different refresh frequencies.

13. The system of claim 12 , wherein the predetermined number of different refresh frequencies include at least a normal refresh frequency and a fast refresh frequency.

14. The system of claim 13 , wherein the fast refresh frequency is selected in response to increased system temperature.

15. The system of claim 9 , further comprising a plurality of cache memory banks, each cache memory bank including a single bank controller associated therewith, wherein the method further comprises:

calculating a plurality of different refresh time intervals;

transmitting starting times of the plurality of different refresh time intervals to the plurality of bank controllers;

sampling refresh statuses indicative of a number of refreshes necessary to maintain data within the plurality of cache memory banks;

requesting a gap in a processing pipeline of the cache memory to facilitate the number of refreshes necessary to maintain data within the plurality of cache memory banks;

receiving a refresh grant in response to the requesting a gap in a processing pipeline of the cache memory to facilitate the number of refreshes necessary to maintain data within the plurality of cache memory banks; and

transmitting an encoded refresh command to the plurality of bank controllers, the encoded refresh command transmitted to the plurality of bank controllers indicating a number of refresh operations granted to associated cache memory banks.

16. The system of claim 15 , wherein the plurality of different refresh time interval starting times are staggered.

17. A computer implemented method of concurrent refresh in a cache memory, the method comprising:

calculating a refresh time interval based upon system operating conditions at a centralized refresh controller, the centralized refresh controller being common to all cache memory banks of the cache memory;

transmitting a starting time of the refresh time interval to a bank controller;

sampling a continuous refresh status indicative of a number of refreshes necessary to maintain data within a cache memory bank associated with the bank controller, the continuous refresh status being a combination of refresh request signals updated based on a concurrent refresh status of embedded dynamic random access memory (EDRAM) macros in operative communication with the bank controller;

requesting a gap in a processing pipeline of the cache memory to facilitate the number of refreshes necessary;

receiving a refresh grant in response to the requesting; and

transmitting an encoded refresh command to the bank controller, the encoded refresh command indicating a number of refresh operations granted to the cache memory bank associated with the bank controller.

18. The method of claim 17 , wherein the method further comprises:

receiving the starting time of the refresh time interval at the bank controller; and

updating the continuous refresh status, the continuous refresh status update being a logical vector representing a number of refresh operations required within the cache memory bank associated with the bank controller.

19. The method of claim 17 , wherein the method further comprises:

receiving the starting time of the refresh time interval at the bank controller; and

updating the continuous refresh status, the continuous refresh status update being gathered as a logical OR output of a plurality of EDRAM macro refresh requests, each refresh request of the plurality of EDRAM macro refresh requests representing a maximum number of refresh operations required by each respective EDRAM macro.

20. The method of claim 17 , wherein calculating the refresh time interval includes:

selecting between a predetermined number of different refresh frequencies.

21. The method of claim 17 , wherein a plurality of different refresh time interval starting times are transmitted to a plurality of different bank controllers, each bank controller being local to, and associated with, only one cache memory bank of the cache memory, and each cache memory bank of the cache memory being associated with only one bank controller.

22. The method of claim 21 , wherein the plurality of different refresh time interval starting times are staggered.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2010
From: BRONSON, TIMOTHY C.; HUYNH, HIEU T.; HWANG, CHARLIE C.; KLAPPROTH, KENNETH D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024587/0112 →
Continuity (1)
Related Publication 20110320700A1 · Dec 29, 2011