• cache三种地址映像


    为了把信息存放到Cache中,必须应用某种函数把主存地址映像到Cache,称作地址映像,即把存放在主存中的信息按照某种规则装入Cache。

    cache与主存之间的地址映像方式有三种

    1. 直接映像

    每个主存块只能存放固定位置

    在Cache中的位置 = 主存块号 % Cache总块数

    优点:实现简单。对于任意一个地址,只需对比一个“标记”,速度最快

    缺点:在其他地方有空闲Cache块,但8号主存块不能使用。

    直接映射的地址结构:

    标记位cache行号块内地址

    2. 全相联映像

    主存块可存放在Cache中的任意位置

    优点:Cache存储空间利用充分,命中率高。

    缺点:成本高,查找“标记”最慢,有可能需要对比所有行的标记。

    全相联映射的地址结构:

    主存块号块内地址

    例题:假设某个计算机的主存地址空间大小为256MB,按字节编址,其数据Cache有8个Cache行,行长为64B。

    256MB = 2^28B,所以主存地址共有28位。

    其中,Cache行长为64B = 2^6B,

    所以块内地址占6位 主存块号地址占据28-6 = 22位。

     

    3. 组相联映像

    组间直接映像,组内全相联映像,是直接映像和全相联映像的折中方案。

    组间直接映像,组内全相联映像。

    所属分组= 主存块号 % 分组数       r路组相联映像:r个Cache行为一组

    标记位cache组号块内地址

    例题:假设某个计算机的主存地址空间大小为256MB,采用2路组相联,按字节编址,其数据Cache有8个Cache块,块长为64B。

    256MB = 2^28B,所以主存地址共有28位。

    其中,Cache行长为64B = 2^6B,又因为是2路组相联一共有8个cache块所以一共有4组4=2^2所以组号为2位

    所以块内地址占6位,组号为2位,主存块号地址占据28-6-2= 20位。

     

  • 相关阅读:
    JAVA 开发中常用的工具有哪些?
    【scikit-learn基础】--『监督学习』之 谱聚类
    基于RedHat8部署ES+Kibana8.5集群
    C++中invoke与function的区别
    TypeScript学习笔记
    Effective Java学习笔记---------方法
    基于HTML+CSS+JavaScript仿瓜子二手车官网【学生网页设计作业源码】
    Openstack 通信
    [python 刷题] 287 Find the Duplicate Number
    电子商务的三个要素是人、货、场
  • 原文地址:https://blog.csdn.net/m0_53345417/article/details/127756860