计算机的外存储器又称为辅助存储器,目前主要使用磁表面存储器。
所谓“磁表面存储”,是指把某些磁性材料薄薄地涂在金属铝或塑料表面上作为载磁体来存储信息。磁盘存储器、磁带存储器和磁鼓存储器均属于磁表面存储器。
磁盘存储器
磁盘存储器的优点有:
- 存储容量大,位价格低;
- 记录介质可重复使用;
- 记录信息可长期保存而不丢失,甚至可脱机存档;
- 非破坏性读出,读出时不需要再生
缺点:读取速度慢,机械结构复杂,对工作环境要求较高。
外存储器既可以作为输入设备也可以作为输出设备。
磁盘存储器的组成
磁盘存储器是由磁盘驱动器、磁盘控制器和盘片组成。
- 磁盘驱动器。核心部件是磁头组件和盘片组件,温彻斯特盘是一种可移动磁头固定盘片的硬件存储器。
- 磁盘控制器。硬盘存储器和主机的接口,主流的标准有IDE、SCSI、SATA等。
磁盘的存储区域。一块硬盘含有若干纪录面,每个记录面划分为若干磁道,而每条磁道又划分为若干扇区,扇区(也称块),是磁盘读写的最小单位,即磁盘按块存取。
- 磁头数(Heads),即记录面数,表示硬盘总共又多少个磁头。磁头用于读取/写入盘片上记录面的信息,一个记录面对应一个磁头。
- 柱面数(Cylinders),表示硬盘每面盘片上又多少条磁道。
- 扇区数(Sectors),表示每条磁道上有多少个扇区。
磁盘的性能指标
- 记录密度:记录密度是指盘片单位面积上记录的二进制的信息栏,通常以道密度、位密度和面密度表示。道密度是沿磁盘半径方向单位长度上磁道数,位密度是磁道单位长度上能记录的二进制代码位数,面密度是位密度和道密度的乘积。
- 磁盘的容量:一个磁盘所能存储的字节总数称为磁盘容量。磁盘容量有非格式化容量和格式化容量之分。
- 平均存取时间。由寻道时间(磁头移动到目的磁道的时间)、旋转延迟时间(磁头定位到要读写扇区的时间)和传输时间(传输数据所花费的时间)三部分构成,如下图所示。
- 数据传输率。磁盘存储器在单位时间内向主机传送数据的字节数,称为数据传输率。假设磁盘旋转数位r转/秒,每条磁道容量为N字节,则数据传输率为
$$
D_r=rN
$$
磁盘地址
主机向磁盘控制器发送寻址信息,磁盘的地址一般如下图所示。
例:若系统中有4个驱动器,每个驱动器带一个磁盘,每个磁盘有256个磁道、16个盘面,每个盘面划分为16个扇区,则每个扇区地址要18位二进制代码:
通过2位表示0~3范围,可以覆盖4个驱动器,磁道可以用8位进行表示,4位可以表示16个盘面号,同样16个扇区也只需4比特即可表示。
磁盘的工作过程
磁盘的主要操作就是寻址、读盘、写盘。每个操作都对应一个控制字,硬盘工作时,第一步是取控制字,第二部是执行控制字。
硬盘属于机械式部件,其读写操作时串行的,不可能在同一时刻既读又写,也不可能在同一时刻读两组数据或写两组数据。
磁盘阵列
RAID(Redundant Array of Inexpensive Disks,廉价冗余磁盘阵列)是将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储,并行访问,具有更好的存储性能、可靠性和安全性。
RAID的分级如下所示。在RAID1~RAID5几种方案中,无论何时有磁盘损坏,都可随时拔出受损的磁盘再插入好的磁盘,而数据不会损坏,提高了系统的可靠性。
- RAID0:无冗余和无校验的磁盘阵列(没有容错能力)。
- RAID1:镜像磁盘阵列(有容错能力,但存储容量会减少一半)。
- RAID2:采用纠错的海明码的磁盘阵列。
- RAID3:位交叉奇偶校验的磁盘阵列。
- RAID4:块交叉奇偶校验的磁盘阵列。
- RAID5:无独立校验的奇偶校验磁盘阵列。
固态硬盘(SSD)
固态硬盘是一种基于闪存技术的存储器。它与U盘并没有本质上的差别,只是容量更大,存取性能更好。一个SSD由多个闪存芯片和闪存翻译层组成,闪存芯片替代机械硬盘的机械驱动器,而闪存翻译层将来自CPU的逻辑块读写请求翻译成对底层物理设备的读写控制信号,因此闪存翻译层相当于扮演了磁盘控制器的角色,下图就是固态硬盘的结构。
一块闪存通常由m块(相当于机械硬盘的磁道)组成,每块由P页(相当于机械硬盘的块/扇区)组成。通常,页的大小是512B4KB,每块由32128页组成,块的大小为16KB~512KB。数据是以页为单位读写的。只有在一页所属的块整个被擦除后,才能写这一页。某个块进行了约10万次重复写之后,就会磨损坏,不能再使用(而机械硬盘的扇区不会因读写次数过多而损坏)。
SSD的读的速度要比写的速度快,写前若页中有数据需要对当前所属块进行擦除。
SSD由半导体存储器构成,没有移动的部件,因而随机访问时间比机械硬盘快的多。
SSD目前通常会采用磨损均衡技术(将“擦除”平均分布在各个块上,以提升使用寿命),逻辑块号可以通过闪存翻译层映射到其他物理地址上。
磨损均衡技术一般包括:
- 动态磨损均衡:写入数据时,优先选择累计擦除次数少的新闪存块。
- 静态磨损均衡:SSD监测并自动进行数据分配、迁移,让老旧的闪存块承担以读为主的储存任务,让较新的闪存块承担更多的写任务。
SSD解决数据丢失问题
由于SSD以块为单位进行擦除,而读写又以页为单位,因此可能要进行写之前需要擦除当前块页的元素,因此可以通过将要写入的页所在的块中的所有元素复制到其他块中,并在复制块中在要写入的页位置上写入新数据,然后等擦除完块中元素后再重新复制回去。