TY - GEN
T1 - Paging and the address-translation problem
AU - Bender, Michael A.
AU - Bhattacharjee, Abhishek
AU - Conway, Alex
AU - Farach-Colton, Martín
AU - Johnson, Rob
AU - Kannan, Sudarsun
AU - Kuszmaul, William
AU - Mukherjee, Nirjhar
AU - Porter, Don
AU - Tagliavini, Guido
AU - Vorobyeva, Janet
AU - West, Evan
N1 - Publisher Copyright:
© 2021 ACM.
PY - 2021/7/6
Y1 - 2021/7/6
N2 - The classical paging problem, introduced by Sleator and Tarjan in 1985, formalizes the problem of caching pages in RAM in order to minimize IOs. Their online formulation ignores the cost of address translation: programs refer to data via virtual addresses, and these must be translated into physical locations in RAM. Although the cost of an individual address translation is much smaller than that of an IO, every memory access involves an address translation, whereas IOs can be infrequent. In practice, one can spend money to avoid paging by over-provisioning RAM; in contrast, address translation is effectively unavoidable. Thus address-translation costs can sometimes dominate paging costs, and systems must simultaneously optimize both. To mitigate the cost of address translation, all modern CPUs have translation lookaside buffers (TLBs), which are hardware caches of common address translations. What makes TLBs interesting is that a single TLB entry can potentially encode the address translation for many addresses. This is typically achieved via the use of huge pages, which translate runs of contiguous virtual addresses to runs of contiguous physical addresses. Huge pages reduce TLB misses at the cost of increasing the IOs needed to maintain contiguity in RAM. This tradeoff between TLB misses and IOs suggests that the classical paging problem does not tell the full story. This paper introduces the Address-Translation Problem, which formalizes the problem of maintaining a TLB, a page table, and RAM in order to minimize the total cost of both TLB misses and IOs. We present an algorithm that achieves the benefits of huge pages for TLB misses without the downsides of huge pages for IOs.
AB - The classical paging problem, introduced by Sleator and Tarjan in 1985, formalizes the problem of caching pages in RAM in order to minimize IOs. Their online formulation ignores the cost of address translation: programs refer to data via virtual addresses, and these must be translated into physical locations in RAM. Although the cost of an individual address translation is much smaller than that of an IO, every memory access involves an address translation, whereas IOs can be infrequent. In practice, one can spend money to avoid paging by over-provisioning RAM; in contrast, address translation is effectively unavoidable. Thus address-translation costs can sometimes dominate paging costs, and systems must simultaneously optimize both. To mitigate the cost of address translation, all modern CPUs have translation lookaside buffers (TLBs), which are hardware caches of common address translations. What makes TLBs interesting is that a single TLB entry can potentially encode the address translation for many addresses. This is typically achieved via the use of huge pages, which translate runs of contiguous virtual addresses to runs of contiguous physical addresses. Huge pages reduce TLB misses at the cost of increasing the IOs needed to maintain contiguity in RAM. This tradeoff between TLB misses and IOs suggests that the classical paging problem does not tell the full story. This paper introduces the Address-Translation Problem, which formalizes the problem of maintaining a TLB, a page table, and RAM in order to minimize the total cost of both TLB misses and IOs. We present an algorithm that achieves the benefits of huge pages for TLB misses without the downsides of huge pages for IOs.
KW - Address translation
KW - Hashing
KW - Iceberg
KW - Paging
KW - Tlb
KW - Virtual memory
UR - http://www.scopus.com/inward/record.url?scp=85109490595&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85109490595&partnerID=8YFLogxK
U2 - 10.1145/3409964.3461814
DO - 10.1145/3409964.3461814
M3 - Conference contribution
AN - SCOPUS:85109490595
T3 - Annual ACM Symposium on Parallelism in Algorithms and Architectures
SP - 105
EP - 117
BT - SPAA 2021 - Proceedings of the 33rd ACM Symposium on Parallelism in Algorithms and Architectures
PB - Association for Computing Machinery
T2 - 33rd ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2021
Y2 - 6 July 2021 through 8 July 2021
ER -