早期的计算机存储器层次结构只有简单的三层:CPU寄存器组,DRAM主存储器和磁盘存储。不过随着时间的发展,CPU和主存之间的速度差距逐渐增大,系统设计者被迫在CPU寄存器文件和主存之间插入一个容量小但速度快的SRAM高速缓存存储器,我们一般称之为cache。

简单的抽象图如下,一定注意哦,这只是为了方便理解的灵魂抽象图。

cache工作的原理:

程序运行的空间局部性和时间局部性。空间局限性指的是当一条指令正在被执行,在很短的时间内,这条指令周围的指令也会有很大的概率被执行。时间局部性指的是当一条指令正在被执行,在很短的时间内,这条指令将有很大的概率被重复执行。

Cache命中

当CPU需要访问内存的一个数据时,这个数据已经缓存在Cache中,则则称为Cache命中。

Cache不命中

当CPU需要访问内存的一个数据时,这个数据没有缓存在Cache中。

Cache的工作方式

当CPU执行一条读内存数据的指令时,它首先向Cache请求这个字,如果Cache中含有这个数据(Cache命中),cache会将该数据返回给cpu;若Cache中没有该数据,则Cache向内存请求包含该数据的块,将此块缓存到Cache中,然后Cache从它的缓存里找到cpu所需的数据并返回给cpu。

Cache的三种组织方式

为了更好的理解Cache的三种组织方式,我们先建立一个通用的Cache组织结构。

考虑一个计算机系统,其中每个存储器地址由m位,形成M=2的m次方(他喵的,幂次方不会打)个不同的地址。其Cache被组织成一个有S=2的s次方个高速缓存组的数组。每个高速缓存组包含E个高速缓存行。每个行是由一个B=2的b次方字节的数据块组成的,一个有效位指名这个行是否包含有意义的信息,还有t=m-(b+s)个标记位(是当前块的内存地址的位的一个子集),它们唯一的标识存储在这个高速缓存行中的块。

参数S和B将m个地址位分成了三个字段,如上图所示 。地址中的s个组索引位用来找到数据在cache中的组,b个索引位是找到数据在块中的偏移量,而标记位用来指示数据在cache相关组中的哪个行里。当且仅当设置了有效位并且该行的标记位与数据地址的标记位相匹配时,组中的一行才包含这个字。一旦我们由组索引标识的组中定位了由标号所标识的行,那么b个块偏移位给出了在B个字节中的数据块的偏移量。

直接映射高速缓存

根据每个组的高速缓存行数E,高速缓存被分为不同的类。每个组只有一行(E=1)的高速缓存称为直接映射高速缓存,如下图所示。

组相联高速缓存

组相联高速缓存中,每个组中存在多个行,类似于上述的通用模型(E>1)。

全相联高速缓存

全相联高速缓存是由一个包含所有高速缓存行的组组成的。结构图如下:

全相联高速缓存,将内存地址空间只分为两部分,因为只有一个组,所以不再需要组索引位寻找组,只需要分为t位标记位和b位块偏移位。

有关写的问题

如果向cache中更新了某些数据,什么时候将这些数据写回到内存中呢?

直写法:立即将更新的数据写回内存。

写回法:当被更新的块被换出时写回内存。

高速缓冲存储器cache的组织方式及工作原理相关推荐

  1. 高速缓冲存储器的功能、结构与工作原理

    2.3 高速缓冲存储器(Cache) 2.3.1 高速缓冲存储器的功能.结构与工作原理 高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得 ...

  2. cache相关命中率的运算_计算机高速缓冲存储器(Cache)命中率的分析

    第 21 卷 第 3 期 河南教育学院学报( 自然科学版) Vol. 21 No. 3 2012 年 9 月 Journal of Henan Institute of Education ( Nat ...

  3. 计算机主板上一般带有高速缓冲存储器cache,它是与什么之间的缓存,计算机微机原理与应用(一)...

    选择题 1.对于二进制码10000000,若其表示的真值为-128,则它是( )表示的 A)原码 B)反码 C)补码 D)移码 2.在( )表示中,二进制数11111111表示的十进制数-1 A)原码 ...

  4. 高速缓冲存储器cache介绍

    cache介绍 一. Cache- 主存存储结构及其实现 为了解决存储器系统的容量.存取速度及单位成本之间的矛盾,可以采用 Cache- 主存存储结构,即在主存和 CPU 之间设置高速缓冲存储器 Ca ...

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

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

  6. 个人计算机主机上的高速缓冲存储器,高速缓冲存储器(Cache)一般用SRAM来实现

    正确答案: B 高速缓冲存储器(Cache)一般用SRAM来实现 题目:下列叙述中,正确的是( ). 解析:解析:内存与外存相比:内存速度快,容量小,价格高.硬盘.光盘和软盘均是外存,它们的存取速度比 ...

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

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

  8. 高速缓冲存储器-cache

    高速缓冲存储器 编辑词条 高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRA ...

  9. ARM存储器之:高速缓冲存储器Cache

    当第一代RISC微处理器刚出现时,标准存储器元件的速度比当时微处理器的速度快.很快,半导体工艺技术的进展被用来提高微处理器的速度.标准DRAM部件虽然也快了一些,但其发展的主要精力则放在提高存储容量上 ...

最新文章

  1. 矢量对比_「插画原画必学教程」ps入门——03 图层、位图矢量图、调色
  2. 又一款4800像素手机曝光:vivo V15 Pro
  3. 获取客户端真实IP地址
  4. Node提示:npm does not support Node.js v12.16.3
  5. 虚拟化运行[OpenStack] VMWare产品介绍
  6. ASP游戏工作室网站源码v1.0
  7. 优酷宠爱剧场发布新片单 包括近30部待播精品剧
  8. linkin大话面向对象--内部类
  9. [原译]Lambda高手之路第二部分
  10. python 可视化 词云图
  11. 教你快速攻破小区门禁系统
  12. mac os下可能是最好的豆瓣电台——diumoo
  13. 基于Python的医院信息管理系统的设计与实现
  14. Java poi 导出excel 设置将整个工作表打印在一页 打印机设置
  15. 京东物流数据质量管理体系
  16. PHP_递归函数时return
  17. 最新WIN10系统封装教程2019系列(五)——使用工具优化与清理
  18. 用python实时监控A股股票的波动并发送预警邮件
  19. linux命令:nl命令
  20. JAVA毕业生就业信息管理系统计算机毕业设计Mybatis+系统+数据库+调试部署

热门文章

  1. 选择困难症[NC13594]折半搜索+二分
  2. Matlab中colormap的解释与ill、imshow的用法
  3. 《操作系统》——分页存储管理方式逻辑地址到物理地址的转换
  4. 使用orange3-associate做分类关联规则
  5. 2022-11-08 cesium实现大坝放水和有流向的水
  6. matlab 陷波器,自己编的matlab陷波器的程序和大家分享
  7. 个人支付系统源码 支付宝包装网银+支付宝网关软件+PC端监控+支付宝全自动收款系统软件
  8. STUN打洞学习笔记
  9. 我敢打赌,90%的测试人员都不理解Git
  10. Syncovery 是目前功能最为强大的实时自动备份工具