Skip to content

408

计算机组成原理

CO-03-07 磁盘存储器与SSD


一、定位信息

项目内容
所属圈层核心层
前置知识回顾需了解辅助存储器在存储层次中的位置(容量大、速度慢、成本低),了解磁性材料可以存储二进制信息的基本原理
知识网络定位本单元是存储器层次结构中辅助存储器层的详细讲解。磁盘和SSD是主存的下一级存储,虚拟存储器(CO-03-11)的页面调度以磁盘/SSD为后备存储。理解磁盘的物理结构和访问时间是计算辅存性能的基础
考点热度等级H级 — 磁盘访问时间计算是高频考点,近5年出现≥4次,常以选择题或计算题形式出现

二、知识点讲解

2.1 磁盘存储器的基本结构

硬盘(Hard Disk Drive, HDD) 由以下部件组成:

  1. 磁盘片(Platter):铝合金或玻璃基片,表面涂有磁性材料。一个硬盘可以有多个盘片,每个盘片有上下两个记录面(最上面和最下面的面通常不使用)。

  2. 磁头(Head):每个记录面对应一个磁头,用于读写磁盘表面的磁化信息。磁头悬浮在盘片表面上方(飞行高度约几纳米到几十纳米),不与盘面接触。

  3. 主轴(Spindle):盘片固定在主轴上,由电机驱动匀速旋转。常见转速有5400rpm、7200rpm、10000rpm、15000rpm。

  4. 磁头臂(Actuator Arm):所有磁头固定在同一个磁头臂上,由音圈电机驱动,沿盘片径向移动(寻道)。

2.2 磁盘的数据组织

磁道(Track):盘片表面上以主轴为圆心的一系列同心圆。每个记录面有数千到数万条磁道。

柱面(Cylinder):所有记录面上同一半径的磁道组成一个柱面。即第 ii 个柱面 = 所有记录面的第 ii 条磁道。

扇区(Sector):每条磁道被划分为若干扇区,是磁盘读写的最小单位。每个扇区通常512字节或4KB。

磁盘地址:磁盘上的每个扇区可用三维地址唯一标识:(柱面号,磁头号,扇区号)

2.3 磁盘的访问时间

磁盘访问一个扇区的时间由三部分组成:

Taccess=Tseek+Trotation+TtransferT_{access} = T_{seek} + T_{rotation} + T_{transfer}

1. 寻道时间 TseekT_{seek}:磁头移动到目标磁道所需的时间。

  • 包括启动磁头臂的时间和磁头匀速/加速移动的时间
  • 平均寻道时间:Tseek\overline{T_{seek}},通常为几毫秒到十几毫秒
  • 最大寻道时间 = 从最外圈到最内圈的时间
  • 最小寻道时间 = 0(已在目标道上)
  • 平均寻道时间 ≈ 最大寻道时间的1/3(经验公式)

2. 旋转延迟 TrotationT_{rotation}:等待目标扇区旋转到磁头下方的时间。

  • 取决于磁盘转速 nn(rpm)
  • 平均旋转延迟 = 磁盘旋转半周的时间:

Trotation=12×60n=30n(秒)\overline{T_{rotation}} = \frac{1}{2} \times \frac{60}{n} = \frac{30}{n} \text{(秒)}

  • 最大旋转延迟 = 旋转一周的时间
  • 最小旋转延迟 = 0(扇区刚好在磁头下方)

3. 数据传输时间 TtransferT_{transfer}:读写一个扇区的数据所需的时间。

  • 取决于磁盘转速和每磁道的扇区数
  • 传输一个扇区的时间 = 旋转一个扇区所占角度的时间

2.4 磁盘的数据传输率

数据传输率(Data Transfer Rate):单位时间内磁盘能传输的数据量。

数据传输率=每磁道字节数×转速\text{数据传输率} = \text{每磁道字节数} \times \text{转速}

D=N×n60D = N \times \frac{n}{60}

其中 NN 为每磁道的字节数,nn 为转速(rpm)。

2.5 磁盘的记录方式

1. 定长记录格式:每条磁道的扇区数相同。外圈磁道的扇区与内圈磁道的扇区物理大小不同(外圈大、内圈小),但存储的数据量相同。优点是控制简单,缺点是外圈磁道浪费空间。

2. 等位密度记录格式(ZBR,Zone Bit Recording):外圈磁道划分更多扇区,内圈较少。每条磁道的位密度(每英寸存储的bit数)大致相同,充分利用了盘面面积。现代硬盘多采用此方式。

