注:写的时候忘记统一内存/主存的称呼,特别声明文中内存=主存。阅读本文建议画图辅助理解

Cache是什么

cache高速缓冲存储器一种特殊的存储器子系统,其中复制了主存中频繁使用的数据以利于快速访问。为了便于根据CPU送来的地址信息到Cache中去读取数据,必须有某种函数把主存地址映象成Cache地址。实现这种映象的函数叫映象函数。不同的映像函数有:

  1. 直接映像法
  2. 全相联映像法
  3. 组相联映象法

    直接映像法

    原则:

  • 直接映象函数为i=j mod 2c ,其中i是Cache块号,j是主存块号, 2c为Cache总块数。
  • 将主存分为若干区,每区容量与Cache总容量相等。每区块数与Cache的块数相同,这样,每区中第i块映射的位置就是Cache的第i块
  • 维护一个块表,表的长度为Cache的块数(为了记录Cache中每块存的是主存的第几区),表中每个项目长度是主存区号的长度(为了存下块的编号)。在每次访问主存时查这个块表来对应访问Cache。

    例:设主存容量为1MB,高速缓存容量为16KB,块的大小为512字节。采用直接地址映像法。

  1. 写出主存地址格式。
  2. 写出Cache地址格式。
  3. 块表的容量是多大。
  4. 画出直接方式地址映像及变换示意图。

    解:

    Cache块数=16KB/512B=32块
    则主存每区为32块,共1MB/16KB=64区
    所以主存地址为6位区号(共64区)+5位区内块号(共32块)+9位块内地址(块容量512B,按字节编址)
    所以Cache地址为5位区内块号,9内块内地址(相当于主存的一个区)
    自然的,块表的容量为32*6位(表示Cache32个块中分别存了第几区的主存块)
    图使用教材上的图吧:

    特点:冲突多,命中率低,使用率低。但是访问速度快。

    全相联映像法

    原则:

  • 主存中每一块可存入Cache中的的任一位置
  • 维护一个目录表,记录Cache每块存的是内存的哪一块。表的长度就为Cache块数(原因上同),每条项目的长度为主存的主存块号的长度(不是区内块号),每次访存的时候查表访问。

    方法简单,例题略。

    特点:目录表容量很大,访存慢。但Cache的使用率高。

    组相联映像法

    原则:

  • 是前两种方法的组合,结合了各自的优点。
  • 将Cache分组,内存分区。内存区内的块数和Cache的组数相同(原因稍后介绍)。
  • 主存区内的块和Cache的组采用直接相联映像法,即第主存每区的第i块都映射到Cache的第i组。
  • Cache每组组内采用全相联映像法,例如Cache的第3组中有个4块,Cache的第1块存了来自内存第2区的第3块,第2块存了来自内存第6区的第3快,第3、4块空.
  • 按照上面的原则,就需要一个表来说明Cache每一组存了哪几区的内存块。访存时查表到对应的区中寻找有没有该内存块。

    例. 一个组相联映像Cache由64个存储块组成, 每组包含4个存储块。主存包含4096个存储块,每块由128字组成。访存地址为字地址。

    (1)写出主存地址位数和地址格式
    (2)写出Cache地址位数和地址格式;
    (3)画出组相联映像方式示意图,
    (4)主存字地址为7B568H单元映射到Cache哪个组?

    解:

    Cache组数为64/4=16组
    主存每区内的块数=Cache的组数,则主存的区数为4096/16=256区,每区内有16个存储块
    那么主存地址的组成为8位区号(256区)+4位区内块号(16个存储块)+7位块内地址(一块128字,按字编址)
    Cache地址为4位组号(16组)+2位组内块号(每组4快)+7位块内地址(一共128字,按字编址)
    教材中的图:

    7B568H=(二进制)11110110 1010 1101000 //按8421码翻译,前面的0舍弃,然后按内存格式分组
    按照前面主存地址的分析,内存映射到Cache的哪个位置是根据其第8到12位(从0开始,从左往右数),为1010=5,所以映射到第5组。

转载于:https://www.cnblogs.com/QEStack/p/8157777.html

