Memory Controller Command Reordering for Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory systems face limitations in optimizing the processing order of commands between multiple cores, leading to suboptimal performance due to sequential execution of commands associated with different logical addresses, which restricts parallel operation and affects overall data processing efficiency.

Innovation Solution

A controller with a host interface that reorders commands based on the statuses of memory devices, prioritizing cores with idle memory devices to improve parallel processing and reduce queue congestion, thereby enhancing data processing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If commands are processed in sequential order by multiple cores, then command processing simplicity is maintained, but data processing performance and parallel operation efficiency deteriorate

Engineering Contradiction:
Improvedata processing performanceVSAvoidcommand processing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The host interface dynamically reorders commands based on the real-time operational states of memory devices and core availability. Instead of fixed sequential processing, the system adaptively adjusts command execution order to maximize parallel operation between first and second cores, improving data processing performance while maintaining manageable complexity through state-based decision logic

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The host interface performs preliminary assessment of memory device states and core availability before commanding execution. By evaluating the operational status of first and second memory devices in advance, the system pre-determines the optimal command processing order, enabling efficient parallel execution without introducing complex runtime coordination mechanisms

Inventive Principle:
Principle #10Preliminary action

2Productivity

If commands are executed without reordering based on memory device status, then system operation simplicity is maintained, but queue congestion increases and throughput decreases

Engineering Contradiction:
Improvememory system throughputVSAvoidcommand reordering mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The host interface implements a feedback mechanism that continuously monitors the operational states of first and second memory devices. Based on this feedback, the system dynamically adjusts command queuing and allocation to first and second cores, preventing queue congestion and optimizing throughput without requiring complex external control mechanisms

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The command processing system is segmented into separate queues and allocation logic for first and second cores. The host interface divides incoming commands and selectively allocates them to appropriate cores based on memory device states, enabling independent parallel processing while maintaining simple overall system architecture through modular queue management

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11494318B2Controller and operation method thereof
Publication Date: 2022.11.08 SK HYNIX INC
  • US11494318B2 patent drawing
  • US11494318B2 patent drawing
  • US11494318B2 patent drawing

AI summary

A controller for controlling memory devices is provided to include: a first core configured to control first memory devices in communication with the controller and configured to store data associated with first logical addresses; a second core configured to control second memory devices in communication with the controller and configured to store data associated with second logical addresses; and a host interface configured to (1) queue commands received from a host in a queue, (2) perform a command reordering that determines a processing order of queued commands including a first address command associated with a first logical address and a second address command associated with a second logical address based on statuses of the first memory devices and the second memory devices, and (3) provide the first address command to the first core and the second address command to the second core based on the processing order.