体系结构21_减少Cache失效开销和命中时间

减少Cache失效开销

方法:

写缓冲及写合并

让读失效优先于写

子块放置技术

请求字处理技术

多级Cache

非阻塞Cache技术

 

写缓冲及写合并

1.写直达Cache中,因为所有的写请求都必须发送到下级存储层次中,所以经常使用一个写缓冲来降低失效开销

2.如何提高写缓冲的效率和利用率

  写合并

3.在写回法Cache中,也可采用写缓冲器

让读失效优先于写

1.Cache中的写缓冲器导致对存储器访问的复杂化

2.解决问题的方法(读失效的处理)

  (1)推迟对读失效的处理及到写缓冲排空(缺点:读失效的开销增加)

  (2)检查写缓冲器中的内容:增加硬件

        (每次读的时候先去写缓冲器中找,如果有直接取出来,不用去下一级存储器中找了)

子块放置技术

(块非常大的话,从下一级存储器中调的话,可能需要多次访存)

把Cache块进一步划分为更小的块(子块),并给每个子块赋予一位有效位,用于指明该子块中的数据是否有效

Cache与下一级存储器之间以子块为单位传送数据。但标识仍以块为单位。

请求字处理技术

1.请求字

  从下一级存储器调入Cache的块中,只有一个字是立即需要的。这个字称为请求字。

(如果CPU需要一个字,将该字对应的那一块取进来然后再去找那个字,就比较麻烦,可以先把这个字取进来)

2.应尽早把请求字发送给CPU

 尽早重启动:调块时,从块的起始位置开始读起。一旦请求字到达,就立即发送给CPU,让CPU继续执行

 请求字优先:调块时,从请求字的位置读起。这样,第一个读出的字便是请求字。将之立即发送给CPU

3.这种技术在以下情况下效果不大:

 Cache块较小

 下一条指令正好访问同一Cache块的另一部分

多级Cache

1.应把Cache做的更快?还是更大?

 答案:二者兼顾,再增加一级Cache

    第一级Cache(L1)小而快

    第二级Cache(L2)容量大

2.性能分析

3.局部失效率和全局失效率

4.当第二级Cache比第一级Cache大得多时,两级Cache的全局失效率与第二级Cache相同的单级Cache的失效率非常接近。

5.第二级Cache的参数

 第二级Cache不会影响CPU的时钟频率,因此其设计有更大的考虑空间

 两个问题:

   能否降低CPI中的平均访存时间部分?

   成本是多少?

  (1)容量  第二级Cache的容量一般比第一级的大很多,如512KB

  (2)相联度 第二级Cache可采用较高的相联度或伪相联方法

  (3)块大小 第二级Cache可采用较大的块,如64、128、256字节

         为减少平均访存时间,可以让容量较小的第一级Cache采用较小的块,而让容量较大的第二级Cache采用较大的块

非阻塞Cache技术

1.非阻塞Cache:Cache失效时仍允许CPU进行其它的命中访问。即允许“失效下命中”

2.进一步提高性能:多重失效下命中

       存储器必须能够处理多个失效

3.重叠失效个数对平均访问时间的影响

减少命中时间

方法:

 采用容量小、结构简单的Cache

 虚拟Cache

 流水化写

容量小、结构简单的Cache

命中时间直接影响到处理器的时钟频率。在当今的许多计算机,往往是Cache的访问时间限制了处理器的时钟频率。

1.硬件越简单,速度就越快

2.应使Cache足够小,以便可以与CPU一起放在同一块芯片上

虚拟Cache

1.虚拟Cache

(程序运行时要先将虚地址转换为实地址,然后访问Cache,时间挺长的,能不能直接用虚地址访问呢,这就是虚拟Cache的想法)

  访问Cache的索引以及Cache中的标识都是虚拟地址(一部分)。

2.并非都采用虚拟Cache(为什么?)

因为存在虚拟Cache清空问题,多进程执行时使用的虚地址都是相同的,会有重叠,一个进程运行时将其放到虚拟Cache中,进行进程切换时,必须将虚拟Cache清空,挺麻烦

3.虚拟Cache的清空问题

4.同义/别名问题

 多个虚拟地址对应同一个物理地址

 解决方法:反别名法,页着色

5.虚拟索引+物理标识

 利用虚拟地址找到索引读Cache,同时进行虚实地址转换:前提是虚拟索引=物理索引

 而:页内位移在虚实地址变换时不变

 优点:兼得虚拟Cache和物理Cache的好处

 局限性:Cache容量受限<=页大小*相联度

6.举例:IBM3033的Cache

7.另一种方法:硬件散列变换

写操作流水化

Cache优化技术总结

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值