• Cache失效率和平均访存时间计算例题(附带详细分析)


    题目内容

    利用下表所列的数据(分离Cache和混合Cache每1000条指令的失效次数),比较指令Cache和数据Cache容量均为16KB的分离Cache与容量为32KB的混合Cache,哪种Cache的失效率更低?哪种Cache的平均访存时间更低?假设:36%的指令为访存指令。两种Cache的失效开销均为100个时钟周期,分离Cache的命中时间为1个时钟周期,混合Cache中一次Load或Store操作访问Cache的命中时间都要增加一个时钟周期(因为混合Cache只有一个端口,无法同时满足两个请求,会导致结构冲突,假设取指优先满足)。采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。
    在这里插入图片描述

    题目分析

    首先对题干进行整体分析,可以看出题目中所要求的是分别求出两种Cache(分离Cache和混合Cache)的失效率和平均访存时间,那么我们只需要求出相关的内容即可。

    求解失效率

    既然需要求解失效率,那么按照公式

    失效率=失效次数/总访存次数

    我们只需要分别知道分离Cache和混合Cache的失效次数和总访存次数的信息即可。
    通过分析题目的表格可以得知:16KB指令Cache和16KB数据Cache中每1000条指令分别有3.82条、40.9条失效;32KB混合Cache每1000条指令有43.3条失效。因此,求解两类Cache失效率中失效次数可以根据题目表格完全已知,接下来只需要求出总访存次数即可。
    访存次数包括指令访存和数据访存两部分:每一条指令从内存中取出来都需要进行一次指令访存;如果一条指令是访存指令,那么这条指令还需要额外进行一次数据访存以从内存中取出数据,因此每一条访存类指令都访存两次
    由于1000条指令中36%是访存指令,因此总共的访存次数是1360次(对于两类Cache都是这样)。
    这样,我们分别知道了两类Cache在1000条指令中的失效次数,同时也知道了总的访存次数,之间作商即可。
    由此可知如下的计算结果:

    分离Cache的总失效率:(3.82+40.9)/1360=3.29%
    混合Cache的失效率:43.3/1360=3.18%

    由此可知分离Cache的总失效率高于混合Cache。

    求解平均访存时间

    首先分析平均访存时间公式:

    平均访存时间公式=指令访存百分比×(命中时间+指令失效率×失效开销)+数据访存百分比×(命中时间+数据失效率×失效开销)

    也就是说,如果我们能够确定指令访存百分比、数据访存百分比、命中时间、指令失效率、数据失效率和失效开销,那我们就可以通过这个公式求解出平均访存时间。
    ①求解指令和数据访存百分比:通过求解失效率部分的计算可以得出,总共的访存次数为1360次,指令访存次数为1000次,数据访存次数为360次,那么

    指令访存百分比=1000/1360×100%=73.53%
    数据访存百分比=360/1360×100%=26.47%

    对于两种Cache结构,都具有相同的指令访存百分比和数据访存百分比。
    ②求解命中时间:题目中已经给出分离Cache的命中时间为1个时钟周期,而混合Cache中Load和Store指令(也就是访存指令)的命中时间为2个周期,其他指令的命中时间为1个时钟周期,因此命中时间根据题目条件也完全已知。
    ③求解失效开销:可以由题目条件得知均为100个时钟周期。
    ④求解失效率:混合Cache的失效率已经在前一问计算得出,因此只需要计算分离Cache的指令失效率和数据失效率即可。根据以下公式:

    指令失效率=指令失效次数/指令访存次数
    数据失效率=数据失效次数/数据访存次数

    由此可以分别求出指令失效率和数据失效率为0.382%和11.36%。

    最后,向公式中代入上述求出的四个结果即可求解出以下结果:(单位是时钟周期)

    分离Cache平均访存时间:4.236
    混合Cache平均访存时间:4.44

  • 相关阅读:
    安卓使用okhttpfinal下载文件,附带线程池下载使用
    Faiss原理和使用总结
    浅析搭建校园在线教学视频汇聚平台的必要性及解决方案
    Spring Boot配置文件
    #循循渐进学51单片机#指针基础与1602液晶的初步认识#not.11
    始祖双碳新闻 | 2022年8月1号-8月5号碳中和行业早知道
    CVE-2021-40444分析报告微软MHTML远程命令执行漏洞
    搭建青龙面板和接入傻妞机器人
    mac在linux服务器上部署前端项目
    springboot(ssm 网上摄影工作室管理系统 Java(code&LW)
  • 原文地址:https://blog.csdn.net/hanmo22357/article/details/127758395