Appearance
外部存储器
2026 大纲 三(五)外部存储器(1 磁盘存储器;2 固态硬盘 SSD)。RAID 已不在现行大纲内,本文仅在文末折叠一张对照表供了解。
一次磁盘访问里,真正读数据的时间不到千分之一
后面会算到一个具体的数:读一个扇区,寻道 8 ms、旋转等待 4.17 ms、真正传输数据 0.017 ms。机械动作吃掉了 99.9% 的时间。
这个比例决定了磁盘这一节的全部形状。所有的结构设计都是在想办法少动机械——地址为什么把柱面号放在最高位、为什么读写的最小单位是扇区而不是字节、SSD 凭什么快两个数量级,答案都在这里。
先立住两个由"磁头只能一起动"推出来的结论:
🔴 所有磁头固定在同一个移动臂上、只能一起移动,任一时刻必然停在相同半径上。各记录面上编号相同的磁道纵向贯穿构成的集合就是柱面。由此得到两条换算:柱面数
单面磁道数、记录面数 磁头数。
🔴 柱面内换磁头不需要重新寻道,只需电子切换。这正是磁盘地址把柱面号放在最高位的原因——地址连续递增时先在同一柱面内换磁头(快),换完所有盘面才移到下一柱面(慢),把最耗时的寻道降到最少。
还有一条概念上的定性,判断题很爱考:
🔴 磁盘是直接存取而不是随机存取。 随机存取要求访问任意单元的时间相同,而磁盘取决于磁头与目标的距离、差别可达数十倍。它先寻道定位到大致位置、再在道内顺序查 ID,两者结合,所以叫直接存取。
一、磁盘的物理结构
磁盘由多个盘片叠装而成,每片有一至两个记录面,每面划分为若干同心圆磁道,每道再划分为若干扇区(读写的最小单位,通常 512 B 或 4 KB)。

图 7.15 磁盘驱动器的物理组成(袁春风《计算机组成与系统结构(第 3 版)》)
图中最关键的一点是:移动臂上叠着一组磁头,它们固定在一起、只能一起移动——柱面与"柱面内换磁头无须寻道"两条结论都由此而来。
记录密度:每道扇区数到底相不相同
描述"信息排得多密"的量有两个,方向不同别混:道密度沿半径方向数,是单位长度内的磁道数;位密度沿磁道方向数,是单位长度内存放的二进制位数。由此分出两种记录方式,"每道扇区数是否相同"的答案随之相反:
| 方式 | 约束的是 | 结果 |
|---|---|---|
| 低密度(等角)方式 | 各道扇区数相同(按固定圆心角划分) | 各道位数相同,周长小的内道位密度更高;整盘能力受限于内道的最大位密度 |
| 高密度(等密度)方式 | 各道位密度相同 | 周长大的外道扇区数更多,容量更大 |
二、磁盘地址与容量
两处最容易出错的地方先说在前面:
🔴 地址的三段要分别向上取整,不能先把三个数量相乘再统一取对数。 14 位表示不了 20000 个柱面。另外,"
个双面盘片"的磁头数是 ,拿盘片数去取对数会少一位。
🔴 容量乘法默认的是低密度(等角)方式,它成立的前提是"每道扇区数是同一个数"。条件里若写明"外道扇区数多于内道"(高密度方式)就不能套这个乘法,只能按各道分别累加。判据很直接:题目能不能给出唯一的"每道扇区数"。
为什么非格式化容量更大
一个完整扇区依次由间隙、同步字段、ID 域(柱面号/磁头号/扇区号)、数据、CRC 校验构成:

