Memory Controller Command Queue Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory controllers face inefficiencies in command management and processing due to the lack of effective prioritization and queuing mechanisms, leading to potential idle states and reduced performance in multi-plane memory devices.

Innovation Solution

A memory controller with a central processing unit (CPU) that generates commands, a command queue with counter logic and flag information for order and priority assignment, and a command queue controller to manage and transfer commands based on estimated processing times and flag information, implementing a first-in-first-out (FIFO) basis for efficient operation across multiple planes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If commands are processed in simple FIFO order without prioritization, then implementation is simple, but command processing efficiency deteriorates due to idle states and lack of optimization

Engineering Contradiction:
Improvecommand processing efficiencyVSAvoidcommand management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The command queue is segmented into multiple independent queues (first queue, second queue, third queue) based on command types and priority levels. Each queue handles specific command categories, allowing parallel processing and preventing low-priority commands from blocking high-priority ones, thus improving overall processing efficiency without excessive complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Commands are assigned different priority parameters and processing time estimates. The system dynamically changes the processing order based on these parameters, using counter logic to track command ages and flag information to indicate operation levels. This parameter-based management optimizes throughput while maintaining manageable complexity through structured classification

Inventive Principle:
Principle #35Parameter changes

2Productivity

If all commands are treated equally without priority differentiation, then command management is simple, but performance deteriorates due to inability to prioritize critical operations

Engineering Contradiction:
Improveoverall performanceVSAvoidpriority management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Different queues are assigned different quality characteristics based on their intended purpose. The first queue handles high-priority commands with immediate processing, the second queue handles normal-priority commands, and the third queue handles low-priority or background commands. This local differentiation of quality attributes enables performance optimization without requiring complex global management mechanisms

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The command queue controller acts as an intermediary that manages the interaction between multiple queues and the memory device. It uses counter logic and flag information as intermediary data structures to coordinate command processing across queues, resolving priority conflicts without direct complex management logic in the CPU, thus improving performance while containing complexity in the control layer

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If commands are processed without considering estimated processing times, then processing is straightforward, but idle states occur reducing system utilization

Engineering Contradiction:
Improvesystem utilizationVSAvoidtime estimation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary estimation of processing times for commands before they are fully processed. Counter logic is used to pre-calculate and track the age and expected processing duration of commands in each queue. This preliminary time assessment allows the command queue controller to proactively manage queue emptying and prevent idle states, improving system utilization without requiring complex real-time adjustments during processing

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the command queue controller continuously monitors the state of queues, processing progress, and timing information. Based on this feedback from counter logic and flag status, the controller dynamically adjusts its command selection and queue management strategy, ensuring optimal system utilization while maintaining manageable complexity through rule-based decision making

Inventive Principle:
Principle #23Feedback

4Reliability

If die-level and plane-level commands are not distinguished, then command processing is uniform and simple, but latency performance deteriorates due to lack of prioritization

Engineering Contradiction:
Improvelatency performanceVSAvoidcommand classification complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Commands are segmented into different categories based on their target level (die-level vs. plane-level). The command queue structure separates these command types into different queues or handles them with different processing rules. This segmentation ensures that critical die-level commands receive appropriate priority treatment while plane-level commands are processed accordingly, improving latency performance through structured classification without excessive complexity

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11842073B2Memory controller and operating method thereof
Publication Date: 2023.12.12 SK HYNIX INC
  • US11842073B2 patent drawing
  • US11842073B2 patent drawing
  • US11842073B2 patent drawing

AI summary

The present disclosure relates to a memory controller and a method of operating the memory controller. The memory controller controlling a memory device including a plurality of planes includes a central processing unit (CPU) generating a command corresponding to a request from a host, a command queue storing the command, counter logic assigning to the command, number information corresponding to an order in which the command is generated and flag information indicating a level at which an operation corresponding to the command is performed, and a command queue controller controlling the command queue to transfer the command stored in the command queue to one of the plurality of planes corresponding to the command on the basis of the number information and the flag information.