cache存储器

一、cache基本原理

1.cache的功能

cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。其原理基于程序运行中具有的空间局部性和时间局部性特征。

●一般采用高速的 SRAM 构成。
● CPU 和主存之间的速度差别很大采用两级或多级 Cache 系统
●早期的一级 Cache 在 CPU 内,二级在主板上

●现在的 CPU 内带L1 Cache 和L2 Cache ●全由硬件调度,对用户透明

64fb19301496409aa1ae87736a52f95b.png

                 CPU与存储器系统的关系

2. cache的基本原理

cache除包含SRAM外,还要有控制逻辑。若cache在CPU芯片外,它的控制逻辑一般与主存控制逻辑合成在一起,称为主存/ chace 控制器;著 cache 在 CPU 内,则由 CPU 提供它的控制逻辑。

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

844975bfce6b4908ab25c7e0d6c31536.png

                          cache原理图

3.cache的命中率

从 CPU 来看,增加一个 cache 的目的,就是在性能上使主存的平均读出时间尽可能接近 cache 的读出时间。为了达到这个目的,在所有的存储器访问中由 cache 满足 CPU 需要的部分应占很高的比例,即 cache 的命中率应接近于1。由于程序访问的局部性,实现这个目标是可能的。

a82fbaf005ae48aea5a53f671c4adc6f.png

 Nc: cache完成存取的总次数

Nm:主存完成存取的总次数

h:命中率

tc:命中时的cache访问时间

tm:未命中时的主存访问时间

1-h:未命中率(缺失率)

ta: cache/主存系统的平均访问时间

r=tm/tc: 主存与cache的访问时间之比

e:访问效率

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

命中率h与程序的行为、cache的容量、组织方式、块的大小有关。

cache失效的原因:

义务失效;容量失效;冲突失效。

4. cache结构设计必须解决的问题

从cache的基本工作原理可以看出,cache的设计需遵循两个原则,一是希望cache的命中率尽可能高,实际应接近于1;二是希望cache对于CPU而言是透明的,即不论是否有cache,CPU访存的方法都是一样的,软件不需增加任何指令就可以访问cache。

二、主存与cache的地址映射

1.全相联映射方式

将地址分为两部分(块号和字),在内存块写入 Cache 时,同时写入块号标记;CPU 给出访问地址后,也将地址分为两部分(块号和字),比较电路块号与 Cache 表中的标记进行比较,相同表示命中,访问相应单元;如果没有命中访问内存, CPU 直接访问内存,并将被访问内存的相对应块写入Cache 。

f9dd3aaf5e3a43d882bb26ad3247dbb4.png

               全相联映射的cache组织

a1c7cd67ba054defa8c8dd650fe01aa2.png

全相联的映射方式,特点:

●优点:冲突概率小, Cache 的利用高。

●缺点:比较器难实现,需要一个访问速度很快代价高的相联存储器

应用场合:

●适用于小容量的 Cache

2.直接映射方式

映射方法(一对多)如:

 i = j mod m 

主存第块内容拷贝到 Cache 的i行

一般i和 m 都是2ⁿ级

2500512bd8b842f793ac41e5fe84d4a3.png

              直接映射的cache组织

●利用行号选择相应行;

●把行标记与CPU访问地址进行比较,相同,表示命中访问cache;

●如果没有命中则访问内存,并将相应块写入cache;

f8f7db0b17e141b9b1acb449b7aee59d.png

 直接映射方式特点:

●优点:比较电路少 m 倍线路,所以硬件实现简单, Cache 地址为主存地址的低几位,不需变换。

●缺点:冲突概率高(抖动)

应用场合

●适合大容量 Cache

三、cache的替换策略

1)最不经常使用(LFU)算法

2)近期最少使用(LRU)算法(更贴近程序局部性原理)

3)随机替换

4)轮转

四、cache的写操作策略

1)写回法(write back,copy back)(写返回)

写回法要求:当CPU写cache命中时,只修改cache的内容,而不立即写入主存,只有当此行被换出时才写回主存。

2)全写法(write though)(写穿透)

全写法要求:当写cache命中时,cache与主存同时发生写修改,因而较好地维护了cache与主存的内容的一致性。

3)写一次法(write one)

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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值