Atri Website

Back

重点#

  1. 磁盘的组成结构
  2. 磁盘的术语
  3. 磁盘的读写操作
  4. 磁盘的数据存储格式
  5. 磁盘的性能指标和计算
  6. RAID 可靠性的提高

1. 组成结构#

磁盘存储器主要由盘片、磁盘驱动器、磁盘控制器三部分组成。

  • 磁盘驱动器:驱动磁盘旋转并通过磁头在盘面上执行读/写操作
  • 磁盘控制器:磁盘驱动器与主机之间的接口,负责接收并解析来自 CPU 的命令,向磁 盘驱动器发送控制信号,同时监控其运行状态。

如图 7.15 所示,磁盘驱动器主要由多张硬盘片、主轴、主轴电机、移动臂、磁头和控制电 路等部分组成,通过在接口插座上的电缆与磁盘控制器连接。

每个盘片的两个面上各有一个磁头,因此,磁头号就是盘面号。磁头和盘片相对运动形成的圆,构成一个磁道(track)。

磁头位于不同的半径上,则得到不同的磁道。多个盘面上的相同磁道形成一个柱面(cylinder),所以,磁道号就是柱面号

信息存储在每个盘面的磁道上,每个磁道被分成若干扇区(sector),以扇区为单位进行磁盘读写。在写磁盘时,总是在一个柱面的所有磁道上写完后,再移到下一个柱面的各磁道上写信息。磁道从外向里编址,最外面的为磁道 0。

2. 术语#

磁盘由多个记录面(也称盘面)构成,每一个记录面包含多条磁道,每条磁道被划分成多个扇区,磁盘的读写以扇区作为最小单位。

  • 记录面数:记录面数等于磁头数量,记录面也称盘面。

    数据的读写需要磁头参与,而一个磁盘有两个面(盘面),可以两面都记录独立的信息,因此一个磁盘可以在上下各自分配一个磁头进行数据的读写,这样一个磁盘就可以使用两个盘面记录数据。

  • 柱面数:由”2.组成结构”知,磁头和盘片的相对运动画成的若干个圆把盘面划分成了多个磁道,每一个磁道就对应着一个柱面。因此,柱面数等于磁道数。

  • 扇区数:每一个磁道被划分为多个扇区,因此扇区数指的是单条磁道上的扇区数量。扇区是单次读写的最小单位

3. 读写操作#

磁盘地址

磁盘读写是指根据磁盘寄存器里的盘地址,向目标磁道的正确扇区进行读写。

磁盘地址由三部分组成:柱面号、盘面号、扇区号

3

例如,磁盘有 16 个盘面,每个盘面有 256 个磁道,每个磁道划分为 16 个扇区,则每个扇区 的地址可用 16 位二进制代码表示:其中柱面号占 8 位,盘面号占 4 位,扇区号占 4 位。

考试会考地址计算


磁盘进行读写时,一般有三个步骤:寻道、旋转等待、数据传输(读写)

3.1. 寻道#

磁盘控制器把磁盘地址送到磁盘驱动器的磁盘地址寄存器后,便产生寻道命令,以启动磁头定位伺服系统根据柱面号移动磁头到指定的柱面(磁道),并选择指定的磁头准备进行读写。此操作完成后,发出寻道结束信号给磁盘控制器,并转旋转等待操作。

总结:磁盘控制器依据磁盘地址寄存器里的磁盘地址,发出指令控制对应盘面号的磁头,将磁头移动到正确的磁道上,准备进行读写。(控制磁头移到目标磁道)

3.2. 旋转等待#

盘旋转开始时,首先将扇区计数器清零,以后每来一个扇区标志脉冲,扇区计数器加 1,把计数内容与磁盘地址寄存器中的扇区号进行比较,如果一致,则输出扇区符合信号,说明要读写的信息已经转到磁头下方。

总结:磁头开始沿磁道寻找目标扇区。

3.3. 读写#

扇区符合信号送给磁盘控制器后,磁盘控制器的读写控制电路开始动作。如果是写操作,就将数据送到写电路,写电路根据记录式成相应的写电流脉冲;如果是读操作,则由读出放大电路读出内容送磁盘控制器。

4. 数据存储格式#

还没有看见有考,可跳过

磁盘的数据存储格式有两种:定长记录格式和不定长记录格式

4

图为温切斯特磁盘的磁道格式示意图,它采用定长记录格式。最早的硬盘由 IBM 公司开发,称为温切斯特盘,简称温盘,它是所有现代硬盘产品的原型。

