Per-Bank Memory Refresh Circuitry for DRAM Availability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Memory subsystems face inefficiencies in refreshing dynamic random access memory (DRAM) banks, as existing methods either delay transactions or require concurrent all-bank refreshes, which can lead to reduced system availability and performance.
Innovation Solution
Implementing a refresh circuitry that performs opportunistic refreshes by skipping refreshes for banks with pending transactions during a skip interval and prioritizing refreshes for unrefreshed banks during a force interval, ensuring all banks are refreshed within a given refresh interval while minimizing transaction delays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If concurrent all-bank refreshes are performed, then memory reliability is maintained, but system availability and performance deteriorate due to transaction delays
Solution Approach 1:
The memory system is divided into multiple independent banks, each capable of being refreshed separately. The refresh circuitry tracks each bank's refresh status independently using a scoreboard, allowing selective refreshing of only those banks that need it, rather than forcing all banks to refresh concurrently.
Solution Approach 2:
The refresh approach dynamically adapts based on transaction activity. During a skip interval, refreshes are deferred for banks with pending transactions. When the skip interval expires, the system transitions to a force interval where remaining unrefreshed banks are refreshed, optimizing the balance between reliability and availability based on actual system conditions.
2Productivity
If refreshes are skipped for banks with pending transactions during skip interval, then system performance is improved, but risk of missing refresh deadlines increases
Solution Approach 1:
The scoreboard provides continuous feedback on which banks have been refreshed and which still need refreshing. The refresh circuitry uses this feedback to make informed decisions about when to perform refreshes, ensuring that all banks are refreshed within their required intervals while minimizing impact on transactions.
Solution Approach 2:
The system performs preliminary tracking of refresh requirements using the scoreboard before transactions occur. By knowing in advance which banks need refreshing, the system can proactively schedule refreshes during periods of low transaction activity, preventing conflicts between refresh operations and transaction processing.
3Ease of operation
If per-bank opportunistic refreshes are performed, then memory availability is enhanced, but complexity of refresh control increases
Solution Approach 1:
The scoreboard serves multiple functions: it tracks which banks need refreshing, records when refreshes occur, and provides information for making refresh decisions. This multi-functional component simplifies the overall control logic by consolidating refresh management state in a single data structure that can be queried and updated by the refresh circuitry.
Data Source
AI summary
A method and apparatus for performing opportunistic refreshes of memory banks is disclosed. Refresh circuitry in a memory controller performs a refresh on each bank of a multi-bank memory at least once during a given refresh interval. At the beginning of an interval, memory banks for which there are no pending transactions (e.g., reads or writes) may be refreshed. During a first portion of the interval, refresh may be skipped for memory banks for which transactions are pending. In a second portion of the interval, refreshes are performed on memory banks that have not been refreshed during the interval, which may cause some memory transactions to be delayed.


