Virtual Bank Manager Allocation in DRAM Controllers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing DRAM controller designs require a significant amount of surface area for bank managers, which increases with the number of DRAM banks, and many bank managers remain idle due to varying access patterns, leading to inefficient utilization.
Innovation Solution
Implementing a method to allocate virtual bank managers dynamically within the DRAM controller, where virtual bank managers are assigned to physical banks based on availability, reducing the need for multiple bank managers and optimizing surface area usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the number of DRAM banks is increased to improve memory capacity and access parallelism, then memory performance is improved, but the number of bank managers increases proportionally, consuming more surface area on the DRAM controller
Solution Approach 1:
The patent implements a pool of virtual bank managers that can be dynamically allocated to multiple physical banks. Instead of having dedicated bank managers for each physical bank, a smaller set of virtual bank managers serves multiple banks through time-multiplexed allocation, reducing the total number of bank manager units needed on the DRAM controller
Solution Approach 2:
The patent introduces dynamic allocation of virtual bank managers to physical banks based on access patterns and timing requirements. The virtual bank manager pool dynamically assigns managers to active banks and reclaims them when inactive, allowing the system to adapt to varying workload demands and reduce idle resource consumption
2Reliability
If dedicated bank managers are assigned to each DRAM bank, then each bank can be managed independently, but many bank managers remain idle during periods when their associated banks are not actively accessed
Solution Approach 1:
The patent implements a mechanism where virtual bank managers are temporarily allocated to physical banks when needed and then reclaimed when the banks become inactive. This allows the system to discard (de-allocate) virtual bank managers from idle banks and recover them for use with active banks, eliminating continuous power consumption of dedicated managers for inactive banks
Solution Approach 2:
The system dynamically tracks the activity status of each physical bank and adjusts the allocation of virtual bank managers accordingly. When a bank transitions from active to inactive state, its associated virtual bank manager is reclaimed; when a bank becomes active, a virtual bank manager is allocated to it, ensuring that bank management resources are always matched to actual workload requirements
3Adaptability or versatility
If a large number of bank managers are implemented to support increased DRAM banks, then complete bank coverage is achieved, but the complexity of the DRAM controller increases
Solution Approach 1:
The patent segments the bank management function into two parts: a pool of shared virtual bank managers and a virtualization layer that manages allocation. Instead of implementing one complex dedicated bank manager per physical bank, the system uses fewer simpler virtual bank managers that are multiplexed across multiple banks through the virtualization layer
Solution Approach 2:
The patent introduces a virtual bank manager pool as an intermediary layer between the physical DRAM banks and the control logic. This intermediary abstracts the complexity of managing multiple physical banks by providing a standardized interface and handling the dynamic allocation logic, thereby reducing the overall controller complexity while maintaining full bank coverage
Data Source
AI summary
Banks within a dynamic random access memory (DRAM) are managed with virtual bank managers. A DRAM controller receives a new memory access request to DRAM including a plurality of banks. If the request accesses a location in DRAM where no virtual bank manager includes parameters for the corresponding DRAM page, then a virtual bank manager is allocated to the physical bank associated with the DRAM page. The bank manager is initialized to include parameters needed by the DRAM controller to access the DRAM page. The memory access request is then processed using the parameters associated with the virtual bank manager. One advantage of the disclosed technique is that the banks of a DRAM module are controlled with fewer bank managers than in previous DRAM controller designs. As a result, less surface area on the DRAM controller circuit is dedicated to bank managers.