如图所示,每个磁道由若干扇区(也称扇段)组成,每个扇区记录一个数据块,每个扇区有头空(间隙 1)、ID 域、间隙 2、数据域和尾空(间隙 3)组成。头空占 17 字节,不记录数据,用全 1 表示,磁盘转过该区域的时间是留给磁盘控制器作准备用的;ID 域有同步字节、磁道号、磁头号、扇段号和相应的 CRC 码组成;数据域占 515 字节,有同步字节、数据和相应的 CRC 码组成,其中真正的数据区占 512 字节;尾空是在数据块的 CRC 码后的区域,占 20 字节,也用全 1 表示。

5. 性能指标#

此部分为重点内容,涉及较多计算

磁盘存储器的性能指标包括记录密度、存储容量、数据传输速率和平均存取时间等。

5.1. 记录密度#

记录密度即单位面积上可存储的二进制数据量,通常以道密度、位密度和面密度表示。

  • 道密度:沿磁盘半径方向单位长度上的磁道数,也就是磁道的分布密度。

  • 位密度:单条磁道单位长度上可记录的二进制位数。

  • 面密度:位密度与道密度的乘积,反映单位面积的存储能力。

低密度存储与高密度存储:

低密度存储方式下,所有磁道上的扇区数相同,因此每个磁道上的位数相同,因而内道上的位密度比外道位密度高。

高密度存储方式下,每个磁道上的位密度相同,因此外道上的扇区数比内道上扇区数多,因而整个磁盘的容量比低密度盘高得多。

5.2. 磁盘容量#

存储容量指整个存储器所能存放的二进制信息量,它与磁表面大小和记录密度密切相关。

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

磁盘的未格式化容量是指按道密度和位密度计算出来的容量,它包括了可利用的所有磁化单元的总数,未格式化容量(或非格式化容量)比格式化后的实际容量要大。

非格式化的计算公式为:

非格式化容量=记录面数×柱面数×每磁道磁化单元数\text{非格式化容量} = \text{记录面数} \times \text{柱面数} \times \text{每磁道磁化单元数}

其中每个磁道的磁化单元数就是没有进行格式化划分前,每一条磁道能够存储的所有比特位数。

但在实际使用时,我们需要按照扇区为单位进行读写,因此实际使用前需要进行格式化。

格式化容量的计算公式为:

格式化容量=记录面数×柱面数×每道扇区数×512 B\text{格式化容量} = \text{记录面数} \times \text{柱面数} \times \text{每道扇区数} \times \text{512 B}

看末尾,当进行格式化后,每一条磁道被划分为多个扇区,每一个扇区默认可存储 512 字节的数据,当然具体依照题目给的数据。

因此,非格式化容量 >> 格式化容量


非格式化容量是磁盘理论可承载数据的最大值,格式化容量是实际可用的容量。二者之间的差距在于:在划分扇区时,需要使用一些数据块作为格式字段(类似 HTTP 协议的首部行),作为对扇区进行编号(扇区号)和数据校验。而这些内存不存储用户的数据,但是占用了磁道的磁化单元(比特数)。而至于是哪些字段占用了内存,可查看”4. 数据存储格式”部分。

实际上,非格式化容量的计算方式有两种,主要区别是磁盘是低密度存储还是高密度存储方式。

低密度存储下,每条磁道的容量相等,所以同一个记录面下,不管是最内侧的磁道,还是最外侧的磁道,所拥有磁化单元是相等的(即使最外侧磁道更长):

磁盘总容量=记录面数×理论柱面数×内圆周长×最内道位密度磁盘总容量=记录面数×理论柱面数×内圆周长×最内道位密度

相比之下,高密度存储(如现代硬盘的 ZBR 区位记录)会让外圈磁道存更多扇区,每条磁道容量不等,计算时需要分区域求和。(不会考这么细)

5.3. 平均存取时间#

磁盘响应读写请求的过程如下:首先将读写请求在队列中排队,出队列后由磁盘控制器解析请求命令,然后进行寻道、旋转等待和读写数据3个过程。

因此,总响应时间的计算公式为

响应时间=排队延迟+控制器时间+寻道时间+旋转等待时间+数据传输时间\text{响应时间}=排队延迟 + 控制器时间+寻道时间+旋转等待时间 + 数据传输时间

磁盘上的信息以扇区为单位进读写,上式中后面3个时间之和称为存取时间 TT 。即:

存取时间 T=寻道时间+旋转等待时间+数据传输时间存取时间\ T=寻道时间+旋转等待时间+数据传输时间
  • 寻道时间:磁头移动到指定磁道所需时间;
  • 旋转等待时间(旋转延迟):目标扇区旋转到磁头下方所需要的时间;
  • 数据传输时间:传输一个扇区的时间。

不过相比于寻道时间和旋转等待时间,数据传输时间非常小,可以忽略不计。因此磁盘的平均存取时间近似于平均寻道时间加上平均等待时间

