一、小引
1、Cache是为了解决CPU和主存之间速度不匹配的问题
2、Cache是COU和内存之间设置的一个小容量存储器,保存的内容是主存内容的子集
3、Cache用SRAM实现,存取速度比主存快
4、可采用两级或多级Cache
5、Cache功能全由硬件调度,对用户透明,运行过程无需软件设置和参与

二、程序的局部性原理
1、时间局部性
被访问过一次的内存区域在未来会被多次访问
2、空间局部性
如果一个内存区域被访问,那么将来它附近的单元也会被访问

三、Cache的命中率
1、

h:命中率
Nc:Cache中完成存取的次数
Nm:主存中完成存取的次数
h与程序的行为、Cache的容量、组织方式、块的大小有关
2、Cache的平均访问时间
tc:命中时Cache的访问时间
tm:未命中时主存的访问时间
则,Cache/主存系统的平均访问时间:
ta=htc+(1-h)tm
3、Cache的访问效率

四、相联存储器
普通的存储器按地址访问,相联存储器按内容访问
1、相联存储器基本原理
①、存放在相联存储器中的项:内存地址+信息
②、查找的主要操作:比较
2、应用领域
需要快速查找的领域:
①、虚拟存储器中存放段表、页表、快表
②、在Cache中,相联存储器作为存放Cache的行地址
③、网络设备中路由的查找

五、地址映射
1、主存分块,每块包含若干个字,主存地址:

2、Cache与主存的数据交换以块为单位
①、Cache中的数据块称为行
②、Cache按照内容编址,主存线性编址,CPU用内存地址去访问Cache
3、地址映射
应用某种方法,把主存的地址定位到Cache中的确切位置

六、Cache基本原理
引:
①、CPU和Cache之间的数据交换是以字为单位
②、Cache与主存之间的数据交换以块(行)为单位
③、一个块由若干字组成
1、Cache原理图

2、Cache基本原理示意图

七、映射方式
1、全相联
(1)、映射方法:多对多
①、主存一个块可以放到Cache任意一行
②、将整个块地址作为Cache行的标识
(2)、地址变换
①、CPU访存地址同时发往Cache和内存
②、发往Cache的地址分为块地址和块内偏移
③、块地址同时和Cache中所有行的Tag进行比较
相同表示命中,再按块内偏移从该块中读取一个字,同时撤销内存寻址功能
若没有命中,则等待主存访存过程结束,然后将被访问内存的相对应块调入Cache

(3)、特点①、优点:冲突概率小,Cache的利用率高②、缺点:比较电路实现成本高③、适用于小容量的Cache


2、直接映射
(1)、映射方法:1对1
①、一个主存块只能映射的Cache的一个特定行上
②、行号i和块号j关系
i=j mod m m为Cache中总行数
(2)、Cache将s位块地址分为两部分
①、低r位作为Cache的行索引
②、高s-r位作为tag

(3)、地址变换
①、首先用访存地址中的块号的r位行索引找到Cache中对应的行
②、然后用块号的s-r位与该行的tag部分比较
若命中,而后用低w位读取所要求的字
若不命中,由主存读取所要求的字
(4)、特点
①、优点:硬件简单,成本低
②、缺点:每个块只有一个固定的行可存放,容易产生冲突,频繁置换会导致Cache抖动,效率下降
③、适合大容量Cache使用

3、组相联
(1)、引
①、将Cache分为u组,每组v行,组间采用直接映射,组内采用全相联
②、主存中的每一块可以被放置到Cache中唯一的一个组中的任何一行
(2)、将s划分为两部分:
①、低d位表示组号
②、高s-d位作为tag

(3)、地址变换
①、首先用块地址的低d位找到对应组
②、然后将地址块的高s-d位与该组v行中的所有标记同时进行比较
命中,选中该行,用内存地址的低w位选择相应的字
不命中,访问内存
(4)、特点
①、比全相联容易实现,冲突低
②、u=1,则为全相联映射方式
③、v=1,则为直接映射方式
④、得到普遍采用

八、替换策略
1、引
(1)、Cache尽量保存最新数据
①、当从主存向Cache传送一个新块,而cache中可用位置已被占满时,就会产生替换问题
②、对直接映射来说,只要把此特定位置上的原主存块换出Cache即可
③、对全相联和组相联来说,就要从若干特定行中选取一行换出
(2)、常用替换算法
①、LFU最不经常使用算法
②、LRU近期最少使用算法
③、随机替换
2、LFU
(1)、被访问次数最少的那行数据换出
①、每行设置一个计数器。新行建立后从0开始计数,每访问一次,该行计数器加1
②、当需要替换时,将计数值最小的行换出,同时将该行计数器清0
(2)、缺点
①、不能严格反映近期访问情况
②、刚调入Cache的新行很容易被换出
3、LRU
(1)、将近期内长久未被访问的行换出
①、每行设置一个计数器,Cache每命中一次,命中行计数器清零,其他各行计数器加1
②、当需要替换时,将计数值最大的行换出
(2)、评价
这种算法保护了刚拷贝到Cache中的新数据行,有较高的命中率
4、随机替换
从特定的行位置中随机的选出一行

