eMMC Command Queue Status Feedback via CMD13

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The embedded Multi-Media Card (eMMC) standard lacks command queuing, leading to inefficiencies in data bus usage and delays due to software involvement in every command and response, whereas other memory standards like UFS benefit from command queuing by allowing multiple tasks to be executed simultaneously, necessitating a method to inform the host of task status in the device.

Innovation Solution

Implementing a process within the eMMC standard to communicate the status of the queue from the device to the host using a command structure, specifically through a SEND_QUEUE_STATUS command (CMD13) during an in-progress data transfer, allowing the host to select tasks for execution after the current transfer completes without additional pins or periodic polling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If synchronous command structure is used in eMMC, then protocol simplicity is maintained, but data bus efficiency deteriorates due to sequential command execution

Engineering Contradiction:
Improvedata bus efficiencyVSAvoidcommand structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The host pre-loads multiple commands into the device's command queue before data transfer operations begin. The device executes these commands in advance, preparing task states and updating queue status registers so that when data transfer completes, the host can immediately issue the next command without waiting for software processing, thereby improving data bus efficiency while maintaining protocol simplicity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The command execution process is segmented into independent tasks that can be queued and executed separately. Each task is represented as an individual entry in the command queue with its own status register, allowing parallel preparation and execution of multiple commands without blocking the data bus, thus resolving the contradiction between productivity and complexity

Inventive Principle:
Principle #1Segmentation

2Speed

If software involvement in every command and response is maintained, then protocol simplicity is preserved, but execution delay increases

Engineering Contradiction:
Improvecommand execution speedVSAvoidhardware queue management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

A hardware command queue structure acts as an intermediary between the host and device, with dedicated queue status registers (QSR) that automatically track task execution states. This hardware mediator eliminates the need for slow software involvement in every command-response cycle, enabling faster command execution while managing the complexity through standardized register interfaces

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The device's command queue automatically manages task execution states through self-updating queue status registers. The hardware autonomously tracks which tasks are ready, in progress, or completed without requiring software intervention, thereby increasing execution speed while containing complexity within the hardware queue management logic

Inventive Principle:
Principle #25Self-service

3Productivity

If command queuing is implemented without host awareness mechanism, then device functionality is improved, but host control capability deteriorates

Engineering Contradiction:
Improvetask execution efficiencyVSAvoidqueue status information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

Queue status registers provide continuous feedback to the host about the state of tasks in the command queue. The host can poll these registers to determine which tasks are ready for execution, ensuring no loss of queue status information while maintaining improved task execution efficiency through hardware-accelerated command processing

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3044688B1Providing command queuing in embedded memories
Publication Date: 2017.10.18 QUALCOMM INC
  • EP3044688B1 patent drawing
  • EP3044688B1 patent drawing
  • EP3044688B1 patent drawing

AI summary

Providing command queuing in embedded memories is provided. In particular, aspects disclosed herein relate to a process through which a status of the queue is communicated to a host from a device. Aspects of the present disclosure use the command structure of the embedded Multi-Media Card (eMMC) standard, such that the host may determine a state of the queue in the device proximate a known end of an in-progress data transfer. In this manner, the host can select a task to commence after completion of a current data transfer while the current data transfer is still ongoing.