在我們平時(shí)選購(gòu)硬盤時(shí),經(jīng)常會(huì)了解硬盤的一些參數(shù),而且很多雜志的相關(guān)文章也對(duì)此進(jìn)行了不少的解釋。不過(guò),很多情況下,這種介紹并不細(xì)致甚至?xí)䦷в幸恍┱`導(dǎo)的成分。今天,我們就聊聊這方面的話題,希望能對(duì)硬盤選購(gòu)者提供應(yīng)有的幫助。
首先,我們來(lái)了解一下硬盤的內(nèi)部結(jié)構(gòu),它將有助于理解本文的相關(guān)內(nèi)容。
圖為:硬盤的內(nèi)部結(jié)構(gòu)
工作時(shí),磁盤在中軸馬達(dá)的帶動(dòng)下,高速旋轉(zhuǎn),而磁頭臂在音圈馬達(dá)的控制下,在磁盤上方進(jìn)行徑向的移動(dòng)進(jìn)行尋址
硬盤常見的技術(shù)指標(biāo)有以下幾種:
1、每分鐘轉(zhuǎn)速(RPM,Revolutions Per Minute):這一指標(biāo)代表了硬盤主軸馬達(dá)(帶動(dòng)磁盤)的轉(zhuǎn)速,比如5400RPM就代表該硬盤中的主軸轉(zhuǎn)速為每分鐘5400轉(zhuǎn)。
2、平均尋道時(shí)間(Average Seek Time):如果沒有特殊說(shuō)明一般指讀取時(shí)的尋道時(shí)間,單位為ms(毫秒)。這一指標(biāo)的含義是指硬盤接到讀/寫指令后到磁頭移到指定的磁道(應(yīng)該是柱面,但對(duì)于具體磁頭來(lái)說(shuō)就是磁道)上方所需要的平均時(shí)間。除了平均尋道時(shí)間外,還有道間尋道時(shí)間(Track to Track或Cylinder Switch Time)與全程尋道時(shí)間(Full Track或Full Stroke),前者是指磁頭從當(dāng)前磁道上方移至相鄰磁道上方所需的時(shí)間,后者是指磁頭從最外(或最內(nèi))圈磁道上方移至最內(nèi)(或最外)圈磁道上方所需的時(shí)間,基本上比平均尋道時(shí)間多一倍。出于實(shí)際的工作情況,我們一般只關(guān)心平均尋道時(shí)間。
3、平均潛伏期(Average Latency):這一指標(biāo)是指當(dāng)磁頭移動(dòng)到指定磁道后,要等多長(zhǎng)時(shí)間指定的讀/寫扇區(qū)會(huì)移動(dòng)到磁頭下方(盤片是旋轉(zhuǎn)的),盤片轉(zhuǎn)得越快,潛伏期越短。平均潛伏期是指磁盤轉(zhuǎn)動(dòng)半圈所用的時(shí)間。顯然,同一轉(zhuǎn)速的硬盤的平均潛伏期是固定的。7200RPM時(shí)約為4.167ms,5400RPM時(shí)約為5.556ms。
4、平均訪問(wèn)時(shí)間(Average Access Time):又稱平均存取時(shí)間,一般在廠商公布的規(guī)格中不會(huì)提供,這一般是測(cè)試成績(jī)中的一項(xiàng),其含義是指從讀/寫指令發(fā)出到第一筆數(shù)據(jù)讀/寫時(shí)所用的平均時(shí)間,包括了平均尋道時(shí)間、平均潛伏期與相關(guān)的內(nèi)務(wù)操作時(shí)間(如指令處理),由于內(nèi)務(wù)操作時(shí)間一般很短(一般在0.2ms左右),可忽略不計(jì),所以平均訪問(wèn)時(shí)間可近似等于平均尋道時(shí)間+平均潛伏期,因而又稱平均尋址時(shí)間。如果一個(gè)5400RPM硬盤的平均尋道時(shí)間是9ms,那么理論上它的平均訪問(wèn)時(shí)間就是14.556ms。
5、數(shù)據(jù)傳輸率(DTR,Data Transfer Rate):?jiǎn)挝粸镸B/s(兆字節(jié)每秒,又稱MBPS)或Mbits/s(兆位每秒,又稱Mbps)。DTR分為最大(Maximum)與持續(xù)(Sustained)兩個(gè)指標(biāo),根據(jù)數(shù)據(jù)交接方的不同又分外部與內(nèi)部數(shù)據(jù)傳輸率。內(nèi)部DTR是指磁頭與緩沖區(qū)之間的數(shù)據(jù)傳輸率,外部DTR是指緩沖區(qū)與主機(jī)(即內(nèi)存)之間的數(shù)據(jù)傳輸率。外部DTR上限取決于硬盤的接口,目前流行的Ultra ATA-100接口即代表外部DTR最高理論值可達(dá)100MB/s,持續(xù)DTR則要看內(nèi)部持續(xù)DTR的水平。內(nèi)部DTR則是硬盤的真正數(shù)據(jù)傳輸能力,為充分發(fā)揮內(nèi)部DTR,外部DTR理論值都會(huì)比內(nèi)部DTR高,但內(nèi)部DTR決定了外部DTR的實(shí)際表現(xiàn)。由于磁盤中最外圈的磁道最長(zhǎng),可以讓磁頭在單位時(shí)間內(nèi)比內(nèi)圈的磁道劃過(guò)更多的扇區(qū),所以磁頭在最外圈時(shí)內(nèi)部DTR最大,在最內(nèi)圈時(shí)內(nèi)部DTR最小。
6、緩沖區(qū)容量(Buffer Size):很多人也稱之為緩存(Cache)容量,單位為MB。在一些廠商資料中還被寫作Cache Buffer。緩沖區(qū)的基本要作用是平衡內(nèi)部與外部的DTR。為了減少主機(jī)的等待時(shí)間,硬盤會(huì)將讀取的資料先存入緩沖區(qū),等全部讀完或緩沖區(qū)填滿后再以接口速率快速向主機(jī)發(fā)送。隨著技術(shù)的發(fā)展,廠商們后來(lái)為SCSI硬盤緩沖區(qū)增加了緩存功能(這也是為什么筆者仍然堅(jiān)持說(shuō)其是緩沖區(qū)的原因)。這主要體現(xiàn)在三個(gè)方面:預(yù)取(Prefetch),實(shí)驗(yàn)表明在典型情況下,至少50%的讀取操作是連續(xù)讀取。預(yù)取功能簡(jiǎn)單地說(shuō)就是硬盤“私自”擴(kuò)大讀取范圍,在緩沖區(qū)向主機(jī)發(fā)送指定扇區(qū)數(shù)據(jù)(即磁頭已經(jīng)讀完指定扇區(qū))之后,磁頭接著讀取相鄰的若干個(gè)扇區(qū)數(shù)據(jù)并送入緩沖區(qū),如果后面的讀操作正好指向已預(yù)取的相鄰扇區(qū),即從緩沖區(qū)中讀取而不用磁頭再尋址,提高了訪問(wèn)速度。寫緩存(Write Cache),通常情況下在寫入操作時(shí),也是先將數(shù)據(jù)寫入緩沖區(qū)再發(fā)送到磁頭,等磁頭寫入完畢后再報(bào)告主機(jī)寫入完畢,主機(jī)才開始處理下一任務(wù)。具備寫緩存的硬盤則在數(shù)據(jù)寫入緩區(qū)后即向主機(jī)報(bào)告寫入完畢,讓主機(jī)提前“解放”處理其他事務(wù)(剩下的磁頭寫入操作主機(jī)不用等待),提高了整體效率。為了進(jìn)一步提高效能,現(xiàn)在的廠商基本都應(yīng)用了分段式緩存技術(shù)(Multiple Segment Cache),將緩沖區(qū)劃分成多個(gè)小塊,存儲(chǔ)不同的寫入數(shù)據(jù),而不必為小數(shù)據(jù)浪費(fèi)整個(gè)緩沖區(qū)空間,同時(shí)還可以等所有段寫滿后統(tǒng)一寫入,性能更好。讀緩存(Read Cache),將讀取過(guò)的數(shù)據(jù)暫時(shí)保存在緩沖區(qū)中,如果主機(jī)再次需要時(shí)可直接從緩沖區(qū)提供,加快速度。讀緩存同樣也可以利用分段技術(shù),存儲(chǔ)多個(gè)互不相干的數(shù)據(jù)塊,緩存多個(gè)已讀數(shù)據(jù),進(jìn)一步提高緩存命中率。
圖為:經(jīng)常能看到的硬盤參數(shù)指標(biāo),正確理解它們的含義對(duì)選購(gòu)會(huì)有幫助
7、噪音與溫度(Noise & Temperature):這兩個(gè)屬于非性能指標(biāo)。對(duì)于噪音,以前廠商們并不在意,但從2000年開始,出于市場(chǎng)的需要(比如OEM廠商希望生產(chǎn)更安靜的電腦以增加賣點(diǎn))廠商通過(guò)各種手段來(lái)降低硬盤的工作噪音,ATA-5規(guī)范第三版也加入了自動(dòng)聲學(xué)(噪音)管理子集(AAM,Automatic Acoustic Management),因此目前的所有新硬盤都支持AAM功能。硬盤的噪音主要來(lái)源于主軸馬達(dá)與音圈馬達(dá),降噪也是從這兩點(diǎn)入手(盤片的增多也會(huì)增加噪音,但這沒有辦法)。除了AAM外,廠商的努力在上文的廠商介紹中已經(jīng)講到,在此就不多說(shuō)了。至于熱量,其實(shí)每個(gè)廠商都有自己的標(biāo)準(zhǔn),并聲稱硬盤的表現(xiàn)是他們預(yù)料之中的,完全在安全范圍之內(nèi),沒有問(wèn)題。這一點(diǎn)倒的是不用擔(dān)心,不過(guò)關(guān)鍵在于硬盤是機(jī)箱中的一個(gè)組成部分,它的高熱會(huì)提高機(jī)箱的整體溫度,也許硬盤本身沒事,但可能周圍的配件卻經(jīng)受不了,別的不說(shuō),如果是兩個(gè)高熱的硬盤安裝得很緊密,那么它還能承受近乎于雙倍的熱量嗎?所以硬盤的熱量仍需廠商們注意。
對(duì)硬盤認(rèn)識(shí)的常見誤區(qū)(一)
1、轉(zhuǎn)速與尋道時(shí)間:
現(xiàn)在不少人都認(rèn)為硬盤轉(zhuǎn)速越快尋道時(shí)間就越快,但這是最常見的錯(cuò)誤認(rèn)識(shí),事實(shí)上尋道速度根本不決定于轉(zhuǎn)速,因?yàn)閮烧叩目刂圃O(shè)備就不一樣。轉(zhuǎn)速是由主軸馬達(dá)控制,尋道則由音圈馬達(dá)控制。尋道時(shí)間說(shuō)白了就是體現(xiàn)了磁頭臂徑向運(yùn)動(dòng)的速度與控制能力,音圈馬達(dá)與相應(yīng)的伺服系統(tǒng)起著重要作用。另外,磁頭的高靈敏度也有助于在高密度磁盤上準(zhǔn)確捕獲伺服標(biāo)記,進(jìn)而快速定位。很多情況下,我們都可以看到5400RPM硬盤的尋道時(shí)間與7200RPM硬盤一樣(如三星的V40與P40)。之所以有些高速硬盤(如SCSI硬盤)的尋道時(shí)間更快,是因?yàn)閺S商的有意設(shè)計(jì),就好像一臺(tái)Pentium4電腦只配32MB內(nèi)存讓人覺得不平衡一樣,廠商也會(huì)給高速硬盤配上更快的尋道時(shí)間(也意味著更好的元件與更高的成本,顯然廠商要根據(jù)市場(chǎng)的需要權(quán)衡利弊)。實(shí)際上,通過(guò)上文有關(guān)平均訪問(wèn)時(shí)間的解釋,大家應(yīng)該明白,提高轉(zhuǎn)速的主用意就是減少平均潛伏期,進(jìn)而加快整體的訪問(wèn)速度,也許很多人不認(rèn)同這是它最重要的用意,由此就又引出了下一個(gè)誤區(qū)。
2、轉(zhuǎn)速與數(shù)據(jù)傳輸率:
在很多人的印象和廠商的宣傳中,更高的轉(zhuǎn)速的主要用意在于提高數(shù)據(jù)傳輸率,但這并不正確。持續(xù)數(shù)據(jù)傳輸率決定于很多指標(biāo),并不光只是轉(zhuǎn)速。當(dāng)然,有人會(huì)說(shuō)轉(zhuǎn)速更高,磁頭單位時(shí)間劃過(guò)的扇區(qū)就越多,不錯(cuò),但前提是線密度一樣。線密度可理解為每磁道扇區(qū)數(shù)(SPT,Sectors Per Track)。低速硬盤完全可以通過(guò)提高SPT來(lái)加大數(shù)據(jù)傳輸率,SCSI硬盤就是追求SPT的典型。事實(shí)上,很多廠商在相同單碟容量上對(duì)于不同的轉(zhuǎn)速采用了不同的SPT設(shè)計(jì),如金鉆七的最外圈磁道扇區(qū)數(shù)為837個(gè),而星鉆三代則為896個(gè)。有人可能會(huì)問(wèn),那如何保證容量一致呢?這就涉及到每英寸磁道數(shù)(TPI,Tracks Per Inch),它代表了磁道密度。SPT高則TPI就會(huì)相應(yīng)減少,如金鉆七為60000TPI,星鉆三代則是57000TPI。本次測(cè)試最典型的例子是Caviar系列硬盤,WinBench測(cè)得的數(shù)據(jù)傳輸率與某些7200RPM產(chǎn)品相當(dāng)。雖然我沒有該系列硬盤最外圈SPT資料,但肯定不會(huì)低于1000(若轉(zhuǎn)速實(shí)為5400RPM),即使轉(zhuǎn)速真的是6000RPM,也在900之上。因此5400RPM硬盤完全可以通過(guò)提高33%(7200RPM比5400RPM轉(zhuǎn)速高33%)的SPT來(lái)得到相同的數(shù)據(jù)傳輸率。
綜上所述,7200RPM相對(duì)于5400RPM硬盤的最大優(yōu)勢(shì)就在于更短的平均潛伏期,進(jìn)而減少平均訪問(wèn)時(shí)間。畢竟轉(zhuǎn)速是死的,5400RPM永遠(yuǎn)處于劣勢(shì)。
3、真正的內(nèi)部數(shù)據(jù)傳輸率:
隨著硬盤知識(shí)的普及,硬盤DTR這一指標(biāo)也逐漸被人們所認(rèn)識(shí),但又出現(xiàn)了新的誤區(qū)——拿以Mbps為單位的最高內(nèi)部DTR說(shuō)事,這其中某些廠商與所謂高手的誤導(dǎo)有著不可推卸的責(zé)任,后果也是相當(dāng)嚴(yán)重。由于內(nèi)部DTR決定了硬盤的實(shí)際數(shù)據(jù)傳輸性能,所以很多人都在關(guān)心硬盤的內(nèi)部DTR,而廠商也投其所好,在產(chǎn)品資料中基本都公布了最大內(nèi)部傳輸率,但多是以Mbps為單位,不少人因此拿這個(gè)數(shù)值來(lái)預(yù)測(cè)硬盤的性能,甚至分析到接口速率的瓶頸(這些人通常將其換算成MBPS,而目前最高的數(shù)值將近80MBPS,離Ultra ATA-100的最大速率已相差不遠(yuǎn)了)。但是,它恰恰不能通過(guò)除8來(lái)?yè)Q算成MBPS,因?yàn)檫@個(gè)數(shù)值是磁頭處理二進(jìn)制0/1信號(hào)(即bit)的純理論性能,而磁頭處理的信號(hào)很大部分并不是用戶需要的數(shù)據(jù)(存入的數(shù)據(jù)都是經(jīng)過(guò)編碼的,包含許多輔助信息),因此不能以字節(jié)為單位。很多硬盤這一數(shù)值都是相當(dāng)高的,如以前的富士通硬盤,指標(biāo)很好,但實(shí)際性能卻是另一碼事。完全可以說(shuō),這個(gè)Mbps值沒有什么實(shí)際價(jià)值,給人的是一種假象。
在硬盤中,真正重要的是內(nèi)部持續(xù)DTR,它分為單磁道瞬間DTR與持續(xù)DTR兩個(gè)指標(biāo),單磁道瞬間DTR的計(jì)算公式是“512字節(jié)×SPT×磁盤每秒所轉(zhuǎn)圈數(shù)”或“512字節(jié)×SPT÷磁盤轉(zhuǎn)一圈所用時(shí)間”,由于磁盤轉(zhuǎn)一圈所用時(shí)間一般不能除盡,所以經(jīng)常用前一種公式。持續(xù)DTR的計(jì)算公式則為“512字節(jié)×SPT×磁頭數(shù)/總耗時(shí)”,其中“總耗時(shí)=(磁頭數(shù)-1)×磁頭切換時(shí)間+道間尋道時(shí)間+磁頭數(shù)×磁盤轉(zhuǎn)一圈的時(shí)間”。磁頭切換時(shí)間一般在產(chǎn)品的用戶手冊(cè)中有標(biāo)注,大約在1ms左右。單磁道瞬間DTR表明了硬盤實(shí)際上所能達(dá)到的最大內(nèi)部DTR,持續(xù)DTR則體現(xiàn)了硬盤真正的數(shù)據(jù)傳輸能力。很遺憾的是,目前只有邁拓和IBM提供了內(nèi)部持續(xù)DTR數(shù)據(jù),其他廠商仍然用Mbps數(shù)值迷惑普通大眾。但是,廠商心里是明白的,他們自己也不會(huì)混淆概念(只是沒事偷著樂),在數(shù)據(jù)的說(shuō)法上也是非常嚴(yán)謹(jǐn),如果你哪天發(fā)現(xiàn)廠商公布的內(nèi)部DTR使用了MB/s為單位,那么這很可能就是我們所真正需要的數(shù)據(jù),而不要再用Mbps去除8了。
圖為:IBM 120GXP 其中有兩個(gè)內(nèi)部DTR 我們只需關(guān)心第二個(gè)
4、緩沖區(qū)容量與性能:
上文說(shuō)過(guò)內(nèi)部DTR決定了外部DTR的實(shí)際表現(xiàn),但為了將內(nèi)部DTR對(duì)外部DTR的影響降至最低,產(chǎn)生了緩沖區(qū)設(shè)計(jì)。理論上講,緩沖區(qū)越大,即使內(nèi)部DTR不變,硬盤的性能也會(huì)更好,這就好比CPU中的緩存一樣。不過(guò),要做到緩沖區(qū)容量的增加并提高性能還是有一定難度的。這主要體現(xiàn)在緩存功能管理與數(shù)據(jù)安全兩個(gè)方面。緩存功能管理決定了緩沖區(qū)智能化與緩存效果,簡(jiǎn)單的說(shuō)就是一種管理算法與替換策略,負(fù)責(zé)這一任務(wù)的就是緩存控制器。上文已經(jīng)講到目前都將緩沖區(qū)做分段處理,并且是動(dòng)態(tài)的,根據(jù)數(shù)據(jù)流情況自動(dòng)劃分。以120GXP為例,在讀操作時(shí)可最多劃分12個(gè)數(shù)據(jù)段(平均容量約155KB),在寫操作時(shí)數(shù)據(jù)段可高達(dá)52個(gè)(平均容量約35KB)。那么怎么去動(dòng)態(tài)的劃分區(qū)段,怎么去選擇最不常用的區(qū)段以替換成新的數(shù)據(jù),都將影響最終的性能表現(xiàn)。比如區(qū)段劃分不合理將影響緩沖區(qū)空間的利用率和預(yù)讀效果,數(shù)據(jù)替換不合理將影響緩存命中率,這樣一來(lái)說(shuō)不定與小容量緩沖區(qū)性能差不多。講到這,大家肯定會(huì)想到了CPU緩存的算法(比如N路級(jí)聯(lián)與更新策略等),的確兩者有相同之處。對(duì)于更大容量的緩沖區(qū),肯定就不能照搬小容量緩沖區(qū)的緩存管理算法。因此,緩沖區(qū)越大性能越好是有前提的,這對(duì)廠商的緩存管理技術(shù)水平提出了更高的要求。
大容量緩沖區(qū)的數(shù)據(jù)安全性主要是指在突然斷電的情況下,緩沖區(qū)中的待寫數(shù)據(jù)將如何處理的問(wèn)題。這方面筆記本電腦硬盤就有了得天獨(dú)厚的優(yōu)勢(shì),因?yàn)橛须姵貫楹蠖,筆記本電腦硬盤的緩沖區(qū)容量已經(jīng)提升到了16MB。但對(duì)于臺(tái)式機(jī),這是個(gè)不小的考驗(yàn)。WD公司在這方面做出了有意義的探索,主要方法是通過(guò)將數(shù)據(jù)暫時(shí)保存在最外圈暫存區(qū)(因?yàn)樽钔馊Φ膶懭胨俣茸羁?,下次開機(jī)再寫入原目的地址的方法來(lái)保證緩沖區(qū)中待寫數(shù)據(jù)的安全,顯然這需要特殊的管理機(jī)制,也是廠商的自由發(fā)揮了。
最后我們?cè)僬務(wù)勀壳捌毡榱餍械恼f(shuō)法——大容量緩沖區(qū)對(duì)零散數(shù)據(jù)非常有利,這是很片面的認(rèn)識(shí)。當(dāng)然,這種說(shuō)法可以理解,也沒有什么根本性錯(cuò)誤,但容易誤導(dǎo)人們對(duì)大容量緩沖區(qū)的認(rèn)識(shí)。從分段式緩存結(jié)構(gòu)可以看出,更大的緩沖區(qū)理論上可以劃分出更多的數(shù)據(jù)段,能容納更多的互不相干的小數(shù)據(jù)塊。而這種隨機(jī)的、不連貫的、小數(shù)據(jù)量的讀取行為在Web服務(wù)、數(shù)據(jù)庫(kù)服務(wù)與日常辦公應(yīng)用中很常見。如在Web服務(wù)中,經(jīng)常出現(xiàn)對(duì)一個(gè)網(wǎng)頁(yè)同時(shí)有多個(gè)請(qǐng)求的情況,而一個(gè)網(wǎng)頁(yè)的大小也就是幾十到幾百KB的容量,如果緩沖區(qū)能緩存更多的頁(yè)面,那么服務(wù)器的表現(xiàn)也會(huì)越好。因此大容量緩沖區(qū)在這方面的貢獻(xiàn),我們完全肯定。但另一方面,對(duì)于大容量,連續(xù)讀寫的數(shù)據(jù)操作,大容量緩沖區(qū)同樣能發(fā)揮重要的作用。更大的緩沖區(qū)此時(shí)意味可一次緩沖更多的數(shù)據(jù)(硬盤會(huì)根據(jù)數(shù)據(jù)量將區(qū)段合并),即能在相同的時(shí)間內(nèi)向主機(jī)或磁頭發(fā)送更多的數(shù)據(jù),而磁頭的連續(xù)讀寫扇區(qū)的能力更容易發(fā)揮。所以,在音頻、視頻處理等經(jīng)常用到大數(shù)據(jù)量連續(xù)讀寫的場(chǎng)合,大容量緩沖區(qū)硬盤是最佳之選。在下面的測(cè)試中,大家也會(huì)發(fā)現(xiàn)8MB緩沖區(qū)硬盤相對(duì)于2MB緩沖區(qū)硬盤的整體優(yōu)勢(shì)。