#硬盘 #计算机组成
有时间学习一下基础知识,这方面网络上有很多的资料,所以有很多借鉴的部分。被借鉴的文章都罗列在参考资料中。
1. 机械硬盘结构
机械硬盘结构图
1.1 磁盘
用来保存数据。一个磁盘由多个盘片组成,一个盘片有正反两个盘面可以读写数据。磁盘面从 0 开始编号,因为每个盘面都会有一个磁头,所以这个也是磁头的编号。现在硬盘一般会有几片到十几二十片不等的盘片,也就意味着会有几十个磁盘面。
1.2 磁头
磁头用于从磁盘上读取数据,在一个磁头上有两个小磁头,一个是读磁头一个是写磁头。磁头极其贴近的悬浮在磁盘上,但是绝对不与盘面接触,否则会出现“头损坏”或者磁盘损坏。磁头读出经过它下面的盘面的磁方向,也可以改变其磁方向,以便在磁盘上写入信息。
一个硬盘里磁头并不是只有一个磁头,上图就是4个磁头,也可以有更多的比如6个磁头。两个磁头读一个磁盘的正反面,所以磁盘的数量是磁头的一半,但是磁盘有两面,所以磁盘面的数量和磁头一样。
1.3 磁头摆臂和主轴
磁头摆臂控制磁头位置,把磁头送到指定磁道。主轴控制磁盘旋转,把指定位置移动到磁头下。磁头摆臂配合主轴才能定位到数据的位置。
1.4 磁盘上的机关
1.4.1 磁道
磁道是单个盘面上的同心圆。磁盘看起来是一个完整的圆盘,实际上内部分了多个磁道(在2008年,一个典型的磁盘上每英寸有大约10W个磁道,大约能存储100W个二级制位)。
- 编号:磁道的编号从最外圈开始,最外圈是0磁道。
- 其他:一些硬盘上有一个比较重要的磁道——最外圈的 0 磁道。这个磁道不会储存用户数据,我们开机常见的 MBR 引导,就是把引导数据(告诉电脑系统如何启动的数据)和 DPT 硬盘分区数据放到了 0 磁道 0 柱面 1 扇区(UEFI 引导则是把引导文件放在了 FAT 分区里),文件系统的 FAT 文件分配表有时候也是放到 0 柱面上。0 磁道损坏也是机械硬盘最常见的损坏原因。
1.4.2 扇区
扇区是被间隙分隔的圆的片段。间隙未被磁化成0或1。就读写磁盘而言扇区是不可分隔的单位,
- GAP:扇区中出现了部分损坏则整个扇区都将无法使用。间隙大约占整个磁道的10%,用于帮助表示扇区的起点。
- 磁道中的扇区数量:图中显示每个磁道有相同的扇区数,实际上每个磁道的扇区数通常是不同的,靠外圈磁道的扇区数比内圈磁道的扇区数要多。扇区的大小是固定的,但是越靠外磁道的周长越长,可以分隔出更多的扇区。通常是512字节。不过由于硬盘容量的不断提高,有些厂商的扇区大小设定为4096字节。
- 编号:扇区也是有编号的,从1开始,但扇区号并不是挨着排列的,而是跳着排的。比如2号扇区并不是紧跟着1号扇区,而是在第八个扇区位。之所以这么排是因为相邻扇区之间的物理距离极小,而磁盘又是一直不停在飞转,磁头读完一个扇区可能还来不及读相邻的那个扇区,磁盘就已经转飞跑了。如果扇号挨着排,那磁头就只能傻在那里等磁盘转一圈,这样效率就会很低,所以跳着排可以给磁盘足够的读数据时间,同时满足高效。
1.4.3 柱面
硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,磁道从外缘的0开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。也可以这么理解:所有盘面上半径相同的磁道构成了柱面。
- 柱面数量:磁盘上的柱面数量和磁道数量是相等的。
- 其他:机械硬盘数据读写时操作系统会优先按柱面进行,即磁头会在读写完当前磁道后,切换磁头读写其他盘面上的磁道,当柱面内的所有磁道都读写完后才会调动磁头摆臂移动到其他柱面进行读写。因为切换磁头是电子切换,而切换柱面需要摆臂进行机械切换,速度上电子切换要比机械切换快得多。
2. 机械硬盘读写原理
机械硬盘读写数据可以分成三个步骤:地址转换、物理定位、数据读写。
2.1 地址寻找
2.1.1 逻辑扇区号
需要用硬盘进行读写的时候,操作系统需要告诉硬盘需要读写的数据所在的位置,为了方便记录数据所在的位置,人们为每个扇区定义了一个唯一的编号即 逻辑扇区号(LBA,Logical Block Address 逻辑地址块) 。
逻辑扇区号
=
(
柱面号总磁头数
+
磁头编号
)
∗
每个磁道有多少个扇区
+
扇区编号
−
1
逻辑扇区号 = (柱面号总磁头数+磁头编号) * 每个磁道有多少个扇区 + 扇区编号 - 1
逻辑扇区号=(柱面号总磁头数+磁头编号)∗每个磁道有多少个扇区+扇区编号−1
2.1.2 块/簇
由于扇区实在是太小了,磁头从数量庞大的扇区中找出来目标扇区实在很麻烦,所以操作系统又将相邻的扇区定义为一个“块”(在Linux系统中称为块,Windows系统中称为簇)。
扇区是磁盘最小的物理存储单元,也就是磁头每次读取数据的最小单位,磁头读数据都是一扇一扇来的;块/簇是操作系统对硬盘管理所使用的逻辑概念。
块可以包括多个扇区,比如2、4、8、16、32或者64个扇区(块的大小是在硬盘被格式化的时候指定的,一般有1K、2K、4K,其中4K比较常用)。操作系统规定,一个块只能放一个文件内容。所以,文件占用的空间只会是块的整数倍,即便是文件的实际大小小于一块那也得占一块的空间。
2.2 物理定位
这里的物理定位指的是让磁头移动到指定的扇区起始点上,需要两个动作分别是寻道和旋转。
2.2.1 寻道
系统得到了数据的物理地址后告知磁盘,磁盘移动磁头摆臂到指定的磁道位置。磁头从开始移动到数据所在磁道所需要的时间就是寻道时间,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。
2.22 旋转
磁盘主轴转动,把磁盘上对应的扇区转到磁头下。旋转所需的时间取决于磁盘转速。普通硬盘一般都是7200rpm(rpm是每分钟转动次数),慢的5400rpm。换算一下7200rpm约等于转一圈需要8.3ms,5400rpm约等于转一圈需要11.11ms。只有当要读写的扇区刚刚在磁头下经过才需要旋转一整圈,所以旋转的平均耗时估计也在5-10ms左右。
2.3 读写
在磁盘和磁头都就到了指定位置后就需要通过磁头读写片面上的数据。
机械硬盘的盘片多数采用铝合金制成,盘面上会涂一层厚度约0.5mm左右的磁性材料,这层磁性材料其实就是极微小的磁化金属粒。
2.3.1 写
磁头将代表信息的“0”和“1”的电信号转化为磁信号。大体上是通过给电流给写磁头产生一个强大的磁场,改变底下盘片上经过的磁颗粒的极性,从而实现写入数据。
2.3.2 读
读取数据的时候,大体上就是检测底下磁颗粒经过让读磁头产生的电流,从而确定对应位置磁颗粒的极性,达到读取数据的目的。
3. 参考资料
“下载速度变慢、卡99%、电脑变卡”竟然是因为它!
程序员需要知道的SSD基本原理
SSD固态硬盘的结构和基本工作原理概述
硬盘三大种类(SSD;HHD;HDD)
《数据库系统实现 第二版》
机械硬盘拆解实录
浅谈机械磁盘相关概念:磁道、柱面、扇区、寻道时间、旋转延迟、数据传输时间
硬盘基本知识(磁头、磁道、扇区、柱面)
深入了解机械硬盘的读写原理和碎片的产生
科技简章032-机械硬盘
数字存储完全指南 02:机械硬盘的原理与参数详解