Hardware Thread Allocation Control for Low-Overhead Accelerator Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software-based thread management in processor multithreading scenarios incurs significant computational overhead, leading to inefficiencies in resource utilization, increased power consumption, and reduced throughput, particularly in low-cost hardware platforms.
Innovation Solution
A hardware-based thread allocation controller that allocates and manages processor threads through hardware programming, reducing computational overhead by directly assigning threads to hardware accelerators based on predefined conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If software-based thread management is used, then flexibility and control are maintained, but computational overhead increases significantly
Solution Approach 1:
The patent replaces the software-based thread management system with a hardware-based thread allocation controller. This hardware controller directly manages thread allocation to hardware accelerators using dedicated hardware circuits, eliminating the need for software intervention in the thread scheduling process. The hardware controller includes a thread queue management block that operates independently of the software stack, substituting the mechanical/software process with a dedicated hardware mechanism that reduces computational overhead while maintaining operational flexibility.
2Adaptability or versatility
If software-based thread management is used, then system control is maintained, but power consumption increases
Solution Approach 1:
The patent implements a hardware thread allocation controller that substitutes software-based management with dedicated hardware circuits for thread allocation. This hardware controller manages thread-to-accelerator mapping through hardware logic rather than software execution, significantly reducing the energy consumed by the management process. The hardware controller includes precondition checking logic and thread queue management that operates at the hardware level, eliminating the need for continuous software processing and reducing overall power consumption while preserving system control capability.
3Adaptability or versatility
If software-based thread management is used, then flexibility in thread allocation is maintained, but throughput decreases
Solution Approach 1:
The patent replaces software-based thread management with a hardware thread allocation controller that processes thread allocation decisions at hardware speed. The hardware controller includes a thread queue management block that directly manages thread allocation without software intervention, enabling faster thread-to-accelerator assignment. This hardware-level processing eliminates software scheduling delays and reduces the time between thread generation and accelerator assignment, thereby increasing system throughput while maintaining allocation flexibility through hardware-configurable policies.
4Loss of energy
If hardware-based thread allocation controller is implemented, then computational overhead is reduced, but device complexity increases
Solution Approach 1:
The patent segments the thread management functionality into distinct hardware modules within the thread allocation controller. The hardware controller includes a thread queue management block, a precondition checking unit, and an allocation decision logic, each implemented as separate hardware circuits. This segmentation allows the complex thread management task to be divided into manageable hardware components that can be independently designed and optimized, reducing the overall complexity burden while maintaining low computational overhead.
Data Source
AI summary
A method for a hardware thread allocation controller of a computing device includes receiving, at the hardware thread allocation controller, a processor thread including one or more processing commands to be executed, and one or more preconditions for execution of the processor thread. The processor thread is stored in a thread queue of the hardware thread allocation controller. Based at least in part on detecting that the one or more preconditions for execution are met, the processor thread is assigned to a hardware accelerator of the computing device for execution, wherein the hardware thread allocation controller is configured to receive the processor thread, store the processor thread in the thread queue, and assign the processor thread to the hardware accelerator through hardware programming of the hardware thread allocation controller.


