本機命令佇列NCQ(Native Command Queu—ing)作為SATA Ⅱ接口中引入的命令協定,是對SATA 1.0所作的諸多功能擴展中,惟一與性能密切相關的技術[1q].其原型是ATA/ATAPI一4的命令佇列(CQ)技術,由於PATA(Parallel ATA)是非對等輪詢訪問結構,
控制器計算能力不足以支撐複雜的最最佳化命令排序算法,特別是當佇列深度較淺時,性能甚至比不排隊的情況還差.隨著
ASIC、串列技術和多(超)執行緒系統的發展以及網路存儲的服務化,在SATA 中引入NCQ 增強磁碟整體性能,滿足信息生命周期(ILM)、企業分層存儲(HSM)L4 等套用模式,降低企業
運行成本,已愈顯重要.
NCQ協定的組成
1 功能部件
NCQ 主要由命令佇列建立、數據傳輸和命令完成狀態返回3個功能部件組成.其中,命令佇列建立部件是按照命令協定的語義確定是把該命令送到佇列排隊(tag有效)還是立即執行(tag無效);
數據傳輸部件使用單方DMA完成驅動器和主機數據的傳輸;命令完成狀態返回部件在執行數據讀/寫操作命令傳送或數據傳輸完畢後,將磁碟命令的執行狀態返回給主機.
2 命令
FPDMA 有RFQ(Read FPDMA Queued)和WFQ(Write FPDMA Queued)兩條命令,均支持LBA模式和48位地址格式,除命令代碼域區分RFQ 和WFQ (RFQ.Command 一60h,WFQ.Command一6lh)外,其他域如扇區計數、LBA 等完全相同,且扇區計數暫存器包含的標記由主機驅動程式指定.
3 內部暫存器結構
NCQ 佇列的本機設備方案採用高級主機控制接口(AHCIE ]一Advanced Host Controller Inter—face),適配器系統結構基於PCI—HBA.AHCI內部的暫存器由HBA 暫存器和系統記憶體兩部分組成.HBA暫存器從功能上又可分為AHCI—PCI配置空間暫存器和HBA 記憶體暫存器,前者定義了與PCI接口的標準PCI暫存器,後者用於通用主機控
制和連線埠控制,它們通過AHCI—BAR或PCI配置空間的暫存器BAR 聯繫.AHCI系統記憶體通過連線埠O0~31與控制暫存器相連,每個連線埠控制暫存器同時指向記憶體的Px命令列表基址(PxCLB)和Px FIS基址(PxFB).其中Px命令列表系統記憶體是為包括命令信息和PRD表的命令表地址的命令列表結構設計的,Px FIS系統記憶體是面向接收連線埠的FIS結構設計的.這樣的設計為命令的人隊和動態排隊提供了靈活高效的機制.