Real-Time Module Resource Allocation for Shared Hardware
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for allocating resources to real-time software modules on a hardware system are inefficient, often leading to resource shortages, waste, and unmet real-time criticality demands, especially when multiple modules are run simultaneously, and require complex maintenance or coarse-grained resource allocation.
Innovation Solution
A method involving resource requirement and supply configurations is used to determine and allocate resources efficiently among multiple real-time software modules, allowing for fine-grained utilization and isolation, with configurations provided as files and potentially automated by neural networks, ensuring sufficient resources and reducing interference.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If resources are allocated at runtime to real-time software modules, then resource flexibility is improved, but real-time criticality requirements cannot be met due to unavailable resources
Solution Approach 1:
The patent performs resource allocation during the build phase rather than at runtime. The build tool determines resource requirements for each software module in advance, generates build artifacts with embedded resource allocation information, and passes this to the runtime system. This preliminary action ensures resources are reserved before execution, meeting real-time criticality while maintaining flexibility through the build-time configuration process.
2Productivity
If multiple real-time software modules are run simultaneously on the same hardware system, then system productivity is improved, but resource conflicts occur leading to unmet time constraints
Solution Approach 1:
The patent segments resource allocation into module-specific allocations determined during the build phase. Each software module receives dedicated resource reservations based on its individual requirements, preventing conflicts when multiple modules run simultaneously. The build tool analyzes each module's resource needs separately and allocates resources in a coordinated manner, ensuring time constraints are met while maximizing system productivity.
3Ease of operation
If entire resources are allocated to software modules at coarse granularity, then resource allocation simplicity is improved, but resource waste increases significantly
Solution Approach 1:
The patent changes the granularity parameter of resource allocation from coarse (entire resources) to fine-grained (specific resource units). The build tool determines precise resource requirements for each module and allocates only the necessary amount, avoiding waste. This is achieved through detailed resource requirement analysis during the build phase while maintaining automated allocation simplicity through the build tool's coordination.
4Adaptability or versatility
If real-time software modules are developed independently without resource awareness, then development flexibility is improved, but resource allocation problems occur at deployment
Solution Approach 1:
The patent introduces a build tool as an intermediary between independent software module development and hardware resource allocation. Developers can create modules independently without resource awareness, and the build tool automatically determines resource requirements, generates build artifacts with allocation information, and coordinates deployment. This intermediary maintains development flexibility while managing resource allocation complexity automatically.
Data Source
Figure 1
Figure 2
Figure 3~5
AI summary
The present invention relates to a computer-implemented method, a computer-implemented device, a system, and a computer program product for resource allocation to N, with N ≥ 2, real-time software modules which are executed independently of one another on an identical hardware system, comprising providing a resource requirement configuration for each of the N real-time software modules, wherein the resource requirement configuration indicates a resource requirement for operating a respective software module, providing a resource supply configuration which indicates a resource supply of the hardware system, comparing the resource supply indicated by the resource supply configuration with the resource requirement indicated by the resource requirement configuration, and determining, based on the comparison, whether the resource supply indicated by the resource supply configuration is sufficient.To execute the N real-time software modules on the hardware system, create an allocation configuration that allocates resources according to the resource requirements configuration and the resource supply configuration, if the resource supply is determined to be sufficient, and pass the allocation configuration to an operating system of the hardware system to allocate hardware system resources to the N real-time software modules according to the allocation configuration.