Dynamic Binary Rewriter Framework Using Separate Analysis Core

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Monitoring and optimizing frequently executed code regions in computer applications without access to original source code or static program information is challenging, as existing dynamic binary optimizers rely on static information or interpretation, limiting their effectiveness in identifying and transforming hot code.

Innovation Solution

A sampling-based dynamic binary rewriter framework that uses a separate core for program analysis, incorporating a hardware performance monitor, a DBR service as a separate process, and a lightweight DBR agent within the client process to aggregate samples, deduce program structure, perform transformations, and generate replacement code, allowing for optimization of native binaries without prior static information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If interpretation-based DBO or sampling-based DBO is used to monitor and optimize hot code, then performance improvement is achieved, but the complexity of the system increases due to requiring interpreters, just-in-time compilers, or extensive sampling infrastructure

Engineering Contradiction:
Improveprogram execution performanceVSAvoidmonitoring system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the monitoring and optimization logic from the client process into a separate DBR service process. The DBR agent in the client process only performs lightweight instrumentation and data collection, while the complex analysis, hot code identification, and optimization logic reside in the external DBR service. This separation reduces the complexity burden on the client process while maintaining performance optimization capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a DBR service as an intermediary between the hardware performance monitor and the code optimization process. This service acts as a mediator that aggregates samples from multiple sources, performs sophisticated program structure analysis, and generates optimization decisions without requiring the client process to directly implement complex monitoring or compilation infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If dynamic binary rewriting is applied to optimize hot code regions, then execution speed is improved, but the overhead of monitoring and transforming code increases runtime complexity

Engineering Contradiction:
Improvecode execution speedVSAvoidruntime monitoring overhead
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies partial action by focusing monitoring and optimization efforts only on hot code regions that are frequently executed. Instead of monitoring or transforming the entire program, the system uses sampling to identify hot traces and applies rewriting only to those specific regions. This selective approach reduces runtime overhead while maintaining speed improvement benefits.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system uses periodic sampling to monitor code execution and identify hot regions. The hardware performance monitor collects samples at regular intervals, and the DBR service periodically analyzes aggregated samples to determine which code regions warrant optimization. This periodic monitoring approach balances the need for accurate hot code identification with minimizing continuous monitoring overhead.

Inventive Principle:
Principle #19Periodic action

3Manufacturing precision

If static program information is required for code optimization, then optimization accuracy is improved, but the system cannot transform legacy binaries or dynamically linked libraries for which source code is unavailable

Engineering Contradiction:
Improveoptimization accuracyVSAvoidbinary format compatibility
Core Design Contradiction:
Manufacturing precisionVSAdaptability or versatility

Solution Approach 1:

The DBR service performs self-service program structure analysis by deducing control flow and data flow information directly from runtime sampling data. Instead of requiring external static program information from compilers or source code, the system autonomously analyzes execution traces to reconstruct program structure, enabling it to work with any binary format including legacy binaries and dynamically linked libraries.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the fundamental parameter of how program structure information is obtained. Rather than relying on static compilation-time information, the system uses dynamic runtime sampling parameters to infer control flow graphs, basic block structures, and hot region boundaries. This parameter change from static to dynamic information gathering enables universal binary compatibility while maintaining optimization accuracy.

Inventive Principle:
Principle #35Parameter changes

4Measurement precision

If comprehensive sampling is performed to accurately identify hot code regions, then measurement precision is improved, but the performance overhead of the monitoring process increases

Engineering Contradiction:
Improvehot code identification accuracyVSAvoidmonitoring performance overhead
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The system uses partial sampling rather than comprehensive monitoring of all code execution. By sampling only a subset of execution events and using statistical aggregation to identify hot regions, the system achieves sufficient measurement precision to accurately locate frequently executed code while minimizing the performance overhead associated with continuous comprehensive monitoring.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2473917B1A lightweight service based dynamic binary rewriter framework
Publication Date: 2018.08.08 ADVANCED MICRO DEVICES INC
  • EP2473917B1 patent drawingFigure 1
  • EP2473917B1 patent drawingFigure 2
  • EP2473917B1 patent drawingFigure 3

AI summary

A sampling based DBR framework which leverages a separate core for program analysis. The framework includes a hardware performance monitor, a DBR service that executes as a separate process and a lightweight DBR agent that executes within a client process. The DBR service aggregates samples from the hardware performance monitor, performs region selection by deducing the program structure around hot samples, performs transformations on the selected regions (e.g. optimization), and generates replacement code. The DBR agent then patches the client process to use the replacement code.