九、写操作策略
1、引
(1)、由于Cache的内容只是主存部分内容的拷贝
CPU对Cache的写入导致与主存内容的不一致
(2)、三种写策略
①、写回法
②、全写法
③、写一次法
2、写回法
(1)、写命中
只修改Cache的内容,当此行被换出时才写回主存
(2)、写未命中
首先将内存中对应块调入内存,然后对其修改
(3)、特点
①、减少了访问主存的次数,但是存在不一致的隐患
②、每个Cache行必须配置一个修改位,以反映此行是否被修改过,被修改过的块为脏块
3、全写法
(1)、写命中
同时写入Cache和主存
(2)、写未命中
直接向主存进行写入
(3)、优点
①、写Cache和写主存同步进行,较好的维护了Cache与主存的内容的一致性
②、Cache中每行无需设置修改位
(4)、缺点
降低了Cache的性能
4、写一次法
(1)、写命中
①、第一次:采用全写法
②、第二次:采用写回法
(2)、写未命中
写回法
(3)、主要用于多处理器系统

存储器——Cache相关推荐

  1. 高速缓存存储器——cache

    高速缓存存储器: 早期计算机层次结构:CPU寄存器.DRAM主存储器和磁盘存储.由于CPU和主存之间差距逐渐增大,便出现了小的SRAM高速缓存存储器于CPU寄存器文件和主存之间,称为L1高速缓存(一级 ...

  2. cache 的设计与实现--转载

    本文整理自一下两篇博客:http://my.oschina.net/ScottYang/blog/298727http://my.oschina.net/u/866190/blog/188712 Ca ...

  3. CPU Cache Line伪共享问题的总结和分析

    原文:吴一昊,杨勇 Linux阅码场 地址:CPU Cache Line伪共享问题的总结和分析 Table of Contents 1. 关于本文 2. 背景知识 2.1 存储器层次结构 2.2 多核 ...

  4. 7.2 高速缓冲存储器-Cache

    高速缓冲存储器:Cache.Cache的功能是提高CPU数据的输入和输出的速率.CPU的速度与主存的速度之间有巨大的差异.主存的存取时间.存取速度要比CPU的速度要慢了很多倍.为了调和它们之间的巨大速 ...

  5. 3.2存储器层次结构

    存储器层次结构 6.1 存储技术 6.2 局部性 6.3 存储器层次结构 6.4 高速缓存存储器 6.5 编写高速缓存友好的代码 6.7 小结 6.8 关于磁盘的补充讲解 好的程序代码不仅要有好的算法 ...

  6. cache在计算机中代表什么,cache是什么意思,计算机中cache是什么意思

    高速缓存未命中和高速缓存命中是什么意思? 缓存,一般是指缓存内存. 高速缓存存储器(Cache)的原始含义是指一种比一般的随机存取存储器(RAM)存取速度更快的RAM. 一般来说,它不像系统主存储器那 ...

  7. 微机原理与接口技术 第五章 存储器系统(河北专升本计算机)

    一.存储器的层次.类型及特点 1. 存储器 {Cache速度快,容量小内存(主存)外存速度慢,容量大\begin{cases}Cache\qquad\qquad\qquad 速度快,容量小\\ 内存( ...

  8. Cortex-A8存储器管理

    一.ARM的基本数据类型 字节(Byte):8bit 半字(Halfword):16bit 字(Word):32bit 双字(Doubleword):64bit 无符号数据,二进制格式存储,范围:0~ ...

  9. Cache与页面置换算法FIFO、LRU等

    1 Cache与存储结构 (1) 定义 狭义的Cache指的是位于CPU和主存间的快速RAM, 通常它不像系统主存那样使用动态随机存取存储器(Dynamic Random Access Memory, ...

  10. 微型计算机配备高速缓冲存储器,微型计算机系统与接口5第5章高速缓冲存储器Cache课案.ppt...

    微型计算机系统与接口5第5章高速缓冲存储器Cache课案.ppt 第 5 章 高速缓冲存储器 Cache 5.1 Cache 存储器 Cache存储器是一种高速的,但其规模大小相对于主存储器而言又是比 ...

最新文章

  1. day06:02oracle体系结构_存储结构
  2. ITK:具有写访问权限遍历图像的某个区域
  3. 计算机信息系统安全保护条例最新,计算机信息系统安全保护条例.doc
  4. Spring 基于注解(annotation)的配置之@Qualifier注解
  5. php curl keepalive,HTTPKeepAlive,开启还是关闭
  6. 区块链教程(四):搭建私链、web3.js基础
  7. hdu-acm steps Max sum
  8. camera(22)---camera 客观测试 Imatest教程--色彩还原度测试
  9. xshell连接及优化
  10. 多线程-Thread.join()的运用
  11. php制作多媒体课件,网络自主学习型多媒体课件设计与制作PPT.ppt
  12. 软件工程基础篇(五):结构化程序分析SA+结构化程序设计SP+详细设计
  13. 中心极限定理 与 正态分布
  14. java设计模式(1)
  15. R语言进行数值模拟:模拟泊松回归模型的数据
  16. Win11电脑的色盲模式如何开启?
  17. 比搞笑诺奖还离谱,看完国产AIGC最新创作,把我给整不会了
  18. 体系结构 | 五段流水线 | 流水线技术
  19. 智能门锁:人脸识别技术
  20. 养生医学背景PPT模板

热门文章

  1. 《爱的五种能力》读后感
  2. nuxt.js 全局 js_使用nuxt js在vuetify js中进行高级颜色管理
  3. 每一个人都应该学习电脑编程,因为它会教你如何思考
  4. RTI DDS 01
  5. Activiti7工作流引擎:进阶篇(八) 会签
  6. 拾忆书苑(图书商城系统)网站的设计与实现(html;DIV+CSS; Bootstrap; Dreamweaver; Photoshop)
  7. Android 打开相册选择图片(史上最简单)
  8. np.random.binomial()
  9. 阿里云因发现Log4j2 核弹级漏洞,未及时上报,被工信部处罚。。
  10. 三代Pacbio进行细菌16S全长测序