2.6 SSD(固态硬盘)

SSD(Solid State Drive) 基于NAND Flash存储芯片,没有机械运动部件。

核心特点:

  • 无机械延迟:没有寻道时间和旋转延迟,随机访问速度远快于HDD
  • 读快写慢:读取速度很快,但写入需要先擦除再编程,速度较慢
  • 擦写次数有限:每个存储单元约10万~100万次擦写寿命
  • 抗震动:无机械部件,适合移动设备
  • 功耗低:无需电机驱动
  • 价格高:单位容量价格高于HDD

2.7 HDD vs SSD 对比

对比项HDDSSD
存储介质磁性材料(磁盘片)NAND Flash芯片
机械部件有(盘片旋转、磁头移动)
随机读取速度慢(需寻道+旋转)快(无机械延迟)
顺序读取速度中等
写入速度中等较慢(需擦除再写)
抗震动
功耗
容量中等
价格/GB
寿命无写入次数限制有擦写次数限制
适用场景大容量存储、冷数据系统盘、频繁随机访问

三、记忆与理解辅助

3.1 口诀记忆

口诀:"寻道旋转传数据,三段时间要相加"

磁盘访问时间 = 寻道时间 + 旋转延迟 + 传输时间

口诀:"平均寻道三分一,平均旋转半圈时"

  • 平均寻道时间 ≈ 最大寻道时间 / 3
  • 平均旋转延迟 = 旋转半周的时间 = 30/n 秒(n为rpm)

3.2 计算公式速查

计算项公式
平均旋转延迟Trot=30n\overline{T_{rot}} = \frac{30}{n} 秒(nn为转速rpm)
数据传输率D=N×n60D = \frac{N \times n}{60} B/s(NN为每磁道字节数)
平均访问时间T=Tseek+Trot+TtransferT = \overline{T_{seek}} + \overline{T_{rot}} + T_{transfer}
磁盘容量C=记录面数×磁道数/面×扇区数/道×字节数/扇区C = \text{记录面数} \times \text{磁道数/面} \times \text{扇区数/道} \times \text{字节数/扇区}

3.3 直观类比

磁盘访问就像在唱片机上找一首歌:

  1. 寻道:把唱针移到对应的轨道上(磁头移到目标磁道)
  2. 旋转等待:等唱片转到歌曲开始的位置(目标扇区转到磁头下方)
  3. 播放:歌曲播放(数据传输)

四、例题与精解

例题1(基础)

题目:某磁盘转速为7200rpm,每条磁道有200个扇区,每个扇区512字节。求: (1)平均旋转延迟; (2)数据传输率。

命题意图:考查磁盘基本参数的计算。

审题分析:转速 n=7200rpmn=7200\text{rpm},扇区数/道=200,字节/扇区=512。

解题思路:直接使用公式。

完整步骤

(1)平均旋转延迟:

Trot=30n=307200=0.00417s=4.17ms\overline{T_{rot}} = \frac{30}{n} = \frac{30}{7200} = 0.00417\text{s} = 4.17\text{ms}

(2)数据传输率:

每磁道字节数 N=200×512=102400=100KBN = 200 \times 512 = 102400 = 100\text{KB}

D=N×n60=102400×720060=102400×120=12,288,000B/s12MB/sD = \frac{N \times n}{60} = \frac{102400 \times 7200}{60} = 102400 \times 120 = 12,288,000 \text{B/s} \approx 12\text{MB/s}

方法反思:数据传输率也可以理解为"每秒磁头下方经过的数据量"。转一圈经过 NN 字节,每秒转 n/60n/60 圈。


例题2(中等)

题目:某磁盘组有6个记录面(盘片),每面有10000条磁道,每条磁道有500个扇区,每个扇区512字节。磁盘转速为10000rpm,平均寻道时间为6ms。问: (1)该磁盘的总容量是多少? (2)读取一个扇区的平均访问时间是多少? (3)若要连续读取同一磁道上的全部500个扇区,总时间是多少?

命题意图:考查磁盘容量计算和访问时间的完整分析。

审题分析:6个记录面,10000道/面,500扇区/道,512B/扇区,10000rpm,平均寻道6ms。

解题思路:容量 = 面数 × 道数 × 扇区数 × 字节数。访问时间 = 寻道 + 旋转延迟 + 传输时间。连续读取同一磁道只需一次寻道和一次旋转延迟。

