DiDi: Mitigating the Performance Impact of TLB Shootdowns Using a Shared TLB Directory

  • Authors:
  • Carlos Villavieja;Vasileios Karakostas;Lluis Vilanova;Yoav Etsion;Alex Ramirez;Avi Mendelson;Nacho Navarro;Adrian Cristal;Osman S. Unsal

  • Affiliations:
  • -;-;-;-;-;-;-;-;-

  • Venue:
  • PACT '11 Proceedings of the 2011 International Conference on Parallel Architectures and Compilation Techniques
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Translation Look aside Buffers (TLBs) are ubiquitously used in modern architectures to cache virtual-to-physical mappings and, as they are looked up on every memory access, are paramount to performance scalability. The emergence of chip-multiprocessors (CMPs) with per-core TLBs, has brought the problem of TLB coherence to front stage. TLBs are kept coherent at the software-level by the operating system (OS). Whenever the OS modifies page permissions in a page table, it must initiate a coherency transaction among TLBs, a process known as a TLB shoot down. Current CMPs rely on the OS to approximate the set of TLBs caching a mapping and synchronize TLBs using costly Inter-Proceessor Interrupts (IPIs) and software handlers. In this paper, we characterize the impact of TLB shoot downs on multiprocessor performance and scalability, and present the design of a scalable TLB coherency mechanism. First, we show that both TLB shoot down cost and frequency increase with the number of processors and project that software-based TLB shoot downs would thwart the performance of large multiprocessors. We then present a scalable architectural mechanism that couples a shared TLB directory with load/store queue support for lightweight TLB invalidation, and thereby eliminates the need for costly IPIs. Finally, we show that the proposed mechanism reduces the fraction of machine cycles wasted on TLB shoot downs by an order of magnitude.