计算机组成原理——cache高速缓存存储器
转载自https://blog.csdn.net/chen1083376511/article/details/8187481
cache-高速缓存存储器
在主存与CPU之间插入一级或多级SRAM组成的高速缓存存储器。扩展cache有限,因为SRAM价格昂贵。
cache作用:为了解决CPU和主存之间速度不匹配而采用的一项重要技术。
cache特性:具有空间局部性以及时间局部性。
cache的组成:SRAM和控制逻辑。如果cache在CPU芯片外,它的控制逻辑一般和主存控制逻辑合成在一起,称主存/cache控制器。若cache在CPU内,则由CPU提供它的控制逻辑。
CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。
cache原理图
ache的命中率:为了使主存的平均读出时间尽可能接近cache的读出时间,cache命中率应接近于1.
地址映射
含义:为了把主存块放到cache中,必须应用某种方法把主存地址定位到cache中,称作地址映射。
地址映射方式:全相联映射方式、直接映射方式和组相联映射方式。
全相联映射方式

小结:
(1)在全相联cache中,全部标记用一个相联存储器来实现,全部数据用一个普通RAM来实现。
(2)优点”冲突率小,cache利用率高
(3)缺点:比较器难于设计与实现
(4)只适用小容量cache。
直接映射方式

小结:
(1)优点:硬件简单,成本低。
(2)缺点:每个主存块只有一个固定得行位置可存放。
(3)发生冲突率大。(如果块号相距m整数倍得两个块存于同一cache行时)
(4)适合大容量cache.
组相联映射方式

