Skia: Exposing Shadow Branches
Modern processors implement a decoupled front-end, often using a form of Fetch Directed Instruction Prefetching (FDIP), to avoid front-end stalls. FDIP is driven by the Branch Prediction Unit (BPU), relying on the BPU's accuracy and branch target tracking structures to speculatively fetch instructions into the Instruction Cache (L1-I cache). As contemporary data center applications become more complex, their code footprints also grow, resulting in a high number of Branch Target Buffer (BTB) misses. These BTB missing branches typically have previously been decoded and placed in the BTB, but have since been evicted, leading to BTB misses now. FDIP can alleviate L1-I cache misses, but its reliance on the BPU's tracking structures means that when it encounters a BTB miss, the BPU may not identify the current instruction as a branch to FDIP. This can prevent FDIP from prefetching or cause it to speculate down the wrong path, further polluting the L1-I cache.
Authors
- Gino Chacon (ORCID: https://orcid.org/0000-0001-6443-579X)
- David I. August (ORCID: https://orcid.org/0000-0003-3327-1803)
- Gilles Pokam (ORCID: https://orcid.org/0009-0002-4363-5383)
- Paul V. Gratz (ORCID: https://orcid.org/0000-0001-7120-7189)
- Bhargav Reddy Godala
- Daniel A. Jiménez (ORCID: https://orcid.org/0000-0001-5658-4883)
- Krishnam Tibrewala
- Chrysanthos Pepi
Institutions
- Intel (United States) (US)
- Princeton University (US)
- Barcelona Supercomputing Center (ES)
- Texas A&M University (US)
- Universitat Politècnica de Catalunya (ES)
Publication Details
- Published
- 2025-03-27
- DOI
- https://doi.org/10.1145/3676641.3716273
- Primary Topic
- Space Exploration and Technology
- Type
- article
- Field-Weighted Citation Impact
- 0.00