Decoupled Memory Controllers Reduce Host Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity of memory management with the evolution of memory technologies leads to increased burden and communication overhead for host-side memory controllers, which can result in reduced performance due to the need to adhere to strict timing parameters and manage various types of memory technologies.

Innovation Solution

Implementing decoupled memory controllers, where a device-side memory controller handles timing and execution ordering of memory commands, reducing the complexity and communication overhead on the host-side memory controller by managing timing constraints and performing tasks like wear leveling and refresh operations independently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a host-side memory controller manages all memory operations directly, then memory access control and timing management can be performed centrally, but the complexity of the memory controller increases and communication overhead increases

Engineering Contradiction:
Improvememory controller complexityVSAvoidcommunication overhead
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The memory control functionality is segmented into two separate controllers: a host-side memory controller and a device-side memory controller. The host-side controller handles high-level memory management tasks while the device-side controller handles timing-critical operations and wear leveling, thereby distributing complexity and reducing communication overhead between host and memory device.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the host-side memory controller adheres to strict timing parameters, then memory operation reliability is ensured, but performance is reduced due to communication overhead

Engineering Contradiction:
Improvememory operation reliabilityVSAvoidmemory access performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Timing-critical functions are extracted from the host-side memory controller and placed in the device-side memory controller. This extraction allows the host-side controller to operate with relaxed timing constraints while the device-side controller ensures strict timing parameter adherence locally, thereby improving overall performance without sacrificing reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If the host-side memory controller manages multiple memory technologies, then system versatility is improved, but the burden on the memory controller increases

Engineering Contradiction:
Improvememory technology compatibilityVSAvoidmemory controller burden
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The device-side memory controller is designed with technology-specific management capabilities tailored to each memory device type (e.g., wear leveling for flash memory, refresh operations for DDR memory). This local quality approach allows each memory device to be managed by a specialized controller component, reducing the burden on the host-side controller while maintaining support for multiple memory technologies.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10691344B2Separate memory controllers to access data in memory
Publication Date: 2020.06.23 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10691344B2 patent drawing
  • US10691344B2 patent drawing
  • US10691344B2 patent drawing

AI summary

A first memory controller receives an access command from a second memory controller, where the access command is timing non-deterministic with respect to a timing specification of a memory. The first memory controller sends at least one access command signal corresponding to the access command to the memory, wherein the at least one access command signal complies with the timing specification. The first memory controller determines a latency of access of the memory. The first memory controller sends feedback information relating to the latency to the second memory controller.