一、磁盘存储器

磁盘以磁性材料为存储介质,容量大、成本低,可重复写入和删除,断电后仍能长期保存信息;读取是非破坏性的,无须再生。缺点是存取速度较慢、机械结构复杂,对工作环境要求较高。

1. 组成与磁记录原理

磁盘存储器由磁盘驱动器、磁盘控制器和盘片组成。

  • 磁盘驱动器: 驱动磁盘旋转,通过磁头在盘面上读写。
  • 磁盘控制器: 连接主机与驱动器,接收并解析 CPU 命令,向驱动器发送控制信号,监控其运行状态。
概念 含义
记录面(盘面) 用于记录数据的盘片表面,每个磁头负责一个记录面的读写。
磁道 盘面上的同心圆形记录区域。
扇区 每条磁道划分出的记录区域,是磁盘读写的最小单位。
柱面 所有记录面上同编号、相同半径的磁道组成的集合。

记录面数=磁头数;柱面数=每个记录面的磁道数。

相邻磁道和扇区之间有间隙,以防止读写错误。按教材中各磁道扇区数相同的模型,扇区按固定圆心角划分,越靠近内圈,记录密度越大,整盘存储能力受最内圈最大记录密度限制。

磁记录原理: 磁头与磁性记录介质相对运动时,通过电磁转换完成读写;按一定规则将二进制数据序列编码为磁化翻转状态序列。

磁盘高速缓存(Disk Cache): 在内存中开辟空间,暂存待写入磁盘的数据,以“簇”(若干连续扇区)为单位集中写入,减少频繁的小块写入;缓存中的数据再次被使用时,可直接从缓存读取。

2. 记录密度与容量

指标 含义
道密度 沿盘面半径方向,单位长度内的磁道数。
位密度 一条磁道单位长度内可记录的二进制位数。
面密度 道密度与位密度的乘积,反映单位面积的存储能力。

磁盘容量分为非格式化容量和格式化容量:

  • 非格式化容量: 磁记录表面可利用的磁化单元总数。
  • 格式化容量: 按特定格式组织后,实际可用于存储数据的容量。
C非格式化=记录面数×柱面数×每磁道磁化单元数C_{\text{非格式化}}=\text{记录面数}\times\text{柱面数}\times\text{每磁道磁化单元数} C格式化=记录面数×柱面数×每道扇区数×每扇区字节数\boxed{C_{\text{格式化}}=\text{记录面数}\times\text{柱面数}\times\text{每道扇区数}\times\text{每扇区字节数}}

非格式化容量大于格式化容量,因为格式化需要预留扇区间隙、同步字段等开销。做容量题时,用有效记录面数,不能直接用盘片数。

3. 响应时间、存取时间与传输率

一次磁盘请求包含排队、控制器处理和三个关键物理操作:寻道 → 旋转等待 → 数据传输。

T响应=T排队+T控制器+T寻道+T旋转等待+T传输T_{\text{响应}}=T_{\text{排队}}+T_{\text{控制器}}+T_{\text{寻道}}+T_{\text{旋转等待}}+T_{\text{传输}}

从磁头定位开始到数据传输完成所需的时间,称为存取时间:

T存取=T寻道+T旋转等待+T传输\boxed{T_{\text{存取}}=T_{\text{寻道}}+T_{\text{旋转等待}}+T_{\text{传输}}}
时间 含义与计算要点
寻道时间 磁头移动到目标磁道所需时间;教材中平均寻道时间通常取最大寻道时间的一半。
旋转等待时间 目标扇区旋转到磁头下方所需时间;平均等待时间为旋转半圈的时间。
数据传输时间 读取或写入数据所需时间,取决于磁盘转速和数据量。

设转速为 rr 转/秒,每条磁道容量为 NN 字节,则最大数据传输率为:

Dr=rN(B/s)\boxed{D_r=rN\quad(\text{B/s})}

平均旋转等待时间为 1/(2r)1/(2r) 秒;在同道连续传输、忽略额外开销的模型下,传输 bb 字节所需时间为 T传输=b/(rN)T_{\text{传输}}=b/(rN) 秒。

若转速给的是 RPM(转/分钟),先除以 60,换成转/秒。 平均旋转等待为半圈,不代表每次都固定等待半圈。

例: 平均寻道时间为 8 ms,转速为 7200 RPM,每道 200 个扇区,连续读取同一道上的 10 个扇区:

