第四章《存储器》(下)

高速缓冲存储器

概述

在多体并行存储系统中,由于I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/O设备访存的现象,致使CPU空等一段时间,甚至可能等待几个主存周期,从而降低CPU的工作效率。为了避免CPU和I/O设备争抢访存,可在CPU与主存之间加一级缓存,主存可将CPU要取的信息提前送至缓存,一旦主存与I/O设备交换时,CPU可直接从缓存中读取所需信息,不必空等而影响效率。

另外,主存速度的提高始终跟不上CPU的发展,高速缓存Cache解决主存与CPU速度不匹配问题

CPU从主存取指令或取数据,在一定时间内,只是对主存局部区域地址区域的访问,这是由于指令和数据在主存内都是连续存放的,并且有些指令和数据往往会被多次调用,即指令和数据在主存的地址分布不是随机的,而是相对的簇聚,使得CPU在执行程序时,访存具有相对的局部性,这就称为程序访问的局部性原理。根据这一原理,只要将CPU近期要用到的程序和数据提前从主存送到Cache,那么就可以做到CPU在一定时间内只访问Cache.

第四章《存储器》(下)

Cache的工作原理

第四章《存储器》(下)

第四章《存储器》(下)

第四章《存储器》(下)

第四章《存储器》(下)

Cache的基本结构

第四章《存储器》(下)

它主要由Cache存储体,地址映射变换机构,Cache替换机构几大模块组成

Cache存储体

  • Cache存储体以块为单位与主存交换信息,为加速Cache与主存之间的调动,主存大多采用多体结构,且Cache访存的优先级最高

地址映射变换机构

  • 地址映射变换机构是将CPU送来的主存地址转换为Cache地址
  • 由于主存和Cache的块大小相同,块内地址都是相对于块的起始地址的偏移量(即低位地址相同),因此地址变换主要是主存的块号(高位地址)与Cache块号间的转换
  • 若转换后的Cache块已与CPU欲访问的主存块建立了对应关系,即已命中,则CPU可直接访问Cache存储体。如果转换后的Cache块与CPU欲访问的主存块未建立对应关系,即不命中,此刻CPU在访问主存时,不仅将该字从主存取出,同时将它所在的主存块一并调入Cache,供CPU使用,当然此刻能将主存块调入Cache内,也是由于Cache原来处于未被装满的状态。反之,倘若Cache原来已被装满,即已无法将主存块调入Cache内时,就得采用替换策略。

替换机构

  • 当Cache内容已满,无法接受来自主存块的信息时,就由Cache内的替换机构按一定的替换算法来确定应从Cache内移出哪个块返回主存,而把新的主存块调入Cache。
  • Cache对用户是透明的,即用户编程时所用到的地址是主存地址,用户不知道这些主存块是否已调入Cache内。因为,将主存块调入Cache的任务全由机器硬件自动完成

Cache的读写操作

读操作

第四章《存储器》(下) 

写操作

  • Cache与主存的一致性
  • 写直达法
    • 写操作时数据既写入Cache又写入主存
    • 写操作时间就是访问主存的时间,Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现
  • 写回法
    • 写操作时只把数据写入Cache而不写入主存
    • 当Cache数据被替换出去时才写回主存
  • 写操作时间就是访问Cache的时间
  • Cache块退出时,被替换的块需写回主存,增加了Cache的复杂性

Cache的改进

Cache刚出现时,典型系统只有一个缓存,近年来普遍采用多个Cache。其含义有两方面:一是增加Cache的级数,二是将统一的Cache变成分立的Cache

单一缓存和两级缓存

  • 所谓单一缓存,是指在CPU和主存之间只设一个缓存。随着集成电路逻辑密度的提高,又把这个缓存直接与CPU制作在同一个芯片内,故又称为片内缓存(片载缓存)
  • 片内缓存可以提高外部总线的利用率,因为将Cache制作在芯片内,CPU直接访问Cache不必占用芯片外的总线(系统总线),而且片内缓存与CPU之间的数据通路很短,大大提高了存取速度,外部总线又可更多地支持I/O设备与主存的信息传输,增强了系统的整体效率。
  • 由于片内缓存在芯片内,其容量不可能很大,这就可能致使CPU欲访问的信息不在缓存内,势必通过系统总线访问主存,访问次数多了,整机速度就会下降
  • 如果在主存与片内缓存之间再加一级缓存,称为片外缓存,由比主存动态RAM和ROM存取速度更快的静态RAM组成。而且不使用系统总线作文片外缓存与CPU之间的传送路径,使用一个独立的数据路径,以减轻系统总线的负担。那么,从片外缓存调入片内缓存的速度就能提高,而CPU占用系统总线的时间也大大下降,整机工作速度有明显改进。这种由片外缓存和片内缓存组成的Cache称为两级缓存,并称片内缓存为第一级,片外缓存为第二级

统一缓存和分立缓存

  • 统一缓存是指指令和数据都存放在同一缓存内的Cache
  • 分立缓存是指指令和数据分别存放在两个缓存中,一个称为指令Cache,一个称为数据Cache
  • 两种缓存的选用主要考虑如下两个因素
    • 它与主存结构有关,如果计算机的主存时统一的(指令与数据存储在同一主存内),则Cache使用统一缓存,否则分立缓存
    • 它与机器对指令执行的控制方式有关。当采用超前控制或流水线控制方式时,一般都采用分立缓存

Cache---主存地址映射

由主存地址映射到Cache地址称为地址映射。地址映射方式很多,有直接映射(固定的映射关系),全相联映射(灵活性大的映射关系),组相联映射(上述两种映射的折中)。

