文章目录

  • 基础知识
    • 全相联映射
    • 组相联映射
    • 直接映射
    • 主存与Cache的地址映射
    • 例题

基础知识

按照字节编址:1B对应一个地址,16B对应4个地址,(16B/1B=2^4)2的20次方是1MB对应20个地址
CPU访问一个地址 把地址所属的本块一起放到Cache中起到一个预测的作用,会加快计算机的运行速度。
主存 大但是慢 Cache 小但是快…(小声bb:真费劲…)
cache有的主存里一定有 主存的副本存在了cache里面。
通俗来说:
手机里有很多程序,经常用的是B站和微信就把小破站和微信放在cache里面,这样信息交换的速度快,体验好。

空间局部性原理,某次访问的数据,在未来某一刻可能再次访问它及他周边的数据。

  • 块:主存里的一大块地址打包放在cache里
    映射:主存的大块放在cache的哪去

全相联映射

全部随便放,爱放哪放哪。


组相联映射

以组为单位放 ,组间随便,第一块放在第一个,第二块放在第二个…几个为一组看题里规定或者看自个想什么样,以下是2个一组的


直接映射

按顺序依次排放,放满了cache 接着从头开始放 ,循环往复。


我们来看几种不同的说法:

这个表做题很重要…

同样都是主存物理地址,代表着一串二进制数。只不过就是从不同的位置分了个段。
俗话说:你是个人,从脖子开始分开,就是脑袋和下身;从腰子开始分开就是上身和下身。
从哪里分就有不同的意义。


主存与Cache的地址映射

信息从主存→Cache中,如何定位?
Cache的容量小于主存,需要采用某种算法确定主存和Cache中块的对应关系;
地址映射
主存中数据块调入Cache中时,主存数据块与Cache行之间的映射关系;
地址变换
CPU访存时,将主存地址按映射函数关系变换成Cache地址的过程;

例:某机主存容量为1MB,划分为2048块,每块512B;cache容量为8KB,划分为16块;每块512B。
主存地址共20位,块内地址9位,主存块号11位。
由于cache的块数远小于主存的块数,因此一个cache不能唯一地、永久地只对应一个存储块,在cache中,每一块外加有一个标记,指明它是主存的哪一块的副本(拷贝)。

例题

【例】设主存容量1MB, cache容量16KB,块的大小是512B,采用全相联映射方式。

(1)cache的地址格式:
cache的容量是16KB,所以按字编码的话,cache的总线长度是14位。
块的大小是512B,也就是说块内地址是9位。
因此块标记 14-9=5位 ,也就是说cache一共有32行。

(2)主存的地址格式
主存容量1MB,一共是20位。
块的大小是9位,所以块标记公用11位。 一共2048块。

(3)块表的容量
根据行的数量和块标记的位数,可以得到块表的容量是 32*11位
这个块表不包含地址部分,只有标记部分。块表中块的数量由cache行的数量决定。

(4)画出直接地址映射的示意图
(某位学长说2048/32=64可以整除,so 内存最后一块B2047->L31)

【例】有一个cache的容量为2K字,每块为16字问:
(1)该cache可容纳多少个块?
(2)如果主存的容量是256K字,则有多少个块?
(3)主存的地址有多少位?cache的地址有多少位?
(4)在直接映射方式下,主存中的第i块映射到cache中哪一个块?
(5)进行地址映射时,存储器地址分成哪几段?各段分别多少位?

(1)2k/16=211/24=27
(2)256k/16=218/24=214


拓:


此处鸣谢

