Latency-aware Memory Controller with Priority Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Electronic devices with heterogeneous memory systems face challenges in prioritizing memory access across different memory regions with varying access latencies, leading to inefficiencies in access speed and energy consumption.

Innovation Solution

A memory controller is designed to schedule access to heterogeneous memory regions using multiple queues and access priorities, deferring high-latency commands to prevent bottlenecks and optimize throughput by prioritizing low-latency commands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If memory access is prioritized without considering latency differences, then access speed improves, but energy consumption increases

Engineering Contradiction:
Improvememory access speedVSAvoidenergy consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The memory system is segmented into multiple memory regions with different access latencies. The controller divides memory access commands into different queues based on the target memory region's latency characteristics, allowing differentiated handling of high-latency and low-latency regions to optimize both speed and energy consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller dynamically changes the priority parameter of memory access commands based on the latency characteristics of the target memory region. Low-latency commands are assigned higher priority and processed first, while high-latency commands are deferred, optimizing the balance between access speed and energy consumption.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If heterogeneous memory regions are accessed simultaneously, then throughput improves, but access priority management becomes complex

Engineering Contradiction:
Improvememory throughputVSAvoidpriority management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The command buffer is segmented into multiple queues (first queue for high-priority low-latency commands, second queue for low-priority high-latency commands). This segmentation simplifies priority management by providing clear separation between different command types while maintaining high throughput through parallel processing capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller dynamically switches between processing commands from different queues based on availability and priority. When low-latency commands are available, they are processed first; when only high-latency commands are available, the system switches to processing those, providing adaptive priority management that maintains throughput without excessive complexity.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If high-latency commands are processed first, then queue simplicity improves, but access speed deteriorates

Engineering Contradiction:
Improvequeue structure simplicityVSAvoidmemory access speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

Instead of processing commands in the traditional first-in-first-out manner regardless of latency, the system inverts the priority logic by processing low-latency commands first and deferring high-latency commands. This inversion optimizes access speed for time-critical operations while maintaining a relatively simple two-queue structure.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS9535627B2Latency-aware memory control
Publication Date: 2017.01.03 ADVANCED MICRO DEVICES INC
  • US9535627B2 patent drawing
  • US9535627B2 patent drawing
  • US9535627B2 patent drawing

AI summary

A system, method and computer-readable storage device for accessing heterogeneous memory system, are provided. A memory controller schedules access of a command to a memory region in a set of memory regions based on an access priority associated with the command and where the set of memory regions have corresponding access latencies. The memory controller also defers access of the command to the set of memory regions using at least two queues and the access priority.