r=7200/60=120 转/秒T平均旋转等待=12×120×1000≈4.17 msT传输=10200×1120×1000≈0.42 msT平均存取=8+1000240+10×1000200×120≈12.58 ms\begin{aligned} r&=7200/60=120\ \text{转/秒}\\ T_{\text{平均旋转等待}}&=\frac{1}{2\times120}\times1000\approx4.17\ \text{ms}\\ T_{\text{传输}}&=\frac{10}{200}\times\frac{1}{120}\times1000\approx0.42\ \text{ms}\\ T_{\text{平均存取}}&=8+\frac{1000}{240}+\frac{10\times1000}{200\times120}\approx12.58\ \text{ms} \end{aligned}

中间值保留精度,最后统一取近似值。

4. 磁盘地址与工作过程

磁盘地址通常由三部分组成:

柱面(磁道)号 → 盘面(磁头)号 → 扇区号。

若有 CC 个柱面、HH 个盘面,每道有 SS 个扇区,则三个字段分别需要 ⌈log⁡2C⌉\lceil\log_2 C\rceil、⌈log⁡2H⌉\lceil\log_2 H\rceil、⌈log⁡2S⌉\lceil\log_2 S\rceil 位。

例: 256 个柱面、16 个盘面,每道 16 个扇区,地址共需 8+4+4=168+4+4=16 位。

磁盘的主要操作有寻址、读盘和写盘,各有对应控制字。工作时先读取控制字,再执行相应操作;机械磁盘的读写串行进行。

5. 磁盘阵列(RAID)

RAID(独立冗余磁盘阵列)将多个独立物理磁盘组合为一个逻辑磁盘,通过交叉分割存储、并行访问及冗余机制,提高存储性能或可靠性。

级别 主要方式
RAID 0 无冗余、无校验,数据块交替存放在不同磁盘上。
RAID 1 镜像备份。
RAID 2 用海明码纠错。
RAID 3 位交叉奇偶校验。
RAID 4 块交叉奇偶校验。
RAID 5 分布式奇偶校验,无独立校验盘。
  • RAID 0: 多盘并行读写可提高传输速度、扩大容量,但没有容错能力。
  • RAID 1: 两盘同步读写,互为镜像;一盘故障时,可从另一盘读取完整数据,代价是有效容量减半。
  • 镜像与校验: 镜像提高可靠性,校验机制提供容错能力。

RAID 不会提高单个磁盘的磁记录密度。

二、固态硬盘(SSD)

1. 组成、特点与操作单位

SSD 是基于闪存技术的非易失性存储设备,由闪存芯片和闪存翻译层组成。

  • 闪存芯片: 保存数据,代替传统磁盘的机械存储部分。
  • 闪存翻译层: 将 CPU 发出的逻辑块读写请求转换为物理闪存的读写控制信号,相当于承担磁盘控制器的角色。

一个闪存芯片包含多个块,每个块包含多个页。教材给出的常见页大小为 512 B~4 KB,每块包含 32~128 页。

重点:按页读写,按块擦除;先擦除,才能重新写入。

一个块被擦除后,其中所有页都可重新写入。块的擦写次数有限,反复擦写会造成磨损,最终失效。

相较机械磁盘,SSD 无机械运动部件,随机访问延迟低,并具有无噪声、无振动、功耗低和抗震性强等优势。

2. 随机写入为何较慢

按教材模型,修改已有有效数据的页时,主要开销有:

  1. 擦除耗时长: 擦除通常比访问慢一个数量级。
  2. 需要搬迁数据: 先将原块中的有效页复制到新的、已擦除的块,再写入修改后的页。

因此,修改一页可能牵涉整个块中的有效数据,不能直接像普通内存那样覆盖。

3. 磨损均衡(Wear Leveling)

闪存擦写寿命有限;若写入集中于少数物理块,这些块会提前磨损。磨损均衡将擦写负担分散到更多块,延长整体使用寿命。

类型 方法
动态磨损均衡 写入新数据时,优先选择擦写次数较少的空闲块,避免反复写入同一区域。
静态磨损均衡 即使没有新数据写入,也会迁移数据:将高磨损块中的有效数据移到低磨损块,让高磨损块更多承担只读数据,低磨损块承担更多写入。

磨损均衡只能延长使用寿命,不能消除闪存擦写次数有限的限制。