複製鏈接
請複製以下鏈接發送給好友

原生指令排序

鎖定
原生指令排序Native Command Queuing,簡稱NCQ),原先是改善服務器硬盤訪問控制技術,應用在SCSI和SATA 1.0/2.0/3.0接口硬盤讀寫的加速技術,其接口打開磁盤陣列RAID亦有所提升。通過硬盤固件硬盤控制器以及操作系統三者的互相配合,改善硬盤內部扇區的讀取順序,可以提高硬盤性能,亦能夠輕微減輕硬盤損耗的速率。NCQ對用於服務器上的硬盤的效率提升尤為明顯。
中文名
原生指令排序
外文名
Native Command Queuing
領    域
計算機

原生指令排序原理

一般硬盤使用的硬盤格式通常為Windows 98核心所使用的FAT32系列,或是Windows NT所使用的NTFS,此種硬盤格式在訪問數據時,時常會出現散亂的情況,導致一個文件被不規則的分散成許多的區塊存放於磁盤上面,時間一久,文件散亂的程度會日趨嚴重,由於傳統的硬盤讀取方式,會從文件的開頭依序讀取到結尾,若文件散亂的程度愈嚴重,則讀取頭需要來回移動的距離就越長,導致硬盤讀寫性能逐漸下降。一旦發生這樣的問題,解決方案便是使用磁盤碎片整理軟件來進行硬盤重組,將散亂的文件重新排列為連續的區塊,但由於運行磁盤碎片整理可能會需要搬動大量的磁盤區塊,如果太常運行磁盤碎片整理,除了會提高系統負載,亦將會縮短磁盤驅動器的使用壽命,NCQ即為了解決此種情況而誕生。NCQ的概念原本是應用在服務器上常見的SCSI接口上,在SCSI的規格中即包含此項技術,只是不叫做NCQ,將此項技術經過些許修改後稱為NCQ,並將其應用在SATA接口上,後來的SAS接口也支持此項技術。激活NCQ技術的硬盤,在讀取文件時,會依照文件在硬盤上的分佈,將訪問的順序作最有效率的排序,以減少機械臂移動的距離,進而達到省時以及延長硬盤壽命的效果。 [1] 

原生指令排序優勢

於SATA II NCQ協議中,新增3個功能,分別是:
  • Race-free status return mechanism:硬盤在完成任一指令後,可以無須再進行Handshake即可繼續另一個指令,以便讓多個指令快速接序或同時運行。
  • Interrupt aggregation:硬盤由於以NCQ模式運行多個指令,所以原本每一個指令完成後必須中斷(interrupt)以便讓系統接續處理的模式,轉成可以在多個指令完成後再一次提出(interrupt),故接口控制器(host controller)對於多個指令只須處理一次中斷即可。
  • First party DMA(FPDMA):當硬盤完成數據讀取後,無須靠host controller的DMA動作獲取特定存儲器位置,而是由硬盤本身創建DMAsetupFIS(Frame Information Structure)直接對host controller提交存儲器訪問通知,如此無須驅動程序的運作,可以有效提升訪問效率。 [1] 

原生指令排序條件

打開NCQ,除硬盤本身必須支持NCQ外,操作系統(OS)與接口控制器(controller)的支持也是不可或缺的條件。舉例説,在Microsoft Windows平台上,從Windows Vista開始才支持NCQ,而Windows XP若要使用NCQ,則要額外安裝支持軟件。 [2] 

原生指令排序支持NCQ技術的芯片組

(舊數據) 支持NCQ的硬盤控制器(部分):
  • JMicron
    • JMB360
    • JMB361
    • JMB362
    • JMB363
    • JMB365
    • JMB366
  • Silicon Image
    • SiI 3124
    • SiI 3132
    • SiI 3531
    • nForce 4 Ultra, nForce 4SLI
    • nForce 410
    • nForce 430
    • nForce 550
    • nForce 570 Ultra, nForce 570 SLI
    • nForce 590 SLI
    • nForce 650i Ultra, nForce 650i SLI
    • nForce 680i SLI
    • nForce 780i SLI
  • Intel[1]
    • ESB2
    • ICH6M, ICH6R
    • ICH7DH, ICH7M, ICH7MDH, ICH7R
    • ICH8DH, ICH8DO, ICH8M, ICH8M-E, ICH8R
    • ICH9DO, ICH9M, ICH9M-E, ICH9R
    • ICH10D, ICH10DO, ICH10R
    • 5 Series
    • 6 Series
    • 7 Series
    • 3400 Series
    • VT 8237S
    • VT 8251
    • SB 600
    • SB 700
    • SB 750
    • M1573
    • M1575
    • M1567
    • M1697
    • SiS966/SiS966L
    • SiS968
    • 88SE9130 [3] 

原生指令排序參看

  • TCQ(Tagged Command Queuing)
  • Intel組合存儲技術軟件(Intel Matrix Storage Manager)
參考資料
  • 1.    Dave Landsman (2013-08-09). "AHCI and NVMe as Interfaces for SATA Express Devices – Overview" (PDF). SATA-IO. Retrieved 2013-10-02.
  • 2.    Gasior, Geoff (November 23, 2008). "Intel's X25-E Extreme solid-state drive - Now with single-level cell flash memory". Tech Report.
  • 3.    Gregory Smith (2010). PostgreSQL 9.0: High Performance. Packt Publishing Ltd. p. 78. ISBN 978-1-84951-031-8.