Thread De-emphasis for Multithreaded Processor Stall Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multithreaded processors, stalls in the instruction pipeline due to cache misses or memory transactions can lead to reduced efficiency, as a stall in one thread can delay the execution of other threads, and existing methods for monitoring and addressing these stalls are resource-intensive and inefficient.

Innovation Solution

A method is introduced where a thread de-emphasis instruction is executed to lower the priority of a thread with pending memory transactions above a threshold, allowing other threads with higher priority to access processor resources, thereby reducing the likelihood of pipeline stalls. This is achieved through a thread control module that adjusts priority based on the number of pending transactions and restores priority once they are resolved.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor executes threads based on equal priority scheduling, then all threads can be processed fairly, but pipeline stalls occur when one thread has pending memory transactions, reducing overall processor efficiency

Engineering Contradiction:
Improveprocessor efficiencyVSAvoidpipeline stall time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic thread priority adjustment based on the number of pending memory transactions. The thread control module continuously monitors pending transactions and adjusts thread priority levels dynamically, allowing threads with fewer pending transactions to execute ahead and prevent pipeline stalls, while maintaining fairness when threads have similar transaction counts.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms where the thread control module monitors the instruction pipeline for stalls and pending memory transactions, then adjusts thread priority accordingly. This closed-loop control ensures that priority allocation responds to actual pipeline conditions, preventing stalls by promoting threads that are ready to execute while demoting those causing delays.

Inventive Principle:
Principle #23Feedback

2Productivity

If the processor monitors instruction pipeline for stalls and adjusts thread priority dynamically, then pipeline efficiency improves, but additional overhead is introduced at the processor

Engineering Contradiction:
Improvepipeline execution efficiencyVSAvoidprocessor overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The thread control module performs multiple functions: it schedules threads based on priority, monitors pending memory transactions, detects pipeline stalls, and adjusts priority levels. By consolidating these functions into a single control module, the patent reduces overall processor overhead while maintaining dynamic priority adjustment capabilities that improve pipeline efficiency.

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

Solution Approach 2:

The system uses existing processor resources and thread metadata (pending transaction counts) that are already maintained for other purposes. The thread control module leverages this existing information infrastructure to make priority decisions without requiring extensive additional monitoring hardware or complex data collection mechanisms.

Inventive Principle:
Principle #25Self-service

3Speed

If threads with pending memory transactions are given high priority, then their execution is expedited, but other threads experience delays reducing overall throughput

Engineering Contradiction:
Improvethread execution speedVSAvoidoverall processor throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent changes the priority parameter of threads based on their pending memory transaction count. Threads with fewer pending transactions are assigned higher priority to execute quickly and free up pipeline resources, while threads with many pending transactions receive lower priority. This parameter adjustment optimizes both individual thread speed and overall processor throughput by balancing execution across multiple threads.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2147373B1Multithreaded processor for executing thread de-emphasis instruction and method therefor
Publication Date: 2018.11.21 NXP USA INC
  • EP2147373B1 patent drawingFigure 1
  • EP2147373B1 patent drawingFigure 2
  • EP2147373B1 patent drawingFigure 3

AI summary

A technique for scheduling execution of threads [221, 222] at a processor [102] is disclosed. The technique includes executing a thread de-emphasis instruction [220] of a thread [221] that de-emphasizes the thread until the number of pending memory transactions [330], such as cache misses, associated with the thread are at or below a threshold [320]. While the thread is de-emphasized, other threads at the processor that have a higher priority can be executed or assigned system resources. Accordingly, the likelihood of a stall in the processor is reduced.