欢迎光临散文网 会员登陆 & 注册

【计算机基础Ep31】唐朔飞计算机组成原理教材梳理(二十):P109提高访存速度的措施

2023-03-25 19:10 作者:躺坑老碧的学习瞎记  | 我要投稿

(合计2068字,用时60min——)

第四章 存储器

4.3高速缓冲存储器

4.3.1概述

a.问题的提出

Cache简介——

  1. 问题:

    1. 在多体并行存储系统中,由于I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/O设备访存的现象,致使CPU空等一段时间,甚至可能等等几个主存周期,从而降低了CPU的工作效率;

    2. 主存速度的提高始终跟不上CPU的发展;

  2. 用途:

    1. 为了避免CPU与I/O设备争抢访存,可在CPU与主存之间加一级缓存,这样,主存可将CPU要取的信息提前送至缓存,一旦主存在与I/O设备交换时,CPU可直接从缓存中读取所需信息,不必空等而影响效率;

    2. 由高速缓存Cache来解决主存与CPU速度的不匹配问题;

  3. 作用:Cache的出现使CPU可以不直接访问主存,而与高速Cache交换信息。

b.Cache的工作原理

Cache的工作原理——

  1. 组成:

    1. 主存由2^n个可编址的字主存,每个字有唯一的n位地址;

    2. 为了与Cache映射,将主存与缓存都分成若干块,每块内又包含若干个字,并使它们的块大小相同(即块内的字数相同);

    3. 主存的地址分成两段:

      1. 高m位表示主存的块地址,

      2. 低b位表示块内地址,

      3. 2^m=M表示主存的块数;

    4. 缓存的地址分成两段:

      1. 高c位表示缓存的块号,

      2. 低b位表示块内地址,

      3. 2^c=C表示缓存块数;

    5. 块长:2^b=B反映了块的大小,称B为块长。

原理:

  1. CPU读取主存某字:

    1. CPU访问Cache命中:所需要的字已在缓存中,即可直接访问Cache(CPU与Cache之间通常一次传送一个字);

    2. CPU访问Cache不命中:所需的字不再Cache内,此时需将该字所在的主存整个字块一次调入Cache中(Cache与主存之间是字块传送);

    3. 命中率:CPU要访问的信息已在Cache内的比率;

  2. 说明:

    1. 如果主存块已调入缓存块,则称该主存块与缓存块建立了对应关系;

    2. 由于缓存的块数C远小于主存的块数M,因此,一个缓存块不能唯一地、永久地只对应一个主存块,故每个缓存块需设一个标记,用来表示当前存放的是哪一个主存块,该标记的内容相当于主存块的编号;

    3. CPU读信息时,要将主存地址的高m位(或m位中的一部分)与缓存块的标记进行比较,以判断所读的信息是否已在缓存中。

计量:

  1. 因素:Cache的容量与块长是影响Cache效率的重要因素,通常用“命中率”来衡量Cache的效率;

  2. 公式:

    1. 命中率:h=N/(Nc+Nm)——在一个程序执行期间,设Nc为访问Cache的总命中次数,Nm为访问主存的总次数,命中率为h;

    2. 平均访问时间:ta=htc+(1-h)tm——tc为命中时的Cache访问时间,tm为未命中时的主存访问时间,1-h表示未命中率,Cache-主存系统的平均访问时间为ta

    3. 访问效率:e=(tc/ta)x100%={tc/[htc+(1-h)tm]}x100%——以较小的硬件代价使Cache-主存系统的平均访问时间ta越接近于tc越好,e表示效率;

  3. 结论:为提高访问效率,命中率h越接近1越好。

总结:

  1. Cache容量与CPU命中率——

    1. 一般而言,Cache容量越大,其CPU的命中率就越高;

    2. 容量没必要太大,太大会增加成本,而且当Cache容量达到一定值时,命中率已不因容量的增大而有明显的提高;

    3. Cache容量是总成本价与命中率的折中值;

  2. 块长与CPU命中率:取决于各程序的局部特性——

    1. 当块由小到大增长时,起初会因局部性原理使命中率有所提高;

    2. 局部性原理:

      1. 在已被访问字的附近,近期也可能被访问,因此,增大块长,可将更多有用字存入缓存,提高其命中率;

      2. 倘若继续增大块长,命中率很可能下降,这是因为所装入缓存的有用数据反而少于被替换掉的有用数据。

c.Cache的基本结构

模块——

  1. Cache存储体:Cache存储体以块为单位与主存交换信息,为加速Cache与主存之间的调动,主存大多采用多体结构,且Cache访存的优先级最高;

  2. 地址映射变换机构:地址映射变换机构是将CPU送来的主存地址转换为Cache地址;

  3. 替换机构:当Cache内容已满,无法接受来自主存块的信息时,就由Cache内的替换机构按一定的替换算法来确定应从Cache移出哪个块返回主存,而把新的主存块调入Cache;

  4. Cache的读写操作:

    1. 读操作:当CPU发出主存地址后,首先判断该存储是否在Cache中,若命中,直接访问Cache,将该字送至CPU,若未命中,一方面要访问主存,将该字传送给CPU,与此同时,要将该字所在的主存块装入Cache,如果此时Cache 已装满,就要执行替换算法,腾出空位才能将新的主存块调入;

    2. 写操作:对Cache块写入的信息,必须与被映射的主存块内的信息完全一致,一致性办法——

      1. 写直达法(Write-through):又称为存直达法(Store-through):写操作时既写入Cache又写入主存,数据一致,增加访存次数;

      2. 写回法(Write-back):又称为拷回法(Copy-back):写操作时只把数据写入Cache而不写入主存,但当Cache数据被替换出去时才写回主存,数据不一致。

d.Cache的改进

从一个缓存发展:

  1. 单一缓存和两级缓存;

  2. 统一缓存和分立缓存。


【计算机基础Ep31】唐朔飞计算机组成原理教材梳理(二十):P109提高访存速度的措施的评论 (共 条)

分享到微博请遵守国家法律