Command Packets for Direct SSD Channel Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current SSD interface protocols, such as NVMe, limit the flexibility and control of host systems over solid-state drives (SSDs), particularly in manipulating individual NAND flash devices and specific channels, due to restricted command sets and lack of control over physical address spaces, wait times, and data protection at the flash level.
Innovation Solution
The use of user-defined DWords within the NVMe Submission Queue Entry (SQE) packet structure allows for linking and reordering of command packets, enabling the execution of ONFI and user-defined commands to provide more granular control over SSD operations, including physical address access and timing management, thereby overcoming the limitations of the NVMe protocol.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional NVMe interface protocols are used, then compatibility and standardization are improved, but host system flexibility and control over SSD operations deteriorate
Solution Approach 1:
The command packet structure is segmented into standardized fields (for NVMe compatibility) and user-defined DWord fields (for extended control). This segmentation allows the protocol to maintain standardization while providing segments for custom host control operations, resolving the contradiction between protocol compatibility and host flexibility.
Solution Approach 2:
The patent adds another dimension to the command structure by introducing user-defined DWords beyond the standard NVMe fields. This dimensional extension allows hosts to specify additional parameters (such as wait times, protection flags, and channel-specific controls) without breaking NVMe compatibility, thus resolving the control flexibility limitation.
2Adaptability or versatility
If NVMe protocol command structures are used, then interface standardization is improved, but granular control over flash memory channels and physical addresses deteriorates
Solution Approach 1:
The command packet is divided into standardized NVMe header fields and extended user-defined DWord fields. This segmentation enables the interface to maintain NVMe standardization while providing dedicated segments for granular control of flash channels and physical addresses through the user-defined portion.
Solution Approach 2:
The user-defined DWords act as an intermediary layer between the standardized NVMe interface and the underlying flash memory hardware. This intermediary structure translates standardized commands into granular hardware control operations, resolving the contradiction between interface standardization and granular control capability.
3Device complexity
If standard NVMe commands are used, then protocol simplicity is improved, but control over wait times and data protection at flash level deteriorates
Solution Approach 1:
The command structure segments timing control and protection parameters into specific user-defined DWords, separating these control functions from the core NVMe protocol. This segmentation maintains protocol simplicity while providing dedicated fields for precise timing and protection control at the flash level.
Data Source
AI summary
Apparatuses and methods for providing and interpreting command packets for direct control of memory channels are disclosed herein. An example apparatus includes flash memories configured into channels and a controller coupled to the flash memories. The controller receives packets and interpret the packets based at least on a first protocol, and determines whether any packets are linked based on a link identifier included in a block of each packet. The controller arranges the subset of packets based on an index included in the block of each packet of the subset of packets, and the subset of packets are arranged in order based on the respective indexes. A target flash memory and a target channel are determined by the controller based on flash memory and channel identifiers included in the block of each of the packet of the subset of packets.


