cache存储器

一、cache基本原理

1、cache的功能                                                       cache是一种高速缓冲器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。其原理基于程序运行中具有的空间局部性和时间局部性特征。                                                   解决CPU和主存之间的速度不匹配问题          ①一般采用高速的SRAM构成。
②CPU和主存之间的速度差别很大采用两级或多级Cache系统
③早期的一级Cache在CPU内,二级在主板上  ④现在的CPU内带L1 Cache和L2 Cache
⑤全由硬件调度,对用户透明e57e5f1443404d188805d5412310865e.png 2、cache失效原因                                                 ①义务失效                                                               ②容量失效                                                               ③冲突失效                                                               3、cache的基本原理                                          ①地址映射                                                            ②替换策略                                                            ③写一致性                                                            ④性能评价                                                            4、cache的命中率                                                设Nc表示cache完成存取的总次数(命中次数)Nm表示主存完成存取的总次数(未命中次数),h定义为命中率,则有                                                                 h=Nc/Nc+Nm                        若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache主存系统的平均访问时间ta为                 .                             ta=htc+(1-h)tm                       设r=tm/tc表示主存与cache的访问时间之比,e表示访问效率,则有                                                                   e=tc/ta=1/r+(1-r)h

8e0188dbe18643b9bf262ed106328366.png

 5、cache结构设计必须解决的问题                     Cache的设计需要遵循两个原则,一是希望cache的命中率尽可能高,实际应接近于1,二是希望cache对CPU而言是透明的。                    地址映射:为了把储存会放在cache中,必须运用某种方法把储存地址定位到cache中。        ‘’映射‘’一词的物理含义是确定位置的对应关系,并用硬件来实现,这样,当CPU访问储存时,气势他们所给出的一个字的内存地址会自动换成cache的地址,即cache地址变换。

二、主存与cache的地址映射                             无论选择那种映射方式,都要把主存和cache 划分为同样大小的“块”。选择哪种映射方式,要考虑:                                                               硬件是否容易实现                                              地址变换的速度是否快                                        主存空间的利用率是否高                                   主存装入一块时,发生冲突的概率                  以下我们介绍三种映射方法:                             1、全相联的映射方式                                         ①将地址分为两部分(块号和字),在内存块 写入Cache时,同时写入块号标记;                  ②CPU给出访问地址后,也将地址分为两部分(块号和字),比较电路块号与Cache表 中的标记进行比较,相同表示命中,访问相应 单元;如果没有命中访问内存,CPU直接访 问内存,并将被访问内存的相对应块写入 Cache。             2f7c2abac31e4ff1b3e4d52632c64587.png

全相联的映射方式转换公式
主存地址长度=(s+w)位
寻址单元数=2**w个字或字节
块大小=行大小=2**w个字或字节  主存的块数=2**s
标记大小=s位
cache的行数=不由地址格式确定                          全相联的映射方式特点:
优点:冲突概率小,Cache的利用高。
缺点:比较器难实现,需要一个访问速度很快代价高的相联存储器
应用场合:
适用于小容量的Cache                                            2、直接映射方式                                                    原理:                                                                   利用行号选择  相应行;
把行标记与  CPU访问地址  进行比较,相同表示命中,访问Cache                                            如果没有命中,访问内存并将相应块写入cache  2bae0a609d3f47858f55fabc8ffb2ed6.png直接映射方式转换公式
主存地址长度=(s+w)位
寻址单元数=2**(s+w)个字或字节  块大小=行大小=2**w个字或字节  主存的块数=2s
cache的行数=m=2**r
标记大小=(s-r)位                                                  直接映射方式特点
优点:比较电路少m倍线路,所以硬件实现简单,Cache地址为主  存地址的低几位,不需变换。
缺点:冲突概率高(抖动)
应用场合:适合大容量Cache                               3、组相联映射方式
分析:比全相联容易实现,冲突低  ov=1,则为直接相联映射方式
u=1,则为全相联映射方式
v的取值一般比较小,一般是2的幂,称之为v路组相联cache.                                                      eb852b71a1504f48b985f7a5727f735f.png  

 组相联映射方式转换公式
主存地址长度=  (s+w)位
寻址单元数=2**(s+w)个字或字节  块大小=行大小=2**w个字或字节主存的块数=2**s
每组的行数=k
每组的v=2**d
cache的行数=kv
标记大小=(s-d)位

三、cache的替换策略
LFU(最不经常使用):被访问的行计数器增加1,换值小的行,不能反映近期cache的访问情况
LRU(近期最少使用):被访问的行计数器置0,其 他的计数器增加1,换值大的行,符合cache的工作原 理
随机替换:随机替换策略实际上是不要什么算法,从 特定的行位置中随机地选取一行换出即可。这种策略在硬件上容易实现,且速度也比前两种策略快。缺点是随意换出的数据很可能马上又要使用,从而降低命中率和cache工作效率。但这个不足随着cache容量增大而减小。随机替换策略的功效只是稍逊于前两种 策略。

四、cache的写操作策略
由于cache的内容只是主存部分内容的拷贝,它  应当与主存内容保持一致。而CPU对cache的写  入更改了cache的内容。如何与主存内容保持一  致,可选用如下三种写操作策略。
写回法:换出时,对行的修改位进行判断,决定是写回还是舍掉。
全写法:写命中时,Cache与内存一起写
写一次法:与写回法一致,但是第一次Cache命中时采  用全写法。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值