《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 本機命令隊列運行機制和性能分析

本機命令隊列運行機制和性能分析

2010-01-13
作者:李 冬1,2,汪東升2,王耀才1

摘   要: 分析了FPDMA數據傳輸、隊列讀/寫命令的動態運行機制、支持高速特性的隊列和協議性能,給出了NCQ的性能優勢和存在的問題。
關鍵詞: 本機命令隊列  運行機制  性能

  本機命令隊列NCQ(Native Command Queuing)[1]是SATAⅡ接口中引入的命令協議,是對SATA 1.0所做的諸多功能擴展中惟一與性能密切相關的技術。其原型是1998年發布的ATA/ATAPI-4的命令隊列(CQ)技術。在PATA(Parallel ATA)中采用非對等輪詢訪問結構,其控制器計算能力弱,無法支撐復雜的最優化命令排序算法,致使基于CQ的應用性能改善和協議增加的開銷相當。隨著ASIC、串行技術、多線程和超線程系統等技術的發展,在SATA中引入NCQ用于增強磁盤整體性能的條件已經具備。
1  NCQ結構
1.1 工作模型
  NCQ處理的對象是隊列命令,核心是隊列機制,包括創建、排隊和在主適配器與盤體控制器的協調等,工作模型如圖1[2]所示。模型分為兩個功能相對獨立的部分,它們通過串行總線交換數據,通過FIS(Frame Information Structure)來交換LBA、地址偏移、命令和狀態信息。其中,標記Tag是一個重要的元素,在驅動器緩存中有一個含有Tag的命令隊列,在主機控制器緩存中有與它對應的Tag標志位表,值域[0,n],其中n(≤31)是隊列的深度,每一條命令都有惟一的標記值,應用于隊列化命令的數據操作。

1.2 功能部件
  NCQ主要由命令隊列建立部件、數據傳輸部件和命令完成狀態返回部件組成。其中命令隊列建立部件的功能是使磁盤控制器按照命令協議(如NCQ、DMA、PIO等)的語義(OpCode)確定是把該命令送到隊列排隊(Tag有效)還是立即執行(Tag無效);數據傳輸部件使用FPDMA(First Parity DMA)傳輸機制完成驅動器和主機數據的傳輸;命令完成狀態返回部件的功能是當數據讀寫操作命令發送或在數據傳輸完畢后,將磁盤命令的執行狀態返回給主機。
1.3 命令格式
  FPDMA包含RFQ(Read FPDMA Queued)和WFQ(Write FPDMA Queued)兩條命令,命令格式見參考文獻[2]。格式中的扇區計數寄存器包含的Tag由主機驅動程序指定,命令域區分為RFQ和WFQ(RFQ.Command=60h,WFQ.Command=61h),支持LBA模式和48位地址格式。
1.4 內部寄存器結構
  把NCQ隊列機制應用于系統時采用AHCI[5](Advanced Host Controller Interface)接口技術,適配器建立在PCI-HBA基礎上,AHCI內部的寄存器由HBA寄存器和系統內存兩部分組成。HBA寄存器從結構上又可分為AHCI-PCI配置空間寄存器和HBA內存寄存器。其中前者定義了與PCI接口的標準PCI寄存器,后者用于通用主機控制和端口控制,它們通過AHCI-BAR或PCI配置空間的寄存器BAR聯系。AHCI系統內存通過端口00~31和控制寄存器相連,每個端口控制寄存器同時指向內存的Px命令列表基址(PxCLB)和Px FIS基址(PxFB)。其中Px命令列表系統內存是為包括命令信息和PRD表的命令表地址的命令列表結構設計的,Px FIS系統內存是面向接收端口的FIS結構設計的。
2  NCQ運行機制研究
  由圖1的工作模型和SATA磁盤模型,可以抽象出如圖2所示的NCQ支持SATA磁盤的原理分析模型。其中的命令排隊邏輯和算法包括命令的讀取、命令分析、排隊策略、算法代碼等;FPDAM引擎任務處理單元包括從控制器獲得命令、從高速緩存獲得空間或數據、與SATA總線進行數據交換等;磁盤任務處理單元包括從控制器獲得命令,執行磁盤的旋轉、尋道和定位等操作,與高速緩存進行數據交換等。其中與NCQ運行直接相關的部分在圖2中用重背景標出。
