zoukankan      html  css  js  c++  java
  • 主存和cache的地址映射

    cache是一种高速缓冲寄存器,是为解决CPU和主存之间速度不匹配而采用的一项重要技术。

    主存与cache的地址映射方式有全相联方式、直接方式和组相联方式三种。

    直接映射(directmapping):将一个主存块存储到唯一的一个Cache行。

     全相联映射(fullyassociative mapping):可以将一个主存块存储到任意一个Cache行。

    组相联映射(setassociative mapping):可以将一个主存块存储到唯一的一个Cache组中任意一个行。

    1.直接映射

    多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。
    cache的行号i和主存的块号j有如下函数关系:i=j mod m  (m为cache中的总行数)
    优点:硬件简单,容易实现
    缺点:命中率低, Cache的存储空间利用率低

     

    直接映射的cache检索过程

    在直接映射方式中,首先用r位行号找到cache中的对应行,然后用地址中的s-r位标记部分与此行的标记在比较器中做比较。若符合命中,在cache中找到了对应的块,然后用地址中最低位w读取所需的字。若未命中,按内存地址从主存中读取这个字。

    2.全相联映射

    主存的一个块直接拷贝到cache中的任意一行上
    优点:命中率较高,Cache的存储空间利用率高
    缺点:线路复杂,成本高,速度低

    全相联映射方式检索过程

     

    在全相联映射方式中,将内存地址的s位块号与cache中所有行的标记同时在比较器中做比较。若块号命中,按w位字地址从cache中读取一个字;若未命中,则按内存地址从主存中读取这个字。

    3.组相联映射

    将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:cache总行数m=u×v       组号q=j mod u
    组间采用直接映射,组内为全相联
    硬件较简单,速度较快,命中率较高

     

     组相联cache的检索过程

    在组相联映射方式中,首先用给定s位块号的低d位找到cache的相应组,然后将块号的高s-d位与该组v(=2d)行中的所有标记同时比较,哪一行的标记相符即该行命中。再以内存地址的低w位检索此行对应的字。

  • 相关阅读:
    java web开发中会遇到的异步执行方案
    MySQL中进行树状所有子节点的查询
    node.js ----NPM使用介绍
    Node.js--学习笔记
    node.js介绍及Win7环境安装测试(转)
    Jmeter中Websocket协议支持包的使用(转)
    jmeter---将回应数据写入到文件
    JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)
    python + Pyglet ---播放视频
    转 RTSP客户端模拟器(TCP方式,Python实现)
  • 原文地址:https://www.cnblogs.com/OrdinaryMan/p/10023609.html
Copyright © 2011-2022 走看看