Avionics Shared-Memory Partitioning for Concurrent I/O Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In real-time systems, particularly in avionics, managing concurrent access to shared I/O resources without increasing execution time or introducing access blocking mechanisms is challenging, especially when multiple applications run in parallel, as some hardware devices do not support simultaneous access, leading to potential data contention and interference.
Innovation Solution
A platform with a multi-core processor, shared memory, and an IOTC server that employs data-sharing structures with metadata management to ensure concurrent access to data by producer and consumer partitions, maintaining robust partitioning and incrementality without increasing execution time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple partitions access shared I/O resources in parallel, then system productivity increases, but data contention and interference occur because some hardware devices do not support simultaneous access
Solution Approach 1:
The shared memory space is segmented into multiple data-sharing structures, each dedicated to specific producer-consumer partition pairs. This segmentation isolates access paths, allowing multiple partitions to access different data structures simultaneously without interference, thus maintaining productivity while preventing data contention.
Solution Approach 2:
The IOTC server acts as an intermediary that manages access to shared I/O resources. It coordinates between multiple producer and consumer partitions, ensuring that hardware devices receive requests in an ordered manner even when multiple partitions attempt concurrent access, thereby preventing data contention while maintaining system productivity.
2Reliability
If an IOTC server centralizes access to shared resources, then data contention is prevented, but access blocking occurs and execution time increases
Solution Approach 1:
The data-sharing structures are segmented into multiple independent queues, each handling specific producer-consumer relationships. This allows parallel processing of multiple data streams simultaneously, preventing the single-point blocking that would occur with a completely centralized approach, thus reducing execution time while maintaining data contention prevention.
Solution Approach 2:
The system pre-allocates dedicated data-sharing structures for each producer-consumer partition pair before execution begins. This preliminary organization eliminates the need for dynamic arbitration during runtime, preventing access blocking and reducing execution time while still ensuring orderly access to shared resources.
3Productivity
If shared memory is used for data exchange between partitions, then productivity increases, but metadata corruption risk increases due to concurrent access
Solution Approach 1:
The shared memory is segmented into multiple isolated data-sharing structures, each with its own metadata. This segmentation ensures that concurrent access by different partition pairs occurs in isolated memory regions, preventing metadata corruption while maintaining high productivity through parallel data exchange.
Solution Approach 2:
Each data-sharing structure has locally optimized metadata management tailored to its specific producer-consumer relationship. This local quality approach ensures that metadata access patterns are optimized and isolated for each structure, preventing corruption while enabling efficient concurrent access across multiple structures.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention relates to a platform for running avionics applications, comprising a shared memory space (8), a plurality of avionics partitions (15, 16), and an IOTC server (11) for accessing shared resources. The shared memory space (8) is configured to perform all data sharing between a producing partition (11, 15, 16) and a predetermined group of N data-consuming partitions (11, 15, 16) exclusively via a data-sharing structure (17-1, 17-2, 17-3) allocated in this space (8). The data-sharing structure (17-1, 17-2, 17-3) comprises at least two record addresses usable by the data-producing partition (11, 15, 16) for writing two different data items.