存储器——Cache
一、小引
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相关推荐
- 高速缓存存储器——cache
高速缓存存储器: 早期计算机层次结构:CPU寄存器.DRAM主存储器和磁盘存储.由于CPU和主存之间差距逐渐增大,便出现了小的SRAM高速缓存存储器于CPU寄存器文件和主存之间,称为L1高速缓存(一级 ...
- cache 的设计与实现--转载
本文整理自一下两篇博客:http://my.oschina.net/ScottYang/blog/298727http://my.oschina.net/u/866190/blog/188712 Ca ...
- CPU Cache Line伪共享问题的总结和分析
原文:吴一昊,杨勇 Linux阅码场 地址:CPU Cache Line伪共享问题的总结和分析 Table of Contents 1. 关于本文 2. 背景知识 2.1 存储器层次结构 2.2 多核 ...
- 7.2 高速缓冲存储器-Cache
高速缓冲存储器:Cache.Cache的功能是提高CPU数据的输入和输出的速率.CPU的速度与主存的速度之间有巨大的差异.主存的存取时间.存取速度要比CPU的速度要慢了很多倍.为了调和它们之间的巨大速 ...
- 3.2存储器层次结构
存储器层次结构 6.1 存储技术 6.2 局部性 6.3 存储器层次结构 6.4 高速缓存存储器 6.5 编写高速缓存友好的代码 6.7 小结 6.8 关于磁盘的补充讲解 好的程序代码不仅要有好的算法 ...
- cache在计算机中代表什么,cache是什么意思,计算机中cache是什么意思
高速缓存未命中和高速缓存命中是什么意思? 缓存,一般是指缓存内存. 高速缓存存储器(Cache)的原始含义是指一种比一般的随机存取存储器(RAM)存取速度更快的RAM. 一般来说,它不像系统主存储器那 ...
- 微机原理与接口技术 第五章 存储器系统(河北专升本计算机)
一.存储器的层次.类型及特点 1. 存储器 {Cache速度快,容量小内存(主存)外存速度慢,容量大\begin{cases}Cache\qquad\qquad\qquad 速度快,容量小\\ 内存( ...
- Cortex-A8存储器管理
一.ARM的基本数据类型 字节(Byte):8bit 半字(Halfword):16bit 字(Word):32bit 双字(Doubleword):64bit 无符号数据,二进制格式存储,范围:0~ ...
- Cache与页面置换算法FIFO、LRU等
1 Cache与存储结构 (1) 定义 狭义的Cache指的是位于CPU和主存间的快速RAM, 通常它不像系统主存那样使用动态随机存取存储器(Dynamic Random Access Memory, ...
- 微型计算机配备高速缓冲存储器,微型计算机系统与接口5第5章高速缓冲存储器Cache课案.ppt...
微型计算机系统与接口5第5章高速缓冲存储器Cache课案.ppt 第 5 章 高速缓冲存储器 Cache 5.1 Cache 存储器 Cache存储器是一种高速的,但其规模大小相对于主存储器而言又是比 ...
最新文章
- day06:02oracle体系结构_存储结构
- ITK:具有写访问权限遍历图像的某个区域
- 计算机信息系统安全保护条例最新,计算机信息系统安全保护条例.doc
- Spring 基于注解(annotation)的配置之@Qualifier注解
- php curl keepalive,HTTPKeepAlive,开启还是关闭
- 区块链教程(四):搭建私链、web3.js基础
- hdu-acm steps Max sum
- camera(22)---camera 客观测试 Imatest教程--色彩还原度测试
- xshell连接及优化
- 多线程-Thread.join()的运用
- php制作多媒体课件,网络自主学习型多媒体课件设计与制作PPT.ppt
- 软件工程基础篇(五):结构化程序分析SA+结构化程序设计SP+详细设计
- 中心极限定理 与 正态分布
- java设计模式(1)
- R语言进行数值模拟:模拟泊松回归模型的数据
- Win11电脑的色盲模式如何开启?
- 比搞笑诺奖还离谱,看完国产AIGC最新创作,把我给整不会了
- 体系结构 | 五段流水线 | 流水线技术
- 智能门锁:人脸识别技术
- 养生医学背景PPT模板
热门文章
- 《爱的五种能力》读后感
- nuxt.js 全局 js_使用nuxt js在vuetify js中进行高级颜色管理
- 每一个人都应该学习电脑编程,因为它会教你如何思考
- RTI DDS 01
- Activiti7工作流引擎:进阶篇(八) 会签
- 拾忆书苑(图书商城系统)网站的设计与实现(html;DIV+CSS; Bootstrap; Dreamweaver; Photoshop)
- Android 打开相册选择图片(史上最简单)
- np.random.binomial()
- 阿里云因发现Log4j2 核弹级漏洞,未及时上报,被工信部处罚。。
- 三代Pacbio进行细菌16S全长测序