SSD Command Aging via Doorbell Timestamps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face challenges in accurately accounting for the age of commands prior to entering the queue, leading to potential timeouts and degradation of quality of service due to commands aging in the storage device queue.

Innovation Solution

Implementing a system where multiple doorbell requests for the same command queue are used to save timestamps, allowing the storage device to accurately age commands by associating them with the timestamp of their arrival, and optionally using statistical values like average timestamps between first and last doorbell requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If commands are assigned timestamps at host receipt time, then quality of service accuracy is improved, but device complexity increases due to multiple timestamp registers and aging algorithms

Engineering Contradiction:
Improvecommand aging accuracyVSAvoidtimestamp registration system
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system records timestamps at the doorbell request stage (when the host notifies the storage device of new commands) rather than waiting until commands are actually fetched. This preliminary timestamp recording captures the true arrival time before the storage device's idle periods can cause additional delays, thereby accurately reflecting the host's perspective on command age without requiring complex post-fetch adjustments

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces doorbell request timestamps as an intermediary mechanism that bridges the host and storage device timing perspectives. The doorbell request serves as a mediator event that both parties can reference, allowing the storage device to assign commands timestamps based on when the host notified it of new work, rather than when the storage device actually processed the command queue

Inventive Principle:
Principle #24Intermediary (Mediator)

2Use of energy by moving object

If the storage device goes idle between receiving doorbell requests and fetching commands, then energy consumption is reduced, but command aging accuracy deteriorates causing timeouts

Engineering Contradiction:
Improvestorage device energy consumptionVSAvoidcommand timeout performance
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The system performs the critical timing action of recording the command arrival timestamp at the doorbell request stage, before the storage device enters idle mode. This ensures the timestamp captures the true arrival time even if the device subsequently goes idle for extended periods. The timestamp is preserved and applied when commands are eventually fetched, maintaining accuracy without requiring the device to remain active

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The storage device uses its own doorbell request events to generate timestamps for command aging, rather than relying on host-provided timestamps or external time sources. This self-service approach allows the device to independently track command age based on when it was notified of new commands, ensuring consistency between host and device perspectives without additional complexity

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11392320B2Quality of service based arbitrations optimized for enterprise solid state drives
Publication Date: 2022.07.19 SANDISK TECHNOLOGIES LLC
  • US11392320B2 patent drawing
  • US11392320B2 patent drawing
  • US11392320B2 patent drawing

AI summary

A method and apparatus for providing accurate command aging in a data storage device. A host provides multiple doorbell requests for the same command queue and a timestamp is saved for each request. When the storage device fetches the commands associated with the requests, the commands are all given the value of the timestamp associated with the requests and placed into the command queue and the aging algorithm of the storage device ages the commands. In an alternate embodiment, the commands may be assigned timestamps based on statistical values such as an average value, between the first and last doorbell request timestamps.