Cache

1.什么是cache?

cache是高速缓冲存储器。cache是介于CPU和主存之间的高速小容量存储器。

2.为什么需要cache?

cache能够高效的向CPU提供指令和数据,从而加快了程序的执行速度。

3.cache向cpu提供数据的过程?

cpu和cache之间的数据交换是以字为单位,而cache与主存之间数据交换是以块为单位的。
块由若干个字组成,是定长的。
当CPU读取内存中的一个字时,便发出此字的内存地址到cache到主存。
此时cache控制逻辑地址判断此字当前是否在cache中,
如果在,则cache命中,此字立即传送给cpu,
如果不在,则cache未命中,用主存读周期把此字从主存读出送到cpu,
与此同时,把含由这个字的整个数据块从主存读出送到cache中。

4.cache设计中必须解决的问题?

cache设计必须遵循两个原则:
(1)希望cache的命中率尽可能的高。
(2)希望cache对cpu而言是透明的。
cache设计中要解决的四个问题:
(1)主存的内容调用cache中如何存放?-----------------地址映射
(2)访存时如何找到cache的信息?---------------------地址变换
(3)当cache的空间不足的时候如何替换cache的内容?-----cache的替换策略
(4)需要写操作时如何改写cache的内容?----------------cache的写操作策略

5.主存与cache地址映射?

1)全相联映射方式
(2)直接映射方式
(3)组相连映射方式

6.cache的替换策略
对于直接映射来说,因一个主存块只有一个特定的位置可以存放,只要把特定位置上的原主存块换出cache即可。对于全相联和组相联cache来说,就要从允许存放主存块的若干特点中选取一行换出。

1)最不常用使用(LFU算法)
LFU算法认为将一段时间内访问次数最少的那行数据换出。
每行设置计数器,没访问一次,计数器加一,根据计数器的数值判断那行访问最少。
(2)近期最少使用(LRU算法)
LRU算法将近期内长久未被访问过的行换出。
每行设置计数器,每命中一次计数器清零,其他各行计数器加一,将计数最大的换出。
(3)随机替换
就是随机替换。

7.cache的读写行为
在这里插入图片描述
8.多级cache减少缺失损失

为了缩小现代处理器高时钟频率和访问DRAM相对较慢之间的差距,高性能微处理器可支持附加一级的cache。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

马志高

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

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

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

打赏作者

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

抵扣说明:

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

余额充值