Binary Translation Branch Emulation Pipeline Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In binary translation-based processors and Just-In-Time compilers, breadcrumb instructions like BRNOPs and ASSERTs increase overhead by occupying pipeline resources and limiting throughput, while failing to track all necessary information for performance monitoring.

Innovation Solution

Introducing new instructions such as BRNOPN and EBRNOPN that combine multiple breadcrumb instructions into a single instruction, reducing pipeline usage and enabling effective tracking of both taken and not-taken branches, thereby optimizing code execution and performance monitoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If breadcrumb instructions (BRNOP) are inserted into translated code to maintain control flow illusion, then performance monitoring capability is improved, but pipeline overhead increases and throughput decreases

Engineering Contradiction:
Improveperformance monitoring capabilityVSAvoidcode execution throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple breadcrumb instructions into a single compound breadcrumb instruction that performs multiple functions simultaneously. This merged instruction tracks both taken and not-taken branches, updates performance counters, and maintains control flow illusion in one unified operation, thereby reducing pipeline overhead while preserving monitoring capabilities.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The compound breadcrumb instruction is designed to perform multiple functions within a single instruction cycle. It can track different types of branch outcomes (taken/not-taken), update various performance counters, and maintain the control flow illusion for different optimization scenarios, making it a universal solution that replaces multiple specialized instructions.

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

2Measurement precision

If multiple breadcrumb instructions are used to track all branch information, then performance monitoring accuracy is improved, but device complexity increases

Engineering Contradiction:
Improvebranch tracking accuracyVSAvoidinstruction complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent merges the functionality of multiple separate breadcrumb instructions into a single compound instruction. This unified instruction structure consolidates the tracking of taken and not-taken branches, along with performance counter updates, into one cohesive mechanism, thereby maintaining measurement precision while reducing the complexity associated with managing multiple separate instructions.

Inventive Principle:
Principle #5Merging (Combining)

3Speed

If loop unrolling optimization is applied to remove branches, then code execution speed is improved, but breadcrumb instruction overhead increases

Engineering Contradiction:
Improvecode execution speedVSAvoidnumber of breadcrumb instructions
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies the merging principle by combining multiple breadcrumb instructions that would normally be generated during loop unrolling into a single compound breadcrumb instruction. This reduces the quantity of breadcrumb instructions from multiple separate entries to one unified instruction, thereby maintaining the execution speed benefits of loop unrolling while reducing the overhead associated with numerous breadcrumb instructions.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20230315501A1Performance Monitoring Emulation in Translated Branch Instructions in a Binary Translation-Based Processor
Publication Date: 2023.10.05 INTEL PRODUCTS IP LLC
  • US20230315501A1 patent drawing
  • US20230315501A1 patent drawing
  • US20230315501A1 patent drawing

AI summary

Systems, methods, and devices for original code emulation for performance monitoring is provided. A system may memory to store instructions. A processor may implement an instruction converter in hardware or software to convert the instructions to translated code. Specifically, the instruction converter receives the instructions and translates the stored instructions into the translated code that includes one or more indexed instructions. The one or more indexed instructions include a field indicating a number of branches in the stored instructions that are taken in the translated code.