Multi-Protocol Storage Controller Mode Switch Timeout Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash storage devices experience variable initialization latencies due to unfinished work from previous modes, leading to potential timeouts in protocols with stricter initialization timeouts, such as SD mode, which can prevent processing of host commands and impact performance.
Innovation Solution
The controller segregates unfinished work into mandatory and non-mandatory portions, performing mandatory work during initialization and postponing non-mandatory work until after initialization or during subsequent host commands, allowing for phased completion and avoiding timeouts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the controller performs all unfinished work during initialization in SD mode, then data consistency and reliability are improved, but initialization time exceeds the SD protocol timeout limit, causing the device to fail to process host commands
Solution Approach 1:
The controller segments unfinished work into mandatory portions (must complete within initialization time) and non-mandatory portions (can be deferred). This segmentation allows the device to meet SD protocol timeout requirements while still addressing critical data consistency issues, resolving the contradiction between reliability and initialization time.
Solution Approach 2:
The controller performs only the necessary portion of unfinished work during initialization (mandatory work) rather than all work. Non-mandatory work is performed later during normal operation. This partial action approach ensures initialization completes within timeout limits while maintaining sufficient data consistency for operational requirements.
2Loss of time
If the controller postpones all unfinished work until after initialization, then initialization time is reduced and host commands can be processed, but data consistency and reliability deteriorate due to incomplete work
Solution Approach 1:
By segmenting work into mandatory and non-mandatory portions, the controller ensures critical data consistency operations complete during initialization while allowing non-critical operations to be deferred. This maintains reliability for essential functions while achieving fast initialization.
Solution Approach 2:
Different portions of unfinished work have different quality requirements. Mandatory work must complete with high reliability for data consistency, while non-mandatory work can be deferred. This local differentiation allows the system to meet both initialization speed and data consistency requirements.
3Productivity
If the controller performs mandatory work during initialization in SD mode, then initialization timeout is avoided and host commands can be processed, but non-mandatory work is delayed potentially impacting performance
Solution Approach 1:
Segmenting work into mandatory and non-mandatory portions enables the controller to process host commands during initialization by completing only essential work. Non-mandatory work is performed during normal operation when the device is already responsive, minimizing overall performance impact.
Solution Approach 2:
Mandatory work is performed as preliminary action during initialization to enable host command processing. Non-mandatory work is scheduled for later execution during normal operation. This preliminary action approach ensures immediate productivity while managing total work completion time.
Data Source
AI summary
Aspects of a multi-protocol storage device including a controller are provided which handle mode switches after a shutdown resulting in a large amount of unfinished work by phasing the work during and after initialization. The controller operates in a first mode such as an SD mode and a second mode such as a NVMe mode. In the event of a shutdown in the second mode resulting in unfinished work, the controller initializes in the first mode. During initialization, the controller determines whether a completion time for the unfinished work exceeds an initialization time in the first mode. When the completion time exceeds the initialization time, the controller performs a first portion of the work during initialization and postpones performance of at least a second portion of the unfinished work until after initialization. As a result, initialization timeouts in the first mode due to the unfinished work may be avoided.


