计算机组成原理——第三章存储系统(下)

提示:年年岁岁花相似,岁岁年年人不同

文章目录

  • 3.4.1 磁盘存储器
  • 3.4.2 固态硬盘SSD
  • 3.5.1 Cache的基本概念和原理
  • 3.5.2 Cache和主存的映射方式
  • 3.5.3 Cache替换算法
  • 3.5.4 Cache写策略
  • 3.6.1 页式存储
  • 3.6.2 虚拟存储器


3.4.1 磁盘存储器

我们在磁性盘面上涂磁性材料的方式是一圈一圈的涂的,也就是磁道,这里绿色的圈就是磁道,为了方便主机对磁盘数据的读写,我们将磁道划分成一个个更小的扇区,每个磁盘有多个盘面 ,每个盘面也对应一个读写磁头,比如这里就是有四个盘面 ,相对位置上的磁道我们将其称为一个柱面,也就意味着一个磁盘上有多少个磁道就有多少个柱面,
计算机组成原理——第三章存储系统(下)_第1张图片
尽管内侧较短,但是存储的位信息是一样的,这样就意味着越靠经内测的,它的位密度越大,越靠近外侧的它的位密度会越小,所以许多的工厂是受到这里规则的限制,旋转延迟时间也就是磁头定位到所在扇区所需要的时间,这里通常是转半圈所需要的一个时间,因为在任何扇区的概率是相同的,
计算机组成原理——第三章存储系统(下)_第2张图片
计算机组成原理——第三章存储系统(下)_第3张图片
无校验功能也就是当某些扇区上的数据发生损坏的时候,我们就不能恢复数据,镜像磁盘阵列也就是设置一个同样的磁盘阵列,用于防止数据的丢失,但是也就意味着空间利用率只有一半 , 四位信息位对应的三位的海明校验码,就有纠正一位错 ,发现两位错的能力,这里的技术也就会用于比如百度云这样的公司
计算机组成原理——第三章存储系统(下)_第4张图片
本节回顾
计算机组成原理——第三章存储系统(下)_第5张图片

3.4.2 固态硬盘SSD

这些黑色的小芯片就是用于存储数据的,是基于闪存技术,每个闪存芯片是由多个闪存块组成,而每一个块又可以拆成一个个的页,若是数据存储与固态硬盘中,则系统要读或者写的逻辑块,也就对应这里的页,当我们要写入数据的时候,但是因为是以页为单位的,并且需要擦除,若是其中已有数据,这里我们就会先将数据进行迁移之后在进行写入,但是发生了数据迁移,这样也就许哟啊闪存翻译层进行重新的映射,这也就导致了固态硬盘读的速度远远高于写的速度
计算机组成原理——第三章存储系统(下)_第6张图片

3.5.1 Cache的基本概念和原理

局部性原理
由于循环结构的存在,其中的数据比如说i,也是可能在时间上循环的存取,由于局部性原理,这也就意味着,当程序是按照列优先进行访问的时候,由于空间局部性较差,也就意味着所需要的时间更长
计算机组成原理——第三章存储系统(下)_第7张图片
性能分析
计算机组成原理——第三章存储系统(下)_第8张图片

计算机组成原理——第三章存储系统(下)_第9张图片
知识回顾
计算机组成原理——第三章存储系统(下)_第10张图片

3.5.2 Cache和主存的映射方式

之前我们说过Cache保存的是主存中某些数据的副本,映射方式探讨的就是这个主体,这节将会介绍三种方式,如下图,但是全相连映射也有一个问题,就是这里我们的标记使用的也是0,1 的bit,这也就也为着这个标记可能需要的bit也很大,并且开始的时候初始化都是0,这也可能不对,因为我们可能解析为主存上0的位置的信息,所以这里我们还需要另外一个有效位,主存地址的前nbit,对比Cache中所有的块的标记,若标记匹配且有效位=1 则Cache命中,访问块内地址为某某的单元,若是未命中或者有效位=0,则正常访问主存
计算机组成原理——第三章存储系统(下)_第11张图片
全相联映射
计算机组成原理——第三章存储系统(下)_第12张图片
直接映射
如下图 前面的19位可以作为Cache的一个行标记,后面的三位可以反映每一个主存标记可以放在哪一个Cache行
计算机组成原理——第三章存储系统(下)_第13张图片
组相联映射
每个主存块的后两位反映了分组的组号是多少,这也就意味着后两位相同的主存块号一定是在一个组内的,这也就意味着我们标记位只需要20位即可
计算机组成原理——第三章存储系统(下)_第14张图片
知识回顾
计算机组成原理——第三章存储系统(下)_第15张图片

3.5.3 Cache替换算法