2.1 FPDMA運行
  PATA在內存和硬盤之間采用Ultra DMA數據傳輸機制。SATA充分借鑒了PATA的技術思路,引入了一種新型的數據傳輸機制FPDMA,其運行原理如下:
  (1)設置主機非頁面化內存中的FPDMA矢量表,這個表有32個入口,每個表入口含命令分散/聚合列表的物理地址(PRD表),它們都與Tag數字相對應。其中隊列化命令的分散/聚集列表是描述數據傳輸的主機內存結構。(2)驅動程序把主機控制器的隊列表基址寄存器設置為FPDMA矢量表的起始物理地址,主機驅動器軟件填充隊列化命令的PRD表,并在向設備發布一條命令前適當設置FPDMA的矢量入口。(3)當主機控制器從設備收到一DMA設置FIS后,它將使用Tag域作為對FPDMA 矢量表的索引,并設置DMA引擎PRD指針到FPDMA 矢量表中的特定值,同時應用DMA設置FIS中的D位來設置DMA的傳輸方向。(4)進行FPDMA數據傳輸,并返回傳輸狀態信息。
2.2 RFQ/WFQ
  讀操作(RFQ)是由主機向磁盤控制器發出的數據請求,主機驅動軟件一旦發出讀寄存器FIS,主機控制器的硬件將自主執行FPDMA操作,不需要主機驅動軟件的參與,直到本條命令執行完畢(即捕捉到執行完畢的中斷請求位SActive)。
  寫操作完成隊列化的命令把數據寫回驅動器,命令操作原理與讀操作類似。
2.3 錯誤處理
  在SATA協議棧中,每層都有錯誤發現、錯誤控制和錯誤報告恢復功能[4]。NCQ工作于傳輸層,其錯誤處理機制簡單有效。
  在主機發送給設備的寄存器FIS中,狀態寄存器BSY位出現了錯誤,設備將傳輸一個設置了ERR、BSY和錯誤寄存器為適當錯誤代碼的寄存器FIS到主機控制器;然后,設備等待地址為10h的日志頁讀日志擴展(Read Log Ext)命令(若收到主機發送的復位寄存器FIS,將立即停止等待)。當收到該命令后,設備控制器將放棄所有未執行的隊列命令、清空隊列,返回詳細的錯誤信息,發送Set Device Bits FIS清除主機所有的Sactive寄存器位。至此,主機可以重新發送放棄的命令和新的命令。
3  NCQ工作性能分析
3.1 隊列性能
3.1.1 隊列分析
  NCQ的核心是隊列機制,關鍵是命令的執行次序排列和重排。在NCQ中,命令在隊列中的分布是采用旋轉位置排序(Rotational Position Ordering,RPO)算法實現的。具體的策略是綜合考慮減少磁盤的尋道和旋轉延遲,得到一個全局時間最短、執行最優的命令執行序列。另外,為適應磁盤隨機動態存儲,NCQ支持RPO動態重排命令序列,弱化命令存取位置的“震蕩”,保證設備最優性能狀態的魯棒性。常用的減少尋道延遲的策略有SSTF(Shortest Seek Time First)[7]、SCAN[6]~[8]。這些算法都是基于面向企業高中端的SCSI隊列TCQ(Tagged Command Queue)設計的。而SATA定位于桌面、移動存儲、低端服務器和網絡存儲模型的近線和低端層次,所以隊列性能、精度、時間抖動等要求相對低一些,加上控制器計算性能的大幅提高,算法的運行開銷遠遠小于磁盤尋道和定位的代價。所以,在磁盤本體上,使用SSTF、SCAN和其改進算法對隊列中的命令進行排序和重排序是完全可行的。
  需要注意的是:SSTF和SCAN算法的依據一般是數據塊的邏輯塊號;而SATF計算的依據是物理塊號,但由于操作系統沒有磁盤結構的物理信息,所以該類算法實現起來相對復雜。改進的策略一是通過邏輯塊號-物理塊號之間的關系轉換,二是使用“最近塊數優先”近似。但它們都削弱了算法性能,增大了時間誤差。
