这篇文章是抄自亚嵌的教材,觉得不错,分享一下。

由于硬件技术的限制,我们可以制造出容量很小但很快的存储器,也可以制造出容量很大但很慢的存储器,但不可能两边的好处都占着,不可能制造出访问速度又快容量又大的存储器。因此,现代计算机都把存储器分成若干级,称为Memory Hierarchy,按照离CPU由近到远的顺序依次是CPU寄存器、Cache、内存、硬盘,越靠近CPU的存储器容量越小但访问速度越快,下图给出了各种存储器的容量和访问速度的典型值。

存储器类型

位于哪里

存储容量

半导体工艺

访问时间

如何访问

CPU寄存器

位于CPU执行单元中。

CPU寄存器通常只有几个到几十个,每个寄存器的容量取决于CPU的字长,所以一共只有几十到几百字节。

“寄存器”这个名字就是一种数字电路的名字,它由一组触发器(Flip-flop)组成,每个触发器保存一个Bit的数据,可以做存取和移位等操作。计算机掉电时寄存器中保存的数据会丢失。

寄存器是访问速度最快的存储器,典型的访问时间是几纳秒。

使用哪个寄存器,如何使用寄存器,这些都是由指令决定的。

Cache

和MMU一样位于CPU核中。

Cache通常分为几级,最典型的是如上图所示的两级Cache,一级Cache更靠近CPU执行单元,二级Cache更靠近物理内存,通常一级Cache有几十到几百KB,二级Cache有几百KB到几MB。

Cache和内存都是由RAM(RandomAccessMemory)组成的,可以根据地址随机访问,计算机掉电时RAM中保存的数据会丢失。不同的是,Cache通常由SRAM(StaticRAM,静态RAM)组成,而内存通常由DRAM(DynamicRAM,动态RAM)组成。DRAM电路比SRAM简单,存储容量可以做得更大,但DRAM的访问速度比SRAM慢。

典型的访问时间是几十纳秒。

Cache缓存最近访问过的内存数据,由于Cache的访问速度是内存的几十倍,所以有效地利用Cache可以大大提高计算机的整体性能。一级Cache是这样工作的:CPU执行单元要访问内存时首先发出VA,Cache利用VA查找相应的数据有没有被缓存,如果Cache中有就不需要访问物理内存了,是读操作就直接将Cache中的数据传给CPU寄存器,是写操作就直接在Cache中改写数据;如果Cache中没有,就去物理内存中取数据,但并不是要哪个字节就取哪个字节,而是把相邻的几十个字节都取上来缓存着,以备下次用到,这称为一个Cache Line,典型的CacheLine大小是32~256字节。如果计算机还配置了二级缓存,则在访问物理内存之前先用PA去二级缓存中查找。一级缓存是用VA寻址的,二级缓存是用PA寻址的,这是它们的区别。Cache所做的工作是由硬件自动完成的,而不是像寄存器一样由指令决定先做什么后做什么。

内存

位于CPU外的芯片,与CPU通过地址和数据总线相连。

典型的存储容量是几百MB到几GB。

由DRAM组成,详见上面关于Cache的说明。

典型的访问时间是几百纳秒。

内存是通过地址来访问的,但是在启用MMU的情况下,程序指令中的地址是VA,而访问内存用的是PA,并无直接关系,这种情况下内存的分配和使用由操作系统通过修改MMU的映射项来协调。

硬盘

位于设备总线上,并不直接和CPU相连,CPU通过设备总线的控制器访问硬盘。

典型的存储容量是几百GB。

硬盘由磁性介质和磁头组成,访问硬盘时存在机械运动,磁头要移动,磁性介质要旋转,机械运动的速度很难提高到电子的速度,所以访问速度很受限制。但是保存在硬盘上的数据掉电后不会丢失。

典型的访问时间是几毫秒,是寄存器的106倍。

由驱动程序操作设备总线控制器去访问。由于硬盘的访问速度较慢,操作系统通常在一次从硬盘上读几个页面(典型值是4KB)到内存中缓存起来,如果这些数据后来都被程序访问到了,那么这一次硬盘访问的时间就可以分摊(Amortize)给多次数据访问了。

