Coprocessor Context Priority Arbitration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In systems with shared coprocessors among multiple processors, there is a need for an efficient arbitration mechanism to prioritize instructions and allocate execution bandwidth effectively, especially between real-time threads and bulk processing tasks to ensure timely completion of critical tasks without compromising overall system performance.
Innovation Solution
A system with multiple processors and a coprocessor that includes coprocessor context priority registers and an arbiter, which arbitrates instructions based on priority weights, allocating more bandwidth to higher priority contexts while allowing lower priority contexts to utilize unused bandwidth, using a weighted round-robin mechanism to dynamically adjust priorities based on performance and deadlines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a coprocessor is shared among multiple processors without priority arbitration, then device complexity is reduced, but real-time thread performance deteriorates due to lack of guaranteed bandwidth allocation
Solution Approach 1:
The patent introduces priority levels as a parameter to control coprocessor access. By assigning different priority values to different threads (e.g., real-time vs. bulk processing), the system dynamically adjusts bandwidth allocation without changing the physical coprocessor structure, thus maintaining low complexity while ensuring real-time performance
Solution Approach 2:
The patent introduces an arbitration mechanism as an intermediary between multiple processors and the shared coprocessor. This arbiter mediates access requests based on priority levels, ensuring real-time threads receive guaranteed bandwidth while allowing bulk processing threads to utilize remaining capacity, thus resolving the contradiction between simplicity and reliability
2Reliability
If bandwidth is allocated to ensure real-time thread completion, then real-time performance is improved, but bulk processing throughput deteriorates due to reduced available bandwidth
Solution Approach 1:
The patent implements dynamic bandwidth allocation where the coprocessor bandwidth available to bulk processing threads varies over time based on real-time thread activity. When real-time threads are active, they receive guaranteed bandwidth; when idle, their allocated bandwidth is released for bulk processing, thus improving both real-time reliability and overall productivity
Solution Approach 2:
The patent allows bulk processing threads to utilize any unused coprocessor bandwidth beyond their base allocation. This partial action approach ensures real-time threads receive exactly what they need for reliable execution, while bulk processing can opportunistically use excess capacity to improve overall throughput without interfering with real-time guarantees
Data Source
AI summary
A system may include a plurality of processors and a coprocessor. A plurality of coprocessor context priority registers corresponding to a plurality of contexts supported by the coprocessor may be included. The plurality of processors may use the plurality of contexts, and may program the coprocessor context priority register corresponding to a context with a value specifying a priority of the context relative to other contexts. An arbiter may arbitrate among instructions issued by the plurality of processors based on the priorities in the plurality of coprocessor context priority registers. In one embodiment, real-time threads may be assigned higher priorities than bulk processing tasks, improving bandwidth allocated to the real-time threads as compared to the bulk tasks.


