eMMC Controller Command Queuing for I/O Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing embedded multimedia cards (eMMC) face challenges in reducing input/output latency and improving read/write performance, particularly due to limitations in command and status management across the data bus.

Innovation Solution

The eMMC device incorporates a device controller with a command storage unit, status storage unit, and task manager that allows for queuing and execution of tasks independently of the data bus state, enabling efficient command storage, status tracking, and parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If commands are received and processed only when the data bus is available, then the data bus state is maintained for data transfer, but input/output latency increases and read/write performance deteriorates

Engineering Contradiction:
Improveinput/output latencyVSAvoidread/write performance
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The device controller receives and stores commands from the host in advance in the command storage unit, even when the data bus is occupied with data transfer. This preliminary action allows commands to be queued and processed immediately when the data bus becomes available, reducing I/O latency without interfering with ongoing data transfers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The command processing function is segmented from the data transfer function. The command storage unit and status storage unit are separated from the data bus interface, allowing independent command reception and status monitoring without blocking data transfer operations. This segmentation enables parallel processing of commands and data.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the device controller waits for data bus availability before receiving commands, then data bus conflicts are avoided, but system productivity decreases

Engineering Contradiction:
Improvesystem performanceVSAvoidcommand and status management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The command storage unit acts as an intermediary buffer between the host and the execution units. Commands are stored in this intermediary structure when received, allowing the host to continue sending commands without waiting for execution. The status storage unit similarly intermediates between execution status and host inquiry, decoupling these operations from direct data bus dependency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If commands are processed sequentially based on data bus availability, then data transfer integrity is maintained, but task execution efficiency decreases

Engineering Contradiction:
Improvetask execution efficiencyVSAvoiddata transfer integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The task manager dynamically manages multiple tasks in the command storage unit, allowing flexible scheduling and execution based on data bus availability and task priorities. Tasks can be queued, paused, and resumed dynamically without compromising data transfer integrity, as the system adapts its command processing节奏 to match data transfer requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9563368B2Embedded multimedia card and method of operating the same
Publication Date: 2017.02.07 SAMSUNG ELECTRONICS CO LTD
  • US9563368B2 patent drawing
  • US9563368B2 patent drawing
  • US9563368B2 patent drawing

AI summary

An embedded multimedia card (eMMC) and a method of operating the same are provided. The eMMC includes a flash memory and a device controller configured to control the flash memory. The device controller includes a command storage unit configured to receive a command transmitted from a host regardless of a state of a data bus and to store task information by task ID; and a status storage unit configured to store status information based on task status by task ID.