




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、SATA全速命令隊列(NCQ)提高性能高層建筑的電梯與硬盤技術(shù)SATA接口全速命令隊列(NCQ)之間有什么共同之處?二者都具有可靠、高效地輸送能力,這使得這兩種完全不同的運(yùn)輸機(jī)制,在技術(shù)上有了非常相似之處。在高層辦公建筑內(nèi)乘坐電梯。當(dāng)工作人員和來訪者進(jìn)入電梯要去不同的樓層時,他們就按樓層按鈕。當(dāng)許多人在不同的樓層進(jìn)入電梯,要去往不同的樓層時,電梯并不是按照按鈕按下的順序去??繕菍?,這種方法會給電梯的各種部件造成不必要的磨損,比如:鋼索系統(tǒng)、剎車、液壓系統(tǒng)、傳動裝置和導(dǎo)向軸等。對于許多乘客來說,當(dāng)一部笨拙的電梯哼哼唧唧地從一層開到另一層,按照按鈕按下的順序??啃对猿丝蜁r,會產(chǎn)生許多額外的等候時間
2、。電梯最順暢有效的運(yùn)行順序是,每次都運(yùn)行到最近的樓層停靠,每次向反方向運(yùn)行之前,先要到達(dá)最高或最低的??奎c(diǎn)。硬盤的NCQ技術(shù)使用類似的方法來高效地安排和運(yùn)行數(shù)據(jù)命令。沒有NCQ的硬盤像笨拙的電梯一樣效率低下,并會按照命令發(fā)送到硬盤的順序來執(zhí)行它們。有了NCQ,硬盤會考慮讀/寫頭在盤片上的位置,然后決定最有效的命令執(zhí)行順序,像電梯一樣,先將磁頭移到最近的位置執(zhí)行命令,再按照相同的方式到下一個位置更特別的是,NCQ通過讓硬盤在內(nèi)部優(yōu)化工作負(fù)荷或命令的執(zhí)行順序,從而提高了硬盤性能并延長了硬盤壽命。在硬盤內(nèi)部,命令隊列對命令進(jìn)行智能重排,最大程度地減少硬盤的機(jī)械定位延遲,有助于改善工作隊列的性能。這一
3、點(diǎn)非常重要,因為在今天的計算機(jī)系統(tǒng)中,只有硬盤內(nèi)的所有移動部件是機(jī)械裝置,包括:磁頭驅(qū)動臂、盤片等。正是這種有效地對傳輸路徑進(jìn)行排序的能力,最大程度地減小了機(jī)械磨損降,優(yōu)化了性能,使SATA硬盤與電梯技術(shù)有了相似之處。NCQ為系統(tǒng)構(gòu)建商提供了一種方法,可以輕松地將用于臺式機(jī)的高容量SATA硬盤擴(kuò)大到用于高性能PC機(jī)、工作站和初級服務(wù)器,而且只需為每GB容量支付不到1美元。在“SATA1.0技術(shù)規(guī)范擴(kuò)充版”引入的大多數(shù)先進(jìn)特性中,NCQ是一種命令協(xié)議,它能允許同一塊硬盤在同一時間有多個待執(zhí)行命令。NCQ有一個待執(zhí)行命令的內(nèi)部隊列,該隊列與跟蹤待執(zhí)行命令和已完成工作的機(jī)制一起,對隊列中的命令進(jìn)行重
4、新計劃或排序。NCQ還允許主機(jī)在硬盤為另一個命令查尋數(shù)據(jù)時,對硬盤發(fā)生附加命令。這樣做的結(jié)果是減少了機(jī)械運(yùn)動,降低了盤片的旋轉(zhuǎn)延遲,提高了性能。有這樣幾種方法來最大程度地減少旋轉(zhuǎn)延遲。一種方法是部署更高轉(zhuǎn)速的硬盤,比如具有10K甚至更高主軸轉(zhuǎn)速的ATA硬盤。然而,具有高RPM主軸轉(zhuǎn)速的硬盤卻價格昂貴。另一種方法就是根據(jù)硬盤磁頭的旋轉(zhuǎn)位置,確定下次應(yīng)該執(zhí)行的最佳命令,并對待執(zhí)行命令重新排序。還可以使用無序數(shù)據(jù)傳送方式來降低旋轉(zhuǎn)延遲,這種特性不需要磁頭首先去訪問初始LBA(邏輯塊尋址)。磁頭可以在目標(biāo)LBA內(nèi)的任意位置開始讀取數(shù)據(jù)。當(dāng)磁頭定位在正確的磁道上方時,就開始讀取數(shù)據(jù),錯過的數(shù)據(jù)待磁盤旋轉(zhuǎn)
5、回來后再補(bǔ)上即可;而不需要為回到被請求數(shù)據(jù)的第一個LBA上方進(jìn)行旋轉(zhuǎn)。NCQ通過在較少的磁盤旋轉(zhuǎn)中處理更多的IOPS來減少旋轉(zhuǎn)延遲。結(jié)果是在繁重工作負(fù)荷中,有更多的IOPS被處理了。NCQ是動態(tài)的,工作負(fù)荷越重,硬盤性能越高。當(dāng)明顯需要對待處理命令重新排隊以減小機(jī)械負(fù)擔(dān),改善輸入/輸由(I/O)延遲時,這樣做要比簡單地在隊列中收集命令效果好。重排序算法使用一個被稱為“基于尋道和旋轉(zhuǎn)優(yōu)化的命令重新排序”,或者稱為標(biāo)記命令隊列(TCQ)的過程,優(yōu)化了目標(biāo)數(shù)據(jù)的線性和角度定位,從而最大程度地縮短總服務(wù)時間。命令隊列減輕了機(jī)械負(fù)荷,降低了機(jī)械磨損,延長了硬盤壽命。NCQ是執(zhí)行標(biāo)記命令隊列(TCQ)的高
6、效協(xié)議。與TCQ不同的是,SATANCQ降低了隊列算法導(dǎo)致的額外開銷。TCQ沒有在ATA硬盤中獲得廣泛采用的原因,是其所提高的性能被額外開銷給抵消了。SATA通過采用高效的狀態(tài)返回機(jī)制(無競爭)、低中斷開銷和第一方DMA等技術(shù),極大地降低了額外開銷,上述這些技術(shù)是無法在PATA中實施的。無競爭狀態(tài)返回機(jī)制這一特性消除了傳統(tǒng)上硬盤為了返回狀態(tài)而與主機(jī)之間必須進(jìn)行的“握手”過程,允許在任意時刻交流任意命令狀態(tài),使硬盤可以順序或者同時完成多個命令。中斷聚合硬盤為了完成一條命令通常會中斷主機(jī)許多次。中斷越多,主機(jī)的處理負(fù)擔(dān)就越重,性能就越低。NCQ將處理每條命令的平均中斷次數(shù)降低到了一次。如果硬盤在很
7、短的時間內(nèi)完成多條命令(這在工作負(fù)荷繁重時經(jīng)常由現(xiàn)),NCQ可以將單個中斷聚合起來,這樣主機(jī)控制器只需處理一個中斷就可以了。第一方DMA(FPDMA)NCQ采用第一方DMA技術(shù),使硬盤能夠在沒有主機(jī)軟件干預(yù)的情況下,為數(shù)據(jù)傳輸設(shè)置直接內(nèi)存訪問(DMA)操作。硬盤通過向主機(jī)控制器發(fā)送一個DMASetupFIS(楨信息結(jié)構(gòu))來選擇DMA內(nèi)容。這一FIS為被設(shè)置的DMA指定了命令標(biāo)記。主機(jī)控制器根據(jù)標(biāo)記值,為該命令向DMA引擎內(nèi)裝載PRD表指針,然后,數(shù)據(jù)傳輸就可以在沒有軟件干預(yù)情況下進(jìn)行,硬盤由于可以自己選擇所傳送的緩沖區(qū),就能夠更有效地對命令重新排序。對NCQ的詳細(xì)說明NCQ由三個主要過程組成:
8、在硬盤中建立一個命令隊列為每個命令傳輸數(shù)據(jù)返回完成命令的狀態(tài)建立隊列當(dāng)硬盤接到一個命令時,它需要知道是該將其放入隊列,還是立即執(zhí)行它,以及使用何種協(xié)議(比如NCQ、DMA或PIO等)來處理它。硬盤根據(jù)主機(jī)發(fā)送的特定的命令操作代碼(opcode)來決定使用的協(xié)議。為了使SATA能夠利用NCQ,人們開發(fā)了兩個特殊的NCQ命令:ReadFPDMAQueued和WriteFPDMAQueued。這兩個命令是對LBA和扇區(qū)計數(shù)命令的擴(kuò)展,LBA和扇區(qū)計數(shù)命令是為滿足今天的大容量硬盤的需要而設(shè)計的。這些命令還包含了支持高可用性應(yīng)用的FUA(forceunitaccess)位。當(dāng)一個WriteFPDMAQu
9、eued命令的FUA位被設(shè)置時,硬盤會在標(biāo)記該命令無錯完成前將數(shù)據(jù)提交給介質(zhì)。通過對寫命令使用FUA位,主機(jī)可以管理硬盤內(nèi)部緩存中還沒有提交給盤片的數(shù)據(jù)O除此之外,每個進(jìn)入隊列的命令都會被分配一個唯一的標(biāo)記值,用來識別主機(jī)和硬盤之間所有待執(zhí)行的命令。標(biāo)記值的范圍是0至U31(硬盤可以支持小于32的隊列深度),使所有命令的狀態(tài)都可以用一個32位的值來報告。隊列與非隊列命令之間的區(qū)別在命令發(fā)生后就顯示由來了。當(dāng)非隊列命令發(fā)生后,硬盤傳送相關(guān)的數(shù)據(jù),清除狀態(tài)寄存器中的忙碌位(BSY),并通知主機(jī)命令完成。當(dāng)隊列命令發(fā)生后,硬盤在將數(shù)據(jù)傳輸給主機(jī)之前就清除BSY位。這時,BSY位的作用不是通知命令完成
10、,而是通知主機(jī)硬盤已經(jīng)準(zhǔn)備接受新的命令。一旦BSY位被清除,主機(jī)就可以向硬盤發(fā)送其它隊列命令,使硬盤內(nèi)可以建立一個命令隊列。傳輸數(shù)據(jù)NCQ使用第一方DMA在硬盤和主機(jī)之間傳輸數(shù)據(jù)。第一方DMA特性讓硬盤能夠控制對DAM引擎的編程以傳輸數(shù)據(jù),使其可以以最有效的方式對命令重新排序,從而減少旋轉(zhuǎn)延遲。由于在特定時刻,只有硬盤才知道磁頭的角度和旋轉(zhuǎn)位置,所以對于SATA來說,這是一項重要改進(jìn)。硬盤控制了DMA引擎的編程,這樣就可以選擇使尋道和旋轉(zhuǎn)延遲時間最小的數(shù)據(jù)進(jìn)行傳輸。第一方DMA通過使硬盤無序返回數(shù)據(jù),進(jìn)一步減少了旋轉(zhuǎn)等待。該特性使硬盤可以先返回一條命令的一部分?jǐn)?shù)據(jù),再發(fā)送另一條命令的一部分?jǐn)?shù)據(jù)
11、,然后再完成發(fā)送第一條命令的所有數(shù)據(jù),前提是這樣做是完成數(shù)據(jù)傳輸?shù)淖钣行Х绞?,這與智能電梯的運(yùn)行方式非常相似。狀態(tài)返回?zé)o競爭狀態(tài)返回將多條命令的中斷聚集起來,以提高性能。主機(jī)與硬盤協(xié)調(diào)工作,不需要通訊就能無競爭地返回狀態(tài),并且確保32位的SActive寄存器的內(nèi)容在任何時間都保持準(zhǔn)確,它是主機(jī)和硬盤為了確定哪些命令還未執(zhí)行所需要使用的。SActive寄存器為每個標(biāo)記分配了一個位,比如,第x位表示的是標(biāo)記為x的命令的狀態(tài)。SActive寄存器中的一個位,表示硬盤中對應(yīng)標(biāo)記的命令還未執(zhí)行(或者與該標(biāo)記對應(yīng)的命令將被發(fā)送給硬盤)。從SActive寄存器中清除一位,意味著硬盤中與該標(biāo)記對應(yīng)的命令已經(jīng)執(zhí)
12、行。另一項重要的狀態(tài)返回功能是,SetDeviceBitsFIS能夠在硬盤完成了多條命令后同時通知主機(jī),這樣就可確保主機(jī)在多條命令完成后只接受一次中斷。如果一個請求隊列在硬盤中建立起來,隊列只對命令的重排序進(jìn)行優(yōu)化。在今天的臺式機(jī)的工作中,許多應(yīng)用在莫一時刻只請求一塊數(shù)據(jù),只有在接收到前面的數(shù)據(jù)后,才會請求要后面的數(shù)據(jù)。在這種情況下,硬盤一次只能收到一條未執(zhí)行命令。這樣,由于不用重新排序,硬盤就不可能利用隊列的優(yōu)勢。然而,即使應(yīng)用一次只發(fā)送一個請求,超線程技術(shù)也使建立隊列成為可能。超線程技術(shù)能夠?qū)Χ鄠€同一程序的并發(fā)使用進(jìn)行管理,極大地提高了多線程的數(shù)量,這樣,在同一時間,就很可能有多個未處理的
13、I/O請求由現(xiàn)。然而,為了利用隊列的優(yōu)點(diǎn)來獲得最佳性能,需要對應(yīng)用進(jìn)行修改。為了建立隊列而需要對應(yīng)用進(jìn)行的修改并不大。今天,大多數(shù)應(yīng)用在編程時采用同步I/O,也稱為阻塞I/O。在同步I/O中,只有當(dāng)對文件的讀或?qū)懲瓿珊?,功能調(diào)用才會返回。為了利用隊列,應(yīng)用要采用異步I/Oo異步I/O是非阻塞的,就是說在對文件的讀寫請求完成之前,功能調(diào)用就會返回。應(yīng)用將決定是通過校驗事件還是接收回叫(callback)來判斷I/O是否完成。由于功能調(diào)用后立即返回,應(yīng)用就可以繼續(xù)做有用的工作,包括發(fā)生更多的讀寫文件指令。僅有硬件支持NCQ是不夠的。操作系統(tǒng)和軟件應(yīng)用也需要向存儲設(shè)備發(fā)送異步I/O命令來利用NCQ硬件和軟件NCQ可以降低硬盤產(chǎn)生的熱量、改善系統(tǒng)可靠性并提高多種系統(tǒng)的IOPS性能,這些系統(tǒng)包括單硬盤的臺式機(jī)和筆記本電腦,以及工作站和入門級服務(wù)器。編寫訪問多個文件的應(yīng)用的最佳方式,是使用非阻塞I/O調(diào)用同時發(fā)生所有文件訪問命令。應(yīng)用可以使用事件或回叫來確定各個調(diào)用何時完成。如果有很多I/O任務(wù),比如4到8個,同時將它們都發(fā)送生去可以將數(shù)據(jù)檢索時間降低一半。在主流計算系統(tǒng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年成人高考《語文》語言表達(dá)與運(yùn)用作文素材運(yùn)用策略試卷
- 2025年注冊會計師考試《會計》財務(wù)報表分析核心考點(diǎn)模擬試題
- 2025年大學(xué)輔導(dǎo)員招聘考試題庫:心理健康教育案例分析及心理疏導(dǎo)技巧
- 2025年注冊會計師考試《會計》財務(wù)報告編制與披露實戰(zhàn)模擬試題庫
- 2025年消防執(zhí)業(yè)資格考試題庫(專業(yè)技能提升):消防安全管理與組織試題
- 2025年注冊稅務(wù)師稅法一重點(diǎn)內(nèi)容模擬試題匯編
- 2025年小學(xué)語文畢業(yè)升學(xué)考試全真模擬卷(基礎(chǔ)夯實版)三、閱讀理解篇
- 2025年心理咨詢師實操技能考核試卷:心理咨詢師心理評估與診斷試題庫
- 2025年教師資格證面試結(jié)構(gòu)化模擬題:美術(shù)教育創(chuàng)意表達(dá)試題
- 2025年小學(xué)教師資格考試《綜合素質(zhì)》教育創(chuàng)新實踐題考點(diǎn)精講(含答案)
- 小學(xué)生風(fēng)電知識科普課件
- 建筑施工各崗位安全生產(chǎn)責(zé)任書標(biāo)準(zhǔn)范本
- 2025年中考語文復(fù)習(xí)知識清單:語法知識與修辭手法(2類常考知識3個易錯點(diǎn))(原卷版+解析)
- 2025-2030年中國可降解塑料行業(yè)發(fā)展?fàn)顩r及投資前景規(guī)劃研究報告
- 中國心腦血管治療儀行業(yè)市場調(diào)查研究及投資戰(zhàn)略咨詢報告
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患考試試卷(含答案)
- 9 動物的感知本領(lǐng)(說課稿)-2023-2024學(xué)年科學(xué)二年級下冊人教鄂教版
- 遼寧沈陽地鐵有限公司所屬公司招聘筆試沖刺題2025
- 初中化學(xué)實驗教學(xué)與科學(xué)教育融合的實踐探索
- 《建筑工程施工技術(shù)》課件-承插型盤扣式鋼管腳手架施工
- 物業(yè)裝修現(xiàn)場巡查培訓(xùn)
評論
0/150
提交評論