具有快表的地址变换机构

  • Post author:
  • Post category:其他




具有快表的地址变换机构

在这里插入图片描述

具有快表的地址变换机构是基本嫡长子变换机构的改进版

由于局部性原理所以引入了快表。



局部性原理

在这里插入图片描述

**时间局部性原理:**如果执行了程序中的某条指令,那么不久之后这条指令很可能再次被执行;如果某个数据被访问过,不久之后,该数据很可能再次被访问。(因为程序中存在大量的循环)

**空间局部性:**一旦程序访问了某个存储单元,在不久之后,其附近的储存单元页很有可能被访问。(因为很多数据在内存中都是连续存放的)



基本地址变换机构

中,每次访问一个逻辑地址,都需要查询内存中的页表,由于局部性原理,

可能连续很多次查到的都是同一个页表项

。既然如此,能否利用这个特性减少访问页表的次数呢?



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



版权声明:本文为qq_41375318原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。