Multicore Shared-Resource Control Using Hardware Priority Tags
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Processor cores in multicore processors face unpredictable and degraded quality of service due to contention for shared resources such as caches and memory bandwidth, which existing technologies like Resource Director Technology (RDT) struggle to address effectively.
Innovation Solution
Implementing hardware-based resource allocation mechanisms that utilize priority tags (PTAG) and class of service (CLOS) values to autonomously manage shared resources, allowing hardware to dynamically allocate resources based on thread priorities without requiring software monitoring or configuration changes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If software-based resource monitoring and control (e.g., RDT) is used, then resource allocation control is achieved, but system complexity and overhead increase
Solution Approach 1:
The hardware resource allocation mechanism automatically monitors thread priorities and allocates resources without requiring software intervention. The system uses hardware priority tags and class of service values to autonomously make allocation decisions, eliminating the need for complex software-based monitoring and control systems.
Solution Approach 2:
The patent replaces software-based resource management mechanisms with hardware-based mechanisms. Hardware priority tags and class of service values are used to directly control resource allocation, substituting the need for complex software monitoring and control systems with simpler hardware-level operations.
2Reliability
If existing resource control technologies (e.g., RDT) are used, then resource monitoring is provided, but quality of service remains degraded and unpredictable
Solution Approach 1:
The hardware-based resource allocation mechanism dynamically adjusts resource distribution based on real-time thread priority changes and resource availability. Unlike static software controls, the system can respond immediately to changing conditions, ensuring predictable quality of service and optimizing resource utilization efficiency.
Solution Approach 2:
The system incorporates feedback mechanisms where thread priority information and resource usage status are continuously monitored and used to adjust allocation decisions. This feedback loop ensures that resources are allocated optimally based on current system conditions, improving both reliability and productivity.
3Speed
If hardware-based priority-based allocation is implemented, then resource allocation responsiveness is improved, but hardware complexity increases
Solution Approach 1:
The hardware mechanism is designed to handle multiple resource types (cache, memory bandwidth, I/O devices) using a unified priority-based allocation approach. By creating a universal allocation framework that works across different resource types, the system achieves high responsiveness without proportionally increasing hardware complexity.
Solution Approach 2:
The system uses parameter changes in priority tags and class of service values to control resource allocation behavior. By modifying these parameters rather than adding complex control logic, the hardware achieves responsive allocation while keeping the implementation relatively simple and scalable.
Data Source
AI summary
Embodiments of apparatuses, methods, and systems for resource control based on software priority are described. In embodiments, an apparatus includes resource sharing hardware and multiple cores. The resource sharing hardware is to share the shared resource among the cores. A first core includes first execution circuitry to execute multiple threads. The first core also includes registers programmable by software. A first register is to store a first identifier of a first thread and a first priority tag to indicate a first priority of the first thread relative to a second priority of a second thread. A second register to store a second identifier of the second thread and a second priority tag to indicate the second priority of the second thread relative to the first priority of the first thread. The resource sharing hardware is to use the first priority and the second priority to control access to the shared resource by the first thread and the second thread.