直接映射

第四章《存储器》(下)

这种方式的优点是实现简单,只需利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中。

直接映射方式的缺点是不够灵活,因每个主存块只能固定地对应某个缓存块,即使缓存内还空着许多位置也不能占用,使缓存的存储空间得不到充分的利用。此外,如果程序恰好要重复访问对应同一缓存位置的不同主存块,就要不停地进行替换,从而降低命中率。

全相联映射

第四章《存储器》(下)

这种方式所需的逻辑电路甚多,成本较高,实际的Cache还要采用各种措施来减少地址的比较次数。

组相联映射

第四章《存储器》(下)

替换策略

当新的主存块需要调入Cache并且它的可用空间位置又被占满时,需要替换掉Cache的数据,这就产生了替换策略(算法)问题

先进先出(First-In-First-Out,FIFO)算法

FIFO算法选择最早调入Cache的字块进行替换,它不需要记录各字块的使用情况,比较容易实现,开销小,但没有根据访存的局部性原理,故不能提高Cache的命中率,因为最早调入的信息可能以后还要用到,或者经常要用到,如循环程序

近期最少使用(Least Recently Used,LRU)算法

LRU算法比较好地利用访存局部性原理,替换出近期用得最少的字块。它需要随时记录Cache中各字块的使用情况,以便确定哪个字块是近期最少使用的字块。它实际是一种推测的方法,比较复杂,一般采用简化的方法,只记录每个块最近一次使用的时间。LRU算法的平均命中率比FIFO的高

随机法

随机法是随机确定被替换的块,比较简单,可采用一个随机数产生一个随机的被替换的块,但它也没有根据访存的局部性原理,故不能提高Cache的命中率

小结

直接       某一主存块只能固定映射到某一缓存块

全相联    某一主存块映射到任一缓存块

组相联    某一主存块只能映射到某一缓存组的任一

辅助存储器

概述

1.辅助存储器的特点

辅助存储器作为主存的后援设备又称为外部存储器,简称外存,它与主存一起组成了存储器系统的主存-辅存层次。与主存相比,辅存具有容量大,速度慢,价格低,可脱机保存信息等特点,属“非易失性”存储器。不直接与CPU交换信息

目前,广泛用于计算机系统的辅助存储器有硬磁盘,软磁盘,磁带,光盘等。前三种均属磁表面存储器。

2.磁表面存储器的主要技术指标

  • 记录密度
    • 记录密度通常指单位长度内所存储的二进制信息量。
    • 磁盘存储器用道密度和位密度表示;
    • 磁带存储器则用位密度表示。
    • 磁盘沿半径方向单位长度的磁道数为道密度,单位是tpi(道每英寸)或tpm(道每毫米).
    • 为了避免干扰,磁道与磁道之间需保持一定距离,相邻两条磁道中心线之间的距离被称为道距,因此道密度Dt等于道距P的倒数
    • Dt=1/P
    • 位密度Db可按下式计算
    • Db=ft/∏dmin
    • ft为每道总位数,dmin为同心圆中的最小直径
  • 存储容量
    • 存储容量指外存所能存储的二进制信息总数量,一般以位或字节为单位。
    • C=n×k×s
    • C为存储总容量,n为存放信息的盘面数,k为每个盘面的磁道数,s为每个磁道上记录的二进制代码数
    • 磁盘有格式化容量和非格式化容量两各个指标。非格式化容量是磁表面可以利用的磁化单元总数。格式化容量是按某种特定的记录格式所能存储信息的总量,即用户可以使用的容量,它一般为非格式化容量的60%-70%。
  • 平均寻址时间(Ta)
    • 由存取方式分类可知,磁盘采取直接存取方式,寻址时间分两部分
      • 磁头寻址目标磁道的找道时间ts
      • 找到磁道后,磁头等待欲读/写的磁道区段旋转到磁头下方所需要的等待时间tw
    • Ta=ts+tw
    • 平均寻址时间是磁盘存储器的一个重要指标。硬磁盘的平均寻址时间比软磁盘的平均寻址时间短,所以硬磁盘存储器比软磁盘存储器速度快
  • 数据传输率
    • 数据传输率Dr是指单位时间内磁表面存储器向主机传送数据的位数或字节数,它与记录密度Db和记录介质的运动速度V有关
    • Dr=Db×V
  • 误码率
    • 误码率是衡量磁表面存储器出错概率的参数,它等于从辅存读出时,出错信息位数和读出信息的总位数之比。为了减少出错率,磁表面存储器通常采用循环冗余码来发现并纠正错误

磁记录原理和记录方式

第四章《存储器》(下)

第四章《存储器》(下)

硬磁盘存储器

硬磁盘存储器是计算机系统中最主要的外存设备。

1.硬磁盘存储类型

  • 硬磁盘存储器的盘片是由硬质铝合金材料制成的,其表面涂有一层可被磁化的硬磁特性材料。
  • 按磁头的工作方式可分为固定磁头磁盘存储器移动磁头磁盘存储器
  • 按磁盘是否具有可换性,又可分为可换盘磁盘存储器固定盘磁盘存储器

2.硬磁盘存储器的结构

第四章《存储器》(下)

磁盘驱动器

第四章《存储器》(下)

第四章《存储器》(下)

 软磁盘存储器

第四章《存储器》(下)

 第四章《存储器》(下)

光盘存储器

第四章《存储器》(下)

上一篇:CPU缓存,cache line 和 False Sharing 简介


下一篇:MySQL数据库的优化–运维架构师