cache存储器

为什么要引入cache?
cache是一种高速缓冲存储器,为了解决CPU与主存之间速度不匹配的问题而提出。

03e9ef336a4b4347be1e52a88e002303.png

 

当前,随着半导体器件的集成度的进一步提高,cache的速度有接近CPU,所以可将小容量的cache放入CPU中,从而组成了二级以上的cache系统。


cache的原理
基于程序运行中具有的空间局部性和时间局部性特征。

CPU与cache直间的数据交换是以字为单位,
cache与主存之间的数据交换是以块为单位.

165199f7cbfa4e1883649d9d22d43ee4.png

 cache的命中率计算

8d5752bd045847b991ffa661a2794af0.png

3e00faedc7c346e8b58bae2906d3e982.png 

f54bfe9b553649789fce693177846f96.png 

 为提高访问效率,命中率h越接近1越好。r值以5~10为宜,不宜太大。

主存与cache的地址映射

1787787ee71e438ba0dcf79cc2bd5893.png

 

cache的替换策略
cache的工作原理要求它尽量保存最新数据。当一个新的主存块需要拷贝到cache,而允许存放此块的行位置被其他主存块占满时,就要替换。

硬件实现的常用算法主要有
1、最不经常使用(LFU)算法

LFU算法认为应将一段时间内被访问次数最少的那行数据替换

2、近期最少使用(LRU)算法
LRU算法将近期内长久未被访问过的行换出

3、随机替换
实际上不能称为算法,只需从特定的行位置中随机地选取一行换出即可

cache的写操作策略
由于cache的内容只是主存部分内容的副本,它应当与主存内容保持一致。而CPU对cache的写入更改了cache的内容。

问题:如何与主存内容保持一致

三种写操作
1、写回法

当CPU写cache命中时,只修改cache的内容,而不立即写入主存,只有该行被替换才写入主存

2、全写法
当CPU写cache命中时,修改cache与主存的内容

3、写一次法
基于写回法并结合全写法的写策略:写命中与写未命中的处理方法和写回法基本相同,只是第一次写命中时要同时写入主存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值