Storage Controller Core Reallocation for Host I/O and Compute Balance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage devices face challenges in dynamically reallocating resources between memory access and computational storage functions, leading to reduced overall performance during background data processing, which competes with device resources dedicated to generic storage functions.
Innovation Solution
A storage device is configured to dynamically allocate processing cores between memory access and computational storage functions, allowing it to shift resources from generic storage functionalities to computational storage tasks while maintaining host I/O throughput and quality of service requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If hardware resources are allocated to computational storage functions, then data processing capability is improved, but memory access performance deteriorates
Solution Approach 1:
The processing cores are divided into two distinct subsets: a first subset dedicated to computational storage functions and a second subset dedicated to memory access functions. This segmentation allows each subset to specialize in its respective function, preventing resource competition and enabling simultaneous optimization of both data processing capability and memory access performance.
Solution Approach 2:
The storage controller is designed with multi-functionality, handling both computational storage operations and memory access operations through a unified architecture. This universal design allows the system to perform diverse functions without requiring separate dedicated hardware for each function, thereby maintaining resource efficiency while supporting both computational and access performance requirements.
2Productivity
If processing cores are reallocated during operation, then resource utilization is optimized, but system stability deteriorates
Solution Approach 1:
The patent defines predetermined conditions under which resource reallocation occurs, such as when computational storage operations are suspended or when memory access performance requirements change. By establishing these conditions in advance, the system can perform reallocations in a controlled manner, optimizing resource utilization while maintaining system stability through predictable behavior.
Solution Approach 2:
The resource allocation architecture is designed to be dynamic, allowing the system to adaptively reallocate processing cores between computational and memory access functions based on current operational requirements. This dynamic capability enables the system to respond to changing workloads while maintaining stability through structured reallocation procedures and conditions.
3Loss of time
If computational storage operations are performed locally, then processing latency is reduced, but device complexity increases
Solution Approach 1:
The processing cores are segmented into specialized subsets that handle different types of operations. The first subset is dedicated to computational storage operations that can be performed locally, reducing latency, while the second subset handles memory access operations. This segmentation manages complexity by creating clear functional boundaries rather than using a monolithic processor design.
Solution Approach 2:
The storage controller acts as an intermediary component that manages the interaction between computational storage operations and memory access operations. It coordinates resource allocation and operation execution, abstracting the complexity of having multiple processing subsets from the external interface while enabling low-latency local processing capabilities.
Data Source
AI summary
This application is directed to resource management in a storage system that includes a non-volatile memory and a collection of resources having one or more processing cores. The storage system allocates a first subset of resources to process queues of I/O access operations requested by a host device. The first subset of resources includes a storage controller corresponding to a subset of processing cores. The storage system obtains a first request for adjusting resource allocation of the storage device, and the first request includes a target performance requirement for processing the queues of I/O access operations. The storage system determines that the target performance requirement can be satisfied by allocation of at least a target subset of resources. In response to the first request and based on the target subset of resources, a second subset of resources is allocated for processing the one or more queues of I/O access operations.


