全面優(yōu)化ATA磁盤性能
2020-07-21 19:34:20
供稿:網(wǎng)友
流行的ATA/66(即Ultra DMA/66或UDMA/66)以及ATA/100(即Ultra DMA/100或UDMA/100)標(biāo)準(zhǔn)分別支持66MBps和100MBps的最大傳輸速率,最新的SerialATA標(biāo)準(zhǔn)更讓傳輸速率達(dá)到了150Mbps以上。在典型的單個(gè)磁盤驅(qū)動(dòng)器的環(huán)境中,上述最大傳輸速率在實(shí)際使用中一般是不可達(dá)到的,限制來自多方面,包括ATA芯片的限制、系統(tǒng)總線體系等。
盡管如此,主要是由于SCSI設(shè)備價(jià)格一直居高不下的原因,ATA仍然是當(dāng)前普通工作站的主流選擇。另一方面,如何讓ATA磁盤發(fā)揮出最大的性能,卻不象裝上一個(gè)新驅(qū)動(dòng)器然后連接電纜那么簡(jiǎn)單。
為了及時(shí)跟進(jìn)ATA存儲(chǔ)技術(shù)的不斷發(fā)展,Microsoft不斷發(fā)行各種補(bǔ)丁來改進(jìn)Windows對(duì)ATA的支持。要讓ATA設(shè)備在Windows 2000下以最佳的狀態(tài)運(yùn)行,掌握一些基礎(chǔ)知識(shí)是必不可少的,包括ATA接口、必需的硬件、相關(guān)的軟件(例如,Win2K的補(bǔ)丁,內(nèi)建和第三方的驅(qū)動(dòng)程序)。
一、硬件需求
首先,系統(tǒng)必須有一個(gè)支持硬盤驅(qū)動(dòng)器高級(jí)ATA模式的控制器。當(dāng)前的驅(qū)動(dòng)器支持的最常見的標(biāo)準(zhǔn)包括ATA/33、ATA/66和ATA/100。幾乎所有的ATA控制器都向后兼容,例如ATA/100控制器一般支持那些使用ATA/33甚至更早的IDE或EIDE標(biāo)準(zhǔn)的磁盤。
在大多數(shù)系統(tǒng)上,控制器支持屬于主板ATA芯片組的任務(wù)之一,但也有一些系統(tǒng)的控制器是外插的PCI卡,如ATA RAID控制器。Intel占據(jù)ATA芯片組的大部分市場(chǎng),但也有其他芯片組廠商提供ATA控制器芯片組,如威盛(www.viatech.com.cn)。
芯片組是ATA系統(tǒng)中最重要的一部分,它以及它的驅(qū)動(dòng)程序決定了連接到控制器的設(shè)備可以使用哪些功能。因此,了解ATA系統(tǒng)的第一步是了解主板上的芯片組或控制卡的功能。如果ATA控制芯片是嵌入到主板的,還要檢查一下BIOS是否支持想要使用的ATA模式。可能會(huì)出現(xiàn)這樣的情況,雖然控制芯片支持某種ATA模式,但BIOS卻不支持。如果這樣,你就必須更新主板的BIOS。
接下來要保證采用了適當(dāng)?shù)倪B接方式,盡量把不同的磁盤連接到不同的傳輸通道(電纜)上。這一點(diǎn)很重要,因?yàn)锳TA通道默認(rèn)以當(dāng)前通道上最慢設(shè)備的速率工作。如果一個(gè)ATA/33和一個(gè)ATA/100磁盤連接在同一個(gè)通道上,該通道的最大傳輸速率將是ATA/33。因此,必須把低速的ATA設(shè)備(例如CD-ROM、CD-R、CD-RW、Zip或老式硬盤)接入一個(gè)通道,高速的ATA硬盤接入另一個(gè)通道。
另外還要注意連接的電纜。ATA/33、ATA/66、ATA/100規(guī)范要求使用專用的80線電纜,而早期ATA硬盤使用的通常是40線的電纜。額外增加的電纜線主要起接地的作用,能夠有效地降低電纜傳輸?shù)男旁氡取?
二、Windows的ATA支持
早期的IDE/ATA規(guī)范使用一種叫做Programmed I/O(PIO)的數(shù)據(jù)傳輸方法,這種傳輸方法在很大程度上依賴于CPU把數(shù)據(jù)從硬盤的緩沖內(nèi)存轉(zhuǎn)移到系統(tǒng)內(nèi)存。早期的PIO模式(0、1和2)建立在最初的ATA標(biāo)準(zhǔn)上,后來ATA-2規(guī)范(即EIDE或Fast ATA)包含了兩種新的PIO模式(3和4),同時(shí)引入了兩種直接內(nèi)存訪問(DMA)模式。DMA是一種對(duì)CPU依賴程度不高的傳輸方式,有效地降低了PIO加給系統(tǒng)CPU的壓力。為了提高數(shù)據(jù)傳輸性能,DMA允許IDE控制器直接訪問系統(tǒng)內(nèi)存(其他設(shè)備控制器,包括SCSI和以太網(wǎng)適配器,也都使用了這種技術(shù))。后來,DMA發(fā)展成了Ultra DMA,即Ultra ATA或ATA/33、DMA-33標(biāo)準(zhǔn),它支持新的模式DMA Mode 3。當(dāng)然,為了向后兼容,現(xiàn)在的絕大多數(shù)硬盤支持所有較老的數(shù)據(jù)傳輸模式――包括PIO和DMA。
早期的UDMA磁盤和控制器能夠達(dá)到33MHz的速度,即其理論最大傳輸速率是33MBps。隨著技術(shù)的進(jìn)步,新版本的UDMA支持DMA Mode 4的66MBps,以及DMA Mode 5的100 MBps。今天使用的大多數(shù)ATA硬盤都是ATA/66或ATA/100,提供了原先只有SCSI硬盤才能提供的存儲(chǔ)速率,縮小了ATA和SCSI在性能上的差距。
盡管ATA技術(shù)在PC領(lǐng)域占據(jù)了統(tǒng)治地位,但NT和Win 2K在優(yōu)化ATA磁盤性能方面卻不那么出色。在NT下,這個(gè)問題的根源在于ATA磁盤驅(qū)動(dòng)程序的實(shí)現(xiàn)方式,它用一個(gè)偽SCSI微端口(Miniport Driver)驅(qū)動(dòng)程序atapi.sys結(jié)合scsiport.sys,構(gòu)成一個(gè)偽SCSI驅(qū)動(dòng)程序,實(shí)現(xiàn)對(duì)所有ATA設(shè)備的支持。對(duì)于早期的IDE控制器和設(shè)備,這種一步到位的配置相當(dāng)有效,沒有出現(xiàn)任何明顯的性能問題。但是,atapi.sys驅(qū)動(dòng)程序常常拖了新式控制器和設(shè)備的后腿,因?yàn)閍tapi.sys不能支持新設(shè)備的高級(jí)PIO和DMA操作 模式。雖然一些NT的Service Pack為atapi.sys增加了對(duì)這些新操作模式的支持,但有時(shí)要有第三方的驅(qū)動(dòng)程序才能發(fā)揮出最優(yōu)的性能。
Win2K修改了原來的ATA驅(qū)動(dòng)模式,把a(bǔ)tapi.sys改成了和scsiport.sys一樣的全功能端口驅(qū)動(dòng)程序,廠商們可以在一個(gè)特殊的MiniIDE驅(qū)動(dòng)程序中實(shí)現(xiàn)各種新功能,包括DMA和Busmastering等,使得操作系統(tǒng)能夠發(fā)揮出控制器的特殊功能。盡管如此,在ATA支持方面還有不少問題存在,特別是對(duì)新的DMA Mode 4和5(ATA/66和ATA/100)數(shù)據(jù)傳輸模式的支持。
最初發(fā)行的Win2K支持的速度最高的傳輸模式是UDMA/66,這是當(dāng)前應(yīng)用最廣泛的傳輸模式之一。然后,在一些基于Intel ATA芯片的系統(tǒng)上,Windows默認(rèn)不啟用最快的傳輸模式UDMA/66。顯然,這么做一定有它的理由。但是,注意到這種情況的人并不多。Microsoft發(fā)布的《HOWTO: 如何在Intel芯片上啟用UDM/66模式》http://support.microsoft.com/default.aspx?scid=kb;en-us;q247951)提出了這個(gè)問題。這篇文章說明了如何通過修改注冊(cè)表啟用UDM66,主要步驟如下(適用于Win 2K專業(yè)版、服務(wù)器版、高級(jí)服務(wù)器版):
確保所有硬件支持UDMA66,使用80線的硬盤電纜。
啟動(dòng)注冊(cè)表編輯器Regedt32.exe,找到
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Class/{4D36E96A-
E325-11CE-BFC1-08002BE10318}/0000。
選擇菜單“編輯->添加數(shù)值”:
數(shù)值名稱:EnableUDMA66
數(shù)據(jù)類型:REG_DWORD
值:1
關(guān)閉注冊(cè)表編輯器,重新啟動(dòng)機(jī)器。
令人遺憾的是,這篇文章沒有說明哪些Win 2K的Service Pack、Intel芯片和磁盤受到這個(gè)默認(rèn)配置的影響,也沒有說明與UDMA/100或非Intel芯片有關(guān)的設(shè)置。另一篇與ATA有關(guān)的文章《Windows 2000對(duì)ATA 100(Mode 5)的支持》http://support.microsoft.com/default.aspx?scid=kb;en-us;q260233)指出,Win2K的SP2解決了對(duì)ATA/100(即DMA Mode 5)的支持問題。但是,這篇文章同樣沒有提供一些重要的信息,例如哪些ATA芯片受到該問題的影響(Intel芯片,還是非Intel芯片?),該問題與以前的ATA/66支持問題有何關(guān)系?等等。如果你的系統(tǒng)恰好就是Microsoft在這些文章中所指的系統(tǒng),那么按照推薦的方法修改注冊(cè)表并安裝SP2以上的版本,一般會(huì)解決所有的ATA模式支持問題。否則,最好尋求第三方驅(qū)動(dòng)程序的支持。
三、第三方驅(qū)動(dòng)程序
所有上述文章都沒有提及這類ATA支持問題實(shí)際上與默認(rèn)的atapi.sys驅(qū)動(dòng)程序有關(guān),也沒有指出如果使用專門針對(duì)系統(tǒng)所用芯片設(shè)計(jì)的第三方驅(qū)動(dòng)程序可以獲得更好的效果。實(shí)際上,第三方驅(qū)動(dòng)程序往往能夠解決大多數(shù)前面提到的問題,充分發(fā)揮芯片的能力。大多數(shù)情況下,第三方驅(qū)動(dòng)程序會(huì)自動(dòng)配置系統(tǒng)(包括所有必要的注冊(cè)表設(shè)置),正確啟用芯片能夠支持的最快的ATA模式。遺憾的是,雖然大多數(shù)系統(tǒng)和ATA芯片組的廠商為ATA控制器提供了驅(qū)動(dòng)程序,許多用戶根本不知道這回事,或者根本沒有想到要安裝它們。
例如,就Intel芯片組而言,它提供的第三方驅(qū)動(dòng)程序叫做Application Accelerator(取代以前的Ultra ATA Storage Driver),可以http://support.intel.com/support/chipsets/iaa/下載。該網(wǎng)站不僅提供了支持所有ATA數(shù)據(jù)傳輸模式的Ultra ATA驅(qū)動(dòng)程序,還有一個(gè)芯片組配置工具幫助你檢查Windows 2K是否正確地識(shí)別出了系統(tǒng)的ATA芯片組。其他芯片組廠商,例如www.viatech.com.cn,也提供相應(yīng)的驅(qū)動(dòng)程序。使用第三方驅(qū)動(dòng)程序還有一個(gè)好處,一些程序的軟件包不僅包含正確識(shí)別和啟用高速ATA傳輸模式的工具,而且還有報(bào)告各個(gè)ATA通道和設(shè)備正在使用的PIO或DMA模式的工具。Windows 2000本身也能夠提供類似的信息(打開設(shè)備管理器,選擇ATA通道瀏覽其“屬性”,查看“高級(jí)設(shè)置”),然而,Windows 2000報(bào)告的信息不夠詳細(xì),有時(shí)甚至是錯(cuò)誤的,例如《設(shè)備管理器錯(cuò)誤地把ATA-100設(shè)備顯示成使用PIO而不是UDMA》http://support.microsoft.com/default.aspx?scid=kb;en-us;q269555)。
總而言之,要讓W(xué)in2K下的ATA設(shè)備具有最好的穩(wěn)定性、可管理性和性能,深入了解相關(guān)知識(shí)以及查閱資料是必不可少的。記住,每一個(gè)系統(tǒng)是不同的,包括控制器、芯片組、磁盤生產(chǎn)商、支持的傳輸模式、驅(qū)動(dòng)程序等,應(yīng)當(dāng)讓這一切處于最協(xié)調(diào)、穩(wěn)定的狀態(tài),必要時(shí)使用第三方驅(qū)動(dòng)程序。