VLIW Processor Dynamic Branch Handling via Lookup Table

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Superscalar and VLIW processors face inefficiencies in processing branch-intensive algorithms due to uncertainty in branch instruction paths, leading to pipeline flushing and reduced efficiency, especially in applications like video compression where branch conditions are dynamic and numerous.

Innovation Solution

A VLIW processor with a lookup table dynamically programmed to implement logic equations, using a plurality of Arithmetic Logic Units (ALUs) and guarded result registers, which generates a selection signal based on branch outcomes to write the correct results efficiently, allowing for parallel processing and flexible handling of changing branch criteria.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dedicated hardware solutions are used for branch processing, then processing efficiency is improved, but device complexity increases and adaptability decreases

Engineering Contradiction:
Improvebranch processing efficiencyVSAvoidhardware structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic branch processing by using a programmable logic unit that can be reconfigured at runtime based on the actual branch conditions encountered. This allows the processor to adapt its branch handling mechanism dynamically rather than using fixed dedicated hardware, resolving the contradiction between efficiency and adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the operational parameters of the branch processing unit by using a lookup table that can be programmed with different branch prediction strategies and conditions. This allows the same hardware structure to operate in different modes depending on the application requirements, achieving both efficiency and flexibility.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If pipeline flushing is performed to handle branch uncertainty, then correct instruction execution is ensured, but processing speed decreases

Engineering Contradiction:
Improveinstruction execution correctnessVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent performs preliminary branch condition evaluation and instruction selection before the branch instruction is fully executed. By evaluating branch conditions in parallel and pre-selecting the correct instructions using a lookup table, the system avoids pipeline flushing while ensuring correct instruction execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary lookup table structure that mediates between branch condition evaluation and instruction execution. This lookup table stores pre-computed branch outcomes and enables direct routing to the correct instructions without requiring pipeline flushes, thus maintaining both reliability and speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If branch conditions are evaluated in sequence, then logic correctness is maintained, but processing efficiency decreases

Engineering Contradiction:
Improvelogic correctnessVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the branch processing into independent parallel evaluation units, each handling specific branch conditions simultaneously. This segmentation allows multiple branch conditions to be evaluated in parallel while maintaining logical correctness through independent verification paths.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates multiple copies of the branch evaluation logic in parallel execution units, allowing simultaneous evaluation of different branch conditions. Each copy maintains the correct logical evaluation for its specific branch, and the results are combined through the lookup table mechanism.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8019979B2Efficient implementation of branch intensive algorithms in VLIW and superscalar processors
Publication Date: 2011.09.13 V SILICON SEMICON (HANGZHOU) CO LTD
  • US8019979B2 patent drawing
  • US8019979B2 patent drawing
  • US8019979B2 patent drawing

AI summary

An apparatus for implementing branch intensive algorithms is disclosed. The apparatus includes a processor containing a plurality of ALUs and a plurality of result registers. Each result register has a guard input which allows the ALU to write a result to the register upon receipt of a selection signal at the guard input. A lookup table is dynamically programmed with logic to implement an upcoming branching portion of program code. Upon evaluation of the branch conditions of the branching portion of code, the lookup table outputs a selection signal for writing the correct results of the branching portion of code based on the evaluation of the branch condition statements and the truth table programmed into the lookup table to the result register.