Stacked Command Queue for Memory Controller Arbitration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As DRAMs increase in size and complexity, memory controllers face challenges in optimizing memory access efficiency without excessive size and cost, and they must handle higher performance demands from multiple processing cores, making it difficult to manage memory access requests effectively.

Innovation Solution

A memory controller design that includes a command queue with stacked entry stacks, an arbiter, and a command queue loader circuit, which loads and arbitrates memory access commands efficiently, using common characteristics to select commands for transmission to DRAM, optimizing memory bus usage and handling flow control credits to improve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If DRAM size and complexity increase, then memory capacity and features improve, but memory controller size and cost increase excessively

Engineering Contradiction:
ImproveDRAM capacityVSAvoidmemory controller complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The command queue is divided into multiple entry stacks, each handling specific memory access commands. This segmentation allows the memory controller to process commands in organized groups, reducing the complexity of managing individual commands while supporting increased DRAM capacity and multiple memory clients.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a stacked command queue architecture that adds a vertical dimension to command organization. Instead of a simple linear queue, commands are arranged in multiple stacks with head indicators, creating a multi-dimensional command management structure that improves efficiency without proportionally increasing controller complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If number of memory clients increases, then system complexity improves, but memory access efficiency deteriorates

Engineering Contradiction:
Improvenumber of memory clientsVSAvoidmemory access efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The command queue is segmented into multiple entry stacks that can independently manage commands from different memory clients. Each stack can be arbitrates separately, allowing the memory controller to efficiently handle requests from multiple processing cores and memory clients simultaneously without degradation in access efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Commands from multiple memory clients are pre-organized into separate entry stacks before arbitration. This preliminary organization allows the arbiter to efficiently select commands from appropriate stacks based on current memory state, reducing arbitration complexity and maintaining high access efficiency even with increased numbers of memory clients.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If conventional command queue is used, then implementation is simple, but memory bus utilization is insufficient

Engineering Contradiction:
Improveimplementation simplicityVSAvoidmemory bus utilization
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent transforms the conventional linear command queue into a stacked queue structure with multiple entry stacks and head indicators. This dimensional change enables more sophisticated command scheduling and arbitration, significantly improving memory bus utilization by allowing selective access to different command stacks based on current memory conditions while maintaining reasonable implementation complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The stacked command queue architecture introduces dynamic command selection capabilities. The arbiter can dynamically choose which entry stack to service based on real-time memory state, command types, and client priorities. This dynamic behavior optimizes memory bus utilization by selecting the most appropriate commands for execution at each moment.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12073114B2Stacked command queue
Publication Date: 2024.08.27 ADVANCED MICRO DEVICES INC
  • US12073114B2 patent drawing
  • US12073114B2 patent drawing
  • US12073114B2 patent drawing

AI summary

A memory controller includes a command queue with multiple entry stacks, each with a plurality of entries holding memory access commands, one or more parameter indicators each holding a respective characteristic common to the plurality of entries, and a head indicator designating a current entry for arbitration. An arbiter has a single command input for each entry stack. A command queue loader circuit receives incoming memory access commands and loads entries of respective entry stacks with memory access commands having the respective characteristic of each of the one or more parameter indicators in common.