Cache很小,主存很大,如果Cache满了怎么办?
替换算法
这也就是本小节要处理的问题,若是直接映射,则不需要考虑替换算法,因为若是对应的位置非空,则毫无选择的直接替换即可,所以替换算法只会被用到全相联和组相联映射,这节我们主要学习四种替换算法,随机算法,先进先出算法,近期最少使用,最近不经常使用
随机算法
计算机组成原理——第三章存储系统(下)_第16张图片
先进先出
这里没有考虑到局部性原理,如我们写C语言中,若是第一步就使用了print 后面也可能会用到print,抖动现象:频繁的换入换出现象(刚被提替的块很快又被调入)
计算机组成原理——第三章存储系统(下)_第17张图片
近期最少使用算法
做题的时候,我们可以从当前访问的一个主存块号,往前看,看哪一个是最近被访问过的,没有出现的就是要被替代的主存号,这里比起高的没有加一,是因为既是不加1,它依然是最大的数,加一毫无意义,所以我们只有四个计数器的时候,我们最大值应为3,不会达到4,Cache块的总数是2的n次方,则计数器只需n位,且Cache装满后所有的计数器的值一定不重复,命中时,所命中的行的计数器清零,比其低的计数器加1,其余不变,未命中且还有空闲行时,新装入的行的计数器置0,其余非空闲全加一,未命中且无空闲行时,计数值最大的行的信息块被淘汰,新装行的块的计数器置0,其余全加1
计算机组成原理——第三章存储系统(下)_第18张图片
不经常使用算法
经常被访问的主存块在未来不一定会用到,(如微信视频聊天相关的块) 并没有很好的遵循局部性原理,因此实际运行效果不如最近最少使用算法
计算机组成原理——第三章存储系统(下)_第19张图片
知识回顾
计算机组成原理——第三章存储系统(下)_第20张图片

3.5.4 Cache写策略

CPU修改了Cache中的数据副本,如何确保主存中数据母本的一致性?
Chche写策略
这节写策略分为写命中(全写法,写回法),以及写不命中(写分配法,非写分配法),
写命中
我们可以根据脏位来确定数据是否修改过,根据标记位来确定需要写回到什么位置计算机组成原理——第三章存储系统(下)_第21张图片
全写法
当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓存,访存次数增加,速度变慢,但是能保证数据的一致性,这里由于SRAM实现的写缓冲,所以cpu与写缓冲的交互式比与主存的交互要快的,并且有专门的控制电路控制下逐一写回
计算机组成原理——第三章存储系统(下)_第22张图片
写不命中
计算机组成原理——第三章存储系统(下)_第23张图片
多级Cache
计算机组成原理——第三章存储系统(下)_第24张图片
知识回顾
计算机组成原理——第三章存储系统(下)_第25张图片

3.6.1 页式存储

这个分页 更多的上是逻辑上的划分,而主存和Cache更多的是物理层面上的一个划分计算机组成原理——第三章存储系统(下)_第26张图片
我们作为程序员只能是给出一个逻辑地址,而操作系统则可以根据这个逻辑地址去找相应的物理地址,下图是首先根据逻辑地址前两位找到相对应的操作系统被划分的0号页面,然后我们可以看出0号页面被划分到二号主存块中,然后根据主存块号,以及页内地址的拼接 转化成实际的物理地址,这个步骤中最重要的就是建立一个逻辑页号到主存块号之间的关系,操作系统会建立一个页表,cpu执行的机器指令中,使用的是“逻辑地址” 因此需要通过“页表”将逻辑地址转为物理地址,页表的作用:记录了每个逻辑页面存放在哪个主存块中,cpu中还会有一个重要的页表基址寄存器,这个寄存器指明了页表在主存中的存放地址,然后我们又知道每一个页表项的大小是固定的,这样我们就知道了每一个页表项所在的位置
计算机组成原理——第三章存储系统(下)_第27张图片
快表的引入
类似于主存设置一个Cache,这里我们可以将页表中经常使用的页表项单独存放于一张块表中,可以加快地址的变换的速度,快表的作用是加快逻辑地址到物理地址的转化,而Cache则是加快对数据的访问

知识回顾
计算机组成原理——第三章存储系统(下)_第28张图片

3.6.2 虚拟存储器

段式虚拟存储器
计算机组成原理——第三章存储系统(下)_第29张图片
这里由于虚拟地址也是按照段号和段内地址来分的,但是由于段长不一样,这里我们需要将段表加上段长,我们的主存不会再进行分块或者分页,所以我们需要记录一下每一段的首地址
计算机组成原理——第三章存储系统(下)_第30张图片
段页式虚拟存储器
计算机组成原理——第三章存储系统(下)_第31张图片

你可能感兴趣的:(计算机组成原理,计算机组成原理)