第三章 内存管理 七、具有快表的地址变换结构

目录

一、什么是快表

二、快表有什么用?

例子:

三、快表和慢表同时查询

四、局部性原理

五、总结


一、什么是快表

快表,又称联想寄存器(TLB,translation lookaside buffer),是一种访问速度比内存快很多的高速缓存(TLB不是内存! ),用来存放最近访问的页表项的副本,可以加速地址变换的速度。与此对应,内存中的页表常称为慢表

注意:一般不把整个页表都放在TLB里,因为成本太高了。

二、快表有什么用?

例子:

1、我们要访问(0,0)(0,4)(0,8)这几个逻辑地址

2、当进程上处理机时或进程切换时,系统会清空快表的内容。

3、假设访问TLB只需要1us,访问内存需要100us

4、我们首先要访问(0,0),首先,检查是否越界。

5、未越界,访问快表(此时快表为空),在快表内找不到对应的项。

6、因为找不到,所以未命中,所以访问内存中的慢表,找到内存号为600,并将此项复制到快表中。

7、之后算出物理地址

8、接着就是访问(0,4),还是先判断是否越界,发现没有越界。

9、查询快表,找到对应的内存块,接着算出物理地址。

10、(0,8)同样如此

11、这样所用的时间就是100+1+1=102,如果没有快表,时间就是100*3=300

三、快表和慢表同时查询

四、局部性原理

局部性原理(Locality Principle)是计算机科学中的一个基本原理,指的是在一段时间内,计算机程序访问数据的局部性比全局性强。也就是说,程序在某一时间段内更倾向于访问一组紧密相关的数据,而不是随机、散开的数据。

局部性原理具体包括以下三种:

  1. 时间局部性(Temporal Locality):如果一个数据被访问过一次,那么在近期内它有很高的概率会被再次访问。

  2. 空间局部性(Spatial Locality):如果一个数据被访问了,那么在其附近的数据也有很高的概率会被访问。

  3. 顺序局部性(Sequential Locality):如果一个数据被访问了,那么在其之后或之前的数据也有很高的概率会被访问。

通过充分利用局部性原理,计算机可以提高数据访问的效率,从而提高程序的执行效率。例如,在缓存中存储最近访问过的数据,可以避免反复访问主存中的数据,提高程序运行效率。

五、总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qing_ti_xx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值