3.1.2 隊列仿真比較
  使用UTSA的磁盤頭調度模擬器(DiskHead)[9]模擬上述主要隊列算法的NCQ性能情況。DiskHead既是一個磁盤負載產生器,也是一個負載調度器,通過仿真配置腳本程序,可以產生兩個不同的負載源。第一個負載源(L1)包括16個塊訪問,集中于低磁道區(100~2000磁道);第二個負載源(L2)也包括16個塊訪問,集中于高磁道區(10 000~14 000磁道)。然后把負載按照周期性和隨機性組合成四種類型的混合負載,輸入模擬器進行仿真。為了顯示隊列的優勢,削弱CACHE的影響,盡可能加大了負載的密度和震蕩。
  鑒于SCAN算法每次要回歸0道,所以需要把相應的尋道時間和訪問時間去除掉。仿真結果如圖3、圖4所示。

  從圖3、圖4看出,是否支持隊列的命令重排對存儲系統的性能影響很大,不同的負載特性對系統的性能影響也不盡相同。另外,排隊算法對隨機負載的性能要優于周期負載,請求排隊能大大減少尋道時間,從而提高存儲系統的整體I/O性能。
3.2 協議性能
  NCQ屬于一種“輕型”的接口協議。與PATA比較,協議的優化性能具體表現在:
  (1)引入性能優于Ultra DMA和DMA的FPDMA簡單傳輸機制,其初始化設置由主機驅動器軟件完成,設備自動選擇DMA狀態參數,完成驅動器和主機數據的傳輸。在傳輸數據的過程中不需要主機驅動器軟件的參與。
  (2)協議隊列空間調整采用類“滑動窗口”策略,設備與主機之間的握手相對“弱化”。設備方收到設備命令請求后,就立即返回復位BSY信號,從而保持命令發送窗口的大小,而不是等待請求完成才返回,這樣為系統實現局部并行化提供了條件。這與PATA的設備請求“封閉”運行完全不一樣,它的設備請求命令執行嚴格的握手程序,只有整個命令請求完成后才返回中斷信號,系統在接收到中斷返回后,才能繼續下一條設備命令的執行周期。
  (3)命令的排序在設備中完成,只要有新的設備請求命令被送入設備隊列,設備就要啟動一次排序算法進行重排序,保持命令序列執行策略的一致性。算法的結果形成一個命令執行索引表,該表包含了隊列命令新的執行順序和相關參數。
  (4)Race-free狀態返回機制實現了命令完成返回信息的高度管線化。NCQ允許各磁盤隨時返回命令執行狀態,特別是使用中斷聚合把數條命令的中斷聚合在一起,達到數個命令執行狀態同時返回的效果。
通過對協議的改進和優化,減少了接口事務,降低了協議運行開銷,提高了NCQ協議工作的性能。
4  結束語
  NCQ是SATA設備請求命令的隊列協議,它應用了隊列智能重排序、協議流化、硬件自動FPDMA設置等技術,減少了主機和設備的握手次數和接口事務數量,提高了隊列負載性能,減少了尋道和旋轉延遲時間,使協議操作高效化,大大提高了SATA磁盤系統的性能。Intel的測試數據表明:使用基于AHCI的SATA HDD是ATA HDD綜合性能的1.51倍[5]。盡管如此,NCQ還存在排隊命令與非排隊命令不能混合使用,一旦發生錯誤,硬盤將放棄隊列中的全部命令,專用的接口協議AHCI發布滯后等不足之處。