【复习笔记】Cache的映像方法相关推荐

  1. Cache的映像方法

    注:写的时候忘记统一内存/主存的称呼,特别声明文中内存=主存.阅读本文建议画图辅助理解 Cache是什么 cache高速缓冲存储器一种特殊的存储器子系统,其中复制了主存中频繁使用的数据以利于快速访问. ...

  2. Java复习笔记入门阶段06:方法

    目录 1.方法概述 2.方法定义格式 2.1 方法常见问题 2.2 求和 2.3 判断奇数偶数 2.4 求最值 3.方法的内存原理 3.1 方法的调用流程,内存图解 4.方法的参数传递机制 4.1基本 ...

  3. 周三多管理学原理复习笔记_管理学原理与方法周三多第七版重点笔记答案电子版...

    二.管理的职能与性质 1.管理的职能 计划.组织.领导.控制.创新这五种职能是一切管理活动最基本的职能. (1)计划.指制定目标并确定为达成这些目标所必需的行动.组织中所有的管理者都必须从事计划活动, ...

  4. 《线性代数》期末复习笔记3——习题讲解及方法总结

    带参方程组解的情况的讨论(分类思想) 分析步骤: 分析唯一解的情况 当参数不满足唯一解分析的情况时,继续分析,必要时分类讨论 分类讨论一定要全面 [易错]概念的考察 已知线性相关求未知数 当堂作业1( ...

  5. 考研《软件工程--面向对象和传统的方法》复习笔记

    <软件工程--面向对象和传统的方法>复习笔记 第一章 软件工程的范畴 引言 可以结合 软件工程导论第六版 --张海藩 1.软件工程概念: 软件工程是一门学科,目的是生产出没有错误的软件,按 ...

  6. 计算机组成原理学习笔记第4章 4.9——Cache地址映射与变换方法

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) 目录 0. 思维导图 1. 主存与Cache地址映射概述 2. 全相联映射的工作原理 3. 直接映射的工作原理 4. ...

  7. 抽样调查理论与方法期末复习笔记

    第3章 简单随机抽样 均方误差=方差+偏倚的平方 ​ 3.5某林场共有1000公顷林地,随机布设了50块面积为0.06公顷的方形样地,测得这50块样本地的平均木材蓄积量为9m3,标准差为1.63m3. ...

  8. 《微型计算机原理与接口技术》期末总复习 —— 一篇匆匆忙忙的复习笔记

    这篇复习笔记是针对<微型计算机原理与接口技术>后面几章的 前面的汇编复习内容在 "零.学习笔记总目录" 的 "汇编考前复习" 中 ✅ 这篇笔记中可能 ...

  9. 计算机网路原理复习笔记

    计算机网路原理复习笔记 未看: 前两章 第四章路由聚合 第四章最长前缀匹配 SDN 3. 数据链路层 3.1 基本概念和功能概述 3.1.1 链路:是一条无源的点到点的物理线路段,中间没 有任何其他的 ...

最新文章

  1. C# 委托+事件的例子:①温度报警②计算器
  2. 常见Java错误的十大列表(前100名!)
  3. mod_python模块安装
  4. Dom-to-image
  5. mysql将最大金额加1000_Mysql数据库笔记
  6. Ubuntu使用tcpdump工具
  7. 一个美国ECO PHD两年的学习总结
  8. HTML跳转php没反应的问题解决
  9. dsolve函数的功能_为什么Mathematica的DSolve函数会解不出显式解??
  10. ffmpeg 合并音乐+视频报错之[mp4 @ 000002b9bcfa1ec0] Non-monotonous DTS in output stream 0:1; previous: 1136042
  11. 理解Tensorflow的shape
  12. Autovue 集成
  13. Multisim 13-电子线路实验
  14. 借助阿里云轻松部署企业网盘
  15. 如何快速把多个mp4和m4a混合合并- 无需安装
  16. LaTeX 注释快捷键
  17. visdom TensorboardX进行可视化-包括对高维特征可视化(T-SNE PCA等)
  18. Ubuntu18.04解决网卡失效的问题
  19. 手摸手教会你三次握手和四次挥手
  20. logdet函数的凹凸性和遍历速率

热门文章

  1. mysql limit分页查询效率
  2. js字符串、数组处理方法、以及一些常用js方法
  3. automaticallyAdjustsScrollViewInsets 标签栏不正常显示
  4. 002..NET MVC实现自己的TempBag
  5. 【ECharts学习】—实现我的第一个图表
  6. JavaScript学习(四十)—字面量创建对象图解
  7. 详解用backgroundImage解决图片轮播切换
  8. 二套房贷款首付比例?
  9. 有哪些闷声发大财的行业?
  10. 作为职场小白,除了要注意自身的言谈举止