Hardware Thread Management Circuit for Scalable Accelerator Offloading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software-based thread management in parallel programming architectures is inefficient for applications requiring a large number of threads to be offloaded for execution by hardware accelerator circuits, leading to cumbersome pre-allocation and re-allocation of thread identifiers, which is not scalable.

Innovation Solution

A processing system with a thread management circuit that stores a thread identifier table and a thread completion table, dynamically allocating and re-allocating thread identifiers, and communicating with processor cores and accelerator circuits to manage thread execution and integration, thereby avoiding software-based allocation challenges.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software-based allocation of thread identifiers is used, then thread management is implemented, but scalability deteriorates for applications requiring a large number of threads

Engineering Contradiction:
ImprovescalabilityVSAvoidthread management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent replaces software-based thread identifier allocation with a hardware thread management circuit that uses dedicated hardware tables (thread identifier table and thread completion table) to manage threads. This substitution of software mechanisms with hardware circuits enables scalable thread management for applications requiring large numbers of threads, as the hardware circuit can dynamically allocate and track thread identifiers without the limitations of software pre-allocation approaches.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Speed

If software-based pre-allocation of thread identifiers is used, then thread tracking is enabled, but execution speed deteriorates due to manual allocation and re-allocation operations

Engineering Contradiction:
Improvethread execution speedVSAvoidtime for allocation and re-allocation
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The hardware thread management circuit performs self-service by automatically allocating thread identifiers from the thread identifier table and tracking thread completion status without requiring software intervention. The circuit autonomously manages the allocation process, updates thread completion tables, and facilitates thread joining operations, thereby eliminating the time-consuming manual allocation and re-allocation operations inherent in software-based approaches.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If hardware thread management circuit is introduced, then scalability is improved, but device complexity increases

Engineering Contradiction:
Improvethread management scalabilityVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges the thread management functions into an integrated hardware circuit that combines multiple functionalities: thread identifier allocation, thread completion tracking, and thread joining coordination. By consolidating these functions into a single unified hardware thread management circuit with shared memory tables, the system achieves scalable thread management while minimizing the increase in overall device complexity compared to separate dedicated components for each function.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11861403B2Method and system for accelerator thread management
Publication Date: 2024.01.02 NXP USA INC
  • US11861403B2 patent drawing
  • US11861403B2 patent drawing
  • US11861403B2 patent drawing

AI summary

A thread management circuit of a processing system stores a thread identifier table and a thread completion table. The thread management circuit receives, from a processor core, a request for execution of a portion of an application by an accelerator circuit. The thread management circuit allocates a thread identifier available in the thread identifier table to the processor core for the execution of the portion by the accelerator circuit. The thread management circuit communicates a response and an acceleration request, both including the allocated thread identifier, to the processor core and the accelerator circuit, respectively. The thread management circuit communicates a thread joining response to the processor core based on a received thread joining request and an indication by the thread completion table that the execution of the portion by the accelerator circuit is complete. The executed portion is integrated with the application based on the thread joining response.