完整步骤

(1)磁盘总容量:

C=6×10000×500×512=15,360,000,000B=15GBC = 6 \times 10000 \times 500 \times 512 = 15,360,000,000 \text{B} = 15\text{GB}

(注:按 1GB=109B1\text{GB}=10^9\text{B} 计算;若按 1GB=230B1\text{GB}=2^{30}\text{B},约为14.3GiB)

(2)读取一个扇区的平均访问时间:

  • 平均寻道时间:Tseek=6ms\overline{T_{seek}} = 6\text{ms}
  • 平均旋转延迟:Trot=3010000=0.003s=3ms\overline{T_{rot}} = \frac{30}{10000} = 0.003\text{s} = 3\text{ms}
  • 传输一个扇区的时间:

Ttransfer=60n×1500=6010000×1500=0.006×0.002=0.000012s=0.012msT_{transfer} = \frac{60}{n} \times \frac{1}{500} = \frac{60}{10000} \times \frac{1}{500} = 0.006 \times 0.002 = 0.000012\text{s} = 0.012\text{ms}

  • 平均访问时间:

T=6+3+0.012=9.012msT = 6 + 3 + 0.012 = 9.012\text{ms}

(3)连续读取同一磁道500个扇区:

同一磁道的连续扇区读取只需要一次寻道一次旋转延迟(找到第一个扇区),然后连续传输。

  • 寻道时间:6ms(平均)
  • 旋转延迟:3ms(平均,等待第一个扇区转到磁头下方)
  • 传输500个扇区 = 传输一整条磁道 = 旋转一周的时间

Ttransfer_all=6010000=6msT_{transfer\_all} = \frac{60}{10000} = 6\text{ms}

Ttotal=6+3+6=15msT_{total} = 6 + 3 + 6 = 15\text{ms}

方法反思

  1. 连续读取同一磁道的关键优化:只需一次寻道+一次旋转延迟,省去了多次寻道和旋转的开销。
  2. 如果是读取不同磁道的数据,每次都需要重新寻道和旋转延迟,总时间会大幅增加。
  3. 这就是为什么磁盘顺序读取远快于随机读取。

五、考情分析

项目内容
近5年考查频次≥4次
常见题型选择题(磁盘参数概念)、计算题(访问时间、数据传输率)
分值占比选择题2分,计算题3–5分
命题趋势磁盘访问时间计算是经典计算题。近年趋势是将磁盘参数与RAID、文件系统等知识点结合,或与SSD特性对比出选择题

六、易错点提醒

易错点1

  • 错误表现:计算平均旋转延迟时用"旋转一周的时间"而非"旋转半周"
  • 错误原因:平均情况下,目标扇区在磁头到达后平均还需要旋转半周
  • 正确做法:平均旋转延迟 = 12×60n\frac{1}{2} \times \frac{60}{n}。"平均"意味着等概率出现在任何位置,最坏一周,最好0周,平均半周

易错点2

  • 错误表现:连续读取同一磁道的多个扇区时,每个扇区都加上旋转延迟
  • 错误原因:没有理解"同一磁道连续扇区"的含义
  • 正确做法:同一磁道的扇区在旋转过程中依次经过磁头下方,只需一次寻道+一次旋转延迟,之后连续传输。传输时间 = 读取所有扇区的时间

易错点3

  • 错误表现:将磁盘容量单位GB和GiB混用,导致计算偏差
  • 错误原因1GB=1091\text{GB}=10^9 字节(SI标准),1GiB=2301\text{GiB}=2^{30} 字节(IEC标准),两者不等
  • 正确做法:考研中通常按 1K=10241\text{K}=1024 计算。若题目明确说明则按题目要求

易错点4

  • 错误表现:认为SSD的写入速度比HDD快
  • 错误原因:只关注了SSD"无机械延迟"的优点
  • 正确做法:SSD的读取速度确实远快于HDD,但写入需要先擦除再编程,受NAND Flash特性限制,写入速度可能不如预期。特别是随机小文件写入,SSD受写放大和擦除开销影响

七、来源标注

  • 依据2026考研统考大纲(408-计算机组成原理-第三章"存储器层次结构")
  • 依据大学本科经典教材共识:唐朔飞《计算机组成原理》、白中英《计算机组成原理》

考研全科复习资料 - 基于2026考研统考大纲