Abstract

The TLB is increasingly a bottleneck for big data applications. In most designs, the number of TLB entries are highly constrained by latency requirements, and growing much more slowly than the working sets of applications. Many solutions to this problem, such as huge pages, perforated pages, or TLB coalescing, rely on physical contiguity for performance gains, yet the cost of defragmenting memory can easily nullify these gains. This paper introduces mosaic pages, which increase TLB reach by compressing multiple, discrete translations into one TLB entry. Mosaic leverages virtual contiguity for locality, but does not use physical contiguity. Mosaic relies on recent advances in hashing theory to constrain memory mappings, in order to realize this physical address compression without reducing memory utilization or increasing swapping. This paper presents a full-system prototype of Mosaic, in gem5 and modified Linux. In simulation and with comparable hardware to a traditional design, mosaic reduces TLB misses in several workloads by 6-81%. Our results show that Mosaic’s constraints on memory mappings do not harm performance, we never see conflicts before memory is 98% full in our experiments — at which point, a traditional design would also likely swap. Once memory is over-committed, Mosaic swaps fewer pages than Linux in most cases. Finally, we present timing and area analysis for a verilog implementation of the hashing function required on the critical path for the TLB, and show that on a commercial 28nm CMOS process; the circuit runs at a maximum frequency of 4 GHz, indicating that a mosaic TLB is unlikely to affect clock frequency.

Date

March, 2023

Authors

  • Krishnan Gosakan
  • Jaehyun Han
  • William Kuszmaul
  • Ibrahim N. Mubarek
  • Nirjhar Mukherjee
  • Karthik Sriram
  • Guido Tagliavini
  • Evan West
  • Michael A. Bender
  • Abhishek Bhattacharjee
  • Alex Conway
  • Martin Farach-Colton
  • Jayneel Gandhi
  • Rob Johnson
  • Sudarsun Kannan
  • Donald E. Porter

Type

Inproceedings

Journal

ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS)