Cache

Cache的一般设计

时间相关性:如果一个数据被访问了,以后很有可能被访问

空间想关性:如果一个数据被访问了,那么它周围数据再以后也可能被访问

sram,dram,disk,flash都可以做cache

L1 cache----sram

指令cache(icache):一般都是读取

数据cache(dcache):读取和写入,支持每周期有多条load/store指令访问

cache有tag和data两部分组成。tag是公共地址,data是一片连续地址的数据

chache line:一个tag和它对应的所有数据组成的一行称为一个cache line

cache set:一个数据可以存储在cache中多个地方,这些被同一个地址找到的多个cache line 称为cache set。

影响cache miss的三个条件,称为3C定理:

1,compulsory强制性,第一次访问肯定miss,可以用预取方法来降低

2,capcity容量,容量越大,命中率越高,但面积也会增加

3,conflict冲突:多个数据映射到cache中同一个位置。解决方式有组相联,victim cache

cache的组成方式:

直接映射:易产生冲突,如两个index相同但是tag不同的地址交互访问,会一直miss

全相连

数据可以放在任意一个cache line中,直接用整个cache中tag进行比较,没有index。直接用存储器内容来寻址,这就是内容寻址存储器(CAM),cam来存储tag值,普通的sram来存储数据。

TLB和victim cache多采用全相连结构

组相连:如果一个数据可以放在n个位置,则称为n路组相连

如上图:用index对chache进行寻址,可以得到两个cache line,这两个cache line称为一个cache set。根据tag比较结果才确定哪个cacheline。缺点是延迟会较直接映射大,有时会进行流水线,减少处理器周期时间影响,会导致load指令延迟增大。优点是显著减少了cache miss。

一般tag和data是分开放置的,tag sram和data sram,分两种访问方式:

1,串行访问,先访问tag,根据tag比较结果再去访问data sram

2,并行访问,tag部分的某个地址被读取同时,这个地址对应data也会被读取出来,送到多路选择器,根据tag比较结果,选出对应data block,根据block offset的值,选择出合适的字节。选择字节过程称为数据对齐

Icache修改:将改写的指令作为数据写道dcache,然后将dcache中内容写入l2 cache(指令和数据共享),并将Icahce中所有内容置为无效,重新从l2 cache取指令到icache。

dcache写入

写通 write through:数据写到dcache,也写到下级存储器中

写回 write back:store指令,数据只写到dcache中,做dirty标记,只有当cache 中dirty line被替换时,才写到下级存储器中。优点是快,缺点是数据不一致

写分配 write allocate:如果发生write miss,会首先从下级存储器中将miss的地址对应的整个数据块data block 取出来,然后将要写入到d-cache中的数据合并到这个数据块中,最后将这个被修改过的数据块写到dcache中。

写不分配 Non-write allocate:当地址不在d-cache中,发生write miss,将数据直接写到下级存储器中,不写到d-cache中。

写通和写不分配的流程:

cache的替换策略:LRU和随机替换

提高cache的性能:

  1. 写缓存

  1. 流水线

  1. 多级结构

  1. victim cache

全相联,容量比较小,与cache存在互斥的关系。

  1. 预取

一般采用多端口bank访问,会引起bank冲突,地址两个,但是数据不用两个。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值