Computational Storage Resource Isolation via Memory Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computational storage devices face challenges in isolating resources between different applications, leading to unpredictable execution results due to one application modifying resources used by another.
Innovation Solution
A method and system for resource isolation in computational storage devices, where a controller identifies a memory range within a memory region and stores associations between memory range IDs, memory regions, and offsets in a data structure, ensuring that each application has isolated access to its allocated resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple applications share computational storage resources, then resource utilization efficiency is improved, but execution predictability deteriorates due to resource interference between applications
Solution Approach 1:
The patent segments computational storage resources into isolated memory regions, each assigned to a specific application. The controller divides the shared memory into multiple independent segments using memory region identifiers (MRIDs), preventing applications from accessing each other's memory space while maintaining efficient resource utilization through controlled sharing.
Solution Approach 2:
The controller acts as an intermediary between applications and computational storage resources. It manages resource allocation by receiving allocation requests, assigning unique memory regions with MRIDs, and enforcing access control policies that ensure predictable execution while maintaining high resource utilization through centralized management.
2Adaptability or versatility
If applications have shared access to computational storage resources, then resource flexibility is improved, but resource isolation deteriorates leading to unpredictable execution results
Solution Approach 1:
The patent implements local quality by providing each application with a dedicated memory region that has specific access permissions. The controller configures different memory regions with distinct characteristics (read-only, read-write, executable) tailored to each application's needs, enabling resource flexibility while preventing harmful interference through localized access control.
Solution Approach 2:
Memory space is segmented into application-specific regions identified by unique MRIDs. Each segment has defined boundaries and access rules, allowing flexible resource allocation while maintaining strict isolation that prevents one application from modifying resources allocated to another application.
3Reliability
If the system allocates memory ranges to applications, then resource isolation is improved, but system complexity increases due to memory management overhead
Solution Approach 1:
The controller serves as an intermediary that abstracts complex memory management operations. It maintains data structures mapping application identifiers to memory region identifiers, automatically handling allocation, isolation, and access control. This intermediary approach provides strong resource isolation while hiding management complexity from applications.
Solution Approach 2:
The system uses memory region identifier copies (MRIDs) as handles that applications use to reference their allocated memory regions. Instead of applications directly managing complex memory addresses, they work with simplified MRID copies that the controller translates to actual memory ranges, reducing application-side complexity while maintaining isolation.
Data Source
AI summary
A method includes receiving, at a controller of a computational storage (CS) device, a request to allocate computational storage to an application of a host device. The request includes a resource set ID associated with the application. The method further includes identifying a memory range within a memory region of the CS device. The method further includes storing, in a data structure associated with the resource set ID, an association between a memory range identifier (ID) of the memory range, the memory region, and an offset within the memory region. The method further includes sending the memory range ID to the host device.


