TLB的理解

TLB当然还有个别名叫联想寄存器,用于存储页表中常用的一小部分。这个宏观角度的道理不难理解,但是具体如何使用,过程却需要好好理一理。

正常来说,一个页表项分为两个部分,高位部分是虚页号,低位部分是对应的物理页号,有时也叫它页框号。

而TLB主要是针对这个虚页号做文章,而页框号反正都是一样的,因此可以类比为Cache中的页内寻址。
对了,TLB的背景知识正是前面的全相连技术和组相连技术,具体问题具体分析。

如果TLB未分组,那么先不管其他的标记位,如有效位什么的,只管如何与虚页号比对。其实很简洁,只需比对高位的页号即可。即:拿着一个虚拟地址,计算出虚页号后直接与TLB相同的位数比较即可。

而分组以后的TLB呢,虚页号的位数并不是相等的,为什么呢?因为在低位(比页框号高)分配几个位置用来表示组号。这样的话,一组就可以存储好几个页表项,也意味着这个组里的页表项高位是相同的。

这全是数学的基础知识。总结来说,给定一个二进制或者十六进制虚拟地址,很容易计算出虚拟页号,考察TLB中有没有的时候,先看TLB是分几组的,计算出用几位做组号,去掉虚拟页号的低位的相同位数,这个就是页表项的标记了,去和TLB的标记比较吧!要是有就在TLB,没有就不在TLB.

比如,一个虚拟页号是024H,TLB呢分成两组,也就是用一位表示即可。024H = 0000,0010,0100B,共12个二进制位。这个虚拟页号的TLB标记是什么呢?哈,去掉最低位一位,剩下的就是了**0000,0010,010**B,这个数换算成16进制呢?012H!

所以看到TLB中有一个012H,敢不敢认为找到了?
当然,前提是理解了这背后的逻辑。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值