Host Queue Recovery Using Dummy Queues in SSD Controllers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing queue recovery flow in SSDs is complex due to varying host queue states, including pending commands, and is limited by the assumption that host queues are empty before entering low power states, which is not sustainable as SSD technology advances.

Innovation Solution

Using dummy host submission and completion queues during the host queue recovery process allows the device controller to efficiently operate even when there are pending commands in the host queue, with the dummy queues stored in HMB, internal DRAM, or other system dummy buffers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the device controller uses the assumption that host queues are empty before entering low power state, then the queue recovery flow is simplified, but the applicability of the recovery flow is limited

Engineering Contradiction:
Improvequeue recovery flow complexityVSAvoidapplicability of recovery flow
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent creates dummy submission queues and dummy completion queues as copies of the actual host queues. These dummy queues are used during the queue recovery process to store and restore queue states without requiring the host queue to be empty, thereby maintaining recovery functionality across different queue states while simplifying the recovery logic

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces dummy queues as intermediary structures between the host queues and the recovery process. These dummy queues act as mediators that facilitate the recovery operation by providing a safe buffer for storing and restoring queue states, eliminating the need for the host queue to be empty during recovery

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the device controller recovers host queue state with pending commands, then the operational flexibility is improved, but the recovery flow complexity increases

Engineering Contradiction:
Improveoperational flexibilityVSAvoidrecovery flow complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the queue recovery process into distinct phases: saving the current host queue state to dummy queues, clearing the host queues, and restoring state from dummy queues. This segmentation allows the system to handle pending commands systematically by processing different queue components (submission queue and completion queue) separately, reducing overall complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by saving the host queue state to dummy queues before clearing the actual host queues. This preliminary preservation of state information enables the recovery process to proceed even with pending commands, as the original state is already captured in the dummy queues before any modifications occur

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12248703B1Host queues recovery in exception flows
Publication Date: 2025.03.11 SANDISK TECHNOLOGIES LLC
  • US12248703B1 patent drawing
  • US12248703B1 patent drawing
  • US12248703B1 patent drawing

AI summary

In some exception flows, a device controller may need to store and subsequently recover a current state of a host queue. In these particular exception flows, recovering the current state of the host queue is complex due to the varying states a host queue may be in at the time of storing, including having pending commands in the host queue. Examples of such exception flows include low power modes in client SSDs and live migrations in enterprise SSDs. Using dummy host submission and completion queues during the host queue recovery process allows the device controller to efficiently operate even when there are pending commands in the host queue. The dummy queues may be stored in the HMB, internal DRAM, or any other system dummy buffer (i.e., in a different device or tenant).