




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SATA全速命令隊(duì)列(NCQ)提高性能高層建筑的電梯與硬盤(pán)技術(shù)SATA接口全速命令隊(duì)列(NCQ)之間有什么共同之處?二者都具有可靠、高效地輸送能力,這使得這兩種完全不同的運(yùn)輸機(jī)制,在技術(shù)上有了非常相似之處。在高層辦公建筑內(nèi)乘坐電梯。當(dāng)工作人員和來(lái)訪者進(jìn)入電梯要去不同的樓層時(shí),他們就按樓層按鈕。當(dāng)許多人在不同的樓層進(jìn)入電梯,要去往不同的樓層時(shí),電梯并不是按照按鈕按下的順序去??繕菍?,這種方法會(huì)給電梯的各種部件造成不必要的磨損,比如:鋼索系統(tǒng)、剎車(chē)、液壓系統(tǒng)、傳動(dòng)裝置和導(dǎo)向軸等。對(duì)于許多乘客來(lái)說(shuō),當(dāng)一部笨拙的電梯哼哼唧唧地從一層開(kāi)到另一層,按照按鈕按下的順序??啃对猿丝蜁r(shí),會(huì)產(chǎn)生許多額外的等候時(shí)間
2、。電梯最順暢有效的運(yùn)行順序是,每次都運(yùn)行到最近的樓層???,每次向反方向運(yùn)行之前,先要到達(dá)最高或最低的??奎c(diǎn)。硬盤(pán)的NCQ技術(shù)使用類(lèi)似的方法來(lái)高效地安排和運(yùn)行數(shù)據(jù)命令。沒(méi)有NCQ的硬盤(pán)像笨拙的電梯一樣效率低下,并會(huì)按照命令發(fā)送到硬盤(pán)的順序來(lái)執(zhí)行它們。有了NCQ,硬盤(pán)會(huì)考慮讀/寫(xiě)頭在盤(pán)片上的位置,然后決定最有效的命令執(zhí)行順序,像電梯一樣,先將磁頭移到最近的位置執(zhí)行命令,再按照相同的方式到下一個(gè)位置更特別的是,NCQ通過(guò)讓硬盤(pán)在內(nèi)部?jī)?yōu)化工作負(fù)荷或命令的執(zhí)行順序,從而提高了硬盤(pán)性能并延長(zhǎng)了硬盤(pán)壽命。在硬盤(pán)內(nèi)部,命令隊(duì)列對(duì)命令進(jìn)行智能重排,最大程度地減少硬盤(pán)的機(jī)械定位延遲,有助于改善工作隊(duì)列的性能。這一
3、點(diǎn)非常重要,因?yàn)樵诮裉斓挠?jì)算機(jī)系統(tǒng)中,只有硬盤(pán)內(nèi)的所有移動(dòng)部件是機(jī)械裝置,包括:磁頭驅(qū)動(dòng)臂、盤(pán)片等。正是這種有效地對(duì)傳輸路徑進(jìn)行排序的能力,最大程度地減小了機(jī)械磨損降,優(yōu)化了性能,使SATA硬盤(pán)與電梯技術(shù)有了相似之處。NCQ為系統(tǒng)構(gòu)建商提供了一種方法,可以輕松地將用于臺(tái)式機(jī)的高容量SATA硬盤(pán)擴(kuò)大到用于高性能PC機(jī)、工作站和初級(jí)服務(wù)器,而且只需為每GB容量支付不到1美元。在“SATA1.0技術(shù)規(guī)范擴(kuò)充版”引入的大多數(shù)先進(jìn)特性中,NCQ是一種命令協(xié)議,它能允許同一塊硬盤(pán)在同一時(shí)間有多個(gè)待執(zhí)行命令。NCQ有一個(gè)待執(zhí)行命令的內(nèi)部隊(duì)列,該隊(duì)列與跟蹤待執(zhí)行命令和已完成工作的機(jī)制一起,對(duì)隊(duì)列中的命令進(jìn)行重
4、新計(jì)劃或排序。NCQ還允許主機(jī)在硬盤(pán)為另一個(gè)命令查尋數(shù)據(jù)時(shí),對(duì)硬盤(pán)發(fā)生附加命令。這樣做的結(jié)果是減少了機(jī)械運(yùn)動(dòng),降低了盤(pán)片的旋轉(zhuǎn)延遲,提高了性能。有這樣幾種方法來(lái)最大程度地減少旋轉(zhuǎn)延遲。一種方法是部署更高轉(zhuǎn)速的硬盤(pán),比如具有10K甚至更高主軸轉(zhuǎn)速的ATA硬盤(pán)。然而,具有高RPM主軸轉(zhuǎn)速的硬盤(pán)卻價(jià)格昂貴。另一種方法就是根據(jù)硬盤(pán)磁頭的旋轉(zhuǎn)位置,確定下次應(yīng)該執(zhí)行的最佳命令,并對(duì)待執(zhí)行命令重新排序。還可以使用無(wú)序數(shù)據(jù)傳送方式來(lái)降低旋轉(zhuǎn)延遲,這種特性不需要磁頭首先去訪問(wèn)初始LBA(邏輯塊尋址)。磁頭可以在目標(biāo)LBA內(nèi)的任意位置開(kāi)始讀取數(shù)據(jù)。當(dāng)磁頭定位在正確的磁道上方時(shí),就開(kāi)始讀取數(shù)據(jù),錯(cuò)過(guò)的數(shù)據(jù)待磁盤(pán)旋轉(zhuǎn)
5、回來(lái)后再補(bǔ)上即可;而不需要為回到被請(qǐng)求數(shù)據(jù)的第一個(gè)LBA上方進(jìn)行旋轉(zhuǎn)。NCQ通過(guò)在較少的磁盤(pán)旋轉(zhuǎn)中處理更多的IOPS來(lái)減少旋轉(zhuǎn)延遲。結(jié)果是在繁重工作負(fù)荷中,有更多的IOPS被處理了。NCQ是動(dòng)態(tài)的,工作負(fù)荷越重,硬盤(pán)性能越高。當(dāng)明顯需要對(duì)待處理命令重新排隊(duì)以減小機(jī)械負(fù)擔(dān),改善輸入/輸由(I/O)延遲時(shí),這樣做要比簡(jiǎn)單地在隊(duì)列中收集命令效果好。重排序算法使用一個(gè)被稱(chēng)為“基于尋道和旋轉(zhuǎn)優(yōu)化的命令重新排序”,或者稱(chēng)為標(biāo)記命令隊(duì)列(TCQ)的過(guò)程,優(yōu)化了目標(biāo)數(shù)據(jù)的線性和角度定位,從而最大程度地縮短總服務(wù)時(shí)間。命令隊(duì)列減輕了機(jī)械負(fù)荷,降低了機(jī)械磨損,延長(zhǎng)了硬盤(pán)壽命。NCQ是執(zhí)行標(biāo)記命令隊(duì)列(TCQ)的高
6、效協(xié)議。與TCQ不同的是,SATANCQ降低了隊(duì)列算法導(dǎo)致的額外開(kāi)銷(xiāo)。TCQ沒(méi)有在ATA硬盤(pán)中獲得廣泛采用的原因,是其所提高的性能被額外開(kāi)銷(xiāo)給抵消了。SATA通過(guò)采用高效的狀態(tài)返回機(jī)制(無(wú)競(jìng)爭(zhēng))、低中斷開(kāi)銷(xiāo)和第一方DMA等技術(shù),極大地降低了額外開(kāi)銷(xiāo),上述這些技術(shù)是無(wú)法在PATA中實(shí)施的。無(wú)競(jìng)爭(zhēng)狀態(tài)返回機(jī)制這一特性消除了傳統(tǒng)上硬盤(pán)為了返回狀態(tài)而與主機(jī)之間必須進(jìn)行的“握手”過(guò)程,允許在任意時(shí)刻交流任意命令狀態(tài),使硬盤(pán)可以順序或者同時(shí)完成多個(gè)命令。中斷聚合硬盤(pán)為了完成一條命令通常會(huì)中斷主機(jī)許多次。中斷越多,主機(jī)的處理負(fù)擔(dān)就越重,性能就越低。NCQ將處理每條命令的平均中斷次數(shù)降低到了一次。如果硬盤(pán)在很
7、短的時(shí)間內(nèi)完成多條命令(這在工作負(fù)荷繁重時(shí)經(jīng)常由現(xiàn)),NCQ可以將單個(gè)中斷聚合起來(lái),這樣主機(jī)控制器只需處理一個(gè)中斷就可以了。第一方DMA(FPDMA)NCQ采用第一方DMA技術(shù),使硬盤(pán)能夠在沒(méi)有主機(jī)軟件干預(yù)的情況下,為數(shù)據(jù)傳輸設(shè)置直接內(nèi)存訪問(wèn)(DMA)操作。硬盤(pán)通過(guò)向主機(jī)控制器發(fā)送一個(gè)DMASetupFIS(楨信息結(jié)構(gòu))來(lái)選擇DMA內(nèi)容。這一FIS為被設(shè)置的DMA指定了命令標(biāo)記。主機(jī)控制器根據(jù)標(biāo)記值,為該命令向DMA引擎內(nèi)裝載PRD表指針,然后,數(shù)據(jù)傳輸就可以在沒(méi)有軟件干預(yù)情況下進(jìn)行,硬盤(pán)由于可以自己選擇所傳送的緩沖區(qū),就能夠更有效地對(duì)命令重新排序。對(duì)NCQ的詳細(xì)說(shuō)明NCQ由三個(gè)主要過(guò)程組成:
8、在硬盤(pán)中建立一個(gè)命令隊(duì)列為每個(gè)命令傳輸數(shù)據(jù)返回完成命令的狀態(tài)建立隊(duì)列當(dāng)硬盤(pán)接到一個(gè)命令時(shí),它需要知道是該將其放入隊(duì)列,還是立即執(zhí)行它,以及使用何種協(xié)議(比如NCQ、DMA或PIO等)來(lái)處理它。硬盤(pán)根據(jù)主機(jī)發(fā)送的特定的命令操作代碼(opcode)來(lái)決定使用的協(xié)議。為了使SATA能夠利用NCQ,人們開(kāi)發(fā)了兩個(gè)特殊的NCQ命令:ReadFPDMAQueued和WriteFPDMAQueued。這兩個(gè)命令是對(duì)LBA和扇區(qū)計(jì)數(shù)命令的擴(kuò)展,LBA和扇區(qū)計(jì)數(shù)命令是為滿(mǎn)足今天的大容量硬盤(pán)的需要而設(shè)計(jì)的。這些命令還包含了支持高可用性應(yīng)用的FUA(forceunitaccess)位。當(dāng)一個(gè)WriteFPDMAQu
9、eued命令的FUA位被設(shè)置時(shí),硬盤(pán)會(huì)在標(biāo)記該命令無(wú)錯(cuò)完成前將數(shù)據(jù)提交給介質(zhì)。通過(guò)對(duì)寫(xiě)命令使用FUA位,主機(jī)可以管理硬盤(pán)內(nèi)部緩存中還沒(méi)有提交給盤(pán)片的數(shù)據(jù)O除此之外,每個(gè)進(jìn)入隊(duì)列的命令都會(huì)被分配一個(gè)唯一的標(biāo)記值,用來(lái)識(shí)別主機(jī)和硬盤(pán)之間所有待執(zhí)行的命令。標(biāo)記值的范圍是0至U31(硬盤(pán)可以支持小于32的隊(duì)列深度),使所有命令的狀態(tài)都可以用一個(gè)32位的值來(lái)報(bào)告。隊(duì)列與非隊(duì)列命令之間的區(qū)別在命令發(fā)生后就顯示由來(lái)了。當(dāng)非隊(duì)列命令發(fā)生后,硬盤(pán)傳送相關(guān)的數(shù)據(jù),清除狀態(tài)寄存器中的忙碌位(BSY),并通知主機(jī)命令完成。當(dāng)隊(duì)列命令發(fā)生后,硬盤(pán)在將數(shù)據(jù)傳輸給主機(jī)之前就清除BSY位。這時(shí),BSY位的作用不是通知命令完成
10、,而是通知主機(jī)硬盤(pán)已經(jīng)準(zhǔn)備接受新的命令。一旦BSY位被清除,主機(jī)就可以向硬盤(pán)發(fā)送其它隊(duì)列命令,使硬盤(pán)內(nèi)可以建立一個(gè)命令隊(duì)列。傳輸數(shù)據(jù)NCQ使用第一方DMA在硬盤(pán)和主機(jī)之間傳輸數(shù)據(jù)。第一方DMA特性讓硬盤(pán)能夠控制對(duì)DAM引擎的編程以傳輸數(shù)據(jù),使其可以以最有效的方式對(duì)命令重新排序,從而減少旋轉(zhuǎn)延遲。由于在特定時(shí)刻,只有硬盤(pán)才知道磁頭的角度和旋轉(zhuǎn)位置,所以對(duì)于SATA來(lái)說(shuō),這是一項(xiàng)重要改進(jìn)。硬盤(pán)控制了DMA引擎的編程,這樣就可以選擇使尋道和旋轉(zhuǎn)延遲時(shí)間最小的數(shù)據(jù)進(jìn)行傳輸。第一方DMA通過(guò)使硬盤(pán)無(wú)序返回?cái)?shù)據(jù),進(jìn)一步減少了旋轉(zhuǎn)等待。該特性使硬盤(pán)可以先返回一條命令的一部分?jǐn)?shù)據(jù),再發(fā)送另一條命令的一部分?jǐn)?shù)據(jù)
11、,然后再完成發(fā)送第一條命令的所有數(shù)據(jù),前提是這樣做是完成數(shù)據(jù)傳輸?shù)淖钣行Х绞?,這與智能電梯的運(yùn)行方式非常相似。狀態(tài)返回?zé)o競(jìng)爭(zhēng)狀態(tài)返回將多條命令的中斷聚集起來(lái),以提高性能。主機(jī)與硬盤(pán)協(xié)調(diào)工作,不需要通訊就能無(wú)競(jìng)爭(zhēng)地返回狀態(tài),并且確保32位的SActive寄存器的內(nèi)容在任何時(shí)間都保持準(zhǔn)確,它是主機(jī)和硬盤(pán)為了確定哪些命令還未執(zhí)行所需要使用的。SActive寄存器為每個(gè)標(biāo)記分配了一個(gè)位,比如,第x位表示的是標(biāo)記為x的命令的狀態(tài)。SActive寄存器中的一個(gè)位,表示硬盤(pán)中對(duì)應(yīng)標(biāo)記的命令還未執(zhí)行(或者與該標(biāo)記對(duì)應(yīng)的命令將被發(fā)送給硬盤(pán))。從SActive寄存器中清除一位,意味著硬盤(pán)中與該標(biāo)記對(duì)應(yīng)的命令已經(jīng)執(zhí)
12、行。另一項(xiàng)重要的狀態(tài)返回功能是,SetDeviceBitsFIS能夠在硬盤(pán)完成了多條命令后同時(shí)通知主機(jī),這樣就可確保主機(jī)在多條命令完成后只接受一次中斷。如果一個(gè)請(qǐng)求隊(duì)列在硬盤(pán)中建立起來(lái),隊(duì)列只對(duì)命令的重排序進(jìn)行優(yōu)化。在今天的臺(tái)式機(jī)的工作中,許多應(yīng)用在莫一時(shí)刻只請(qǐng)求一塊數(shù)據(jù),只有在接收到前面的數(shù)據(jù)后,才會(huì)請(qǐng)求要后面的數(shù)據(jù)。在這種情況下,硬盤(pán)一次只能收到一條未執(zhí)行命令。這樣,由于不用重新排序,硬盤(pán)就不可能利用隊(duì)列的優(yōu)勢(shì)。然而,即使應(yīng)用一次只發(fā)送一個(gè)請(qǐng)求,超線程技術(shù)也使建立隊(duì)列成為可能。超線程技術(shù)能夠?qū)Χ鄠€(gè)同一程序的并發(fā)使用進(jìn)行管理,極大地提高了多線程的數(shù)量,這樣,在同一時(shí)間,就很可能有多個(gè)未處理的
13、I/O請(qǐng)求由現(xiàn)。然而,為了利用隊(duì)列的優(yōu)點(diǎn)來(lái)獲得最佳性能,需要對(duì)應(yīng)用進(jìn)行修改。為了建立隊(duì)列而需要對(duì)應(yīng)用進(jìn)行的修改并不大。今天,大多數(shù)應(yīng)用在編程時(shí)采用同步I/O,也稱(chēng)為阻塞I/O。在同步I/O中,只有當(dāng)對(duì)文件的讀或?qū)懲瓿珊螅δ苷{(diào)用才會(huì)返回。為了利用隊(duì)列,應(yīng)用要采用異步I/Oo異步I/O是非阻塞的,就是說(shuō)在對(duì)文件的讀寫(xiě)請(qǐng)求完成之前,功能調(diào)用就會(huì)返回。應(yīng)用將決定是通過(guò)校驗(yàn)事件還是接收回叫(callback)來(lái)判斷I/O是否完成。由于功能調(diào)用后立即返回,應(yīng)用就可以繼續(xù)做有用的工作,包括發(fā)生更多的讀寫(xiě)文件指令。僅有硬件支持NCQ是不夠的。操作系統(tǒng)和軟件應(yīng)用也需要向存儲(chǔ)設(shè)備發(fā)送異步I/O命令來(lái)利用NCQ硬件和軟件NCQ可以降低硬盤(pán)產(chǎn)生的熱量、改善系統(tǒng)可靠性并提高多種系統(tǒng)的IOPS性能,這些系統(tǒng)包括單硬盤(pán)的臺(tái)式機(jī)和筆記本電腦,以及工作站和入門(mén)級(jí)服務(wù)器。編寫(xiě)訪問(wèn)多個(gè)文件的應(yīng)用的最佳方式,是使用非阻塞I/O調(diào)用同時(shí)發(fā)生所有文件訪問(wèn)命令。應(yīng)用可以使用事件或回叫來(lái)確定各個(gè)調(diào)用何時(shí)完成。如果有很多I/O任務(wù),比如4到8個(gè),同時(shí)將它們都發(fā)送生去可以將數(shù)據(jù)檢索時(shí)間降低一半。在主流計(jì)算系統(tǒng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【二胡演奏中氣息的運(yùn)用分析7800字】
- 【7天連鎖酒店整合營(yíng)銷(xiāo)策略分析17000字】
- 芮城二中考試題及答案
- 請(qǐng)問(wèn)食堂里考試題考C及答案
- caac理論考試題庫(kù)及答案
- 2025年銅川市宜君縣大學(xué)生到政府機(jī)關(guān)考試筆試試題(含答案)
- 2025年阜陽(yáng)市潁東區(qū)社區(qū)工作者招聘考試筆試試題(含答案)
- 2025年地方政府公務(wù)員考試試題及答案的應(yīng)試技巧
- 汽修廠轎車(chē)維修專(zhuān)項(xiàng)技術(shù)培訓(xùn)制度
- 汽修廠支票領(lǐng)用登記與銷(xiāo)賬管理制度
- T73繼電器組裝生產(chǎn)線技術(shù)方案
- 團(tuán)員組織關(guān)系轉(zhuǎn)接介紹信(樣表)
- 福建省泉州市泉州實(shí)驗(yàn)中學(xué)2024屆八上數(shù)學(xué)期末聯(lián)考模擬試題含解析
- 抖音員工號(hào)申請(qǐng)?jiān)诼氉C明參考模板
- 營(yíng)養(yǎng)瓊脂培養(yǎng)基適用性驗(yàn)證
- 衛(wèi)寧軟件基層醫(yī)療衛(wèi)生信息系統(tǒng)課件
- 河南鄭州720特大暴雨災(zāi)害調(diào)查報(bào)告心得體會(huì)匯編
- 史學(xué)概論整套 馬工程 1124P
- (完整)雙溪課程評(píng)量表
- 社會(huì)工作價(jià)值觀與專(zhuān)業(yè)倫理考試試題及答案解析
- 第四章-康復(fù)心理學(xué)-心理評(píng)估
評(píng)論
0/150
提交評(píng)論