1、硬盘内部硬件结构和工作原理详解硬盘内部硬件结构和工作原理详解LT图1-5 盘体的完整结构硬盘驱动器采用高精度、轻型磁头驱动/定位系统。这种系统能使磁头在盘面上快速移动,可在极短的时间内精确地定位在由计算机指令指定的磁道上。目前,磁道密度已高达5 400Tpi(每英寸磁道数)或更高;人们还在研究各种新方法,如在盘上挤压(或刻蚀)图形、凹槽和斑点等作为定位和跟踪标记,以提高到和光盘相等的道密度,从而在保持磁盘机高速度、高位密度和高可靠性的优势下,大幅度提高存储容量。硬盘驱动器内的电机都是无刷电机,在高速轴承支持下机械磨损很小,可以长时间连续工作。高速旋转的盘体产生明显的陀螺效应,所以,在硬盘工作时
2、不宜搬动,否则,将增加轴承的工作负荷。为了高速存储和读取信息,硬盘驱动器的磁头质量小,惯性也小,所以,硬盘驱动器的寻道速度明显快于软驱和光驱。硬盘驱动器磁头与磁头臂及伺服定位系统是一个整体。伺服定位系统由磁头臂后的线圈和固定在底板上的电磁控制系统组成。由于定位系统限制,磁头臂只能在盘片的内外磁道之间移动。因此,不管开机还是关机,磁头总在盘片上;所不同的是,关机时磁头停留在盘片启停区,开机时磁头“飞行”在磁盘片上方。1.3 硬盘的逻辑结构(1)硬盘上的数据是如何组织与管理的呢?硬盘首先在逻辑上被划分为磁道、柱面以及扇区,其结构关系如图1-6所示。图1-6 磁头、柱面和扇区每个盘片的每个面都有一个
3、读写磁头,磁盘盘面区域的划分如图1-7所示。磁头靠近主轴接触的表面,即线速度最小的地方,是一个特殊的区域,它不存放任何数据,称为启停区或着陆区(Landing Zone),启停区外就是数据区。在最外圈,离主轴最远的地方是“0”磁道,硬盘数据的存放就是从最外圈开始的。那么,磁头是如何找到“0”磁道的位置的呢?从图1-5中可以看到,有一个“0”磁道检测器,由它来完成硬盘的初始定位。“0”磁道是如此的重要,以致很多硬盘仅仅因为“0”磁道损坏就报废,这是非常可惜的。这种故障的修复技术在后面的章节中有详细的介绍。图1-7 硬盘盘片的启停区和数据区早期的硬盘在每次关机之前需要运行一个被称为Parking的
4、程序,其作用是让磁头回到启停区。现代硬盘在设计上已摒弃了这个虽不复杂却很让人不愉快的小缺陷。硬盘不工作时,磁头停留在启停区,当需要从硬盘读写数据时,磁盘开始旋转。旋转速度达到额定的高速时,磁头就会因盘片旋转产生的气流而抬起,这时磁头才向盘片存放数据的区域移动。盘片旋转产生的气流相当强,足以使磁头托起,并与盘面保持一个微小的距离。这个距离越小,磁头读写数据的灵敏度就越高,当然对硬盘各部件的要求也越高。早期设计的磁盘驱动器使磁头保持在盘面上方几微米处飞行。稍后一些设计使磁头在盘面上的飞行高度降到约0.1m0.5m,现在的水平已经达到0.005m0.01m,这只是人类头发直径的千分之一。气流既能使磁
5、头脱离开盘面,又能使它保持在离盘面足够近的地方,非常紧密地跟随着磁盘表面呈起伏运动,使磁头飞行处于严格受控状态。磁头必须飞行在盘面上方,而不是接触盘面,这种位置可避免擦伤磁性涂层,而更重要的是不让磁性涂层损伤磁头。但是,磁头也不能离盘面太远,否则,就不能使盘面达到足够强的磁化,难以读出盘上的磁化翻转(磁极转换形式,是磁盘上实际记录数据的方式)。硬盘驱动器磁头的飞行悬浮高度低、速度快,一旦有小的尘埃进入硬盘密封腔内,或者一旦磁头与盘体发生碰撞,就可能造成数据丢失,形成坏块,甚至造成磁头和盘体的损坏。所以,硬盘系统的密封一定要可靠,在非专业条件下绝对不能开启硬盘密封腔,否则,灰尘进入后会加速硬盘的
6、损坏。另外,硬盘驱动器磁头的寻道伺服电机多采用音圈式旋转或直线运动步进电机,在伺服跟踪的调节下精确地跟踪盘片的磁道,所以,硬盘工作时不要有冲击碰撞,搬动时要小心轻放。这种硬盘就是采用温彻斯特(Winchester)技术制造的硬盘,所以也被称为温盘。其结构特点如下。磁头、盘片及运动机构密封在盘体内。磁头在启动、停止时与盘片接触,在工作时因盘片高速旋转,带动磁头“悬浮”在盘片上面呈飞行状态(空气动力学原理),“悬浮”的高度约为0.1m0.3m,这个高度非常小,图1-8标出了这个高度与头发、烟尘和手指印的大小比较关系,从这里可以直观地“看”出这个高度有多“高”。图1-8 盘片结构及磁头高度示意图磁头
7、工作时与盘片不直接接触,所以,磁头的加载较小,磁头可以做得很精致,检测磁道的能力很强,可大大提高位密度。磁盘表面非常平整光滑,可以做镜面使用。下面对“盘面”、“磁道”、“柱面”和“扇区”的含义逐一进行介绍。1. 盘面号硬盘的盘片一般用铝合金材料做基片,高速硬盘也可能用玻璃做基片。玻璃基片更容易达到所需的平面度和光洁度,且有很高的硬度。磁头传动装置是使磁头部件作径向移动的部件,通常有两种类型的传动装置。一种是齿条传动的步进电机传动装置;另一种是音圈电机传动装置。前者是固定推算的传动定位器,而后者则采用伺服反馈返回到正确的位置上。磁头传动装置以很小的等距离使磁头部件做径向移动,用以变换磁道。硬盘的
8、每一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都会利用,都可以存储数据,成为有效盘片,也有极个别的硬盘盘面数为单数。每一个这样的有效盘面都有一个盘面号,按顺序从上至下从“0”开始依次编号。在硬盘系统中,盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。硬盘的盘片组在214片不等,通常有23个盘片,故盘面号(磁头号)为03或05。2. 磁道磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。磁道从外向内从0开始顺序编号。硬盘的每一个盘面有3001 024个磁道,新式大容量硬盘每面的磁道数更多。信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录
9、数据,而是被划分成一段段的圆弧,这些圆弧的角速度一样。由于径向长度不一样,所以,线速度也不一样,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在同样时间段里,划过的圆弧长度要比内圈划过的圆弧长度大。每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据作为一个单元同时读出或写入。一个标准的3.5in硬盘盘面通常有几百到几千条磁道。磁道是“看”不见的,只是盘面上以特殊形式磁化了的一些磁化区,在磁盘格式化时就已规划完毕。1.3 硬盘的逻辑结构(2)3. 柱面所有盘面上的同一磁道构成一个圆柱,通常称做柱面(Cylinder),每个圆柱上的磁头由上而下从“0”开始编号。数据的读/写按柱面进行
10、,即磁头读/写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即磁头上进行操作,只在同一柱面所有的磁头全部读/写完毕后磁头才转移到下一柱面,因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。电子切换相当快,比在机械上磁头向邻近磁道移动快得多,所以,数据的读/写按柱面进行,而不按盘面进行。也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个扇区开始写数据。读数据也按照这种方式进行,这样就提高了硬盘的读/写效率。一块硬盘驱动器的圆柱数(或每个盘面的磁道数)既取决于每条磁道的宽窄(同样,也与磁头的大小有关),也取决于定位机
11、构所决定的磁道间步距的大小。更深层的内容请参考其他书籍,限于篇幅,这里不再深入介绍。4. 扇区操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息。一个扇区有两个主要部分:存储数据地点的标识符和存储数据的数据段,如图1-9所示。图1-9 硬盘扇区的构成标识符就是扇区头标,包括组成扇区三维地址的三个数字:扇区所在的磁头(或盘面)、磁道(或柱面号)以及扇区在磁道上的位置即扇区号。头标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是否已发现某个故障因而不宜使用的标记。有些硬盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区
12、或磁道。最后,扇区头标以循环冗余校验(CRC)值作为结束,以供控制器检验扇区头标的读出情况,确保准确无误。扇区的第二个主要部分是存储数据的数据段,可分为数据和保护数据的纠错码(ECC)。在初始准备期间,计算机用512个虚拟信息字节(实际数据的存放地)和与这些虚拟信息字节相应的ECC数字填入这个部分。扇区头标包含一个可识别磁道上该扇区的扇区号。有趣的是,这些扇区号物理上并不连续编号,它们不必用任何特定的顺序指定。扇区头标的设计允许扇区号可以从1到某个最大值,某些情况下可达255。磁盘控制器并不关心上述范围中什么编号安排在哪一个扇区头标中。在很特殊的情况下,扇区还可以共用相同的编号。磁盘控制器甚至
13、根本就不管数据区有多大,只管读出它所找到的数据,或者写入要求它写的数据。给扇区编号的最简单方法是l,2,3,4,5,6等顺序编号。如果扇区按顺序绕着磁道依次编号,那么,控制器在处理一个扇区的数据期间,磁盘旋转太远,超过扇区间的间隔(这个间隔很小),控制器要读出或写入的下一扇区已经通过磁头,也许是相当大的一段距离。在这种情况下,磁盘控制器就只能等待磁盘再次旋转几乎一周,才能使得需要的扇区到达磁头下面。显然,要解决这个问题,靠加大扇区间的间隔是不现实的,那会浪费许多磁盘空间。许多年前,IBM的一位杰出工程师想出了一个绝妙的办法,即对扇区不使用顺序编号,而是使用一个交叉因子(interleave)进
14、行编号。交叉因子用比值的方法来表示,如31表示磁道上的第1个扇区为1号扇区,跳过两个扇区即第4个扇区为2号扇区,这个过程持续下去直到给每个物理扇区编上逻辑号为止。例如,每磁道有17个扇区的磁盘按21的交叉因子编号就是:l,10,2,11,3,12,4,13,5,14,6,15,7,16,8,17,9,而按31的交叉因子编号就是:l,7,13,2,8,14,3,9,15,4,10,16,5,11,17,6,12。当设置1l的交叉因子时,如果硬盘控制器处理信息足够快,那么,读出磁道上的全部扇区只需要旋转一周;但如果硬盘控制器的后处理动作没有这么快,磁盘所转的圈数就等于一个磁道上的扇区数,才能读出每
15、个磁道上的全部数据。将交叉因子设定为21时,磁头要读出磁道上的全部数据,磁盘只需转两周。如果21的交叉因子仍不够慢,磁盘旋转的周数约为磁道的扇区数,这时,可将交叉因子调整为31,如图1-10所示。图1-10 不同交叉因子的效果示例图1-10所示的是典型的MFM(Modified Frequency Modulation,改进型调频制编码)硬盘,每磁道有17个扇区,画出了用三种不同的扇区交叉因子编号的情况。最外圈的磁道(0号柱面)上的扇区用简单的顺序连续编号,相当于扇区交叉因子是11。1号磁道(柱面)的扇区按21的交叉因子编号,而2号磁道按31的扇区交叉因子编号。早期的硬盘管理工作中,设置交叉因
16、子需要用户自己完成。用BIOS中的低级格式化程序对硬盘进行低级格式化时,就需要指定交叉因子,有时还需要设置几种不同的值来比较其性能,而后确定一个比较好的值,以期硬盘的性能较好。现在的硬盘BIOS已经自己解决这个问题,所以,一般低级格式化程序不再提供这一选项设置。系统将文件存储到磁盘上时,按柱面、磁头、扇区的方式进行,即最先是第1磁道的第一磁头下(也就是第1盘面的第一磁道)的所有扇区,然后,是同一柱面的下一磁头,一个柱面存储满后就推进到下一个柱面,直到把文件内容全部写入磁盘。系统也以相同的顺序读出数据。读出数据时通过告诉磁盘控制器要读出扇区所在的柱面号、磁头号和扇区号(物理地址的三个组成部分)进
17、行。磁盘控制器则直接使磁头部件步进到相应的柱面,选通相应的磁头,等待要求的扇区移动到磁头下。在扇区到来时,磁盘控制器读出每个扇区的头标,把这些头标中的地址信息与期待检出的磁头和柱面号做比较(即寻道),然后,寻找要求的扇区号。待磁盘控制器找到该扇区头标时,根据其任务是写扇区还是读扇区,来决定是转换写电路,还是读出数据和尾部记录。找到扇区后,磁盘控制器必须在继续寻找下一个扇区之前对该扇区的信息进行后处理。如果是读数据,控制器计算此数据的ECC码,然后,把ECC码与已记录的ECC码相比较。如果是写数据,控制器计算出此数据的ECC码,与数据一起存储。在控制器对此扇区中的数据进行必要处理期间,磁盘继续旋
18、转。由于对信息的后处理需要耗费一定的时间,在这段时间内,磁盘已转了相当的角度。交叉因子的确定是一个系统级的问题。一个特定硬盘驱动器的交叉因子取决于:磁盘控制器的速度、主板的时钟速度、与控制器相连的输出总线的操作速度等。如果磁盘的交叉因子值太高,就需多花一些时间等待数据在磁盘上存入和读出。如果交叉因子值太低,就会大大降低磁盘性能。前面已经述及,系统在磁盘上写入信息时,写满一个磁道后转到同一柱面的下一个磁头,当柱面写满时,再转向下一柱面。从同一柱面的一个磁道到另一个磁道,从一个柱面转到下一个柱面,每一个转换都需要时间,在此期间磁盘始终保持旋转,这就会带来一个问题:假定系统刚刚结束对一个磁道前一个扇
19、区的写入,并且已经设置了最佳交叉因子比值,现在准备在下一磁道的第一扇区写入,这时,必须等到磁头转换好,让磁头部件重新准备定位在下一道上。如果这种操作占用的时间超过了一点,尽管是交叉存取,磁头仍会延迟到达。这个问题的解决办法是以原先磁道所在位置为基准,把新的磁道上全部扇区号移动约一个或几个扇区位置,这就是磁头扭斜。磁头扭斜可以理解为柱面与柱面之间的交叉因子,已由生产厂设置好,用户一般不用去改变它。磁头扭斜的更改比较困难,但是,它们只在文件很长、超过磁道结尾进行读出和写入时才发挥作用,所以,扭斜设置不正确所带来的时间损失比采用不正确的扇区交叉因子值带来的损失要小得多。交叉因子和磁头扭斜可用专用工具
20、软件来测试和更改。更具体的内容这里就不再详述,毕竟现在很多用户都没有见过这些参数。扇区号存储在扇区头标中,扇区交叉因子和磁头扭斜的信息也存放在这里。最初,硬盘低级格式化程序只是行使有关磁盘控制器的专门职能来完成设置任务。由于这个过程可能破坏低级格式化的磁道上的全部数据,也极少采用。扇区交叉因子由写入到扇区头标中的数字设定,所以,每个磁道可以有自己的交叉因子。在大多数驱动器中,所有磁道都有相同的交叉因子。但有时因为操作上的原因,也可能导致各磁道有不同的扇区交叉因子。如在交叉因子重置程序工作时,由于断电或人为中断,就会造成一些磁道的交叉因子发生了改变,而另一些磁道的交叉因子没有改变。这种不一致性对
21、计算机不会产生不利影响,只是有最佳交叉因子的磁道要比其他磁道的工作速度更快。1.3 硬盘的逻辑结构(3)1.4 硬盘的容量硬盘的容量由盘面数(磁头数)、柱面数和扇区数决定,其计算公式为:硬盘容量盘面数柱面数扇区数512字节关于硬盘容量的大小,经常有人感到迷惑,为什么同一块硬盘,有时显示40GB,有时却只有37GB,这主要是表示方法不标准造成的,如1MB到底代表1 000 000字节还是代表1 048 576字节。有些软件把1 000 000字节作为1MB,如DM等,硬盘上标称容量一般也按1MB1000000字节计算;而在另一些软件中,1MB是1 048 576字节,如Fdisk等。一些书籍或报
22、刊杂志上发表的论文,硬盘容量的单位也不统一,有以1 000 000字节为1MB的,也有把1 048 576字节作为1MB的。依据计算机表示数据的特点、数制的表示方式及计算机本身的发展,硬盘容量单位应该以2的多少次方表示比较符合实际情况,即以KB(Kilobyte),MB(Megabyte),GB(Gigabyte),TB(Terabyte),PB(Petabyte),EB(Exabyte)为单位,各种单位之间的换算关系如下:1KB210 B1024 Byte1MB210 KB 220 B1048576 Byte1GB210 MB220 KB230 B =1073741824 Byte1TB21
23、0 GB220 MB230 KB240 B =1099511627776 Byte1PB210 TB220 GB230 MB240 KB =250 B =1125899906842624 Byte1EB210 PB220 TB230 GB240 MB =250 KB =260 B =152921504606846976 Byte1.5 数制与码制用数字量表示物理量的大小时,一位数码往往不够用。因而,必须用进位计数的方法组成多位数码使用。通常把多位数码中每一位的构成方法以及从低位到高位的进位规则称为数制。常用的数制有以下4种。1. 十进制十进制是日常生活和工作中最常使用的进位计数制。在这种进位计
24、数制中,每一位有09十个数码,所以,计数的基数是10。超过9的数必须用多位数表示,其中低位数和相邻高位数之间的关系是“逢十进一”,故称为十进制。例如:143.75=1102+4101+3100+7101+5102所以,任意一个正的十进制数D均可展开为:其中ki是第i位的系数,它可能是09十个数码中的任何一个。若整数部分的位数是n,小数部分的位数是m,则i包含从n1到0的所有正整数和从1到m的所有负整数。若以N取代式(1-1)中的10,即可得到任意进制(N进制)数展开式的普遍形式:式中i的取值范围与式(1-1)中的规定相同,N称为计数的基数,ki为第i位的系数,N i称为第i位的权。2. 二进制
25、在数字电路中应用最广的是二进制。在二进制数中,每一位仅有0和1两个可能的数码,所以,计数基数为2。低位和相邻高位之间的进位关系是“逢二进一”,故得名二进制。根据式(1-2),任何一个二进制数均可展开为:例如:101.11=122+021+120+121+1223. 八进制在八进制数中,每一位用07这八个数码表示,所以,计数基数为8。低位与相邻高位之间的进位关系是“逢八进一”。任何一个八进制数都可以按式(1-2)展开为:例如:37.41=381+780+481+182由于同一个数用八进制写出来的结果要比用二进制写出来的结果简单得多,而且二进制与八进制之间的互相转换又极为方便,所以,有时在书写计算
26、机程序时使用八进制。4. 十六进制十六进制数的每一位有十六种可能的状态,分别用09,A(10),B(11),C(12),D(13),E(14)和F(15)表示。因此,任意一个十六进制数均可展开为:例如:2A.7F=2161+A160+7161+F162=2161+10160+7161+15162由于目前在微型计算机中普遍采用八位和十六位二进制并行运算,而八位和十六位二进制数可以用两位和四位十六进制数表示,因而用十六进制符号书写程序十分方便。同时,十六进制数和二进制数之间的转换又非常简单,这就使得十六进制数的应用比八进制数更加广泛。有关各种数制间互相转换的方法在计算机原理课程中都有详细介绍,读者
27、若有兴趣,请自行阅读有关书籍。对于数据恢复技术,数制是最基础的知识,所以,这里简要地介绍了一下。尤其是十六进制,因为很多操作都通过十六进制来完成。不同的数码不仅可以用来表示数量的不同,而且还能用来表示不同的事物。在后一种情况下,这些数码将不再表示数量大小的差别,而只是不同事物的代号,称为代码。为便于记忆和查找,在编制代码时总要遵循一定的规则,这些规则称为码制。例如,在用四位二进制数码表示一位十进制数的09这十个状态时,经常采用表1-1所示的编码规则。不难看出,如果把每一个代码都看做一个四位二进制数,各位的权依次为8,4,2,1,那么,每个代码的数值恰好等于它所表示的十进制数的大小。因此,又将这
28、种码制称做8421编码。在计算机系统中,提到的各种编号都是一种码制,这时的数字是序数,而不是基数,基数表示大小,序数只是一个代号,如主板有两个IDE接口,可接四个IDE设备,这里“两个”和“四个”是基数,表示的是事物的多少或大小,而两个IDE接口标注为IDE 1和IDE 2,所接的四个IDE设备分别称为Device 0,1,2和3,这里的IDE 1和IDE 2,Device 0,1,2和3就是序数,只是用数字来对事物进行区分,而不是用来表示事物的大小或多少。需要记住的是柱面和磁头从“0”开始编号,从柱面“0”到柱面“6”,共7个柱面,从磁头“0”到磁头“5”,共6个磁头,而扇区从“1”开始编号,从扇区“1”到扇区“63”,共63个扇区。表1-1 8421代码的编码表十 进 制 数代码十 六 进 制DCBA012345678910111213141500000000111111110000111100001111001100110011001101010101010101010123456789ABCDEF权8421
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1