关闭 More 保存 重做 撤销 预览

   
关闭   当前为简洁模式,您可以更新模块,修改模块属性和数据,要使用完整的拖拽功能,请点击进入高级模式

重播

lxy254069025
LV5 水面的小草
帖子    423
新博币    345 提现
提现    0
     
    1320 0 | 显示全部楼层 |倒序浏览
    问题假设
        存储器是字节寻址的;
        存储器访问的是1字节的字;

        地址的宽度为13位;
    高速缓存内容
        高速缓存是2路组相联的(E=2),块大小为4字节(B=4),有8个组
        内容如下所示:
        行0:
    (表中所有的数字都是以十六进制来表示的)
    组索引
    标记位
    有效位
    字节0
    字节1
    字节2
    字节3
    0
    09
    1
    86
    30
    3F
    10
    1
    45
    1
    60
    4F
    E0
    23
    2
    EB
    0
    -
    -
    -
    -
    3
    06
    0
    -
    -
    -
    -
    4
    C7
    1
    06
    78
    07
    C5
    5
    71
    1
    0B
    DE
    18
    4B
    6
    91
    1
    A0
    B7
    26
    2D
    7
    46
    0
    -
    -
    -
    -
        行1的高速缓存内容我就不列举了,类似上表的形式。
    地址内容
        现在假设一个程序运行在上述的机器上面,并且它引用地址0x0E34处的1个字节的字。则该地址格式应该如下表所示:
    0           1            1                1                0              0              0                1
    1     0      1
    0     0
    其中最左边一栏是高速缓存标记位(CT),中间一栏是高速缓存组索引(CI),最右边一栏是高速缓存块偏移(CO),它们的值分别为0x71,0x5,0x0。
    是否命中
        根据表中数据可知,标记位为0x71的刚好在行0的组索引为0x5中,并且其有效位已经设置为1,因此表明标记和块中的位是有意义的。所以这次高速缓存命中了,根据块偏移为0,所以返回的高速缓存字节为0xB。
    总结
        本案例帮助我加强理解了高速缓存是如何工作的,关于缓存不命中的例子这里可以介绍一个地址为0x0DD5,具体分析同上。记住一点:如果有效位没有设置或者标记不相匹配,那么我们就得到一个缓存不命中

    个人签名

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表