学习方法

硬盘的相关参数与常见误区解析

时间:2022-09-30 14:45:38 学习方法 我要投稿
  • 相关推荐

硬盘的相关参数与常见误区解析

  我们来了解一下硬盘的内部结构,它将有助于理解本文的相关内容。

  硬盘的相关参数与常见误区解析

  工作时,磁盘在中轴马达的带动下,高速旋转,而磁头臂在音圈马达的控制下,在磁盘上方进行径向的移动进行寻址

  硬盘常见的技术指标有以下几种:

  1、每分钟转速(RPM,RevolutionsPerMinute):这一指标代表了硬盘主轴马达(带动磁盘)的转速,比如5400RPM就代表该硬盘中的主轴转速为每分钟5400转。

  2、平均寻道时间(AverageSeekTime):如果没有特殊说明一般指读取时的寻道时间,单位为ms(毫秒)。

  这一指标的含义是指硬盘接到读/写指令后到磁头移到指定的磁道(应该是柱面,但对于具体磁头来说就是磁道)上方所需要的平均时间。

  除了平均寻道时间外,还有道间寻道时间(TracktoTrack或CylinderSwitchTime)与全程寻道时间(FullTrack或FullStroke),前者是指磁头从当前磁道上方移至相邻磁道上方所需的时间,后者是指磁头从最外(或最内)圈磁道上方移至最内(或最外)圈磁道上方所需的时间,基本上比平均寻道时间多一倍。

  出于实际的工作情况,我们一般只关心平均寻道时间。

  3、平均潜伏期(AverageLatency):这一指标是指当磁头移动到指定磁道后,要等多长时间指定的读/写扇区会移动到磁头下方(盘片是旋转的),盘片转得越快,潜伏期越短。

  平均潜伏期是指磁盘转动半圈所用的时间。

  显然,同一转速的硬盘的平均潜伏期是固定的。

  7200RPM时约为4.167ms,5400RPM时约为5.556ms。

  4、平均访问时间(AverageAccessTime):又称平均存取时间,一般在厂商公布的规格中不会提供,这一般是测试成绩中的一项,其含义是指从读/写指令发出到第一笔数据读/写时所用的平均时间,包括了平均寻道时间、平均潜伏期与相关的内务操作时间(如指令处理),由于内务操作时间一般很短(一般在0.2ms左右),可忽略不计,所以平均访问时间可近似等于平均寻道时间+平均潜伏期,因而又称平均寻址时间。

  如果一个5400RPM硬盘的平均寻道时间是9ms,那么理论上它的平均访问时间就是14.556ms。

  5、数据传输率(DTR,DataTransferRate):单位为MB/s(兆字节每秒,又称MBPS)或Mbits/s(兆位每秒,又称Mbps)。

  DTR分为最大(Maximum)与持续(Sustained)两个指标,根据数据交接方的不同又分外部与内部数据传输率。

  内部DTR是指磁头与缓冲区之间的数据传输率,外部DTR是指缓冲区与主机(即内存)之间的数据传输率。

  外部DTR上限取决于硬盘的接口,目前流行的UltraATA-100接口即代表外部DTR最高理论值可达100MB/s,持续DTR则要看内部持续DTR的水平。

  内部DTR则是硬盘的真正数据传输能力,为充分发挥内部DTR,外部DTR理论值都会比内部DTR高,但内部DTR决定了外部DTR的实际表现。

  由于磁盘中最外圈的磁道最长,可以让磁头在单位时间内比内圈的磁道划过更多的扇区,所以磁头在最外圈时内部DTR最大,在最内圈时内部DTR最小。

  6、缓冲区容量(BufferSize):很多人也称之为缓存(Cache)容量,单位为MB。

  在一些厂商资料中还被写作CacheBuffer。

  缓冲区的基本要作用是平衡内部与外部的DTR。

  为了减少主机的等待时间,硬盘会将读取的资料先存入缓冲区,等全部读完或缓冲区填满后再以接口速率快速向主机发送。

  随着技术的发展,厂商们后来为SCSI硬盘缓冲区增加了缓存功能(这也是为什么笔者仍然坚持说其是缓冲区的原因)。

  这主要体现在三个方面:预取(Prefetch),实验表明在典型情况下,至少50%的读取操作是连续读取。

  预取功能简单地说就是硬盘“私自”扩大读取范围,在缓冲区向主机发送指定扇区数据(即磁头已经读完指定扇区)之后,磁头接着读取相邻的若干个扇区数据并送入缓冲区,如果后面的读操作正好指向已预取的相邻扇区,即从缓冲区中读取而不用磁头再寻址,提高了访问速度。

  写缓存(WriteCache),通常情况下在写入操作时,也是先将数据写入缓冲区再发送到磁头,等磁头写入完毕后再报告主机写入完毕,主机才开始处理下一任务。

  具备写缓存的硬盘则在数据写入缓区后即向主机报告写入完毕,让主机提前“解放”处理其他事务(剩下的磁头写入操作主机不用等待),提高了整体效率。

  为了进一步提高效能,现在的厂商基本都应用了分段式缓存技术(MultipleSegmentCache),将缓冲区划分成多个小块,存储不同的写入数据,而不必为小数据浪费整个缓冲区空间,同时还可以等所有段写满后统一写入,性能更好。

  读缓存(ReadCache),将读取过的数据暂时保存在缓冲区中,如果主机再次需要时可直接从缓冲区提供,加快速度。

  读缓存同样也可以利用分段技术,存储多个互不相干的数据块,缓存多个已读数据,进一步提高缓存命中率。

  这是我们经常能看到的硬盘参数指标,正确理解它们的含义无疑对选购是有帮助的

  7、噪音与温度(Noise&Temperature):这两个属于非性能指标。

  对于噪音,以前厂商们并不在意,但从2000年开始,出于市场的需要(比如OEM厂商希望生产更安静的电脑以增加卖点)厂商通过各种手段来降低硬盘的工作噪音,ATA-5规范第三版也加入了自动声学(噪音)管理子集(AAM,AutomaticAcousticManagement),因此目前的所有新硬盘都支持AAM功能。

  硬盘的噪音主要来源于主轴马达与音圈马达,降噪也是从这两点入手(盘片的增多也会增加噪音,但这没有办法)。

  除了AAM外,厂商的努力在上文的厂商介绍中已经讲到,在此就不多说了。

  至于热量,其实每个厂商都有自己的标准,并声称硬盘的表现是他们预料之中的,完全在安全范围之内,没有问题。

  这一点倒的是不用担心,不过关键在于硬盘是机箱中的一个组成部分,它的高热会提高机箱的整体温度,也许硬盘本身没事,但可能周围的配件却经受不了,别的不说,如果是两个高热的硬盘安装得很紧密,那么它还能承受近乎于双倍的热量吗?所以硬盘的热量仍需厂商们注意。

  对硬盘认识的常见误区(一)

  1、转速与寻道时间:

  现在不少人都认为硬盘转速越快寻道时间就越快,但这是最常见的错误认识,事实上寻道速度根本不决定于转速,因为两者的控制设备就不一样。

  转速是由主轴马达控制,寻道则由音圈马达控制。

  寻道时间说白了就是体现了磁头臂径向运动的速度与控制能力,音圈马达与相应的伺服系统起着重要作用。

  另外,磁头的高灵敏度也有助于在高密度磁盘上准确捕获伺服标记,进而快速定位。

  很多情况下,我们都可以看到5400RPM硬盘的寻道时间与7200RPM硬盘一样(如三星的V40与P40)。

  之所以有些高速硬盘(如SCSI硬盘)的寻道时间更快,是因为厂商的有意设计,就好像一台Pentium4电脑只配32MB内存让人觉得不平衡一样,厂商也会给高速硬盘配上更快的寻道时间(也意味着更好的元件与更高的成本,显然厂商要根据市场的需要权衡利弊)。

  实际上,通过上文有关平均访问时间的解释,大家应该明白,提高转速的主用意就是减少平均潜伏期,进而加快整体的访问速度,也许很多人不认同这是它最重要的用意,由此就又引出了下一个误区。

  2、转速与数据传输率:

  在很多人的印象和厂商的宣传中,更高的转速的主要用意在于提高数据传输率,但这并不正确。

  持续数据传输率决定于很多指标,并不光只是转速。

  当然,有人会说转速更高,磁头单位时间划过的扇区就越多,不错,但前提是线密度一样。

  线密度可理解为每磁道扇区数(SPT,SectorsPerTrack)。

  低速硬盘完全可以通过提高SPT来加大数据传输率,SCSI硬盘就是追求SPT的典型。

  事实上,很多厂商在相同单碟容量上对于不同的转速采用了不同的SPT设计,如金钻七的最外圈磁道扇区数为837个,而星钻三代则为896个。

  有人可能会问,那如何保证容量一致呢?这就涉及到每英寸磁道数(TPI,TracksPerInch),它代表了磁道密度。

  SPT高则TPI就会相应减少,如金钻七为60000TPI,星钻三代则是57000TPI。

  本次测试最典型的例子是Caviar系列硬盘,WinBench测得的数据传输率与某些7200RPM产品相当。

  虽然我没有该系列硬盘最外圈SPT资料,但肯定不会低于1000(若转速实为5400RPM),即使转速真的是6000RPM,也在900之上。

  因此5400RPM硬盘完全可以通过提高33%(7200RPM比5400RPM转速高33%)的SPT来得到相同的数据传输率。

  综上所述,7200RPM相对于5400RPM硬盘的最大优势就在于更短的平均潜伏期,进而减少平均访问时间。

  毕竟转速是死的,5400RPM永远处于劣势。

  3、真正的内部数据传输率:

  随着硬盘知识的普及,硬盘DTR这一指标也逐渐被人们所认识,但又出现了新的误区??拿以Mbps为单位的最高内部DTR说事,这其中某些厂商与所谓高手的误导有着不可推卸的责任,后果也是相当严重。

  由于内部DTR决定了硬盘的实际数据传输性能,所以很多人都在关心硬盘的内部DTR,而厂商也投其所好,在产品资料中基本都公布了最大内部传输率,但多是以Mbps为单位,不少人因此拿这个数值来预测硬盘的性能,甚至分析到接口速率的瓶颈(这些人通常将其换算成MBPS,而目前最高的数值将近80MBPS,离UltraATA-100的最大速率已相差不远了)。

  但是,它恰恰不能通过除8来换算成MBPS,因为这个数值是磁头处理二进制0/1信号(即bit)的纯理论性能,而磁头处理的信号很大部分并不是用户需要的数据(存入的数据都是经过编码的,包含许多辅助信息),因此不能以字节为单位。

  很多硬盘这一数值都是相当高的,如以前的富士通硬盘,指标很好,但实际性能却是另一码事。

  完全可以说,这个Mbps值没有什么实际价值,给人的是一种假象。

  在硬盘中,真正重要的是内部持续DTR,它分为单磁道瞬间DTR与持续DTR两个指标,单磁道瞬间DTR的计算公式是“512字节×SPT×磁盘每秒所转圈数”或“512字节×SPT÷磁盘转一圈所用时间”,由于磁盘转一圈所用时间一般不能除尽,所以经常用前一种公式。

  持续DTR的计算公式则为“512字节×SPT×磁头数/总耗时”,其中“总耗时=(磁头数-1)×磁头切换时间+道间寻道时间+磁头数×磁盘转一圈的时间”。

  磁头切换时间一般在产品的用户手册中有标注,大约在1ms左右。

  单磁道瞬间DTR表明了硬盘实际上所能达到的最大内部DTR,持续DTR则体现了硬盘真正的数据传输能力。

  很遗憾的是,目前只有迈拓和IBM提供了内部持续DTR数据,其他厂商仍然用Mbps数值迷惑普通大众。

  但是,厂商心里是明白的,他们自己也不会混淆概念(只是没事偷着乐),在数据的说法上也是非常严谨,如果你哪天发现厂商公布的内部DTR使用了MB/s为单位,那么这很可能就是我们所真正需要的数据,而不要再用Mbps去除8了。

  IBM120GXP的技术资料,其中有两个内部DTR,我们只需关心第二个

  4、缓冲区容量与性能:

  上文说过内部DTR决定了外部DTR的实际表现,但为了将内部DTR对外部DTR的影响降至最低,产生了缓冲区设计。

  理论上讲,缓冲区越大,即使内部DTR不变,硬盘的性能也会更好,这就好比CPU中的缓存一样。

  不过,要做到缓冲区容量的增加并提高性能还是有一定难度的。

  这主要体现在缓存功能管理与数据安全两个方面。

  缓存功能管理决定了缓冲区智能化与缓存效果,简单的说就是一种管理算法与替换策略,负责这一任务的就是缓存控制器。

  上文已经讲到目前都将缓冲区做分段处理,并且是动态的,根据数据流情况自动划分。

  以120GXP为例,在读操作时可最多划分12个数据段(平均容量约155KB),在写操作时数据段可高达52个(平均容量约35KB)。

  那么怎么去动态的划分区段,怎么去选择最不常用的区段以替换成新的数据,都将影响最终的性能表现。