Vector Processor Predication via Dedicated Registers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional branch prediction methods in digital data processing are hindered by the need for instruction pipelining, which is slowed down by branches, and require significant opcode resources due to directly embedded predication fields.

Innovation Solution

A method that reduces opcode requirements by using dedicated vector predicate registers and a predicate functional unit to manipulate predication bits efficiently, allowing conditional execution of instructions based on predicate information from a separate register file.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If directly embedded predication fields are used in instructions, then branch predication can be implemented, but opcode resources are significantly consumed

Engineering Contradiction:
Improvebranch predication capabilityVSAvoidopcode resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the predication field from individual instructions and consolidates it into a separate predicate register file. Instead of embedding predication bits in every instruction, the system uses dedicated predicate registers that can be referenced by multiple instructions, thereby reducing opcode resource consumption while maintaining branch predication capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The predicate registers serve multiple instructions simultaneously, making the predication mechanism universal. A single predicate register can control the execution of multiple different instructions, allowing one predication field to serve multiple functions and reducing the total number of opcode resources needed.

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

2Productivity

If instruction pipelining is implemented to improve performance, then processing speed increases, but branches slow down the pipeline

Engineering Contradiction:
Improveprocessing speedVSAvoidpipeline stall due to branches
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary predication setup by loading predicate values into dedicated predicate registers before instruction execution. This allows the pipeline to determine early whether an instruction should execute, reducing pipeline stalls caused by branches and improving overall processing speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces predicate registers as an intermediary between branch conditions and instruction execution. These registers act as mediators that hold predication results and can be efficiently tested by multiple instructions, allowing the pipeline to maintain flow while handling branching logic without direct stalls.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If predication bits are manipulated using existing execution units, then no additional hardware is needed, but execution unit resources are adversely utilized

Engineering Contradiction:
Improvehardware resourcesVSAvoidexecution unit availability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the processor into distinct functional units, including dedicated predicate registers and a separate predicate functional unit. This segmentation allows predication bit manipulation to occur in isolation from main execution units, preventing adverse utilization of execution unit resources while maintaining overall system productivity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20220261245A1Predication methods for vector processors
Publication Date: 2022.08.18 TEXAS INSTRUMENTS INC
  • US20220261245A1 patent drawing
  • US20220261245A1 patent drawing
  • US20220261245A1 patent drawing

AI summary

A technique for method for executing instructions in a processor includes receiving a first instruction, receiving a second instruction, identifying a functional unit specified by an opcode contained in an opcode field of the first instruction, selecting a field of the second instruction that contains predicate information based on the identified functional unit, and executing the first instruction in a conditional manner using the identified functional unit and the predicate information contained in the selected field of the second instruction.