图 7.17 温切斯特磁盘的磁道记录格式(袁春风《计算机组成与系统结构(第 3 版)》)
教材给出的实际数字:一个扇段共 600 字节,其中数据域 515 字节(同步字节 1 + 数据 512 + CRC 2),其余 85 字节是间隙与 ID 域。用户能用的是 512 B、磁道上实际占 600 B,多出的部分就是格式化开销。
一组参数从头算到尾:地址三段各占几位(做完自己的题想核对取整方向与"盘片还是盘面"这两处时展开)
设定:20000 个柱面、每道 500 个扇区、4 个双面盘片。
共
磁盘存储器的三层组成
| 层次 | 是什么 |
|---|---|
| 盘片 | 记录介质本身,多片叠装,各面镀磁性材料 |
| 磁盘驱动器 | 主轴电机 + 磁头组 + 寻道伺服机构,负责全部机械动作 |
| 磁盘控制器 | 接收主机命令、控制驱动器、与总线通信。DMA 方式下向 CPU 发出总线请求的正是它 |
三、磁盘存取时间
| 分量 | 含义 | 平均值 |
|---|---|---|
| 寻道时间 | 磁头移动到目标磁道 | 约为最大寻道时间的一半(机械动作,最慢的一项) |
| 旋转等待时间 | 目标扇区转到磁头下方 | 转半圈的时间 |
| 数据传输时间 | 读写数据本身 | 已知字节数与速率: |
| 控制器延时 | 控制器处理命令的开销 | 题目给出时才计入 |
三条使用规则:
⚠️ "平均寻道时间约为最大寻道时间的一半"是统计期望(目标磁道均匀分布下),不是某次访问的实际值。平均旋转等待就是转半圈,
。
⚠️ 控制器延时是独立的一项,不含在前三项里。 判断方法很简单:条件里给了几个时间量,结果里就该出现几个。题面专门给出"磁盘控制器延时 0.2 ms"却不把它加进去,是这类题最主要的失分点。
⚠️ 单位口径要全程一致。 容量与速率习惯取
B、 B;中途从 切到 ,结果在两种口径下都站不住。
三个分量的量级差有多悬殊:一道盘完整算完并双算法互验(想弄清"机械动作占了 99.9%"这个结论从哪来时展开)
两种传输算法之所以等价:读一个扇区就是磁头划过
设定:某磁盘转速 7200 转/分,平均寻道时间 8 ms,每磁道 500 个扇区、每扇区 512 B。求读取一个扇区的平均存取时间与数据传输速率。
第一步,把转速换成每转时间。
第二步,逐项求三个分量。
| 分量 | 计算 | 结果 |
|---|---|---|
| 平均寻道时间 | 条件给出 | |
| 平均旋转等待 | 转半圈 | |
| 传输一个扇区 | 算法二: |
第三步,求数据传输速率。 每磁道容量
用算法一验算传输时间:
三个分量的量级差别极大:寻道 8 ms、旋转 4.17 ms、传输 0.017 ms。机械动作占了 99.9% 的时间,数据传输本身几乎可以忽略——这正是磁盘慢的根源,也是 SSD 快的原因。
四、固态硬盘(SSD)
SSD 由闪存芯片阵列与闪存翻译层组成,没有机械部件,全部特性都源自 Flash 的物理约束(详见 半导体随机存取存储器)。多出来的"区块"这一级,是 SSD 与磁盘一切行为差异的源头:
| 磁盘 | SSD | 是什么单位 |
|---|---|---|
| 扇区 | 页(512 B ~ 4 KB) | 读 / 写 |
| (无对应物) | 区块(32~128 页,16~512 KB) | 擦除,也是寿命的计数单位 |
| 磁盘控制器(逻辑块号 → 柱面/磁头/扇区) | 闪存翻译层(逻辑块号 → 物理页) | 对外接口翻译 |
三条硬约束
| 约束 | 内容 | 后果 |
|---|---|---|
| ① 写前必须擦除 | 编程只能把 1 改成 0;要把某位改回 1,只能擦除该页所在的整个区块 | 不能原地更新 → 写放大 |
| ② 区块内按顺序写 | 区块被擦除后,块内各页必须按顺序写入 | 无法单独回填某一页,逼出"整块搬迁" |
| ③ 擦除次数有限 | 每个区块只能承受有限次擦除/编程,重复写几千到几万次后即成为坏块 | 寿命有限 → 需磨损均衡 |
磨损均衡与容量、寿命
若某些块被反复擦写,它们会远早于其他块损坏,整盘容量提前缩水;磨损均衡让"总擦除次数"这个预算能按整盘来算,而不是被几个热点块提前耗光——下面的寿命公式正建立在这个前提上。
🔴 这个公式有两处符号最容易搞反:每块可擦写次数乘的是"容量"不是"块数";写放大系数在分母(从闪存的写入预算折回主机的写入预算要除)。两处都反过来会把寿命高估
倍。
| 对比项 | SSD | 磁盘 |
|---|---|---|
| 随机读 | 极快,几十微秒 | 慢,几毫秒到几十毫秒(需寻道 + 旋转) |
| 顺序写 | 快 | 较快 |
| 随机写 | 较慢,几百微秒(需先擦后写) | 慢 |
| 抗震性 | 强 | 弱(有机械部件) |
| 功耗 / 噪声 | 低 / 无 | 高 / 有 |
| 价格 | 高 | 低 |
| 寿命的限制因素 | 擦写次数 | 机械磨损 |
整体上 SSD 的随机读写时延比磁盘低约两个数量级——差距全部来自磁盘的机械动作,而不是数据传输本身。
表里唯一反直觉的是"随机写较慢"那一行,它的因果链值得记:
🔴 写前必须擦除整个区块
不能原地更新 改一页要"搬迁有效页 写新块 擦旧块"(垃圾回收) 写放大。 顺序写则是整块从头写到尾、没有搬迁量,写放大系数接近 1。所以 SSD 的顺序写快而随机写慢,磁盘则是两者都慢。
写放大系数
对外把这一切藏起来的是闪存翻译层:它把"读第几个逻辑块"翻译成对闪存芯片的读写控制,地位相当于磁盘控制器。正因为有它,"页 / 区块""不能原地更新"这些细节对主机是隐藏的。
顺带回答一个常被问的:SSD 为什么还没取代磁盘——单位容量成本仍显著更高,且擦写次数有限;以顺序写为主的大容量冷数据存储,磁盘依然更经济。
一块 SSD 的容量与寿命从头算到尾,并看写放大改一点会怎样(想确认"擦写次数乘容量""写放大在分母"两处没搞反时展开)
先把两个前置机制补齐。垃圾回收:要修改某一页,必须把该块中仍然有效的页复制到新块、在新块写入更新后的页、再擦除旧块,这套由闪存翻译层在后台完成的"搬迁 + 擦除"正是写放大的来源。磨损均衡分两种:动态磨损均衡在写入时优先选择擦写次数较少的空闲块,静态磨损均衡定期把高磨损块的数据迁移到低磨损块、使其转为以读为主。
设定:某 SSD 有 4096 个区块,每块 64 页,每页 4 KB;每块可擦写 10000 次,写放大系数为 2,主机每天写入 10 GB。
把写放大系数从 2 压到 1.1,寿命立刻涨到
磁盘阵列 RAID 各级别(已不在现行大纲内,只在别处看到 RAID 字样想确认它是什么时展开)
RAID 把多个物理磁盘组合成一个逻辑磁盘,通过并行访问提高性能、通过冗余提高可靠性。
| 级别 | 特点 |
|---|---|
| RAID0 | 条带化,无冗余,速度最快 |
| RAID1 | 镜像备份,有效容量减半,可靠性高 |
| RAID2 | 海明码纠错 |
| RAID3 | 位交叉 + 独立校验盘 |
| RAID4 | 块交叉 + 独立校验盘 |
| RAID5 | 分布式奇偶校验,无独立校验盘 |
考点速记
- 所有磁头固定在一起移动,故同编号磁道构成柱面、柱面内换磁头不需要寻道,这也是柱面号排在地址最高位的原因;地址各段位数分别向上取整,
个双面盘片对应 个磁头。磁盘是直接存取,读写的最小单位是扇区不是字节。 - 存取时间
寻道 旋转等待(转半圈) 传输( 控制器延时,题目给了就要算),机械动作占绝大部分;容量乘法默认低密度方式,扇区里的间隙、ID 与 CRC 使非格式化容量 格式化容量。 - SSD 的行为差异全来自比磁盘多出的区块这一级:写前必须擦整块
不能原地更新 垃圾回收与写放大 随机写不快;寿命公式里写放大系数在分母。
这一节在真题里被考过的形式(下方「真题练习」逐题对应):
- 给转速、平均寻道时间、每道扇区数,问访问一个扇区的平均存取时间:转一圈
,旋转等待取一半,传输时间 转一圈时间 每道扇区数,三项相加。 - 同上但改给传输速率与扇区大小,并多给一个控制器延时:传输时间改用
,并且把控制器延时也加上。⚠️ 条件里给了几个时间量,答案里就该出现几个——漏掉控制器延时正是这类题准备好的那个错误选项。 - 挑关于磁盘存储器的错误叙述:常设的错点是"最小读写单位为一字节"——应为扇区。而"格式化容量比非格式化容量小""扇区中包含数据、地址和校验等信息""由磁盘控制器、磁盘驱动器和盘片组成"三条都对。
- 大题里问扇区地址的三个字段名称与各占多少位:柱面号 / 磁头号 / 扇区号,各段分别向上取整再相加。同一道大题后面通常接着问平均访问时间和 DMA 请求次数(
扇区字节数 缓冲寄存器字节数)。 - RAID 那道 2013 年的题(问哪些措施提高可靠性:镜像与奇偶校验是,条带化与 Cache 不是):RAID 已不在现行大纲内,这道题只作历史参考,不必投入复习时间。
易错:漏算控制器延时。它是独立的一项,不含在寻道 / 旋转 / 传输里。
易错:把旋转等待算成转一圈。平均值是转半圈。
易错:答"磁盘的最小读写单位是字节"或"磁盘是随机存取"。是扇区、是直接存取。
易错:把
个双面盘片的磁头数算成 。应为 。
易错:地址三段先相乘再取一次对数。要分别向上取整后相加。
ssd-co 这个 topic 目前没有对口真题(想确认下方第二个练习区为什么是空的时展开)
大纲三(五)2 明确列有"固态硬盘(SSD)",但它至今没有在 408 真题里单独成题,所以下方 ssd-co 的真题练习是空的——这不是漏挂标签。
SSD 现阶段的复习优先级:把"多出区块这一级 → 写前擦除 → 不能原地更新 → 写放大 → 随机写慢、寿命有限"这条因果链讲得出来即可,容量与寿命的公式了解到会代数即可,不必做大量练习。它通常是作为磁盘的对照项出现在选择题的选项里。
教材出处
- 袁春风《计算机组成与系统结构(第 3 版)》§7.3.1 磁盘存储器的结构:磁盘存储器由磁记录介质、磁盘驱动器、磁盘控制器三部分组成、图 7.15 磁盘驱动器的物理组成(p219);图 7.17 温切斯特磁盘的磁道记录格式与扇区各域的字节数(p220)
- 同书 §7.3.2 磁盘存储器的性能指标:道密度与位密度的定义、低密度与高密度两种存储方式下每道扇区数的差别(p220)
- 同书 §7.3.6 固态硬盘:闪存翻译层相当于磁盘控制器、区块与页的规模(页 512 B~4 KiB、每区块 32~128 页)、SSD 的三条限制、均化磨损、随机读写时延比硬盘低两个数量级(p225)
相关知识
半导体随机存取存储器|存储器的层次结构|DMA直接存储器访问