NVMe Virtual Function Segmentation for Concurrent Storage Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage devices, such as solid state drives (SSDs), face challenges in concurrently completing host commands and data storage device operations due to delays caused by garbage collection and data copying processes, which occupy resources and hinder efficient storage management.
Innovation Solution
The implementation of a data storage device with a volatile memory, non-volatile storage unit, and a controller that utilizes virtual functions, including a controller memory buffer (CMB) and an advanced extensible interface (AXI) inbound multiplexer, to route and manage read/write commands, allowing for concurrent execution of host commands and storage management operations by isolating resources between virtual functions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data copying and garbage collection operations are performed using shared buffers and hardware engines, then storage management operations can be completed, but host commands experience delays due to resource occupation
Solution Approach 1:
The patent segments the storage device resources into multiple virtual functions (VFs), where each VF can be independently allocated to different operations. Host commands are routed to VFs dedicated to host operations, while storage management operations like garbage collection and data copying are performed in VFs dedicated to internal operations. This segmentation allows concurrent execution of host commands and storage management operations without resource conflicts, resolving the contradiction between completing storage management operations and avoiding host command delays.
2Productivity
If buffers and hardware engines are used for data copying during garbage collection, then data can be re-allocated to empty blocks, but the same resources are unavailable for host read/write commands
Solution Approach 1:
The patent creates virtual copies of the buffer and hardware engine resources through multiple virtual functions. Instead of sharing a single physical buffer and hardware engine between host operations and storage management operations, the system creates virtual instances of these resources in different VFs. This allows storage management operations to use copied virtual resources without interfering with host command execution, maintaining both data re-allocation efficiency and host command execution availability.
3Device complexity
If a single controller handles both host commands and storage management operations, then device structure is simplified, but concurrent operation capability is reduced
Solution Approach 1:
The patent implements a dynamic virtualization layer within the controller that allows flexible allocation and routing of operations to different virtual functions. The controller maintains a unified structure for simplicity but dynamically assigns host commands to host-facing VFs and storage management operations to internal VFs based on operation type. This dynamic routing enables concurrent operation capability while preserving the simplified unified controller structure.
Data Source
AI summary
The present disclosure generally relates to data storage devices, such as solid state drives. The data storage device includes a volatile memory, a non-volatile storage unit, and a controller. The data storage device further includes a plurality of virtual functions, where at least one of the virtual functions is only accessible by the data storage device and the remainder of the virtual functions are accessible by both the data storage and a host device. At least one of the virtual functions may be dedicated to completing data storage device storage management operations.


