Thread Resource Allocation Using State-Based Deallocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing hardware resource allocation in computing devices is challenging due to simultaneous execution of multiple processes that collectively request more resources than are currently available, leading to inefficient use and increased memory bandwidth consumption.

Innovation Solution

A hardware resource allocation system that tracks allocation of resources to threads using state identification values, allowing for efficient deallocation of resources from inactive threads, thereby reducing memory bandwidth consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple processes execute in parallel with dynamic resource allocation, then hardware resource utilization is improved, but management complexity increases due to collective resource requests exceeding availability

Engineering Contradiction:
Improvehardware resource utilizationVSAvoidallocation management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms where threads provide status information about their execution states, and the resource allocation management circuit uses this feedback to make informed allocation decisions. This allows the system to dynamically adjust resource distribution based on actual thread needs and availability.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The resource allocation system dynamically adjusts hardware resource assignment based on real-time thread execution states. The management circuit continuously monitors thread status and reallocates resources accordingly, transforming static allocation into dynamic adaptation that responds to changing computational demands.

Inventive Principle:
Principle #15Dynamics

2Productivity

If hardware resources are allocated to more threads, then resource utilization is improved, but memory bandwidth consumption increases due to state information transfer

Engineering Contradiction:
Improveresource utilizationVSAvoidmemory bandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system applies local quality by differentiating treatment based on thread execution states. Instead of uniform allocation, the management circuit applies selective allocation strategies tailored to specific thread states (e.g., active vs. inactive), optimizing both resource distribution and memory bandwidth usage according to individual thread characteristics.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes allocation parameters based on thread execution state. The management circuit adjusts allocation decisions by considering state identification values and execution status, modifying resource assignment parameters dynamically to balance utilization benefits against memory bandwidth costs.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If threads are deallocated when resources are insufficient, then resource allocation efficiency is improved, but thread execution continuity may be affected

Engineering Contradiction:
Improveallocation efficiencyVSAvoidthread execution continuity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by monitoring thread execution states in advance and proactively deallocating resources from inactive threads before they are needed. This prevents resource exhaustion and ensures continuous availability for active threads, maintaining both efficiency and execution continuity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The management circuit uses feedback from thread status monitoring to make informed deallocation decisions. By continuously receiving updates on thread execution states, the system can confidently remove resources from inactive threads while preserving them for active threads, ensuring continuity through informed control.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12602249B2Hardware resource allocation system for allocating resources to threads
Publication Date: 2026.04.14 APPLE INC
  • US12602249B2 patent drawing
  • US12602249B2 patent drawing
  • US12602249B2 patent drawing

AI summary

In various embodiments, a resource allocation management circuit may allocate a plurality of different types of hardware resources (e.g., different types of registers) to a plurality of threads. The different types of hardware resources may correspond to a plurality of hardware resource allocation circuits. The resource allocation management circuit may track allocation of the hardware resources to the threads using state identification values of the threads. In response to determining that fewer than a respective requested number of one or more types of the hardware resources are available, the resource allocation management circuit may identify one or more threads for deallocation. As a result, the hardware resource allocation system may allocate hardware resources to threads more efficiently (e.g., may deallocate hardware resources allocated to fewer threads), as compared to a hardware resource allocation system that does not track allocation of hardware resources to threads using state identification values.