Run-time Program Translation for Complex Processor Pipelines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for translating code for complex processor pipelines either result in reduced performance due to complete emulation or high implementation complexity and cost with global analysis, failing to effectively handle dynamic pipeline states.

Innovation Solution

The method involves determining a current target address and pipeline signature, looking up a corresponding entry in a translation cache, and generating translations based on static pipeline states, allowing for efficient and simple code translation by moving dynamic pipeline state management into the cache lookup process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If complete pipeline emulation is used at all times, then code translation correctness is ensured, but processor performance is reduced

Engineering Contradiction:
Improvecode translation correctnessVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the translation approach adaptive rather than static. The system dynamically switches between complete pipeline emulation and simplified translation based on the detected pipeline state. When the pipeline is in a stable state matching cached signatures, simplified translation is used; when instability is detected, complete emulation takes over, ensuring correctness while optimizing performance.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of translation complexity based on pipeline state. By monitoring pipeline state signatures and comparing them against cached translations, the system adjusts the translation approach parameter - using full emulation only when necessary (parameter = high complexity) and simplified translation when pipeline state is stable (parameter = low complexity).

Inventive Principle:
Principle #35Parameter changes

2Productivity

If global analysis approach is used for entire program, then translation performance is increased, but implementation complexity and translation cost increase

Engineering Contradiction:
Improvetranslation performanceVSAvoidimplementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the translation problem into manageable parts by dividing it into basic blocks with identifiable entry and exit points. Instead of analyzing the entire program globally, the system performs localized translation on individual basic blocks, caching results based on pipeline state signatures at block boundaries. This segmentation reduces implementation complexity while maintaining performance benefits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by pre-computing and caching translations for basic blocks under specific pipeline state conditions. The system performs translation work in advance during idle periods or when pipeline states are stable, storing results in a cache that can be quickly retrieved during execution, thereby improving runtime performance without requiring complex real-time analysis.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If pipeline depth is increased to improve throughput, then instruction throughput increases, but code execution becomes more affected by dynamic pipeline state

Engineering Contradiction:
Improveinstruction throughputVSAvoidpipeline state management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses copying by creating and storing copies of translation results in a cache, keyed by pipeline state signatures. Instead of managing the complexity of deep pipeline states directly during execution, the system captures pipeline state information, creates cached translations for each state signature, and retrieves pre-computed copies during runtime. This copying approach allows deep pipelines to achieve high throughput while managing state complexity through pre-computation and caching.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9483405B2Simplified run-time program translation for emulating complex processor pipelines
Publication Date: 2016.11.01 SONY INTERACTIVE ENTERTAINMENT LLC
  • US9483405B2 patent drawing
  • US9483405B2 patent drawing
  • US9483405B2 patent drawing

AI summary

Simplification of run-time program translation for emulating complex processor pipelines is disclosed. Dynamic pipeline states are moved into a cache lookup process leaving a code translation process to deal only with static pipeline states. With dynamic pipeline states removed from the translation process, translation becomes more simple and efficient like that of a non-pipelined processor.