Twig: Profile-Guided BTB Prefetching for Data Center Applications
Ahmed Khan, Tanvir; Brown, Nathan; Sriraman, Akshitha; Soundararajan, Niranjan; Kumar, Rakesh; Devietti, Joseph; Subramoney, Sreenivas; Pokam, Gilles; Litz, Heiner; Kasikci, Baris
Original version
10.1145/3466752.3480124Abstract
Modern data center applications have deep software stacks, with instruction footprints that are orders of magnitude larger than typical instruction cache (I-cache) sizes. To efficiently prefetch instructions into the I-cache despite large application footprints, modern server-class processors implement a decoupled frontend with Fetch Directed Instruction Prefetching (FDIP). In this work, we first characterize the limitations of a decoupled frontend processor with FDIP and find that FDIP suffers from significant Branch Target Buffer (BTB) misses. We also find that existing techniques (e.g., stream prefetchers and predecoders) are unable to mitigate these misses, as they rely on an incomplete understanding of a program’s branching behavior.