Block-Based Processor Branch Target Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face challenges in improving performance due to limitations in instruction set architectures (ISAs), particularly in verifying target locations for branch instructions, which can lead to inefficiencies and security vulnerabilities.

Innovation Solution

The implementation of a block-based processor with an EDGE ISA that fetches and executes instruction blocks atomically, reducing the need for complex architectural features like register renaming and misspeculation recovery, and includes a control unit to verify the validity of branch targets, enhancing both performance and security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional processor architectures are used with complex architectural features like register renaming and misspeculation recovery, then out-of-order execution performance can be improved, but device complexity and power consumption increase

Engineering Contradiction:
Improveout-of-order execution performanceVSAvoidarchitectural feature complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor pipeline is segmented into distinct stages (fetch, decode, execute, write-back) with clear boundaries. Instruction blocks are treated as atomic units that are either fully executed or fully discarded, eliminating the need for complex intra-block speculation recovery mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Complex architectural features like register renaming and sophisticated misspeculation recovery are extracted from the core pipeline. The design relies on simpler in-order block execution with optional out-of-order block scheduling, removing the burden of managing complex resource renaming and partial block recovery.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If traditional branch verification methods are used, then security can be maintained, but processing efficiency and speed decrease

Engineering Contradiction:
Improvebranch target validation securityVSAvoidbranch instruction processing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

Branch target addresses are validated in advance during the fetch/decode stages, before execution. The control unit checks whether the target address points to a valid instruction block boundary, ensuring security concerns are addressed before the branch is taken, thus preventing security vulnerabilities without blocking legitimate branches.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A control unit acts as an intermediary between the branch instruction and the execution pipeline. This control unit intercepts branch targets, validates them against security policies, and only allows execution to proceed if the target is verified as safe, thus mediating between security requirements and execution speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Use of energy by moving object

If atomic instruction block execution is implemented, then resource usage and power consumption are reduced, but flexibility in handling individual instructions within blocks is limited

Engineering Contradiction:
Improveprocessor power efficiencyVSAvoidinstruction-level control flexibility
Core Design Contradiction:
Use of energy by moving objectVSAdaptability or versatility

Solution Approach 1:

Multiple instructions are merged into atomic instruction blocks that are executed together as a unit. This merging reduces the overhead of managing individual instruction states, reduces resource usage, and improves power efficiency by treating the block as a single executable entity rather than managing each instruction separately.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3314437B1Verifying branch targets in a block based processor
Publication Date: 2021.02.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3314437B1 patent drawingFigure 1
  • EP3314437B1 patent drawingFigure 2
  • EP3314437B1 patent drawingFigure 3

AI summary

Apparatus and methods are disclosed for implementing bad jump detection in block-based processor architectures. In one example of the disclosed technology, a block-based processor includes one or more block-based processing cores configured to fetch and execute atomic blocks of instructions and a control unit configured to, based at least in part on receiving a branch signal indicating a target location is received from one of the instruction blocks, verify that the target location is a valid branch target.