Hardware Core Allocation for Dynamic Power Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current multi-core processor systems, such as those running Microsoft Windows 7, face challenges in dynamically reducing or increasing active cores for power management without modifying the operating system or rebooting, as they are designed to operate based on core counts at boot time and lack support for 'hot core' re-allocation.
Innovation Solution
A hardware arrangement using a global semaphore and CoreHalt program, implemented as a device driver, allows for dynamic allocation of active cores by halting all but one core, reducing power consumption without modifying the OS or affecting workload perception, and can be activated or deactivated through user interface controls.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If hypervisor software is used to present virtual cores to the OS, then the OS can believe it has multiple active cores, but the device complexity and code footprint increase substantially
Solution Approach 1:
The patent extracts the core allocation control function from the OS and places it in hardware circuitry. The hardware arrangement includes a semaphore mechanism and core halt logic that operates independently of the OS, eliminating the need for hypervisor software while achieving dynamic core allocation.
Solution Approach 2:
The patent introduces a hardware intermediary layer between the OS and the processor cores. This hardware arrangement acts as a mediator that manages core activation and deactivation without requiring OS modification or virtualization support, thereby reducing software complexity while enabling dynamic allocation.
2Adaptability or versatility
If hypervisor software is used to manage active cores, then dynamic allocation is achieved, but a performance penalty is introduced
Solution Approach 1:
The patent replaces the software-based hypervisor mechanism with a hardware-based core allocation system. The hardware arrangement uses circuitry to directly control core activation, eliminating the performance overhead associated with software virtualization and hypervisor context switches.
3Loss of energy
If core parking using process affinity is used, then non-used cores are parked, but the technique is not guaranteed and is workload dependent
Solution Approach 1:
The patent implements preliminary action by proactively halting unused cores before they are needed. The hardware arrangement continuously monitors workload and pre-emptsively deactivates cores that will not be required, ensuring reliable power savings without waiting for OS-driven workload changes.
4Adaptability or versatility
If the OS is rebooted to re-allocate cores, then core allocation can be changed, but system availability is reduced and re-allocation time increases
Solution Approach 1:
The patent implements dynamics by enabling real-time core allocation changes without system reboot. The hardware arrangement allows the OS to dynamically activate or deactivate cores on-demand, transforming the static boot-time core configuration into a dynamic, runtime-adjustable resource allocation mechanism.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
An apparatus and method for dynamic allocation of multiple processor cores in a computer running an operating system includes providing (300) a program operable to halt a core from processing instructions from a respective ready queue. A next step includes establishing (302) a maximum count of tokens available to allow the program execution, wherein the maximum count is less than a total number of cores. A next step includes obtaining (304) tokens by the cores, wherein at least one core will not be able to obtain a token. If a token has been obtained by a core (306), executing (308) the program by that core, or otherwise not executing the program by that core and remaining active (310) to process instructions from the respective ready queue of that core.