Multi-thread Processor Shared Counter Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-thread processors face increased complexity and overhead in achieving parallel instruction execution due to the need for complicated control logic and hardware configurations to manage prediction registers for each instruction, which hinders efficient synchronization and execution.

Innovation Solution

A method where multiple threads in a multi-thread processor execute a shared instruction sequence by sorting function calls based on a calling order, using counter values to determine a main counter value that all threads follow, allowing simultaneous execution of instructions without the need for complex control logic units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If prediction registers are configured for each instruction to achieve parallel thread execution, then parallel processing capability is improved, but hardware complexity and compiler overhead increase

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the prediction register functionality into a shared resource that is common to all threads rather than having separate prediction registers for each thread. This consolidation reduces the overall hardware complexity while maintaining the ability to support parallel thread execution, directly resolving the contradiction between improved productivity and worsened device complexity.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If prediction registers are configured for each instruction, then parallel thread execution is enabled, but compiler overhead increases

Engineering Contradiction:
Improveparallel thread executionVSAvoidcompiler overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent combines the prediction register into a shared structure that serves all threads simultaneously. This merging eliminates the need for the compiler to manage separate prediction registers for each thread, thereby reducing compiler overhead while still enabling efficient parallel thread execution.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If complex control logic units are added to manage prediction registers, then instruction synchronization is improved, but device complexity increases

Engineering Contradiction:
Improveinstruction synchronizationVSAvoidcontrol logic complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a self-service mechanism where the shared prediction register automatically manages instruction synchronization across threads without requiring complex external control logic. The prediction register itself performs the synchronization function through its inherent design, eliminating the need for additional complex control units and thereby reducing device complexity while maintaining reliable instruction synchronization.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8838941B2Multi-thread processors and methods for instruction execution and synchronization therein and computer program products thereof
Publication Date: 2014.09.16 VIA TECH INC
  • US8838941B2 patent drawing
  • US8838941B2 patent drawing
  • US8838941B2 patent drawing

AI summary

Methods for instruction execution and synchronization in a multi-thread processor are provided, wherein in the multi-thread processor, multiple threads are running and each of the threads can simultaneously execute a same instruction sequence. A source code or an object code is received and then compiled to generate the instruction sequence. Instructions for all of function calls within the instruction sequence are sorted according to a calling order. Each thread is provided a counter value pointing to one of the instructions in the instruction sequence. A main counter value is determined according to the counter values of the threads such that all of the threads simultaneously execute an instruction of the instruction sequence that the main counter value points to.