Dynamic Binary Translation Region Formation for Loop Coverage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional dynamic binary translation methods fail to effectively capture multiple inner loops of an outer loop as a single region, leading to fragmented regions and reduced performance benefits, as they do not ensure comprehensive loop nest capture during region formation.

Innovation Solution

The region formation manager delays region formation until a threshold number of hot code blocks are identified, uses a control flow graph to grow regions by adding blocks along the hottest paths, and selectively prunes loops to form a final region that includes a superior loop nest, enabling comprehensive loop coverage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If conventional dynamic binary translation methods are used to form regions, then the translation process is simpler, but loop coverage is insufficient and regions become fragmented

Engineering Contradiction:
Improveloop coverageVSAvoidregion formation complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The region formation process is divided into distinct phases: initial region formation identifies a starting block and grows the region along hottest paths, while loop detection and pruning phases subsequently refine the region to ensure complete loop nest capture. This segmentation allows each phase to focus on specific aspects of region formation, improving overall loop coverage without overwhelming complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The method performs preliminary loop detection and analysis during the initial region formation phase, identifying loop nests before final region completion. By detecting loops early and adjusting region growth to include complete loop nests, the method ensures comprehensive loop coverage is built into the region structure from the beginning rather than requiring post-processing corrections.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If regions are formed without comprehensive loop nest capture, then the region formation process is faster, but performance benefits are reduced due to fragmented regions

Engineering Contradiction:
Improvetranslation speedVSAvoidperformance benefit
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The method incorporates feedback mechanisms where loop detection results directly influence region growth decisions. When loops are detected during region formation, the process adjusts to ensure complete loop nests are included, and this feedback loop continues until the region properly captures all relevant loop structures, balancing speed with performance optimization.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The region formation process is dynamic and adaptive, adjusting its behavior based on detected loop structures. The method can modify region boundaries, extend regions to include complete loop nests, or prune regions to eliminate fragmentation, making the region formation process flexible enough to capture loops effectively while maintaining reasonable translation speed.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10474442B2Methods and apparatus to perform region formation for a dynamic binary translation processor
Publication Date: 2019.11.12 INTEL CORP
  • US10474442B2 patent drawing
  • US10474442B2 patent drawing
  • US10474442B2 patent drawing

AI summary

Methods, apparatus, systems and articles of manufacture to perform region formation for usage by a dynamic binary translation are disclosed. An example apparatus includes an initial region former to form an initial region starting at a first block of hot code of a control flow graph. The initial region former also adds blocks of hot code lying on a first hottest path of the control flow graph. A region extender extends the initial region to form an extended region including the initial region. The extended region begins at a hottest exit of the initial region and includes blocks of hot code lying on a second hottest path until one of a threshold path length has been satisfied or a back edge of the control flow graph is added to the extended region. A region pruner prunes the remove all loop nests except a selected loop nest which forms a final region.