Memory Hierarchy-计算机各级存储器速度对比相关推荐

  1. 【计算机基础】存储器层次 Memory hierarchy

    Memory Hierarchy 我们是如何构建指令 / 数据存储器的? 内存时序 为什么Memory hierarchy有效? 存储器技术 Cache的基本原理 Cache访问 访问缺失 Cache ...

  2. Memory Hierarchy - 存储器层次结构

    Memory Hierarchy - 存储器层次结构 计算机系统将存储器分成若干层级 (memory hierarchy) ,越靠近 CPU 的存储器容量越小但访问速度越快. 1. Memory hi ...

  3. Appendix B Review of Memory Hierarchy

    本附录是对内存层次结构的快速复习,包括缓存和虚拟内存.性能方程和简单的优化. 这第一部分回顾了以下 36 个术语: 如果此评论进行得太快,您可能需要查看计算机组织和设计中的第 7 章,这是我们为经验较 ...

  4. 深入理解计算机系统——第六章 The Memory Hierarchy

    深入理解计算机系统--第六章 The Memory Hierarchy 6.1 Storage Technologies 6.1.1 Random Access Memory Nonvolatile ...

  5. 微型计算机中 存储器的主要功能是,在计算机中存储器的主要作用是什么?

    计算机存储器指计算机的内部存储区域,以芯片格式和集成电路形式存在.计算机存储器应用于录音机或磁盘.术语"存储器"通常视为物理存储器的简称,作为保留数据的实际可能芯片.有些计算机也使 ...

  6. 计算机组成原理主存储器知识点,计算机组成原理(存储器).ppt

    计算机组成原理(存储器).ppt 计算机组成原理,主讲颜俊华 存储子系统,存储子系统,主要知识点 掌握存储器的分类.存储系统的层次结构 掌握存储单元.存储容量.地址线.数据线的关系3. 掌握用半导体存 ...

  7. 计算机组成原理-存储器的层次结构

    第三章 存储器的层次结构 3.1 存储器分类 按存储介质分类 (1)半导体存储器:         TTL,MOS,SSD.         易失 (2)磁表面存储器:         磁头,载磁体 ...

  8. 2015年杭电计算机存储器扩展,杭电计算机组成原理存储器设计实验5

    <杭电计算机组成原理存储器设计实验5>由会员分享,可在线阅读,更多相关<杭电计算机组成原理存储器设计实验5(4页珍藏版)>请在人人文库网上搜索. 1.杭州电子科技大学计算机学院 ...

  9. GPU 内存的分级综述(gpu memory hierarchy)

    GPU 内存的分级(gpu memory hierarchy) 小普 中科院化学所在读博士研究生 研究课题,计算机模拟并行软件的开发与应用 Email:  yaopu2019@126.com (欢迎和 ...

最新文章

  1. 确定Java开发中.jar包的JDK版本
  2. Java层与Jni层的数组传递(转)
  3. 自己生产签名和数字证书的方法
  4. html+css+javascript之间的关系与作用
  5. ORACLE 内置函数之 GREATEST 和 LEAST(转)
  6. STL 之for_each,transform
  7. halcon学习笔记——(4)HDevelop language(结构语句)
  8. 光与夜之恋服务器维护中,光与夜之恋7月16日停服维护说明 维护详情一览
  9. js循环出来的数据补全_加推实战之数据预测
  10. php的慢查询,慢查询是什么
  11. python文档自动翻译
  12. 看完这篇你就懂了深度学习的具体流程和代码该怎么写了!(Deep Learning Onramp)
  13. windows下安装apache
  14. 苹果手机注册时显示链接服务器出现问题,苹果连接服务器出现问题怎么办_苹果id连接到服务器时出现问题的解决方法...
  15. linux判断三个数大小程序,几个shell程序设计小知识(shell常识部分)
  16. sql server 学习教程
  17. android5.0+电视,当Android 5.0搭载在电视上,是一种怎样的体验?
  18. 心电图实验(使用vivado进行编程,VHDL语言)
  19. EFM32芯片被锁解决方法
  20. CSS(红色标记:待练习效果)

热门文章

  1. 微信又更新了,这次新增了一个大家喜闻乐见的新功能?
  2. torch.roll 函数的理解
  3. 五个脑叶的功能_有的人部分脑叶功能不一定都一样,什么意思?
  4. 国科gk7102s-sensor框架驱动笔记
  5. 【Neuralink 与大脑的神奇未来】Part 4:Neuralink 的挑战
  6. HttpGet和HttpPost的区别
  7. docker出现Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use的解决方法
  8. BFC——通俗理解什么是BFC
  9. Python将指定文件批量复制到多个文件夹并重命名
  10. 移动物联网应用典型案例福建8项目入选,四信携手产业共赢