PDede: Partitioned, Deduplicated, Delta Branch Target Buffer
PDede: Partitioned, Deduplicated, Delta Branch Target Buffer
复制标题
DOI:
10.1145/3466752.3480046
复制
发表时间:
2021-10
期刊:
影响因子:
--
通讯作者:
N. Soundararajan;Peter Braun;Tanvir Ahmed Khan;Baris Kasikci;Heiner Litz;S. Subramoney
中科院分区:
文献类型:
--
作者:
N. Soundararajan;Peter Braun;Tanvir Ahmed Khan;Baris Kasikci;Heiner Litz;S. Subramoney
Due to large instruction footprints, contemporary data center applications suffer from frequent frontend stalls. Despite being a significant contributor to these stalls, the Branch Target Buffer (BTB) has received less attention compared to other frontend structures such as the instruction cache. While prior works have looked at enhancing the BTB through more efficient replacement policies and prefetching policies, a thorough analysis into optimizing the BTB’s storage efficiency is missing. In this work, we analyze BTB accesses for a large number (100+) of frontend bound applications to understand their branch target characteristics. This analysis, provides three significant observations about the nature of branch targets: (1) a significant number of branch instructions have the same branch target, (2) a significant number of branch targets share the same page address, and (3) a significant percentage of branch instructions and their targets are located on the same page. Furthermore, we observe that while applications’ address spaces are sparsely populated, they exhibit spatial locality within and across pages. We refer to these multi-page addresses as regions and we show that applications traverse a significantly smaller number of regions than pages. Based on these insights, we propose PDede, an efficient re-design of the BTB micro-architecture that improves storage efficiency by removing redundancy among branches and their targets. PDede introduces three techniques, (a) BTB Partitioning, (b) Branch Target Deduplication, and (c) Delta Branch Target Encoding to reduce BTB miss induced frontend stalls. We evaluate PDede across 100+ applications, spanning several usage scenarios, and show that it provides an average 14.4% (up to 76%) IPC speedup by reducing BTB misses by 54.7% on average (and up to 99.8%).