Virtual Controller Memory Buffer for Multi-Controller Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage systems, such as solid-state drives (SSDs), face limitations in bandwidth and operational performance due to the use of traditional Controller Memory Buffers (CMBs), which can lead to reduced efficiency in data transfer operations across multiple SSDs or storage devices.
Innovation Solution
The implementation of a virtualized Controller Memory Buffer (VCMB) that utilizes selected portions of local memory across multiple controllers, allowing for coordinated command execution and data transfer management, effectively treating the VCMB as a single congruent memory space to enhance aggregate bandwidth and operational efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional Controller Memory Buffers (CMBs) are used in each storage device, then each device can independently manage its own memory operations, but the aggregate bandwidth and operational performance are limited when multiple devices operate in parallel
Solution Approach 1:
The patent merges the Controller Memory Buffer functionality across multiple storage devices into a unified virtual CMB. Instead of each device maintaining separate CMBs, the system creates a single virtual memory space that spans multiple physical devices, allowing coordinated command execution and improved aggregate bandwidth while presenting a simplified interface to the host.
Solution Approach 2:
The virtual CMB serves multiple functions simultaneously: it acts as a shared memory space for multiple controllers, enables coordinated data transfer operations across devices, provides a unified interface for host commands, and allows flexible allocation of memory resources to different storage devices based on operational needs.
2Ease of operation
If multiple controllers operate independently with separate CMBs, then each controller can execute commands autonomously, but extensive host intervention is required to coordinate data transfer operations across devices
Solution Approach 1:
The virtual CMB acts as an intermediary layer between the host and multiple storage controllers. It receives commands from the host and intelligently distributes them to the appropriate controllers, coordinating data transfer operations without requiring direct host intervention. This mediator enables autonomous controller operation while achieving coordinated multi-device performance.
3Quantity of substance
If dedicated local memory is allocated to each controller, then each device has sufficient memory for its operations, but the total memory capacity available for data transfer is limited by individual device constraints
Solution Approach 1:
The patent transitions from a one-to-one mapping between controllers and memory buffers to a many-to-one relationship where multiple controllers share a unified virtual memory space. This dimensional change in memory organization allows the system to aggregate memory capacity across devices while maintaining simplified allocation management through the virtualization layer.
Data Source
AI summary
Method and apparatus for managing data transfers. In some embodiments, first and second storage devices respectively include first and second controllers, first and second local memories, and first and second non-volatile memories (NVMs). A virtual controller memory buffer (CMB) is formed from a dedicated portion of each of the first and second local memories for control by a host device. The first controller receives a virtual command set from the host device, and extracts a first local command to transfer data between the host device and the first NVM. In some cases, the second controller also receives the virtual command set and concurrently extracts a different, second local command to transfer data between the host device and the second NVM. Alternatively, the first controller may extract and forward the second local command to the second controller. The first and second NVMs may form an NVMe (Non-Volatile Memory Express) namespace.


