Multi-thread Processor Dynamic Priority Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multi-thread processor scheduling methods, such as round-robin and priority methods, struggle to flexibly allocate execution time to threads, leading to insufficient time for higher-priority threads and neglect of lower-priority threads.
Innovation Solution
A multi-thread processor with a thread scheduler that updates priority ranks for executed hardware threads and selects the next thread based on the updated priority, ensuring flexible execution time allocation while maintaining minimum execution times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If round-robin scheduling is used, then threads are impartially assigned execution time, but higher-priority threads cannot receive sufficient execution time when the number of threads increases
Solution Approach 1:
The patent implements dynamic priority adjustment where the priority of executed threads is automatically updated (decremented) after each execution cycle. This transforms the static round-robin scheduling into a dynamic system that adapts to thread execution patterns, allowing high-priority threads to receive more execution time initially while ensuring all threads eventually get processed
Solution Approach 2:
The scheduling algorithm changes the priority parameter of threads based on their execution history. Threads that have been executed recently have their priority reduced, while threads that haven't been executed maintain higher priority. This parameter change mechanism enables flexible execution time allocation that responds to real-time system state
2Productivity
If priority-based scheduling is used, then high-priority threads are executed first, but low-priority threads are neglected and cannot be processed
Solution Approach 1:
The system incorporates feedback mechanisms where the execution status of each thread is tracked and used to adjust future scheduling decisions. After a thread is executed, its priority is updated based on this feedback, ensuring that previously executed threads are less likely to be selected again immediately, thus preventing starvation of lower-priority threads
Solution Approach 2:
The patent implements periodic priority updates where thread priorities are reassessed and adjusted at regular intervals or after each execution cycle. This periodic action ensures that no thread remains at high priority indefinitely, guaranteeing that all threads including low-priority ones eventually receive execution time
3Stability of the object's composition
If fixed schedule is used, then each thread is executed with predefined execution time ratio, but the schedule cannot be flexibly adjusted based on thread priority changes
Solution Approach 1:
The patent transforms fixed scheduling into dynamic scheduling by continuously updating thread priorities based on execution history. The schedule adapts to changing system conditions while maintaining structured execution patterns, combining stability with flexibility
Solution Approach 2:
The scheduling system automatically adjusts its own behavior based on thread execution patterns without external intervention. The priority update mechanism operates autonomously, modifying the schedule based on observed thread behavior and execution needs
Data Source
AI summary
A multi-thread processor includes a plurality of hardware threads each of which generates an independent instruction flow, a first thread scheduler that outputs a first thread selection signal, the first thread selection signal designating a hardware thread to be executed in a next execution cycle among the plurality of hardware threads according to a priority rank, the priority rank being established in advance for each of the plurality of hardware threads, a first selector that selects one of the plurality of hardware threads according to the first thread selection signal and outputs an instruction generated by the selected hardware thread, and an execution pipeline that executes an instruction output from the first selector. Whenever the hardware thread is executed in the execution pipeline, the first scheduler updates the priority rank for the executed hardware thread and outputs the first thread selection signal in accordance with the updated priority rank.