【计组】Cache 全相连 组相联 直联相关推荐

  1. cache地址映射,全相连、直接、组相联

    我这有两个讲解版本,mooc为原始版本,网友反映良好.现在新增曾经的个人考研笔记,我看着很容易理解,更细. 文章目录 某Mooc课件版本 高速缓存存储器的地址映射 **一.全相连映射方式:** 二.直 ...

  2. 计组之存储系统:6、Cache-主存映射方式(全相连映射、直接映射、组相连映射)

    6.Cache-主存映射方式 思维导图 待解决问题 三种Cache-主存映射方式 全相联映射(随意放) 直接映射(只能放固定位置) 组相联映射(可放到特定分组) 各种映射的优缺点: 思维导图 待解决问 ...

  3. 【操作系统】cache直接映射、组相连映射以及全相连映射

    Cache的容量很小,它保存的内容只是主存内容的一个子集,且Cache与主存的数据交换是以块为单位的.为了把信息放到Cache中,必须应用某种函数把主存地址定位到Cache中,这称为地址映射.在信息按 ...

  4. 直接映射,组相连映射以及全相连映射

    Cache的容量很小,它保存的内容只是主存内容的一个子集,且Cache与主存的数据交换是以块为单位的.为了把信息放到Cache中,必须应用某种函数把主存地址定位到Cache中,这称为地址映射.在信息按 ...

  5. 用料扎实的全模组电源,还有十年换新支持,安钛克HCG 850体验

    这两年CPU和显卡的性能越来越强,对电源的要求也越来越高,而且电源本身的使用寿命也要远远长于其他硬件,所以在装机的时候,一定要选一款靠谱的电源,另外为了获得更好的扩展性,全模组的电源显然更值得考虑.目 ...

  6. 你想要的宏基因组-微生物组知识全在这(2023.01)

    欢迎点击上方蓝色"宏基因组"关注我们! 宏基因组/微生物组是当今世界科研最热门的研究领域之一,为加强宏基因组学技术和成果交流传播,推动全球华人微生物组领域发展,中科院青年科研人员创 ...

  7. 你想要的宏基因组-微生物组知识全在这(1909)

    文章目录 征稿.转载.合作 文章分类导航目录 精选文章推荐 培训会议.招聘广告 科研经验 软件流程 扩增子分析 宏基因组分析 三代测序专题 Linux与Shell R统计绘图 实验设计与技术 基础知识 ...

  8. 你想要的宏基因组-微生物组知识全在这(1908)

    文章目录 征稿.转载.合作 文章分类导航目录 精选文章推荐 培训会议.招聘广告 科研经验 软件流程 扩增子分析 宏基因组分析 Linux与Shell R统计绘图 实验设计与技术 基础知识 作者解读 文 ...

  9. 你想要的宏基因组-微生物组知识全在这(1907)

    文章目录 征稿.转载.合作 文章分类导航目录 精选文章推荐 培训会议.招聘广告 科研经验 软件流程 扩增子分析 宏基因组分析 Linux与Shell R统计绘图 实验设计与技术 基础知识 作者解读 文 ...

最新文章

  1. python 第一安装 https网络请求问题
  2. Android MTK平台最完备的开机动画修改教程
  3. 洛谷P3295 [SCOI2016]萌萌哒(倍增+并查集)
  4. 20应用统计考研复试要点(part24)--简答题
  5. php json无法解析中文,json 无法解析解决方法
  6. Vue生命周期与自定义组件
  7. 窗体间的跳转传值 1124
  8. 背景纹理素材|为前景元素添加焦点
  9. tensorflow实战学习笔记(1)
  10. java 连接数据库查询_JAVA连接数据库,查询功能怎么写
  11. 【语音识别】基于matlab GUI HMM 0~9数字和汉字语音识别(带面板)【含Matlab源码 1716期】
  12. 6-3近期工作总结、下一步工作安排及技术知识
  13. 蓝字冲销是什么意思_会计上的红字蓝字是什么意思?正常记录是什么...
  14. hadoop cascading demo
  15. CSS的class常用命名规则
  16. excel多列合并成一列加符号_Excel中如何将每行空格数据隔开为多列,以及如何合并多列数据为一列...
  17. 分期利息计算——考虑免息日期和多利率设定的思路设计和代码实现
  18. 网络协议和浏览器到网络简单攻防实现的探索(二)
  19. ZYNQ7010 CAN的官方例程改为XCANPS_MODE_NORMAL模式,程序没跑通
  20. 2021-11-09 2.bea生命周期和回调及其它注解

热门文章

  1. 轻松掌握线性代数-万字长文基础知识概览
  2. 记录unity视频选择与播放_IOSAndroid
  3. CVPR2020 Oral | 动态多尺度图表达3D人体骨架运动,实现精准预测效果超SOTA
  4. AAA服务器搭建与实验案例
  5. 使用zbar进行二维码或条形码(一维码)扫描
  6. 【MuleSoft】手把手教你考MCD - Level 1认证
  7. python基础教程期末考试题_智慧树Python程序设计基础期末教程考试完整答案
  8. Linux权限控制的基本原理
  9. 先进驾驶辅助系统ADAS接口协议ADASIS v2简介
  10. matlab足球赛排名问题程序,足球队排名问题及解决方法.doc