SMT Processor Core Thread Prioritization for Deadlock Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-processor systems, memory lock sequences can lead to deadlocks when one thread fails to release a lock, causing other threads to stall and fill the instruction sequencing unit (ISQ) with instructions, preventing forward progress and resource utilization.

Innovation Solution

A system that determines the longest-held lock and flushes all instructions from the ISQ except for the thread with the longest lock, using a counter to track lock duration and a threshold to detect and resolve potential deadlocks by prioritizing the thread with the longest lock.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads execute simultaneously in a SMT processor core, then overall CPU efficiency is improved, but deadlocks may occur when one thread fails to release a memory lock, causing other threads to stall

Engineering Contradiction:
ImproveCPU efficiencyVSAvoiddeadlock prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by detecting lock acquisition events and starting counters before potential deadlocks can occur. When a thread acquires a lock, the system proactively monitors the lock duration and detects when it exceeds a threshold, taking preventive action by flushing the ISQ before the deadlock fully develops.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by continuously monitoring lock duration through counters and comparing them against thresholds. This feedback loop enables the system to detect abnormal lock holding times and trigger corrective actions, creating a closed-loop control system that prevents deadlocks while maintaining SMT efficiency.

Inventive Principle:
Principle #23Feedback

2Reliability

If threads stall waiting for lock release, then system reliability improves by preventing deadlocks, but the instruction sequencing unit fills with instructions, preventing forward progress

Engineering Contradiction:
Improvedeadlock preventionVSAvoidforward progress
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system extracts and removes stalled instructions from the ISQ when a deadlock condition is detected. By flushing the instruction sequencing unit, the system removes the harmful accumulated instructions that would otherwise block forward progress, allowing the system to recover from potential deadlocks while minimizing impact on productive threads.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system dynamically adjusts its behavior based on lock duration. Rather than statically preventing all lock operations, the system adapts its response based on whether a lock exceeds the threshold duration, dynamically flushing the ISQ only when necessary to prevent deadlocks while allowing normal lock operations to proceed without interruption.

Inventive Principle:
Principle #15Dynamics

3Reliability

If the system monitors lock duration to detect deadlocks, then deadlock prevention improves, but device complexity increases due to additional counters and threshold detection mechanisms

Engineering Contradiction:
Improvedeadlock detectionVSAvoidcounter and threshold mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The lock duration counter serves multiple functions: it tracks the duration of lock holding for diagnostic purposes, detects potential deadlocks by comparing against thresholds, and triggers ISQ flushing when necessary. This multi-functional approach reduces the need for separate monitoring mechanisms, thereby reducing overall system complexity while maintaining effective deadlock prevention.

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

Data Source

PatentUS11775337B2Prioritization of threads in a simultaneous multithreading processor core
Publication Date: 2023.10.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11775337B2 patent drawing
  • US11775337B2 patent drawing
  • US11775337B2 patent drawing

AI summary

A first instruction for processing by a processor core is received. Whether the instruction is a larx is determined. Responsive to determining the instruction is a larx, whether a cacheline associated with the larx is locked is determined. Responsive to determining the cacheline associated with the larx is not locked, the cacheline associated with the larx is locked and a counter associated with a first thread of the processor core is started. The first thread is processing the first instruction.