Storage Controller Pool Mapping for Multi-Device Addressing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing AI systems face challenges in managing complex storage interfaces and optimizing data storage across different non-volatile storage devices to meet varying access speed needs, leading to inefficiencies in resource management and performance.
Innovation Solution
A storage controller is introduced that discovers storage devices, creates pools based on performance, and manages address spaces, allowing software to communicate transactions efficiently without direct management of individual devices, thereby optimizing storage operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software directly manages multiple storage interfaces and devices, then device control capability is improved, but system complexity increases and resources are consumed
Solution Approach 1:
The patent introduces a storage controller as an intermediary device between software and multiple storage devices. The storage controller implements storage interface protocols (such as NVMe, SCSI, SATA) and handles command routing, queue management, and device communication, allowing software to access storage devices without directly managing the complexity of multiple storage interfaces.
Solution Approach 2:
The storage controller is designed to support multiple storage interface protocols and device types simultaneously. It provides universal functionality to manage different storage devices (SSDs, HDDs, NVMe devices) through a unified interface, reducing the need for software to implement separate management logic for each device type.
2Adaptability or versatility
If software directly manages multiple storage interfaces and devices, then device control capability is improved, but resource consumption increases
Solution Approach 1:
The storage controller acts as a dedicated hardware intermediary that offloads storage management tasks from the CPU. It handles command parsing, queue management, and device communication independently, reducing CPU intervention and associated resource consumption while maintaining full device control capability.
Solution Approach 2:
The storage controller implements self-service functionality by autonomously managing storage operations including command routing, error handling, and device coordination. This self-management capability eliminates the need for continuous software intervention, thereby conserving CPU and memory resources.
3Speed
If volatile storage is used as primary storage for AI systems, then access speed is improved, but cost and capacity are worsened
Solution Approach 1:
The patent segments storage into hierarchical layers with volatile storage (RAM) for primary fast access and non-volatile storage (managed by the storage controller) for secondary capacity expansion. The storage controller enables efficient management of this segmented storage architecture, allowing AI systems to utilize both fast volatile storage and high-capacity non-volatile storage effectively.
4Quantity of substance
If non-volatile storage is used for secondary storage, then cost and capacity are improved, but access performance is worsened
Solution Approach 1:
The storage controller performs preliminary actions by pre-fetching data from non-volatile storage to volatile storage buffers, caching frequently accessed data, and optimizing data transfer paths. This preliminary preparation reduces the performance penalty of non-volatile storage by proactively managing data movement before actual access occurs.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
An example computing system includes a hardware platform including a central processing unit (CPU), volatile memory, storage devices, and a storage controller; software, executing on the hardware platform, the software configured to: discover, by the storage controller, the storage devices; create, by the storage controller, pools of the storage devices; obtain, by first software executing on the CPU, information describing the pools; determine, by the first software in cooperation with the storage controller, an address space for each of the pools; and communicating, from the software to the storage controller, a storage transaction referencing a first pool of the pools and a first address in the address space for the first pool.