參考文獻
1   Huffman A,Clark J.Serial ATA Native Command QueuingAn Exciting New Performance Feature for Serial ATA.www.serialata.org,2003
2   Intel Corporation.Serial ATA Ⅱ Native Command Queuing Overview www.intel.com,Apr 2003
3   Intel Corporation.Serial ATA:Advanced Host Controller Interface(Revision 1.0).www.intel.com,May 2004
4   Taylor R.Serial ATA:Application Consideration for the Enterprise[S].www.agilysys.com,Apr 2004
5   Huffman A,Garzik J.AHCI-Take advantage of Serial ATA Features.IDF Fall 2003,San Jose,Sep 2003
6   Worthington B L,Ganger G R,Patt Y L.Scheduling for modern disk drives and non-random workload.In:Michael Ley proceedings.Perfarmance Evaluation Review22(1).proc ACM SIGMETRICS conf.Vanderbilt University,Nashviue Tennessee,USA,1994
7   Geist R,Daniel S.A Continuum of Disk Scheduling Algorithms.ACM Trans On Computer System,1987;5(1)
8   Thomasian A,Liu C.Some New Disk Scheduling Policies and Their Performance.In:Marina Del Rey,Proceedings of the International Conference on Measurements and Modeling of Computer Systems(SIGMETRICS 2002),California USA,2002
9   Robbins S.A Disk Head Scheduling Simulator.In:Proc.35th SIGCSE Technical Symposium on Computer Science Education,Norfolk Virgina,2004

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品99久久久久久人| 亚洲第一区中文99精品| 这里只有精品视频在线| 国产精品毛片高清在线完整版| 欧美午夜久久久| 国产精品久久精品日日| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲国产精品小视频| 久久av最新网址| 一区二区免费看| 女女同性精品视频| 国外成人在线| 欧美日韩在线大尺度| 久热精品视频在线观看一区| 亚洲黄一区二区| 一本久道综合久久精品| 午夜在线观看欧美| 亚洲精品久久久久久久久久久久| 香蕉成人啪国产精品视频综合网| 亚洲欧美经典视频| 亚洲开发第一视频在线播放| aa级大片欧美| 男人天堂欧美日韩| 亚洲色图在线视频| 国产欧美日韩激情| 亚洲视频精品在线| 亚洲四色影视在线观看| 久久免费视频在线观看| 亚洲人体偷拍| 亚洲欧美日韩一区二区| 国产一区二区日韩精品欧美精品| 女人香蕉久久**毛片精品| 国产精品亚洲第一区在线暖暖韩国| 亚洲美女性视频| 亚洲淫性视频| 国产精品视频自拍| 亚洲性感激情| 亚洲图片欧洲图片av| 亚洲精品小视频| 欧美日韩国产在线一区| 国产农村妇女毛片精品久久麻豆| 性视频1819p久久| 亚洲欧美精品在线| 在线看成人片| 在线精品福利| 欧美经典一区二区| 国产精品区一区二区三| 亚洲视频一区二区免费在线观看| 亚洲综合好骚| 欧美精品三区| 国产精品久久久久久久久借妻| 欧美吻胸吃奶大尺度电影| 亚洲日本成人女熟在线观看| 亚洲欧美色一区| 免费在线亚洲欧美| 欧美日韩国产小视频在线观看| 亚洲成人在线视频网站| 亚洲福利在线视频| 正在播放欧美视频| 亚洲一区免费观看| 亚洲女同在线| 校园春色综合网| 欧美日韩免费网站| 性伦欧美刺激片在线观看| 久久这里只有精品视频首页| 欧美日韩影院| 亚洲美女淫视频| 亚洲人体1000| 国内外成人免费视频| 欧美亚洲视频一区二区| 久久国产一区二区三区| 99热在这里有精品免费| 亚洲国产欧美不卡在线观看| 欧美日韩www| 国产日韩在线播放| 欧美激情中文字幕乱码免费| 老司机精品视频网站| 在线成人中文字幕| 午夜在线观看免费一区| 欧美激情视频给我| 国产欧美精品在线观看| 国产欧美精品一区| 国产老女人精品毛片久久| 免费永久网站黄欧美| 美女尤物久久精品| 久久久99国产精品免费| 亚洲国产综合视频在线观看| 久久精品视频免费观看| 国产日韩欧美中文在线播放| 欧美剧在线观看| 亚洲激情视频在线播放| 久久成人精品| 欧美一区二区日韩一区二区| 亚洲精品日韩在线观看| 欧美婷婷六月丁香综合色| 亚洲久久一区二区| 欧美日韩亚洲天堂| 久久国产精品久久国产精品| 老牛嫩草一区二区三区日本| 麻豆精品在线播放| 欧美一区二区精品在线| 免费91麻豆精品国产自产在线观看| 亚洲一级片在线观看| 欧美日韩亚洲一区二区| 亚洲激情电影在线| 欧美日韩小视频| 欧美刺激午夜性久久久久久久| 激情欧美一区二区三区在线观看| 一本一本久久a久久精品牛牛影视| 国产日韩欧美不卡在线| 欧美一区二区三区免费看| 欧美精品激情在线| 老妇喷水一区二区三区| 免费精品99久久国产综合精品| 亚洲视频图片小说| 美女日韩欧美| 亚洲一区三区电影在线观看| 久久露脸国产精品| 美女精品在线观看| 一区二区黄色| 亚洲免费观看高清完整版在线观看| 欧美在线视频一区二区| 欧美日韩情趣电影| 欧美精品网站| 国产日产欧产精品推荐色| 久久久久久噜噜噜久久久精品| 午夜国产一区| 久久久之久亚州精品露出| 亚洲一区二区三区乱码aⅴ| 欧美一区二区大片| 国产一区二区三区网站| 欧美国产日产韩国视频| 欧美在线亚洲综合一区| 欧美日韩在线三级| 亚洲国产成人精品久久久国产成人一区| 免费亚洲电影在线观看| 亚洲精品视频一区| **欧美日韩vr在线| 亚洲欧洲精品天堂一级| 久久成人一区| 亚洲愉拍自拍另类高清精品| 91久久综合亚洲鲁鲁五月天| 国产精品久久久久免费a∨大胸| 国产精品久久久久久久久动漫| 国产精品久久久久一区二区三区| 欧美国产在线观看| 国产日韩欧美不卡| 极品日韩av| 欧美大片在线看| 久久亚洲免费| 欧美日韩国产色站一区二区三区| 国产欧美日韩一区二区三区在线观看| 国产精品女主播在线观看| 欧美日韩大陆在线| 亚洲三级影片| 一本久久综合亚洲鲁鲁| 亚洲国产欧美在线人成| 亚洲黄色免费网站| 免费成年人欧美视频| 亚洲精品网站在线播放gif| 午夜精品一区二区三区在线| 欧美激情精品久久久久久变态| 欧美专区一区二区三区| 国产精品爱久久久久久久| 欧美午夜a级限制福利片| 久久久噜噜噜久久久| 欧美性做爰毛片| 韩日午夜在线资源一区二区| 欧美日韩性生活视频| 一区久久精品| 久久久91精品| 蜜臀99久久精品久久久久久软件| 久久在精品线影院精品国产| 国产在线欧美| 亚洲一区在线免费观看| 欧美日韩在线直播| 国产视频亚洲精品| 亚洲乱码精品一二三四区日韩在线| 亚洲黄色一区二区三区| 国产精品xvideos88| 在线日韩中文| 国产一区二区三区免费在线观看| 久久精品一区二区| 欧美一区二区精品久久911| 久久精品av麻豆的观看方式| 欧美欧美天天天天操| 亚洲国产高清在线| 国产美女精品一区二区三区| 狠狠88综合久久久久综合网| 亚洲一区观看| 欧美日韩美女在线| 国产精品久久97| 亚洲视频二区| 亚洲欧美一区二区在线观看| 亚洲一区二区视频| 国产一区二区三区网站| 在线日韩欧美视频| 国产专区精品视频| 夜夜爽www精品| 国产精品资源在线观看| 欧美国产免费| 国产欧美日韩另类一区| 国产乱码精品一区二区三| 国产精品久久国产三级国电话系列| 久久五月天婷婷| 亚洲级视频在线观看免费1级| 亚洲国产精品久久久| 在线视频你懂得一区| 亚洲高清视频在线| 久热精品视频在线免费观看| 亚洲性xxxx| 国产一区二区三区在线免费观看| 欧美体内she精视频| 亚洲第一色在线| 99国内精品久久| 久久五月婷婷丁香社区| 国产精品国产三级国产| 亚洲欧洲一区二区三区久久| 亚洲福利在线看| 伊人精品在线| 亚欧成人在线| 欧美视频一区二区三区在线观看| 香蕉成人啪国产精品视频综合网| 亚洲国内精品在线| 欧美成人一区二免费视频软件| 欧美激情区在线播放| 亚洲天堂偷拍| 亚洲黄色免费电影| 亚洲国产美国国产综合一区二区| 亚洲国产精品一区制服丝袜| 国外成人网址| 这里只有精品电影| 亚洲在线免费| 欧美成人精品在线视频| 欧美国产亚洲另类动漫| 国产一区二区看久久| 一二三区精品| 亚洲视频精品在线| 亚洲视频免费观看| 在线亚洲精品福利网址导航| 在线电影国产精品| 亚洲国产成人久久综合一区| 亚洲精品国精品久久99热| 亚洲综合色激情五月| 欧美高清视频一二三区| 在线看欧美视频| 一本色道久久加勒比精品| 曰韩精品一区二区| 亚洲免费观看高清完整版在线观看| 国产精品va在线播放| 国产精品爽爽ⅴa在线观看| 欧美高清视频一二三区| 欧美激情国产日韩精品一区18| 久久国产精品一区二区三区四区| 欧美日韩在线免费观看| 亚洲精品欧美日韩专区| 一区二区不卡在线视频 午夜欧美不卡'| 中文国产成人精品久久一| 欧美在线关看| 黄色精品免费| 国产精品免费网站在线观看| 亚洲专区一区二区三区| 在线观看中文字幕亚洲| 国产日韩欧美精品一区| 乱码第一页成人| 永久免费视频成人| 一区在线视频观看| 蜜桃视频一区| 欧美电影免费观看高清完整版| 91久久久久久国产精品| 亚洲婷婷在线| 亚洲美女av黄| 欧美一区二区三区视频在线| 亚洲激情小视频| 亚洲激情成人网| 欧美国产一区在线| 亚洲一区影音先锋| 亚洲精品资源美女情侣酒店| 国产欧美精品日韩区二区麻豆天美| 久久久久久久久一区二区| 激情久久婷婷| 亚洲精品美女免费| 久久婷婷综合激情| 亚洲欧美影音先锋| 国产精品久久久久91| 久久日韩粉嫩一区二区三区| 国产日韩高清一区二区三区在线| 一本色道久久综合狠狠躁篇怎么玩| 亚洲国产精品视频| 欧美日韩亚洲激情| 亚洲高清三级视频| 欧美理论电影在线播放| 最新精品在线| 揄拍成人国产精品视频| 欧美一区二区私人影院日本| 国产精品日日做人人爱| 欧美精品大片| 一区二区三区无毛| 麻豆九一精品爱看视频在线观看免费| 欧美日韩一区二区高清| 激情亚洲一区二区三区四区| 欧美一级视频免费在线观看| 国产主播一区二区三区| 亚洲剧情一区二区| 在线欧美小视频| 国产日韩1区| 久久久xxx| 亚洲国内精品在线| 免费在线观看日韩欧美| 亚洲欧美日韩精品久久久久| 国产精品久久777777毛茸茸| 国产午夜精品在线观看| 欧美国产日本韩| 久久久久国产精品厨房| 亚洲影视在线| 国产乱肥老妇国产一区二| 亚洲国产美女| 亚洲精品久久久久久久久| 欧美激情精品久久久久久久变态| 在线看视频不卡| 国模精品一区二区三区| 久久精品一区二区三区中文字幕| 男同欧美伦乱| 亚洲在线电影| 裸体丰满少妇做受久久99精品| 在线日韩日本国产亚洲| 99av国产精品欲麻豆| 欧美成人性网|