
详细介绍硬盘的磁道和扇区.doc
6页详细介绍硬盘的磁道和扇区(上篇)磁道是磁盘一个面上的单个数据存储环如果将磁道作为一个存储单元,从数据管理交率看实在是太大了许多盘片一个磁道能存储100000 字节甚至更多,用于小文件存储进的效率就太低了因此,磁道被分成若干编号的分区,称为扇区这些扇区代表了磁道的分段不同类型的磁盘驱动器依据磁道密度,将磁道划分成不同数据量的氓区例如,软盘格式化使用每磁道 8~36 扇区,而硬盘通常以更高的密度存储数据,每磁道可以有 900 个或更多的扇区PC 系统中,通过标准格式化程序产生的扇区容量为 512 字节,这个数字在整个 PC 历史中一直没有变化过在 PC 标准中一个很有意思的现象是,为了兼容大多数老的 BIOS 和驱动器,驱动器通常执行一个内部转译,转译为逻辑上每磁道 63 个扇区磁道上的扇区编号从 1 开始,不像磁头或柱面编号从 0 开始例如,1.44MB 软盘含以 0~79 编号的 80 个柱面和以 0~1 编号的 2 个磁头,而每个柱面上的每个磁道有 18 个扇区,编号从 1~18当磁盘被格式化后,格式化程序在每个扇区的数据前后各创建一个标识(ID )区域,磁盘控制器用它来为扇区编号并识别每个扇区的开始和结束。
这些区域标识每个扇区的数据区域前趋和后继,占用了磁盘总存储容量的一部分这就是磁盘的未格式化容量和格式化容量不同的原因注意,市面上大多数现代硬盘驱动器已经预先格式化了,制造商给出的标称值也是格式化后的容量现在已太提及未格式化容量另一个有意义的发展是 IBM 和其他公司制作无 ID记录驱动器,意思是不再在每个扇区的前后加上 ID 标记这将使更多的磁盘空间用于实际的数据存储磁盘上的每个扇区有一个前缀部分,或叫扇区头,用以标志扇区的开始,含扇区编号,还有一个后缀部分,或叫扇区尾,其中包括一个校验和(用于确保数据内容的完整性)一些新的驱动器去掉了扇区头,这被称做无 ID 记录,可以存放更多的数据每个扇区包含 512 字节的数据低级格式化过程通常对数据字节填充一些特定的值,例如 F6h(十六进制),或者一些驱动器制造商使用的其他测试样式某些样式对驱动器来说编/解码更困难一些,所以制造商一些驱动器制造商使用的其他测试样式特殊的测试样式可能会在表面产生错误,而正常的数据样式则不会通过这个办法制造商在测试期间能更精确地训别边缘区注意:这里讨论的磁盘格式化类型是物理的或低级的格式化,不是高级格式化,当使用盘中 Windows 9x/Me/2000 Explorer 或 DOS FORMAT 程序时,执行的是高级格式化。
扇区头和尾独立于操作系统、文件系统和存储在驱动器上的文件除了扇区头尾外,在扇区内部、同一磁道的扇区之间以及不同的磁道之间都还有间隙存在,但这些间隙没有可用的数据空间间隙是低级格式化过程中记录被瞬间关断时产生的这就类似于录间盒上歌曲之间的无声音间隙前缀、后缀 和间隙计入磁盘未格式化和格式化的容量损失中例如,一个 4MB(未格式化)软盘(3.5 英寸),格式化后的容量是 2.88MB,一个 2MB(未格式化)软盘格式化后的容量是 1.44MB 一个老式 38MB 未格式化容量(比如,Seagate ST-4038)硬盘的格式化容量仅剩下 32MB因为现在购买的 ATA/IDE 和 SCSI 硬盘在工厂里已经低级格式化好了,制造商只标注格式化容量虽然如此,几乎所有的驱动器仍有一部分保留空间,用于对准备写入磁盘的数据进行管理所以,前面所说的每个磁盘扇区的大小都是 512 字节,在技术上并不正确每个扇区确实允许存储 512 个字节数据,但数据区域仅是扇区的一部分磁盘上的每个扇区通常占据 571 个字节,其中 512 个字节用来存储用户数据扇区头和尾要求的实际数量是随驱动器的不同变化而变化,但这个数字是典型的。
目前,少数现代驱动器使用无ID 记录方案,实际上免免去了存储扇区头信息的额外开销可以将每个磁盘扇区看做一本书中的一页在书中,每一页有正文,但不是整页都充满了正文,至少每页的顶、底,左和右都留有边缘空白一些像章标题(磁盘和柱面编号)和页号(扇区编号)这样的信息放置在边缘空白内一具扇区的“边缘区域”是在低级格式化过程中产生和写入的格式化过程也同时对每个扇区的数据区域写入伪(字节)值当在磁盘上执行高级格式化后,PC 的文件系统能对每个扇区的数据区域进行写入,但是扇区头尾信息在正常的写操作中不会被修改,除非再次对磁盘进行低级格式化如下图列出了一个典型的硬盘驱动器上每个磁道和扇区的格式,此硬盘每个磁道有 17 个扇区字节 名称 说明16 POST INDEX GAP 全为 4Eh,在索引标志之后的磁道开始处下面的扇区数据(本表两线之间)按磁道扇区数重复13 ID VFO LOCK 全为 00h,使 VFO 与扇区 ID 同步1 SYNC BYTE A1h,通知控制器后面是数据1 ADDRESS MARK FEh,定义后面跟随的是 ID 段数据2 CYLINDER NUMBER 定义磁头伟动机构位置的数值1 HEAD NUMBER 定义选定特定磁头1 SECTOR NUMBER 定义扇区2 CRC ID 数值的循环冗余校验3 WRITE TURN-ON GAP 格式化时写入 00h,以隔离 ID 和用户数据13 DATA STNC VFO LOCK 全为 00h,使 VFO 与 DATA 同步1 SYNC BYTE A1h 通知控制器后是数据1 ADDRESS MARK F8h,定义后面跟随的是用户数据区512 DATA 用户数据2 CRC 用户数据循环冗余校验3 WRITE TURN-OFF GAP 00h,由数据更新形成,隔离用户数据15 INTER-RECORD GAP 全为 00h,作为主轴转速变化的缓冲693 PRE-INDEX GAP 全为 4Eh,位于索引标志之前的磁道末尾571=每扇区总字节数;512=每扇区数据字节数注意:所有 XXH 表示该段用 XXH 字节添充。
由上可见,每个磁道上数据的可用空间比未格式化之前的容量少了约 15%这对大多数硬盘来说都是成立的,只是百分比可能稍有不同下面的段落将详述在上表中扇区的每个部分POST INDEX GAP 提供了了一个磁头切换恢复阶段,所以从一个磁盘切换到另一个磁道时,磁头不需要等待磁盘作额外旋转就能连续地读扇区因为磁盘是连续旋转的,磁头要用一小段时间放射状地从一个磁道移动到另一个磁道,不可能在两个不同磁道间立刻读出连续的扇区当磁头移到新磁道时,第二个扇区的头部已经转过去了扇区之间留下的间隙为磁头移动到另一个磁道提供了时间有些驱动器中,此间隙不能提供足够的时间供磁头移动出现这种情况时,可通过偏移不同磁道上的扇区为驱动器获取一段额外的时间,这样一来第一个扇区的到达时间被延迟了换句话说,低级格式化过程偏移扇区编号,使各个磁道上相同编号的扇区不相互邻接,一个磁道上的 9 扇区可以和下一个磁道上的 8 扇区邻接,这个 8 扇区再邻接下一个磁道上的 7 扇区,如此等等最佳偏移值取决于磁盘旋转速度与磁头径向速度的比较注意:磁头偏移曾经是一个做低级格式化时由用户自己设置的参数现今的 ATA/IDE 和 SCSI 驱动器已经在工厂被低级格式化并设置了最佳偏移值。
扇区 ID 数据包括柱面、磁头号、扇区号字段,以及用以校验 ID数据的 CRC 字段大多数控制器在低级格式化或表面分析时,用磁头编号字段的第 7 位标注扇区损坏然而,此约定不是绝对的有些控制器用辊的方法标注坏扇区,但通常都标注在某个 ID 字段之中WRITE TURN-ON GAP 紧接着 ID 区的 CRC 字节,为保证随后用户数据正确记录提供了一个缓冲,同时也使 ID CRC 有可能完全恢复用户 DATA 段包含存储在扇区中的全部 512 个字节数据后面紧跟着一个 CRC 字段来校验数据虽然许多控制器使用两个字节的CRC,但是如果有多于两个字节的 CRC 内容要存储,控制器就需要实现一个更长的纠错码(ECC)存储的 ECC 数据使检测出用户数据错误并纠正它们成为可能纠错/检错能力取决于驱动器使用的 ECC 编码及其控制器的实现WRITE TURN-OFF GAP 是一个缓冲,使ECC( CRC)字节得以完全恢复INTER-RECORD GAP 提供了一种适应驱动器主轴速度变化的手段当磁道被格式化时磁盘的转速度可能正巧稍慢于正常速度,当磁道被写入数据时可能磁盘的转速稍快于正常速度在这种情况下,此间隙就防止了将任何信息意外地覆写到一睛个扇区中。
这个间隙的实际长度要依据磁道格式化和每次数据字段被更新时的磁盘转速而定PRE-INDEX GAP 考虑到了整个磁道的转速阈限此间隙的长度取决于格式化时磁盘的转速和写频率阈限扇区的前缀信息是级其重要的,因为其中包含了柱面、磁头和扇区的编号信息所以,这些内容(除了 DATA 字段、 DATA CRC 字节和WRITE TURN-OFF GAP 之外)只能在低级格式化时写入。












