Multithreaded Processor Core Hardware Task Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems face performance challenges due to unsuitable processor architectures for divergent and chaotic execution flows, such as graph applications, where existing architectures are not optimized for efficient task management and resource allocation.

Innovation Solution

A processor core design with a combination of single-threaded and multithreaded pipelines, a thread engine for dynamic thread scheduling, and a task manager with a hardware queue for fine-grained task scheduling and switching, allowing for efficient allocation and migration of threads across pipelines to optimize performance and reduce power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single-threaded architecture is used, then the processor is simple to implement, but it cannot efficiently handle divergent and chaotic execution flows

Engineering Contradiction:
Improveability to handle divergent execution flowsVSAvoidprocessor architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The processor is divided into multiple independent pipelines (first pipeline, second pipeline, third pipeline) that can operate simultaneously. Each pipeline can handle different execution flows independently, allowing the system to efficiently process divergent and chaotic execution patterns while maintaining relative simplicity within each pipeline segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processor implements dynamic thread scheduling where threads can be migrated between different pipelines based on execution state. The thread scheduler dynamically assigns threads to pipelines and can move threads between pipelines during execution, enabling the architecture to adapt to varying execution patterns without requiring a completely complex design.

Inventive Principle:
Principle #15Dynamics

2Productivity

If hardware threads are migrated between pipelines, then resource utilization is optimized, but thread scheduling complexity increases

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidthread scheduling mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor implements self-service load balancing where pipelines autonomously determine when to request threads from the thread scheduler and can independently migrate threads between pipelines based on their own execution state and resource availability. This distributed decision-making approach optimizes resource utilization without requiring a complex centralized scheduling mechanism.

Inventive Principle:
Principle #25Self-service

3Productivity

If multiple pipelines are used, then performance is improved, but power consumption increases

Engineering Contradiction:
Improveprocessing performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The processor dynamically activates and deactivates pipelines based on workload requirements. When workload is light, fewer pipelines are active, reducing power consumption. When workload increases or execution patterns become divergent, additional pipelines are activated to maintain performance. This dynamic activation strategy allows the system to achieve high performance when needed while minimizing power consumption during normal operation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3588288B1A multithreaded processor core with hardware-assisted task scheduling
Publication Date: 2024.08.21 INTEL CORP
  • EP3588288B1 patent drawingFigure 1
  • EP3588288B1 patent drawingFigure 2
  • EP3588288B1 patent drawingFigure 3

AI summary

Embodiments of apparatuses, methods, and systems for a multithreaded processor core with hardware-assisted task scheduling are described. In an embodiment, a processor includes a first hardware thread, a second hardware thread, and a task manager. The task manager is to issue a task to the first hardware thread. The task manager includes a hardware task queue in which to store a plurality of task descriptors. Each of the task descriptors is to represent one of a single task, a collection of iterative tasks, and a linked list of tasks.