• 【组原】主存与cache的地址映射


    主存与cache的地址映射

    全相联

    image

    理解:主存被分割成一个个具有一定大小的块,这些块内部又以行为单位继续进行分割。

    通过块的大小和字长可以确定出行的大小和字地址长度(确定是哪一行)。

    同时要使得设计出的地址能够将主存容量中的所有数据囊括其中,要好好算好标记位和字号位的大小总和。进而,可知一求一。

    image

    直接映射

    直接映射方式也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。cache的行号 i 和主存的块号 j 有如下函数关系:
    i = j mod m
    式中m为cache中的总行数。显然,主存的第0块,第m块,第2m块,…,第2s - m块只能映射到cache的第0行;而主存的第1块,第m + 1块,第2m + 1块,…只能映射到cache的第1行。
    cache假设为8行,主存假设为256块,故以8为模进行映射。这样,允许存于cache第0行的主存块号是$$B_0, B_8, B_{16}, …,B_{248} $$(共32块)。同样,能映射到第7行的主存块也是32块。

    假设cache容量16行,主存容量256块,则地址2,18,34, ….., 242等都存放在cache的第2行内,如果第一次地址2在cache中,下次如果访问地址34的内容,则不管cache其他位置的内容访问情况,都会引起cache第2行内容的替换

    直接映射用cache的空间大小来作为模数,将块地址进行了拆分,形成了标记部分和行部分(取决于这个模数,相当于对这个模数进行取余得到后的结果)。
    image

    组相联

    对cache进行划分,分为一组一组的。主存中的某个位置先对应到组再对应到块。

    image

    image

    image

    这样的话一共有8组,按字节编址也就是说一个内存单元里面存放的是一个字节的量。主存129号单元=32*4+1,在第5块主存块中(注意,编号从0开始)。
    选C

  • 相关阅读:
    java接口
    java抽象类的特点
    java中的继承
    java中的exception模块
    java中的抽象类abstract
    java多态的案例
    iPhone开发重构:固化条件判断【转】
    服务器负载分析及问题排查
    tidb数据库
    TIDB数据库下载
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/16414166.html
Copyright © 2020-2023  润新知