寻道时间:由于磁头原来位置与目标磁道的距离远近不一,因此取平均寻道时间为最大寻道时间的一半,即磁头从最外道移到最内道的时间的一半。

旋转等待时间(旋转延迟):取平均等待时间为磁盘旋转半周的时间

例如:磁盘转速为 60006000 转/分,则平均旋转等待时间

Twait=12×16000/60sec=5 msT_{wait} = \frac{1}{2} \times \frac{1}{6000/60} sec = 5\ ms

5.4. 数据传输速率#

磁盘在单位时间内向主机传送的数据量,单位 B/sB/s 。设磁盘转速为 rr 转/秒,单条磁道的容量为 NN 字节,则 最大传输速率为:

Dr=rN(Byte/s)D_r = rN (Byte/s)

5.5. 例题#

例题一#

平均存取时间 TT = 平均寻道时间 + 控制器延时 + 平均旋转等待时间 + 数据传输时间

由题,平均寻道时间和控制器延时已给出。平均旋转等待时间为磁盘转动一周时间的一半,因此平均等待时间为

12×11000060×103=3 ms\frac{1}{2} \times \frac{1}{\frac{10000}{60}\times 10^3} = 3\ ms

3 ms3 \ ms ,而数据传输时间为:

4×1000B20×106B/s×103=0.2 ms\frac{4 \times 1000 B}{20 \times 10^6 B/s} \times 10^3 = 0.2\ ms

所以结果为:6+0.2+3+0.2=9.4 ms6 + 0.2 + 3 + 0.2 = 9.4 \ ms

例题二#

平均存取时间 TT = 平均寻道时间 + 控制器延时 + 平均旋转等待时间 + 数据传输时间

由于本题没有给每个扇区具体的数据字节数,因此可知该题是使用平均寻道时间 + 平均旋转延迟来近似平均存取时间。求出平均旋转等待时间即可。

T=12×17200/60×1034.16 msT_\text{旋} = \frac{1}{2} \times \frac{1}{7200/60} \times 10^3 \approx 4.16 \ ms

所以平均存取时间为 8+4.1612.2 ms8 + 4.16 \approx 12.2 \ ms

6. RAID#

RAID 即冗余磁盘阵列,目的是为了改善磁盘的存储性能。

RAID技术的基本思想是,将多个独立的物理磁盘驱动器按某种方式组织成磁盘阵列,以增加容量,在操作系统下这些物理磁盘驱动器被视为单个逻辑驱动器;采用类似于主存中的多模块交叉技术,使数据按小条带或大数据块交叉分布存储在多个盘体上,通过让磁盘并行工作来提高数据传输速度;并用冗余磁盘技术来进行错误恢复以提高系统可靠性。


只考提高 RIAD 可靠性的措施

当前 RIAD 方案分为 8 个等级,了解其中几个即可。

RAID 的分级如下所示。在RAID1~RAID5 等方案中,当任意磁盘发生故障时,可随时拔出损坏的磁盘并插入新盘,系统仍能恢复或维持数据完整性,显著提升了可靠性。

  • RAID0:无冗余、无校验的磁盘阵列。
  • RAID1:镜像磁盘阵列。
  • RAID2:采用海明码进行纠错的磁盘阵列。
  • RAID3:位交叉奇偶校验的磁盘阵列。
  • RAID4:块交叉奇偶校验的磁盘阵列。
  • RAID5:无独立校验盘的分布式奇偶校验磁盘阵列。

RIAD 0 没有冗余磁盘,没有任何校验信息,通过把连续的多个数据块放在不同的物理磁盘的扇区里,利用多个磁盘交叉并行读取(条带化技术),扩展了存储容量、提高了读写速度,但是只适合容量和速度要求非常高的、非关键数据的场景。

图中是一个磁盘,红框部分称为磁盘的一个盘片,盘片有两个记录面(盘面)

RIAD 1 使用镜像方式实现一对一冗余。发送读请求时,由定位时间最少的磁盘返回数据;进行写入时,两个磁盘并行写入数据,因此写的性能由两次写操作中写入最慢的磁盘决定。代价是:由于两个磁盘存储的是同一份数据,因此容量减半。不过提高了可靠性,因为是镜像方式进行了数据的备份和冗余。

核心考点

总结:观察 RIAD X 的做法,可以发现 RIAD 阵列有以下特点:

  1. 通过多个磁盘的并行工作提高数据传输速率
  2. 通过并行存取提高系统的吞吐量(类似主存的低位交叉编址)
  3. 通过镜像备份实现高可用性
  4. 通过数据校验机制提高容错能力

第三点和第四点是提高可靠性的关键

计算机组成原理:磁盘介绍
Author Juyao Huang
Published at May 31, 2026
Comment seems to stuck. Try to refresh?✨