小结:
适度兼顾了“全相联映射方式”和“直接映射方式”的优点以及尽量避免两者的缺点。
替换策略
含义:当一个新的主存块需要拷贝到cache,而允许存放块的行位置都被其他主存占满时,就要产生替换。
适合的地址映射方式:全相联映射方式和组相联映射方式
(1)最不经常使用(LFU)算法
含义:将一段时间内被访问次数最少的那行数据换出。每行设置一个计数器,从0开始计数,每次访问某一行时被访问的计数器增1.当需要替换时,将计数值最小的行换出,同时将这些行的计数器全部清零。
特点:这种算法将计数周期限定在对这些定行两次替换之间的间隔时间内(即替换一次,计数器清零一次),不能严格反映近期访问情况。
(2)近期最少使用(LRU)算法
含义:将近期内长久未被访问过的换出。每行设置一个计数器,Cache每命中一次,命中行计数器清零,其他各行计数器增1.当需要替换时,将计数值最大的行换出。
特点:这种算法保护了刚拷贝到cache中的新数据行,有较高的命中率。
(3)随机替换
含义:从cache的行位置中随机地选取一行换出。
特点:在硬件上容易实现,且速度也比那几种策略快。但可能降低cache命中率和工作效率。
(4)先入先出(FIFO)算法
含义:总是将最先调入的cache的内容替换出来,不需要随时记录各字块的使用情况。
特点:容易实现,电路简单。但是可能会把一些经常使用的程序(如循环程序)也作为最早的cache块而替换出去。
cache的写回操作策略
含义:CPU对Cache的写入更改了Cache的内容。当被更改了内容的Cache块被替换出Cache时,选用写回操作替换策略使Cache内容和主存内容保持一致。
(1)写回法
当CPU写Cache命中时,只修改Cache的内容,而不立即写入主存;只有当此行被替换出时才写回主存。
优点:减少了访问主存的次数。
缺点:存在不一致性的隐患。
解决问题:每个Cache行必须配置一个修改位,以反映此行是否被CPU修改过。
(2)全写法
当CPU写Cache命中时,Cache与主存同时发生写修改。因而较好地维护了Cache与主存内容的一致性。当CPU写Cache未命中时,直接向主存进行写入。
优点:Cache中每行无需设置一个修改位以及相应的判断逻辑。
缺点:cache对CPU向主存的写操作无高速缓冲功能,降低了Cache的功效。
(3)写一次法
基于写回法并结合全写法的写策略,写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时写入主存(全写法)。
优点:便于维护系统全部Cache的一致性。
计算机组成原理——cache高速缓存存储器的更多相关文章
- 《数据结构》《C++程序设计》《计算机组成原理》中的英语名词
一.数据结构 data 数据data element 数据元素data item 数据项data object 数据对象data structure 数据结构ADT (Abstruct Date Ty ...
- linux的系统组成和计算机组成原理,linux常用操作
Linux入门 linux简介 学习目的:linux服务器操作系统稳定长期运行,python,pycharm装于linux上 linux系统组成 应用软件:调用系统软件接口 linux操作系统分两 ...
- CPU的高速缓存存储器知识整理
基于缓存的存储器层次结构 基于缓存的存储器层次结构行之有效,是因为较慢的存储设备比较快的存储设备更便宜,还因为程序往往展示局部性: 时间局部性:被引用过一次的存储器的位置很可能在不远的将来被再次引用. ...
- 【CSAPP笔记】12. 高速缓存存储器
高速缓存存储器 在存储层次结构中,高速缓存存储器,也叫 cache 是最接近 CPU 寄存器的那一块. 更一般而言,缓存(caching)是一个无所不在的技术.缓存的意思是:对于每层的存储设备,位于 ...
- 计算机组成原理实验之CPU组成与指令周期实验
(实验五 CPU组成与指令周期实验) 课程 计算机组成原理实验 实验日期 2015 年 12 月 8 日 一.实验目的 1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机. 2. ...
- day01-编程与计算机组成原理
什么是编程 编程语言:是人与计算机沟通交流的介质,通过标准化的规则传递信息 编程:就是为了使计算机能够理解人的意图,通过编程语言写出一个个文件,这堆文件完成相应的目的 编程的目的:用计算机取代人完成工 ...
- 【0725 | Day 1】计算机编程/计算机组成原理/计算机操作系统
什么是编程 编程语言:人与计算机交流的手段 编程:通过编程语言编写文件 学习编程的目的:让计算机代替人力,为我们服务 计算机组成原理 计算机由五大部分组成:控制器.运算器.存储器.输入设备.输出设备. ...
- 重学计算机组成原理(五)- "旋转跳跃"的指令实现
CPU执行的也不只是一条指令,一般一个程序包含很多条指令 因为有if-else.for这样的条件和循环存在,这些指令也不会一路平直执行下去. 一个计算机程序是怎么被分解成一条条指令来执行的呢 1 CP ...
- 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器
计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...
随机推荐
- Java中文本文件的读取(按行读取)
在之前的学习过程中,经常会遇到将文本文件中的数据读取到数组或其他数据结构中.每次遇到,总是在网上搜索代码解决,解决之后并没有总结复习,因此在下一次遇到同样的问题时,又重复之前的过程.这样周而复始,并没 ...
- 2019阿里天猫团队Java高级工程师面试题之第一面
2019阿里天猫团队Java高级工程师面试题之第二面 2019阿里天猫团队Java高级工程师面试题之第三面 1.五分钟自我介绍,说说自己的擅长及拿手的技术 自我介绍是为了考察面试者的语言表达和总结概括 ...
- IT兄弟连 HTML5教程 CSS3揭秘 CSS选择器1
要使用CSS对HTML页面中的元素实现一对一.一对多或者多对一的控制,就需要用到CSS选择器.选择器是CSS3中一个重要的内容,使用它可以大幅度地提高开发人员书写或修改样式表的效率.在大型网站中,样式 ...
- 什么是面向对象编程(OOP)?
Java 程序员第一个要了解的基础概念就是:什么是面向对象编程(OOP)? 玩过 DOTA2 (一款推塔杀人的游戏)吗?里面有个齐天大圣的角色,欧洲战队玩的很溜,国内战队却不怎么会玩,自家人不会玩自家 ...
- mybatis的mapper.xml中使用java类中的全局变量
select * from demo where status = '${@cn.jichi.Global@zz}'
- three.js实现世界地图城市迁徙图
概况如下: 1.THREE.CylinderGeometry,THREE.SphereGeometry绘制地图上的标记: 2.THREE.CanvasTexture用于加载canvas绘制的字体: 3 ...
- Linux 解压xz格式文件及安装xz
1.安装xz命令 # yum install epel-release -y # yum install xz -y 2.将xz文件解压为tar文件 # xz -d test.tar.xz 3.将ta ...
- 在Asp.Net Core中配置使用MarkDown富文本编辑器实现图片上传和截图上传(开源代码.net core3.0)
我们的富文本编辑器不能没有图片上传尤其是截图上传,下面我来教大家怎么实现MarkDown富文本编辑器截图上传和图片上传. 1.配置编辑器到html页 <div id="test-edi ...
- javaWeb核心技术第七篇之HTTP、Tomcat、Servlet、Request和Response
- Web服务器 - 概念: - web资源: "英文直译"网"的意思 资源:一切数据文件 web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件&quo ...
- [转]UiPath教程:UiPath及其组件介绍
本文转自:http://www.rpa-cn.com/UiPathxuexirenzheng/UiPathzaixianxueyuan/2019-06-05/937.html 根据德勤2018年的调查 ...