Memory Controller Sub-Queue Arbitration for Faster DDR Command Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional DDR memory controllers face delays due to the arbiter taking too much time to evaluate all entries regarding priority, JEDEC timing dependency, and page state information, leading to inefficiencies in processing memory read and write commands.

Innovation Solution

Implementing a memory controller with multiple smaller command sub-queues and dedicated arbiters for each queue, allowing independent selection of memory access requests based on predetermined criteria, such as DDR timing, to increase processing speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a single large command queue and arbiter are used, then the memory controller can handle more command entries, but the evaluation time for priority and JEDEC timing dependency increases causing delays

Engineering Contradiction:
Improvecommand queue entriesVSAvoidevaluation time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent divides a single large command queue into multiple smaller sub-queues (e.g., first command sub-queue, second command sub-queue, third command sub-queue, fourth command sub-queue). Each sub-queue is managed by its own dedicated arbiter, which evaluates priority and JEDEC timing dependency independently and more quickly than a single arbiter would evaluate all entries in one large queue. This segmentation reduces the evaluation time per arbiter while maintaining the total capacity to handle many command entries across all sub-queues.

Inventive Principle:
Principle #1Segmentation

2Speed

If multiple smaller command queues with dedicated arbiters are used, then the evaluation time is reduced and speed increases, but the device complexity increases

Engineering Contradiction:
Improvememory controller operation speedVSAvoidnumber of queues and arbiters
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements multiple smaller command sub-queues (at least four sub-queues) with dedicated arbiters to reduce evaluation time and increase operating speed. Each sub-queue/arbiter pair operates independently, allowing parallel processing of memory access requests. The complexity is managed through systematic organization where each arbiter handles a specific subset of queues, and selection logic coordinates between them to determine which memory access request to execute next.

Inventive Principle:
Principle #1Segmentation

3Productivity

If a single arbiter evaluates all command queue entries, then the device structure is simpler, but the productivity and data throughput are reduced due to time-consuming evaluation

Engineering Contradiction:
Improvedata throughputVSAvoidarbiter structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the arbitration function into multiple dedicated arbiters, each responsible for evaluating priority and JEDEC timing dependency for a specific subset of command sub-queues. This segmentation enables parallel evaluation of multiple command entries simultaneously, significantly increasing data throughput and productivity compared to a single arbiter processing all entries sequentially. The increased device complexity is offset by the substantial performance gain in memory access throughput.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12632399B2Memory controller with a plurality of command sub-queues and corresponding arbiters
Publication Date: 2026.05.19 ADVANCED MICRO DEVICES INC
  • US12632399B2 patent drawing
  • US12632399B2 patent drawing
  • US12632399B2 patent drawing

AI summary

A memory controller includes a memory channel controller that uses multiple groups of command queue and arbiter pairs. Each arbiter is coupled to a respective command queue to select memory access commands from each command queue according to predetermined criteria. Each arbiter selects from among the memory access requests in each command queue independently based on the predetermined criteria and sends selected memory access requests to a selector that serves as a second level arbiter which sends the request to a memory subchannel.