注册登录才能更好的浏览或提问。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
第二章 硬盘的基本参数
一、容量 作为计算机系统的数据存储器,容量是硬盘最主要的参数。 硬盘的容量以兆字节(MB)或千兆字节(GB)为单位,1GB=1024MB。但硬盘厂商在标称硬盘容量时通常取1G=1000MB,因此我们在BIOS中或在格式化硬盘时看到的容量会比厂家的标称值要小。 对于用户而言,硬盘的容量就象内存一样,永远只会嫌少不会嫌多。Windows操作系统带给我们的除了更为简便的操作外,还带来了文件大小与数量的日益膨胀,一些应用程序动辄就要吃掉上百兆的硬盘空间,而且还有不断增大的趋势。因此,在购买硬盘时适当的超前是明智的。目前的主流硬盘的容量为10G和15G,而20G以上的大容量硬盘亦已开始逐渐普及。 其实,硬盘容量越大,单位字节的价格就越便宜。例如火球10G的价格为1000元,每G字节的价格为100元;而火球15G的价格为1160,每G字节还不到80元。 硬盘的容量指标还包括硬盘的单碟容量。所谓单碟容量是指硬盘单片盘片的容量,单碟容量越大,单位成本越低,平均访问时间也越短。目前市面上大多数硬盘的单碟容量为6.4G以上,而更高的则已达到了10G。 二、转速 转速(Rotational speed 或Spindle speed)是指硬盘盘片每分钟转动的圈数,单位为rpm。 目前市场上主流IDE硬盘的转速一般为5200rpm或5400rpm,Seagate的“大灰熊”系列和Maxtor则达到了7200rpm,是IDE硬盘中转速最快的。至于SCSI接口的硬盘,一般都已达到了7200rpm的转速,而更高的则达到了10000rpm。 三、平均访问时间 平均访问时间(Average Access Time)是指磁头从起始位置到达目标磁道位置,并且从目标磁道上找到要读写的数据扇区所需的时间。 平均访问时间体现了硬盘的读写速度,它包括了硬盘的寻道时间和等待时间,即: 平均访问时间=平均寻道时间+平均等待时间。 硬盘的平均寻道时间(Average Seek Time)是指硬盘的磁头移动到盘面指定磁道所需的时间。这个时间当然越小越好,目前硬盘的平均寻道时间通常在8ms到12ms之间,而SCSI硬盘则应小于或等于8ms。 硬盘的等待时间,又叫潜伏期(Latency),是指磁头已处于要访问的磁道,等待所要访问的扇区旋转至磁头下方的时间。平均等待时间为盘片旋转一周所需的时间的一半,一般应在4ms以下。
四、传输速率 传输速率(Data Transfer Rate) 硬盘的数据传输率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s)。硬盘数据传输率又包括了内部数据传输率和外部数据传输率。 内部传输率(Internal Transfer Rate) 也称为持续传输率(Sustained Transfer Rate),它反映了硬盘缓冲区未用时的性能。内部传输率主要依赖于硬盘的旋转速度。 外部传输率(External Transfer Rate)也称为突发数据传输率(Burst Data Transfer Rate)或接口传输率,它标称的是系统总线与硬盘缓冲区之间的数据传输率,外部数据传输率与硬盘接口类型和硬盘缓存的大小有关。 目前Fast ATA接口硬盘的最大外部传输率为16.6MB/s,而Ultra ATA接口的硬盘则达到33.3MB/s。 五、缓存 与主板上的高速缓存(RAM Cache)一样,硬盘缓存的目的是为了解决系统前后级读写速度不匹配的问题,以提高硬盘的读写速度。目前,大多数IDE硬盘的缓存在128K到256K之间,而Seagate的“大灰熊”系列则使用了512K Cache。
第三章 硬盘逻辑结构简介
一. 硬盘逻辑结构简介
1. 硬盘参数释疑
到目前为止, 人们常说的硬盘参数还是古老的 CHS(Cylinder/Head/Sector)参数. 那么为什么要使用这些参数,它们的意义是什么?它们的取值范围是什么? 很久以前, 硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘. 也就是硬盘盘片的每一条磁道都具有相同的扇区数.由此产生了所谓的3D参数 (Disk Geometry). 既磁头数(Heads), 柱面数(Cylinders),扇区数(Sectors),以及相应的寻址方式. 其中: 磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 255 (用 8 个二进制位存储); 柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为 1023(用 10 个二进制位存储); 扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63(用 6个二进制位存储). 每个扇区一般是 512个字节, 理论上讲这不是必须的,但好象没有取别的值的. 所以磁盘最大容量为: 255 * 1023 * 63 * 512 / 1048576 = 8024 GB ( 1M =1048576 Bytes )或硬盘厂商常用的单位: 255 * 1023 * 63 * 512 / 1000000 = 8414 GB ( 1M =1000000 Bytes ) 在 CHS 寻址方式中, 磁头, 柱面, 扇区的取值范围分别为 0到 Heads - 1,0 到 Cylinders - 1, 1 到 Sectors (注意是从 1 开始).
2. 基本 Int 13H 调用简介 BIOS Int 13H 调用是 BIOS提供的磁盘基本输入输出中断调用, 它可以完成磁盘(包括硬盘和软盘)的复位, 读写, 校验, 定位, 诊断,格式化等功能.它使用的就是 CHS 寻址方式, 因此最大识能访问 8 GB 左右的硬盘 (本文中如不作特殊说明, 均以 1M = 1048576 字节为单位).
3. 现代硬盘结构简介 在老式硬盘中, 由于每个磁道的扇区数相等,所以外道的记录密度要远低于内道, 因此会浪费很多磁盘空间 (与软盘一样). 为了解决这一问题,进一步提高硬盘容量, 人们改用等密度结构生产硬盘. 也就是说,外圈磁道的扇区比内圈磁道多. 采用这种结构后, 硬盘不再具有实际的3D参数,寻址方式也改为线性寻址, 即以扇区为单位进行寻址. 为了与使用3D寻址的老软件兼容 (如使用BIOSInt13H接口的软件), 在硬盘控制器内部安装了一个地址翻译器,由它负责将老式3D参数翻译成新的线性参数. 这也是为什么现在硬盘的3D参数可以有多种选择的原因(不同的工作模式, 对应不同的3D参数, 如 LBA, LARGE, NORMAL).
4. 扩展 Int 13H 简介 虽然现代硬盘都已经采用了线性寻址, 但是由于基本 Int13H 的制约, 使用 BIOS Int 13H 接口的程序, 如 DOS 等还只能访问 8 G以内的硬盘空间.为了打破这一限制, Microsoft 等几家公司制定了扩展 Int 13H 标准(Extended Int13H), 采用线性寻址方式存取硬盘, 所以突破了 8 G的限制,而且还加入了对可拆卸介质 (如活动硬盘) 的支持.
二. Boot Sector 结构简介
1. Boot Sector 的组成
Boot Sector 也就是硬盘的第一个扇区, 它由 MBR (MasterBoot Record),DPT (Disk Partition Table) 和 Boot Record ID 三部分组成. MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节( 0 to 0x1BD ),存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序). DPT 即主分区表占用 64 个字节 (0x1BE to 0x1FD),记录了磁盘的基本分区信息. 主分区表分为四个分区项, 每项 16 字节,分别记录了每个主分区的信息(因此最多可以有四个主分区). Boot Record ID 即引导区标记占用两个字节 (0x1FE and0x1FF), 对于合法引导区, 它等于 0xAA55, 这是判别引导区是否合法的标志. Boot Sector 的具体结构如下图所示:
0000 |---------------------------------------------| | | | | | Master Boot Record | | | | | | 主引导记录(446字节) | | | | | | | 01BD | | 01BE |---------------------------------------------| | | 01CD | 分区信息 1(16字节) | 01CE |---------------------------------------------| | | 01DD | 分区信息 2(16字节) | 01DE |---------------------------------------------| | | 01ED | 分区信息 3(16字节) | 01EE |---------------------------------------------| | | 01FD | 分区信息 4(16字节) | |---------------------------------------------| | 01FE |01FF | | 55 | AA | |---------------------------------------------|
2. 分区表结构简介
分区表由四个分区项构成, 每一项的结构如下: BYTE State : 分区状态, 0 =未激活, 0x80 = 激活 (注意此项) BYTE StartHead : 分区起始磁头号 WORD StartSC : 分区起始扇区和柱面号,底字节的低6位为扇区号, 高2位为柱面号的第 9,10 位, 高字节为柱面号的低 8 位 BYTE Type : 分区类型, 如0x0B = FAT32, 0x83 = Linux 等, 00 表示此项未用,07 = NTFS BYTE EndHead : 分区结束磁头号 WORD EndSC :分区结束扇区和柱面号, 定义同前 DWORD Relative :在线性寻址方式下的分区相对扇区地址 (对于基本分区即为绝对地址) DWORD Sectors : 分区大小 (总扇区数)
注意: 在 DOS / Windows 系统下,基本分区必须以柱面为单位划分( Sectors * Heads 个扇区), 如对于 CHS 为 764/255/63 的硬盘,分区的最小尺寸为 255 * 63 * 512 / 1048576 = 7.844 MB.
3. 扩展分区简介
由于主分区表中只能分四个分区, 无法满足需求,因此设计了一种扩展分区格式. 基本上说, 扩展分区的信息是以链表形式存放的,但也有一些特别的地方.首先, 主分区表中要有一个基本扩展分区项,所有扩展分区都隶属于它,也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中.对于DOS / Windows 来说, 扩展分区的类型为 0x05. 除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放, 后一个扩展分区的数据项记录在前一个扩展分区的分区表中,但两个扩展分区的空间并不重叠. 扩展分区类似于一个完整的硬盘, 必须进一步分区才能使用.但每个扩展分区中只能存在一个其他分区. 此分区在 DOS/Windows环境中即为逻辑盘.因此每一个扩展分区的分区表(同样存储在扩展分区的第一个扇区中)中最多只能有两个分区数据项(包括下一个扩展分区的数据项).
|