计算机组成.记忆力核心.存储器Memory

  • CPU终究只是一个执行部件,它所执行的指令和数据来自哪呢?总不能由人来输入吧,我觉得键盘输入的速度肯定是比不上CPU运行的速度的
  • 虽然根本上来说还是我们输入的,但我们不直接给CPU,而是放在一个地方存起来,也就是存储器。
  • 存储器也是机器啊,机器之间交换数据的速度就快多了嘛
  • 说得简单点,存储器就是为了存储处理器所需要的数据的指令的
  • PS:图片要么是我自己画的(Visio很不错)、要么就是我从网上找的(比如一些器件、有水印的图表等等)

分类

  • 一种东西总是可以被分类的嘛
按处理器是否直接访问
  • 主存
    • 也称内存。CPU所需要的指令数据都是直接来自内存的。计算机内所有活动的程序都是在内存中。
    • 广义上一般说,只要是可以直接与CPU进行数据交换的存储器,都可以称之为内存。
      • 所以就有这样的说法:内存分为ROM和RAM,即只读的部分和读写的部分。ROM部分存放一些固有的程序,如开机程序(BIOS芯片)等,通过这些让计算机先运行起来。
        • OS程序是放在外存中的,由BIOS引导来读取外存的OS到内存中来运行。即便是裸机(空硬盘)也是有BIOS的,这个时候就通过BIOS引导到U盘、光盘等外存来加载里面的程序,可以是操作系统(如PE)也可以直接是操作系统的安装程序,进一步给电脑安装上OS。
      • 关于计算机的启动,有篇很有名的博客,估计大部分人也都看过:计算机是如何启动的? - 阮一峰的网络日志
        • 还有越来越好的UEFI启动
    • 狭义上来讲,内存指的就是RAM,也就是活动程序的所在地。作用是存放CPU的运算数据和要运行的程序,是CPU所能直接寻址访问的空间。
      • 内存
      • 对于32位CPU来说,最大的访问空间是2^32bit换算下来就4GB,也就是说内存空间最大为4GB,即使换个8GB的内存条,但CPU也只能访问到4GB的空间。有点类似IPv4的不够用的情况。64位机倒不必担心这个问题,就好像IPv6。
  • 辅存
    • 也称外存,其数据需要先复制到主存中,才能被CPU使用。
    • 我们所用的操作系统、各种软件如office、游戏等等,都需要先从外存复制到内存中,才能运行。
    • 而我们在word里输入的文字等等,都是先存在内存里。内存是需要持续供电的,外存如硬盘则是利用磁性来长时间保存。word只有保存的时候,才会把内存的数据写入到磁盘中。
按访问方式
  • 按地址访问
    • 也就是最常见的存储器都是按地址来访问的。地址可以理解为一个个存储单元的编号,按存储单元的顺序,从1到n编号(编址)。我要访问哪个存储单元,给我编号(地址)就行。
  • 按内容访问
    • 也叫相联存储器。既然这样也就没有地址的概念,所以存储数据的时候不需要选择某个存储单元,而只是简单追加。但这就需要每条数据的长度相等。
    • 访问的时候,给出一个相联关键字,用来和每条数据中的相应的部分数据来比较,如果相等则输出这条数据的其余的部分。
    • 但因为每次访问都要和所有的数据进行一次比较,所以其访问的速度随着容量增大而急剧下降。不过在容量比较小的时候则具备很好的性能。
    • 一般应用在CPU内部,如页式虚存所使用的TLB块表用来快速的确定页框号,Cache所使用的地址映像表来确实访问的主存地址下的内容是否被缓存。
按介质
  • 半导体存储器
    • 结构为半导体电路,也是由晶体管来实现,需要持续通电,访问速度快,通常用作主存。后面会详细讲。
  • 磁表面存储器
    • 通过载体表面磁性材料的两种磁化状态来表示二进制的0和1。
    • 像常见的磁盘,以前的磁带。
    • 磁盘
    • 存储容量大,便宜,可以长时间存储。
    • 速度慢,毕竟还需要转换到电信号;机械结构复杂,像磁盘的磁针都精确到了纳米级;这也就使得容易坏,磁盘摔一下基本就over了。
  • 光盘存储器
    • 利用光学原理,对介质上面的凹凸表面对光照不同的反射来记录0和1。
    • 光盘
    • 传统DVD采用红色激光来读写,而蓝光盘则采用波长较短的蓝色激光来读写,所以蓝光盘在单位面积上能存储更多的信息,速度也快,也就是蓝光视频质量高的原因之一,毕竟光盘还是得能存下来那么大的视频文件才行啊。
    • 由于光盘的物理特性,其先天对“恶意修改”“病毒”等免疫,所以在绝对不可修改的数据,如身份证、驾驶证、银行票据、保险票据、建筑档案、国防科技重要资料等行业应用中,以及不可存储与复制的数据(如有版权的光盘)的归档和日常数据管理,光盘已成为各级档案部门的唯一性选择。
  • 铁电存储器
    • FRAM,ferroelectric RAM,利用铁电晶体的铁电效应实现数据存储,是一种非易失性的存储器,同时具备RAM的快速读取和ROM的断电不丢失的特性
    • 铁电晶体
    • 但由于铁电晶体本身的原因,超过一定次数则不再具备非易失性,但仍可当作普通的RAM使用。

层次存储结构

  • 这么说来存储器不就很简单吗~添加一个存储部件用来与CPU交互不就可以了
  • 不过现实往往不是那么简单。人们通常希望存储能容量大、速度快、价格低,集各种优点于一身,然而这些却通常自相矛盾
    • 容量越大,地址越长,通常会速度慢
    • 不过虽然价格会更高,但平均每位的价格反而随容量增加而降低
    • 所以我们只需要解决容量大与速度快的相容性就好了
  • 所以才有了层次结构的存储系统
访问数据的局部性原理
  • 层次结构的基础就是局部性原理,有这个原理的支撑,层次结构的存储系统才能实现既容量大又速度快的
  • 这个原理其实是个统计原理,不过其也是依赖于程序本身的特点:无论是取指令还是存取数据,处理器在一段连续的时间内访问的存储单元趋向于聚集在一个相对较小的连续的存储单元区域内
    • 时间局部性:即CPU将要访问的数据就是刚刚访问的数据。比如程序中的一个循环,往往会对某个变量在短期内使用很多次。
    • 空间局部性:即CPU将要访问的数据就在刚刚访问的数据的旁边。比如程序本身就是指令的连续序列,那么一条条指令就在空间上是连续的,同时也是按顺序来运行的。只有跳转等才会使得连续运行的指令在物理存储上是不连续的。
  • 局部性原理
  • 简单的理解一下,就是说,CPU运行一个程序,这个程序占用一定的内存空间区域,其所涉及的指令、数据也就被限制在了这个范围之内,而不是随机的分布在内存的整个空间。
层次结构的存储系统
  • 典型的层次结构
  • 层次结构
  • 以更为精简的 CPU -> Cache ->主存来分析
    • 取Cache为M1,主存为M2
    • CPU访问M1的时间为Tc1,访问M2的时间问Tc2
    • 访问M1的次数为R1,访问M2的次数为R2
    • 则有M1的命中率
      H=R1R1+R2
      由于访问局部性原理所以 H 通常会比较大
    • 整个的平均访问时间
      • 如果M1访问不命中,则直接访问M2
        Tc=H
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值