具有快表的地址变换机构
具有快表的地址变换机构是基本嫡长子变换机构的改进版
由于局部性原理所以引入了快表。
局部性原理
**时间局部性原理:**如果执行了程序中的某条指令,那么不久之后这条指令很可能再次被执行;如果某个数据被访问过,不久之后,该数据很可能再次被访问。(因为程序中存在大量的循环)
**空间局部性:**一旦程序访问了某个存储单元,在不久之后,其附近的储存单元页很有可能被访问。(因为很多数据在内存中都是连续存放的)
在
基本地址变换机构
中,每次访问一个逻辑地址,都需要查询内存中的页表,由于局部性原理,
可能连续很多次查到的都是同一个页表项
。既然如此,能否利用这个特性减少访问页表的次数呢?
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.1
201+0.96
101=111
也有CPU设计为两种访问机制同时进行,就为(1+100)0.9+200*0.1=110.9