Dynamic Memory Allocation in Storage Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage system configurations require complex maintenance and are not flexible enough to handle varying memory configurations and types, leading to difficulties in supporting multiple hardware architectures and customer demands, with existing solutions being non-programmable and requiring expert input.
Innovation Solution
A programmable and configurable configuration page with an array of resource descriptors allows for dynamic memory allocation in storage systems, using an iterative method to find an optimal memory configuration based on stored parameters, enabling flexible resource allocation without expert input.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If fixed memory allocation is used at startup, then system stability is improved, but adaptability to varying hardware configurations deteriorates
Solution Approach 1:
The patent implements dynamic memory allocation during startup by allowing the system to adjust memory configuration parameters based on detected hardware conditions and performance requirements, transforming the static fixed allocation into a dynamic adaptive process that maintains stability while improving adaptability
Solution Approach 2:
The system changes memory allocation parameters during startup based on detected hardware configurations and performance metrics, allowing the same system to adapt to different hardware environments while maintaining operational stability through controlled parameter adjustment
2Adaptability or versatility
If multiple fixed configurations are maintained, then support for different hardware architectures is improved, but maintenance complexity deteriorates
Solution Approach 1:
The patent creates a universal configuration system that can handle multiple hardware architectures through a single adaptive mechanism rather than maintaining separate fixed configurations for each architecture, reducing maintenance complexity while preserving broad compatibility
Solution Approach 2:
The system automatically detects hardware configurations and adjusts memory allocation parameters without requiring manual intervention or expert input, enabling the system to self-adapt to different hardware environments and significantly reducing maintenance burden
3Measurement precision
If expert input is required for configuration, then allocation accuracy is improved, but ease of operation deteriorates
Solution Approach 1:
The system automatically performs memory configuration by detecting hardware parameters and calculating optimal allocation settings without requiring expert input, achieving both high allocation accuracy through automated detection and ease of operation by eliminating manual configuration needs
Solution Approach 2:
The system uses feedback from hardware detection and performance monitoring to automatically adjust memory allocation parameters, ensuring accurate allocation decisions are made based on actual system conditions while maintaining ease of operation through automated control
Data Source
AI summary
An apparatus and method to allocate memory in a storage system. Firmware running the method uses an iterative approach to find the best optimal memory configuration for a particular storage system given a variety of configuration data parameters stored as persistent data in non-volatile flash memory. The configuration data relates to resources in the environment that the storage system is found in, such as the number of virtual ports, targets and initiators supported by a storage system IOC. The configuration data is alterable, to allow flexibility in updating and changing parameters, and is employed at runtime when the storage system powers on, to enable the most flexible resource allocation. In a preferred method of determining the most optimal memory configuration for a given set of parameters corresponding to a given set of resources, an iterative method is employed to decrement parameter values from their maximum values, taking into account the minimums, and then testing the configuration by performing a memory allocation. If the allocation fails, because for example the wrong type memory or size of memory for any of the resources found, then the firmware resets the memory areas back to predetermined Start of Day (SOD) parameter values, decrements the values until a successful configuration of memory is found for the given set of parameters, and tries again, or until the firmware is caused to fault, whichever comes first.


