TLB和大叶

本文详细介绍了32位X86处理器如何将逻辑地址转换为物理地址的过程,并阐述了TLB(Translation Lookaside Buffer)的工作原理及其在提高内存访问速度方面的作用。此外,还讨论了使用大页的好处。

目录

TLBCache本质上都是一种高速的SRAMCache存放的是内存中的数据或者代码,而TLB存放的是页表项。
分页是指把物理内存分成固定大小的块,按照页来进行分配和释放。一般常规页大小为4K个字节,之后又因为一些需要,出现了大页,比如2M个字节.

逻辑地址转换物理地址

对于32X86的处理器来说,把一个逻辑地址分为3段,每一段对应一个偏移地址。查表的顺序如下:

  • 根据位[31:22]加上寄存器CR3存放的页目录表的基址,获得页目录表中对应表项的物理地址,读内存,从内存中获得该表项内容,从而获得下一级页表的基址。
  • 根据位[21:12]页表加上上一步获得的页表基址,获得页表中对应表项的物理地址,读内存,从内存中获得该表项内容,从而获得内容页的基址。
  • 根据为[11:0]加上上一步获得的内容页的基址得到准确的物理地址,读内容获得真正的内容。
    928041-20170715100813478-221497667.png
TLB

为了提高效率,X86架构的TLB被分为4组:

缓存一般页表(4KB页面)的指令页表缓存(Instruction-TLB)。
缓存一般页表(4KB页面)的数据页表缓存(Data-TLB)。
缓存大尺寸页表(2MB/4MB页面)的指令页表缓存(Instruction-TLB)。
缓存大尺寸页表(2MB/4MB页面)的数据页表缓存(Data-TLB)。
使用大页

使用大页的理由:

  • TLB空间很小,使用大页可以减少页表项.
  • 提高了命中率.

转载于:https://www.cnblogs.com/simon88/p/7181819.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值