知识卡片

TLB与大页的本质

专业/工作 · 1105.f

内容

程序用虚拟地址编程,处理器要把它转换成物理地址才能真正访存,这靠多级页表完成——x86上一次转换要查三级页表,即三次额外内存访问,代价极高。TLB专门缓存”虚拟地址→物理地址”映射,命中时一次查找就够,但TLB容量极小,只有几十到几百项。用4KB常规页时,大内存程序会迅速耗尽TLB项,频繁触发miss;把页调大到2MB甚至1GB,同样大小内存只需极少页表项即可覆盖,TLB miss随之大幅下降——这才是大页存在的根本原因,而不只是”分配内存更方便”。

参考来源

《深入浅出DPDK》第2章《Cache和内存》