Multithreaded Processor Stall Controller Lock-Step Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Executing complex programs across multiple threads in digital signal processors is challenging due to issues like cache misses, leading to stall events that disrupt synchronized execution.

Innovation Solution

A multithreaded processor device and method where program threads are execution-linked, with a stall controller managing no-operation instructions during stall events to maintain synchronization, allowing threads to resume normal execution when the stall is cleared.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple program threads are executed in parallel, then processor productivity is improved, but execution synchronization becomes difficult to maintain due to stall events

Engineering Contradiction:
Improveprocessor performanceVSAvoidexecution synchronization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A stall controller is introduced as an intermediary component that monitors stall events in one thread and automatically inserts no-operation instructions into the other thread. This mediator maintains lock-step execution without requiring complex programming logic from the developer, resolving the contradiction between improved productivity and execution synchronization complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If program threads are executed in lock-step manner, then execution synchronization is maintained, but productivity decreases when stall events occur

Engineering Contradiction:
Improveexecution synchronizationVSAvoidprocessor performance
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

While one thread experiences a stall event, the stall controller ensures the other thread continues executing no-operation instructions to maintain synchronization, rather than halting the entire processor. This allows the useful action of maintaining lock-step execution to continue without completely stopping productivity, as the non-stalled thread remains active.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If parallel programs are written across multiple threads, then complex computations can be performed, but execution control becomes difficult

Engineering Contradiction:
Improveparallel programming capabilityVSAvoidexecution control
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The stall controller implements self-service by automatically detecting stall events and managing the insertion of no-operation instructions without requiring manual intervention or complex control logic from the programmer. The system serves itself by autonomously handling synchronization issues, making parallel programming easier while maintaining execution control.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7814487B2System and method of executing program threads in a multi-threaded processor
Publication Date: 2010.10.12 QUALCOMM INC
  • US7814487B2 patent drawing
  • US7814487B2 patent drawing
  • US7814487B2 patent drawing

AI summary

A multithreaded processor device is disclosed and includes a first program thread and second program thread. The second program thread is execution linked to the first program thread in a lock step manner. As such, when the first program thread experiences a stall event, the second program thread is instructed to perform a no operation instruction in order to keep the second program thread execution linked to the first program thread. Also, the second program thread performs a no operation instruction during each clock cycle that the first program thread is stalled due to the stall event. When the first program thread performs a first successful operation after the stall event, the second program thread restarts normal execution.