Branch Target Address Generation Using Physical Subset Embedding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current semiconductor chips face data corruption and erroneous operations due to virtual-to-physical aliasing when generating branch target addresses, which occurs when multiple virtual addresses map to the same physical address, leading to incorrect instruction fetching and processing.

Innovation Solution

The semiconductor chip predecodes control flow instructions with a program counter relative displacement, replacing a portion of it with an untranslated physical subset of the target address, ensuring only the physical portion is embedded in the instruction cache, preventing aliasing by generating the full target address after fetching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the full target address is generated during predecoding and stored in the instruction cache, then the target address is available earlier for next fetch prediction, but virtual-to-physical aliasing occurs when multiple virtual addresses map to the same physical address causing data corruption

Engineering Contradiction:
Improvetarget address generation timeVSAvoiddata integrity
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent segments the target address into two parts: the upper bits (virtual address portion) and the lower bits (physical address portion). During predecoding, only the lower physical bits are generated and stored in the instruction cache, while the upper virtual bits are obtained later during instruction decoding. This segmentation allows early availability of the physical portion for prediction while avoiding aliasing conflicts that would occur with full virtual address storage.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the full target address is stored in the instruction cache during predecoding, then fetch efficiency is improved, but aliasing causes incorrect instruction fetching

Engineering Contradiction:
Improveinstruction fetch efficiencyVSAvoidinstruction fetching accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The target address is divided into virtual and physical portions. The instruction cache stores only the physical portion (lower bits) during predecoding, enabling efficient cache lookup without aliasing. The virtual portion (upper bits) is appended during the decode stage after the virtual address is available, ensuring the complete correct target address is formed without contamination from aliasing.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If virtual addresses are used in the instruction cache, then address translation is simplified, but aliasing occurs when two virtual addresses map to the same physical address

Engineering Contradiction:
Improveaddress translation complexityVSAvoidaddress uniqueness
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The address translation process is segmented into two stages: predecoding and decoding. During predecoding, only the physical portion of the address is generated and stored, avoiding the need to store full virtual addresses that could alias. During decoding, the virtual address portion is obtained from the original instruction and combined with the pre-generated physical portion, achieving both simplicity in cache storage and uniqueness in final address formation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9940262B2Immediate branch recode that handles aliasing
Publication Date: 2018.04.10 APPLE INC
  • US9940262B2 patent drawing
  • US9940262B2 patent drawing
  • US9940262B2 patent drawing

AI summary

A system and method for efficiently indicating branch target addresses. A semiconductor chip predecodes instructions of a computer program prior to installing the instructions in an instruction cache. In response to determining a particular instruction is a control flow instruction with a displacement relative to a program counter address (PC), the chip replaces a portion of the PC relative displacement in the particular instruction with a subset of a target address. The subset of the target address is an untranslated physical subset of the full target address. When the recoded particular instruction is fetched and decoded, the remaining portion of the PC relative displacement is added to a virtual portion of the PC used to fetch the particular instruction. The result is concatenated with the portion of the target address embedded in the fetched particular instruction to form a full target address.