具有快表的地址变换机构

具有快表的地址变换机构

在这里插入图片描述
具有快表的地址变换机构是基本嫡长子变换机构的改进版
由于局部性原理所以引入了快表。

局部性原理

在这里插入图片描述
**时间局部性原理:**如果执行了程序中的某条指令,那么不久之后这条指令很可能再次被执行;如果某个数据被访问过,不久之后,该数据很可能再次被访问。(因为程序中存在大量的循环)
**空间局部性:**一旦程序访问了某个存储单元,在不久之后,其附近的储存单元页很有可能被访问。(因为很多数据在内存中都是连续存放的)

基本地址变换机构中,每次访问一个逻辑地址,都需要查询内存中的页表,由于局部性原理,可能连续很多次查到的都是同一个页表项。既然如此,能否利用这个特性减少访问页表的次数呢?

1.基本地址变换

(1)地址变换过程
1.算页号、页内偏移量
2.检查页号合法性
3.查页表,找到页面存放的内存块号
4.根据内存块号与页内偏移量得到物理地址
5.访问内存目标单元
(2)访问一个逻辑地址的访存次数
1.算页号、页内偏移量
2.检查页号合法性
3.查快表。若命中,即可知道页面存放的内存块号,可直接进行5,为命中则进行4
4.查页表,找到页面存放的内存块号,并且将页表项复制到块表中
5.根据内存块号与页内偏移量得到物理地址
6.访问目标内存单元

2.具有块表的地址变换机构

(1)地址变换过程

(2)访问一个逻辑地址的访存次数
什么是快表?
快表,又称联想寄存器(TLB),是一种访问速度比内存快很多的高速缓冲器,用来存放当前访问的若干页表项没,以加快地址变换的过程。于此对应,内存中的页表常称为慢表。
在这里插入图片描述

在这里插入图片描述
.

实例:

在这里插入图片描述

比较重要的是:计算访问一个逻辑地址的平均耗时是多少?

假设快表耗时为1,访问内存是100,
则在为引进快表之前,CPU查一次逻辑地址需要两次访问内存,第一次是查页表,第二次是查实际物理地址。平均时间是200.
在引进快表之后,由于快表的命中率为0.9,在命中后耗时为,访问一次快表和访问一次内存,时间为1+100=101,也还有可能快表未命中,耗时为201(访问一次快表+访问两次内存),综合考虑为0.1201+0.96101=111
也有CPU设计为两种访问机制同时进行,就为(1+100)0.9+200*0.1=110.9

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值