Shared Peripheral Controller for Multi-OS Multi-Processor Data Paths
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multi-processor devices with different operating systems cannot simultaneously control the same peripheral device due to limitations in peripheral controller allocation, leading to inefficiencies in data transmission and reception.
Innovation Solution
A system and method allowing multiple processors to share a peripheral controller by allocating memory for transmit and receive descriptions and buffers, enabling data transmission and reception through a specific transmission interface, with one processor controlling the peripheral while others informally utilize shared resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a peripheral controller is allocated to only one processor at a time, then control simplicity is maintained, but resource utilization and system productivity are reduced
Solution Approach 1:
The peripheral controller's allocation is made dynamic rather than static. The system allows the peripheral controller to be allocated to different processors based on real-time needs, with the primary processor managing the controller during its operation and enabling secondary processors to access it when needed, thus achieving both operational simplicity and resource utilization
Solution Approach 2:
The peripheral controller is designed to serve multiple processors universally. Instead of dedicating the controller to a single processor, the system enables multiple processors to share and access the same peripheral controller through defined protocols, making the controller multi-functional for different processing tasks
2Adaptability or versatility
If multiple processors simultaneously control the same peripheral device, then resource sharing capability is improved, but system complexity and control difficulty increase
Solution Approach 1:
The primary processor acts as an intermediary between the peripheral controller and secondary processors. When secondary processors need to use the peripheral controller, they do so through the primary processor which manages the controller's operation, thus enabling resource sharing without directly increasing controller complexity
Solution Approach 2:
The control functionality is segmented into primary and secondary roles. The primary processor handles direct controller management while secondary processors access the controller through defined interfaces and protocols, dividing the control complexity into manageable segments
3Adaptability or versatility
If processors operate independently on different operating systems, then system adaptability is improved, but coordination difficulty and control complexity increase
Solution Approach 1:
The system establishes a universal coordination mechanism that works across different operating systems. The primary processor serves as a universal interface that can coordinate with secondary processors running different OS, enabling multi-OS compatibility without increasing individual processor complexity
Solution Approach 2:
The system implements feedback mechanisms where the primary processor monitors and coordinates the activities of secondary processors. Through interrupt handling and status monitoring, the system maintains coordination across different operating systems with manageable complexity
Data Source
AI summary
A multi-processor device comprises more than two processors. The multi-processor device can make the two processors running different operating systems (for example, Linux, real-time operating system (RT OS) or non-operating system (non-OS)) share one peripheral controller by allocating transmit descriptions, receive descriptions, transmit buffers corresponding to the transmit descriptions and receive buffers corresponding to the receive descriptions of the two processors in a shared memory. The peripheral device can process the data associated with the two processors. In one embodiment, the peripheral controller can be an Ethernet controller, and the peripheral device is an Ethernet network card.


