• 计算机体系结构:按写分配法、不按写分配法例题


    题目内容

    假设一个全相联具有足够多Cache块的Cache,在完成WriteMem[100]、WriteMem[100]、ReadMem[200]、WriteMem[200]、WriteMem[100]的访存序列时,利用按写分配和不按写分配两种方法,命中次数和失效次数各是多少?

    题目解析

    根据分析所得到的结果如下所示:

    不按写分配按写分配
    WrteMem[100]失效失效
    WriteMem[100]失效命中
    ReadMem[200]失效失效
    WriteMem[200]命中命中
    WriteMem[100]失效命中

    不按写分配法
    ①WriteMem[100]:直接将数据写入内存中第100个单元,对Cache不作替换和修改;由于第一次使用这个单元,因此一定发生写失效。
    ②WriteMem[100]:同上,不修改Cache中的内容;Cache中没有对应数据块,发生写失效。
    ③ReadMem[200]:读内存中第200个单元的数据。将该数据所在的块也调入Cache中。由于还没有使用过这个块,因此发生读失效。
    ④WriteMem[200]:由于地址单元未200的块已经调入Cache中,因此将将数据写入200对应的内存单元时写命中。
    ⑤WriteMem[100]:同①和②,因为100所对应的块不在Cache中,因此写失效。

    按写分配法:
    ①WriteMem[100]:第一次写入内存单元为100所对应的数据,这个数据的块一定不在Cache中,因此发生写失效。写入的同时将这个内存单元所对应的数据块调入Cache中。
    ②WriteMem[100]:第二次写入内存单元为100所对应的数据,由于在①中已经将这个数据块存入Cache中,因此写命中。
    ③ReadMem[200]:读内存中第200个单元的数据。将该数据所在的块也调入Cache中。由于还没有使用过这个块,因此发生读失效。
    ④WriteMem[200]:由于内存单元为200的数据块已经调入Cache,因此本次写命中。
    ⑤WriteMem[100]:由于内存单元为100的数据库已经调入Cache,因此本次写命中。

  • 相关阅读:
    利用Spring Boot框架做事件发布和监听
    饮用水中磷超标的解决方法
    关于 async 和 await 的使用
    会议信息管理系统SSM记录(五)
    金仓数据库 KingbaseES 插件参考手册 K (1)
    Python中的HTTP高手:如何玩转requests模块
    SpringBoot多环境配置
    html中标签的分类
    openstack 创建虚拟机失败
    CCF CSP认证历年题目自练Day45
  • 原文地址:https://blog.csdn.net/hanmo22357/article/details/127736828