Reconfigurable Memory Controller Hardware Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory controllers face challenges in efficiently interfacing with various memory components and configurations due to limited reconfigurability and resource allocation, leading to suboptimal performance and power consumption.

Innovation Solution

A reconfigurable memory controller with hardware resources that can be dynamically allocated and reconfigured through mode register bits to support different memory configurations, including threaded and microthreaded modes, allowing efficient interface with multiple ranks and threads, and optimizing resource usage by powering down unused components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the memory controller uses fixed hardware resources for a specific memory configuration, then the performance for that configuration is optimized, but the controller cannot adapt to different memory configurations

Engineering Contradiction:
Improveadaptability to different memory configurationsVSAvoidhardware reconfiguration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The memory controller implements dynamic reconfiguration of its hardware resources through mode register bits that can be programmed to different values. The controller transitions from a fixed architecture to a dynamic one where buffers, registers, and other circuits can be reconfigured based on the current memory configuration (e.g., single-rank vs. dual-rank, threaded vs. non-threaded modes), allowing the same hardware to adapt to varying operational requirements without physical changes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The memory controller is designed with universal hardware resources that can serve multiple functions across different memory configurations. By implementing reconfigurable buffers and registers that can be allocated differently based on the operating mode, a single controller design can support various memory topologies (single-rank, dual-rank, threaded, microthreaded) without requiring separate dedicated hardware for each configuration, thereby achieving multi-functionality.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Use of energy by moving object

If the memory controller allocates all hardware resources continuously, then all memory configurations can be supported, but power consumption increases

Engineering Contradiction:
Improvepower consumptionVSAvoidsupport for multiple memory configurations
Core Design Contradiction:
Use of energy by moving objectVSAdaptability or versatility

Solution Approach 1:

The memory controller extracts or disables unused hardware resources when certain memory configurations are not in use. For example, when operating in a single-rank mode, the controller can power down or disable the second rank's buffers and registers, removing them from active operation. This selective extraction of unused resources significantly reduces power consumption while maintaining the capability to switch to full resource allocation when dual-rank or threaded modes are required.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The controller dynamically adjusts its power consumption by transitioning between different operational states based on the current memory configuration. Resources are activated or deactivated in real-time according to the mode register settings, allowing the system to optimize power usage by only activating the hardware components necessary for the current operational mode rather than maintaining all resources in an active state continuously.

Inventive Principle:
Principle #15Dynamics

3Productivity

If the memory controller uses simple resource allocation, then the controller design is easier, but performance is suboptimal for complex memory configurations

Engineering Contradiction:
Improvememory access performanceVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory controller utilizes parameter changes through mode register bits to optimize resource allocation for different memory configurations. By programming these register bits with specific values corresponding to the current memory topology (e.g., number of ranks, threading mode), the controller automatically adjusts buffer sizes, register allocations, and data path configurations. This parameter-driven approach enables optimal performance for complex configurations like threaded or microthreaded modes without requiring complex manual configuration logic.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8990490B2Memory controller with reconfigurable hardware
Publication Date: 2015.03.24 RAMBUS INC
  • US8990490B2 patent drawing
  • US8990490B2 patent drawing
  • US8990490B2 patent drawing

AI summary

Memory controller concepts are disclosed in which hardware resources of a memory controller can be re-used or re-configured to accommodate various different memory configurations. The memory configuration may be stored in mode register bits (228), settable by a host or operating system. By re-configuring or reallocating certain resources of a memory controller, for example command logic blocks (A, B, C, D in FIG. 1A), a single controller design can be used to interface efficiently with a variety of different memory components. Command logic blocks that support N×M memory ranks, for example, can be reconfigured to support N ranks and M threads for multi-threaded memories (FIG. 1A). Data buffer (232, 254) depth can be extended by reconfiguring the buffers responsive to the mode register bits (228). Request buffers can be shared across command logic blocks, for example to increase the request buffer depth (FIG. 3A). Unused circuits can be powered down to save power consumption (FIG. 4A).