1-计算机组成与机构-1.3存储系统_主存编址_磁盘_可靠性

1、存储系统

  • 计算机存储系统的层次结构:
    CPU内部通用寄存器
    Cache
    主存储器
    联机磁盘存储器
    脱机光盘、磁盘存储器
  • 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。

  • 两级存储:Cache-主存、主存-辅存(虚拟存储体系)。

  • 局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面。

    • 时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。

    • 空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。

2、高速缓存Cache

  • 高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。
  • Cache由控制部分和存储器组成,存储器存储数据,控制部分判断要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。
  • 地址映射:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:
    • 直接映像:将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。

    • 全相联映像:同样都等分成块并编号。主存中任意一块都与Cache中任意一块对应。因此可以随意调入Cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映射方式。

  • 组相连映射:前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换。

3、Cache置换算法

  1. 随机算法。这是最简单的替换算法。随机法完全不管cache块过去、现在及将来的使用情况。简单地根据一个随机数,选择一块替换掉。
  2. 先进先出算法。按调入cache的先后决定淘汰的顺序,即在需要更新时,将最先进入cache的先后决定淘汰的顺序,即在需要更新时,将最先进入cache的块作为被替换的块。这种方式要求为每块做一记录,记下它们进入cache的先后次序。这种方法容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)替换掉。
  3. 近期最少使用算法。LRU算法是把CPU近期最少使用的块作为被替换的块。这种替换方法需要随时记录cache中各块的使用情况,以便确定哪个块是近期最少使用的块。LRU算法相对合理,但实现起来比较复杂,系统开销较大。通常需要对每一块设置一个称为“年龄计数器”的硬件或软件计数器,用以记录其被使用的情况。
  4. 最不经常使用页置换算法,要求在页置换时置换引用技术最小的页,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。LFU的复杂度以及计数器规模都比LRU大,LRU只关注近期访问情况,而LFU会统计累计访问次数作为淘汰的依据。

4、Cache命中率

  • 当CPU所访问的数据在Cache中时,称为命中,直接从Cache中读取数据,否则没有命中,需要从主存中读取所需的数据。
  • Cache命中率=(平均存取时间-主存存取时间)/(高速缓存存取时间-主存存取时间),Ta=HTa1+(1-H)Ta2,Ta为平均存取时间,Ta1为Cache的存取时间,Ta2为主存存取时间,H为Cache命中率。

5、磁盘结构

  • 磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆时一个磁道,每个同心圆又被划分为多个山区,数据就被存放在一个个扇区中。
  • 磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间和等待时间。
  • 公式为:存取时间=寻道时间+等待时间(平均定位时间+转动延迟)。
  • 注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
  • 假设某磁盘的每个磁道划分成11个物理块,每块存放1个逻辑记录。逻辑记录R0,R1……,R9,R10存放在同一个磁道上,记录的存放顺序如下表表示:

6、总线结构

  • 从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为一下三类:
    • 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。
    • 系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、ELSA总线、PCI总线。
    • 外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线、即插即用,支持热插拔)。

7、系统可靠性分析

  • 平均无故障时间MTTF=1/失效率
  • 平均故障修复时间MTTR=1/修复率
  • 平均故障间隔时间MRTBF=MTTF+MTTR
  • 系统可用性=MTTF/(MTTF+MTTR)*100%
  • 无论什么系统,都是由多个设备组成的,协同工作,而这多个设备的组合方式可以是串联、并联,也可以是混合模式,假设每个设备的可靠性为R1,R2……Rn,则不同的系统的可靠性R的计算公式如下:
    • 串联系统,一个设备不可靠,整个系统崩溃:
    • 并联系统,所有设备都不可靠,整个系统才崩溃:
    • 混合系统,划分串联、并联:

猜你喜欢

转载自blog.csdn.net/python_jeff/article/details/112468388