Computational Storage Pipeline Manager for Dynamic Task Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computational storage devices have hardcoded execution pipelines that lack flexibility, preventing them from executing different compute functions or changing the order of functions, which limits their usage in multi-tenant environments and restricts dynamic composition of execution pipelines.
Innovation Solution
A storage system with a processing circuit that receives tasks from applications, determines the order of execution for compute functions, and schedules them based on resource availability, using a pipeline manager (arbiter) to dynamically compose and manage the execution pipeline, allowing for flexible ordering and resource management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If hardcoded execution pipelines are used in computational storage devices, then device complexity is reduced and manufacturing is easier, but adaptability and versatility are severely limited
Solution Approach 1:
The patent implements dynamic execution pipelines where the order and selection of compute functions can be changed at runtime based on task requirements. The processing circuit receives task descriptors that specify compute functions and their execution order, allowing the system to adapt to different computational needs without hardware reconfiguration. This dynamic approach enables multi-tenant environments where different applications can utilize the same physical device with customized execution pipelines.
Solution Approach 2:
The computational storage device is designed to perform multiple compute functions through a universal processing circuit that can execute different types of computations. The device includes a plurality of compute functions that can be selectively invoked based on task requirements, allowing a single device to serve multiple tenants and workloads. The interface for composing execution pipelines provides universal access to configure different function combinations.
2Adaptability or versatility
If dynamic composition of execution pipelines is enabled, then adaptability and versatility improve, but device complexity and resource management difficulty increase
Solution Approach 1:
The patent introduces a pipeline manager (arbiter) as an intermediary component that mediates between task submission and execution. The arbiter receives task descriptors from applications, determines resource availability, schedules task execution, and manages the composition of execution pipelines. This intermediary layer abstracts the complexity of resource management from applications, providing an easier-to-use interface while enabling dynamic pipeline composition.
Solution Approach 2:
The system implements feedback mechanisms where the processing circuit monitors resource availability and uses this information to dynamically adjust task scheduling and pipeline composition. The arbiter receives completion status and resource status feedback, allowing it to make informed decisions about task prioritization and execution order. This feedback loop enables adaptive resource management that responds to changing system conditions.
3Productivity
If resource availability checking and task scheduling are implemented, then productivity and resource utilization improve, but device complexity increases
Solution Approach 1:
The processing circuit is designed to autonomously monitor its own resource availability and perform self-scheduling of tasks. The arbiter checks resource status, determines whether resources are available for new tasks, and schedules task execution without external intervention. This self-service approach improves productivity by automatically optimizing resource utilization while containing complexity within the processing circuit rather than requiring complex external scheduling infrastructure.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Systems and methods for executing compute functions are disclosed. A processing circuit may be configured to: receive a first task from a first application, wherein the first task identifies a first compute function and a second compute function; determine a first order of execution of the first compute function and the second compute function based on first information in the first task; and execute the first compute function and the second compute function according to the first order.