首页 » 技术资讯 » 技术动态 » 到底什么是计算机硬件原理?

到底什么是计算机硬件原理?

上篇我们刚刚写到了硬盘构成,硬件工作的原理,接下里我们看最关键的一篇,硬盘是如何将计算机的数据组织到硬盘里。

硬盘基础知识

硬盘上的数据是如何组织和管理的?硬盘首先在逻辑上被划分为磁盘,柱面,扇区。每个盘片的每个面都有读写的磁头,磁头最开始停止在启停区,这里不存储任何的数据,离主轴最远的地方就是0号磁道,硬盘的数据也是从最外侧开始存放。那么0号磁道怎么知道,在图1-1中,有一个0号磁道检测器,由它来完成初始定位。0号磁道存放了操作系统启动的必要代码,以为PC启动后BIOS在加载任何程序的时候,默认都会从0号磁道开始。

 

★1.1盘面

硬盘的盘面使用一般使用铝合金材料,高速的硬盘也有使用玻璃。盘面都有上下两个面,每个盘面都可以利用,都可以存储数据,成为有效盘片,每个有效盘面都有一个编号,按照从上到下顺序进行编号,开始编号是0。在硬盘系统中,盘面号又叫磁头号,因为每个盘面都对应一个磁头,硬盘的盘片一般2~14片不等,通常是2~3盘片,故盘面号是(磁头号)为0~3或0~5。

★1.2磁道

磁盘在格式化的时候被划分许多同心圆,这些同心圆就叫做磁道。磁道是从最外圈0号磁道开始编号,依次向内编号。硬盘的每个盘面都有300~1024个磁道,新式大容量硬盘面磁道数量更多。

这些同心圆不是连续记录数据的,而是把同心圆分成一段一段的圆弧,这个圆弧被我们称谓扇区,在同样的转速下,外圈和内圈在相同的时间里,划过外圈圆弧的长度要比内圈圆弧长度长,因此外圈的数据读写要比内圈快。每个扇区从1号开始编号,是数据读写的最小单元,不可分割。不可能发生读二分之一扇区的这种情况,因此磁头只能定位到扇区的开头或者结尾。

一个标准3.5寸的硬盘通常有几百个到几千磁道,磁道是肉眼看不见的,只是盘面上特殊形式磁化区。划分磁道和扇区的过程叫做低级格式化,通常在硬盘出厂的时候就做好了,高级格式化指的是操作系统上面的对硬盘进行格式化文件系统。

★1.3柱面

当盘片有多个的时候,每个盘片上面的相同编号的磁道组成柱面,你也可以幻想一下,当你的脸和盘面平行的时候,你从0号磁道上面看下去的投影就形成了柱面。柱面也会按照0号开始编号,依次向内。那有多个磁头多个柱面,是如果工作的呢?当磁盘完成IO的时候,会把所有的磁头移动到一个柱面上,当次柱面的IO读写完成后,就移动到下一个柱面,那柱面的切换或者说磁道的切换我们称为寻道。那么这个有一个问题,一个盘面上的磁道数量到底取决于什么?我们磁道的形成是磁头固定一点,盘片旋转形成的一个同心圆,那么如果能将圆环的大小变得更窄那么磁道数量就会越多,所以磁头越小,磁道数量越多,一个盘面的数据量就越大。

 

★1.4扇区

将磁道这个圆环等距分割,形成等长的圆弧,每个圆弧就是扇区。划分扇区是让数据存放更有条理化,就像一个大仓库划分更多的房间一样。每个扇区可以存放512B的数据和其他信息。一个扇区有两个主要部分:存储数据地方的标识符和存储数据的数据段。扇区头标包括组成扇区三级地址和三个数字。扇区所在的柱面(磁道)磁头编号扇区在磁道上的位置,及扇区号。

2.CHS编址和LBA编址

我们有了柱面(磁道),盘面(磁头),扇区这三个的编号,下来看看如何寻找到数据。首先找到相应的磁道道,但是有多盘片的时候,应该寻找的是柱面号;当找到柱面之后,也不知道是在那个盘面上的数据,这时候就需要磁头号来确定了;确定了磁道,确定了盘面,再利用扇区号就能知道所需要读取的数据。这种寻址方式就成为CHS,柱面(Cylinder)、磁头(Header)、和扇区(Sector),三者简称CHS,所以扇区的地址又称为CHS地址。

但是CHS编址只能适合小容量的磁盘,大容量的磁盘已经用上了LBA编址方式,LBA编址方式不再划分柱面和磁头号等,这些数据只由磁盘自己保存,LBA是磁盘对外提供的地址,这些地址全部都是线性地址。何为线性?你把磁盘想象成一张圆形的面饼,然后把这张饼像削苹果皮一样拉成一条直线,扇区为这条直线上的登场线段,从1开始编号。让操作系统要提取数据的时候下发对应LBA地址,达到硬盘之后转换成CHS地址,找到对应的扇区,这个CHS和LBA地址对应关系是存放在硬盘的ROM中。

磁头数(Header)最多255个。

柱面数(Cylinder)最多1023个。

扇区数(Sector)最多63个。

一个扇区大小512B。

硬盘最大容量=磁头数*柱面数*扇区数*扇区大小=8G,但随着技术的发展,CHS地址数量再不断的增多,所以可寻址的容量在不断增加。

3.交叉因子

      现在有了寻址方式,可以寻找到对应的数据,但是又有一个问题突显出来,磁盘旋转的速度非常快,10000RPM,每分钟10000转,就是说一分钟一个盘面要旋转10000圈,每秒就要旋转166圈,这个速度是非常快,到我读到1号扇区,想去读2号扇区的时候,可能已经错过了,这样又要等待一圈,这个等待时间非常浪费,那如何解决这个问题?你能想出来你就是IBM工程师。

现在有了寻址方式,可以寻找到对应的数据,但是又有一个问题突显出来,磁盘旋转的速度非常快,10000RPM,每分钟10000转,就是说一分钟一个盘面要旋转10000圈,每秒就要旋转166圈,这个速度是非常快,到我读到1号扇区,想去读2号扇区的时候,可能已经错过了,这样又要等待一圈,这个等待时间非常浪费,那如何解决这个问题?你能想出来你就是IBM工程师。

答案就是编号的时候使用2:1跳跃式,例如一个磁道有18个扇区,那编号就是1-9-2-10-3-11-4-12-5-13-6-14-7-15-8-16。如果还是太快那么就采用3:1跳跃式编号:例如1-7-13-2-8-14-3-9-15-4-10-16-5-11-17-6-12-18。这种典型的编号叫MFM(ModifedFrequencyModulation,改进型调频制编码)硬盘,最外圈用连续编号,应为扇区之间间隔较长,第二个磁道可能用2:1,第三个磁道可能用3:1,如下图1-3所示。

Post Tagged with
更多