早期的计算机存储器层次结构只有简单的三层: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. jquery 子元素过滤器 Child Filters
  2. linux中往sed命令,Linux中Sed命令怎么用?
  3. 程序员从优秀到卓越的几点建议
  4. oracle根据多个条件分别修改符合条件的记录
  5. 删除Word文档中的全部汉字
  6. 太原锦华计算机学校教学质量怎样,一所好学校有哪些特点?
  7. Eclipse启动时指定jdk版本
  8. JavaSE笔记总结
  9. 熵的性质:可加性和强可加性
  10. 如何导出微信好友?通讯录好友保存
  11. 数显之家快讯:【SHIO世硕心语】古有《陋室铭》,现有《群之铭》!
  12. GMC解封秘籍:解决 Google 账户被封窘境
  13. 视频直播连麦技术详解
  14. python有一对兔子,从出生后第3个月起每个月都生一对兔子
  15. FX5800计算器测量程序集2.4
  16. 苹果怎么付费购买内存_苹果怎么清理隐藏内存?手机恢复如初都靠它了
  17. Android下的弹幕的简单实现
  18. 找到office16\excel.exe
  19. STM32+PN532写UltraLight标签
  20. Qt 之QNetworkAccessManager 下载断点续传

热门文章

  1. 关于霍尼韦尔几个配置条码
  2. 在精准投放方面,百度广告管家能够实现精准投放
  3. 【Webpack】1362- 通过插图来理解webpack
  4. react项目使用百度地图API
  5. CCRC信息安全服务资质证书如何查询
  6. 综武大唐:从剑圣收徒开始(三)
  7. 第四十一期-ARM Linux内核的系统调用(1)
  8. 【190223】基于MWP的VC++所播放器源程序源代码
  9. Git分支的意义和使用方法
  10. MySQL数据库与数据仓库有什么区别