Processor Parallelization via Scoreboard Thread Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor designs face challenges in dynamically parallelizing software code at run-time, as existing techniques often require complex compiler or user support and struggle with efficient execution of repetitive code segments due to dependencies and branch predictions.

Innovation Solution

A processor architecture that invokes multiple hardware threads to process instructions in parallel by detecting parallelization points, such as backward branches or function calls, and uses a scoreboard to manage register access and flow-control traces, allowing for early-stage invocation and partial parallelization of code segments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple hardware threads are invoked to process instructions in parallel, then execution efficiency is improved, but device complexity increases due to scoreboard management and flow-control trace tracking

Engineering Contradiction:
Improveexecution efficiencyVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The instruction sequence is divided into multiple segments that can be processed in parallel by different hardware threads. The scoreboard mechanism segments the tracking of register access and flow-control traces for each thread, allowing independent management of parallel execution contexts while maintaining overall coordination.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The scoreboard acts as an intermediary data structure that mediates between multiple hardware threads and the register file. It tracks and coordinates register access patterns across threads, enabling parallel execution while preventing conflicts and maintaining correctness without requiring complex direct thread-to-register management.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If parallel processing is initiated before dependencies are fully resolved, then latency is reduced, but reliability decreases due to potential dependency violations

Engineering Contradiction:
ImprovelatencyVSAvoidreliability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system performs preliminary analysis of dependency patterns using the scoreboard to identify instructions that can be safely executed in parallel. Flow-control traces are pre-computed and stored, allowing threads to be invoked early without waiting for complete dependency resolution, while the scoreboard ensures that actual execution respects the identified dependency constraints.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The scoreboard provides continuous feedback on register access patterns and dependency status across parallel threads. This feedback mechanism allows the system to dynamically adjust parallel execution, ensuring that dependencies are respected while maximizing parallelism, thereby maintaining reliability even when threads are invoked before all dependencies are fully resolved.

Inventive Principle:
Principle #23Feedback

3Manufacturing precision

If compiler or user support is required for parallelization, then manufacturing precision is improved, but ease of operation deteriorates

Engineering Contradiction:
Improveparallelization accuracyVSAvoidease of operation
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The processor performs automatic parallelization at runtime using hardware-based mechanisms including the scoreboard and flow-control trace tracking. The system self-analyzes instruction sequences, identifies parallelization opportunities, and manages multiple hardware threads without requiring compiler directives or user intervention, thereby maintaining precision while dramatically improving ease of operation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system dynamically changes execution parameters at runtime, such as the number of active hardware threads and the specific instruction segments assigned to each thread. The scoreboard tracks register access patterns and adjusts parallelization strategies based on observed execution characteristics, enabling accurate parallelization without requiring static compiler analysis or user configuration.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10296350B2Parallelized execution of instruction sequences
Publication Date: 2019.05.21 CENTIPEDE SEMI
  • US10296350B2 patent drawing
  • US10296350B2 patent drawing
  • US10296350B2 patent drawing

AI summary

A method which includes, in a processor that processes instructions of program code, processing one or more of the instructions by a first hardware thread. Upon detecting that an instruction defined as a parallelization point has been fetched for the first thread, a second hardware thread is invoked to process at least one of the instructions at least partially in parallel with processing of the instructions by the first hardware thread.