NVMe IO Timeout Feedback for Non-Volatile Storage Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-volatile storage devices experience throughput limitations, leading to IO command timeouts and unnecessary controller resets due to hosts submitting more commands than the devices can handle, resulting in inefficient data transfer.
Innovation Solution
Implementing a controller in the storage device to determine IO timeout values, receive commands from the host, and provide notifications when commands cannot be processed within the specified time, allowing the host to adjust the send rate or timeout values to avoid resets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the host submits a maximum number of IO commands to all queues up to the maximum queue depth, then the host can maximize data transfer utilization, but the non-volatile storage device cannot process the commands within the timeout requirement due to limited throughput, resulting in timeouts and controller resets
Solution Approach 1:
The storage device controller calculates the expected processing time for IO commands based on device throughput and compares it with the host's timeout value. When the expected time exceeds the timeout, the controller sends a notification to the host. This feedback mechanism allows the host to adjust its IO submission rate or timeout settings, preventing timeouts and controller resets while maintaining high data transfer utilization.
2Productivity
If the host submits IO commands at a high rate to maximize throughput, then data transfer efficiency is improved, but the storage device cannot handle the commands within the specified timeout period, causing the host to perform unnecessary controller resets
Solution Approach 1:
The storage device controller performs preliminary calculation of the expected IO processing time before the host submits commands. By comparing this pre-calculated time with the host's timeout value, the controller can proactively notify the host to adjust its IO submission rate or timeout settings, preventing timeout conditions and subsequent controller resets before they occur.
3Productivity
If the host increases the number of IO queues and queue depth to maximize command submission, then the host can achieve higher throughput, but the storage device's limited processing capacity causes commands to exceed timeout requirements
Solution Approach 1:
The controller calculates expected processing time based on device throughput and IO command characteristics, then compares it with the host's timeout value. When the expected processing time exceeds the timeout, the controller notifies the host, which can then adjust the number of queues, queue depth, or timeout settings to match the device's actual processing capacity, preventing timeouts while maintaining high throughput.
Data Source
AI summary
Various implementations described herein relate to a storage device including a non-volatile memory and a controller coupled to the non-volatile memory. The controller is configured to determine an input/output (IO) value, receive from a host a plurality of IO commands, each of the plurality of IO commands comprising reading data from the non-volatile memory or writing data to the non-volatile memory, determine that at least one IO command of the plurality of IO commands cannot be processed within a time period indicated by the IO timeout value, and provide a notification to the host that the at least one IO command of the plurality of IO commands cannot be processed within the time period indicated by the IO timeout value.


