Polymorphic Computing Architecture for Diverse Storage Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer storage systems lack flexibility and efficiency in utilizing diverse storage devices due to inconsistent interfaces and implementations, limiting their ability to adapt to varying capabilities and user needs.
Innovation Solution
A polymorphic computing architecture is introduced, utilizing a pair of containers - interface and instance containers - to decouple device management from host management, providing a consistent interface for applications while allowing device-specific implementations, enabling efficient use of storage devices with varying capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If diverse storage devices with different interfaces and implementations are used, then storage capacity and functionality are improved, but system complexity and difficulty of management increase
Solution Approach 1:
The patent introduces a computational storage device that acts as an intermediary between the host system and diverse storage devices. This computational storage device includes a processor that can execute different implementations of storage operations, translating between various storage device interfaces and a unified host interface. The processor dynamically selects and executes appropriate implementations based on the specific storage device being accessed, thereby managing diversity without exposing complexity to the host system.
Solution Approach 2:
The system is segmented into distinct functional layers: the host system, the computational storage device with its processor, and the diverse storage devices. The computational storage device further segments the interface functionality from the implementation logic, allowing the interface to remain consistent while implementations vary. This segmentation enables independent development and optimization of different storage device interfaces without affecting the host system.
2Productivity
If computational storage functions are integrated into storage devices, then storage efficiency and performance are improved, but device complexity and manufacturing difficulty increase
Solution Approach 1:
The computational storage device processor is designed to be universal, capable of executing multiple different implementations of storage operations. Rather than requiring separate hardware for each storage function, a single programmable processor can adapt to perform various computational storage tasks. This multi-functionality is achieved through a standardized interface and a library of executable implementations that can be loaded and run on the same hardware platform.
Solution Approach 2:
The system allows for parameter changes in the form of different executable implementations that can be loaded onto the computational storage device. Rather than manufacturing different hardware configurations, the system changes operational parameters by loading different software implementations that optimize for specific storage operations. This enables flexible adaptation to different storage needs without increasing manufacturing complexity.
3Adaptability or versatility
If multiple implementations of storage functions are supported, then system adaptability and performance optimization are improved, but interface consistency and ease of operation deteriorate
Solution Approach 1:
The computational storage device serves as an intermediary that maintains interface consistency between the host and multiple storage implementations. The processor on the computational storage device transparently manages the selection and execution of different implementations, presenting a unified interface to the host system. Applications can benefit from optimized implementations without needing to know or manage the underlying complexity.
Solution Approach 2:
The system uses copying in the form of executable code or firmware images that represent different implementations. These implementations can be copied onto the computational storage device as needed, allowing the same hardware to support multiple storage function variations. The host system interacts with a single copied interface, while the actual implementation being executed can be changed by loading different code copies.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
Provided is a method for data storage, the method including receiving, by a first storage device (200a), from a first group of resources (106), information for performing a first function on the first storage device (200a) using a first implementation, and wherein the first storage device (200a) including the first implementation and being associated with a second group of resources (300) corresponding to the first group of resources (106).