Dynamic Heterogeneous Many-Core Accelerator Configuration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing many-core systems are non-scalable and unable to dynamically change available parallel processing cores, limiting their ability to manage application acceleration needs in dynamic systems.

Innovation Solution

A method and system for dynamically configuring multiple processors based on application needs, using a queue management unit and dispatcher to select accelerators from a database and send acceleration requests to a configurable processing circuit, allowing for dynamic selection and configuration of accelerators.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed many-core system is used, then communication between known cores can be managed, but the system cannot dynamically change available parallel processing cores for application acceleration

Engineering Contradiction:
Improvedynamic configuration of processing coresVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system implements dynamic configuration of processing cores by allowing the set of available parallel processing cores to change based on application requirements. The many-core system can dynamically add or remove cores from the available pool, enabling adaptability to different application needs while maintaining manageable complexity through systematic core management mechanisms.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If reprogrammable systems are used to add processing cores on an as-needed basis, then scalability is improved, but custom software solutions are needed to manage cores in a dynamic system

Engineering Contradiction:
Improvescalability of processing coresVSAvoidsoftware management complexity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The system employs self-service mechanisms where the many-core system automatically manages the dynamic addition and configuration of processing cores based on application requirements. This self-managing capability reduces the burden on custom software solutions while maintaining scalability, as the system autonomously handles core provisioning and configuration.

Inventive Principle:
Principle #25Self-service

3Reliability

If fixed circuit designs are used, then a homogeneous or fixed heterogeneous many-core platform can be provided, but the design is non-scalable

Engineering Contradiction:
Improveplatform stabilityVSAvoidscalability of processing platform
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system implements a universal many-core platform that can serve multiple application types and requirements. By designing a heterogeneous many-core system where different types of processing cores can be dynamically configured and allocated, the platform achieves both stability through standardized architecture and scalability through flexible core provisioning for diverse applications.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20220137986A1Application-based dynamic heterogeneous many-core systems and methods
Publication Date: 2022.05.05 ALTERA CORP
  • US20220137986A1 patent drawing
  • US20220137986A1 patent drawing
  • US20220137986A1 patent drawing

AI summary

A method for dynamically configuring multiple processors based on needs of applications includes receiving, from an application, an acceleration request message including a task to be accelerated. The method further includes determining a type of the task and searching a database of available accelerators to dynamically select a first accelerator based on the type of the task. The method further includes sending the acceleration request message to a first acceleration interface located at a configurable processing circuit. The first acceleration interface sends the acceleration request message to a first accelerator, and the first accelerator accelerates the task upon receipt of the acceleration request message.