一个硬盘由很多盘片(platter)组成,每个盘片被若干个同心圆划分为很多个磁道(track),每个磁道又被划分为几十个扇区(sector)。硬盘读取数据,就是以一个扇区为单位的,在FAT32模式下,每个扇区的容量为4KB。一个盘片的每一面都会有一个读写头(read-write head),来读取相应盘面的内容。
搞清楚了硬盘的结构,再来了解一下硬盘读取数据的过程。首先,读写头沿径向移动,移到要读取的扇区所在磁道的上方,这段时间称为寻道时间(seek time)。读写头起始位置与目标位置之间的距离不同,寻道时间也不同,一般为2--30毫秒,平均约为10毫秒。
然后通过盘片的旋转,使得要读取的扇区转到读写头的下方,这段时间称为旋转延迟时间(rotational latency time)。一个7200(转/每分钟)的硬盘,每旋转一周所需时间为60×1000÷7200=8.33毫秒,则平均旋转延迟时间为8.33÷2=4.17毫秒(平均情况下,需要旋转半圈)。按照同样的计算方法,一个5400(转/每分钟)的硬盘,平均旋转延迟时间为60×1000÷5400÷2=5.56毫秒。平均寻道时间与平均旋转延迟时间之和称为平均存取时间(average access time)。
最后才开始数据的读取。读取一个扇区的时间约为零点几个毫秒,相对平均存取时间而言可以忽略不计。因此,决定一个硬盘读写速度的是它的平均存取时间。
通过简单的加法,我们就可以得出:7200转的硬盘,平均存取时间约为10+4.17=14.2毫秒;5400转的硬盘,平均存取时间约为10+5.56=15.6毫秒。两者相比,前者的速度只比后者提高了不到百分之十,离大家预想的三分之一相距甚远。当然,以上只是理论上的计算,在具体使用环境下,可用相关测试软件进行测试