原生指令排序

原生命令佇列(英语:,簡稱:NCQ),原先是改善伺服器硬碟存取控制技術,應用在SCSI和SATA 1.0/2.0/3.0介面硬碟讀寫加速技術,其介面開啟磁碟陣列RAID亦能加速。透過硬碟韌體、硬碟控制器以及作業系統三者的互相配合,改善硬碟內部磁區的讀取順序,可以提高硬碟效能,亦能夠輕微減輕硬碟損耗的速率。NCQ對用於伺服器上的硬碟的效率提昇尤為明顯。

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

優勢
於SATA II NCQ協定中,新增3個功能,分別是:
*无竞争状态返回机制(Race-free status return mechanism):
*:硬碟在完成任一指令後,可以無須再進行Handshake即可繼續另一個指令,以便讓多個指令快速接序或同時執行。
*中断聚合(Interrupt aggregation):
*:硬碟由於以NCQ模式執行多個指令,所以原本每一個指令完成後必須中斷(interrupt)以便讓系統接續處理的模式,轉成可以在多個指令完成後再一次提出(interrupt),故介面控制器(host controller)對於多個指令只須處理一次中斷即可。
*First party (第一方)DMA(FPDMA):
*:當硬碟完成資料讀取後,無須靠host controller的DMA動作取得特定記憶體位置,而是由硬碟本身建立DMA安装FIS(Frame Information Structure;框架信息结构)直接對主控送出記憶體存取通知,如此無須驅動程式的運作,可以有效提升存取效率。

條件
開啟NCQ,除硬碟本身必須支持NCQ外,作業系統(OS)與介面控制器(controller)的支持也是不可或缺的條件。舉例說,在Microsoft Windows平台上,從Windows Vista開始才支持NCQ,而Windows XP若要使用NCQ,則要額外安裝支持軟件。

支持晶片
(舊資料)
以下是支持NCQ的硬碟控制器,曾经被广泛使用,然而一些现在已经被淘汰:
*JMicron
**JMB360
**JMB361
**JMB362
**JMB363
**JMB365
**JMB366
*Silicon Image
**SiI 3124
**SiI 3132
**SiI 3531
*nVIDIA
**nForce 4 Ultra, nForce 4 SLI
**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 [http://www.intel.com/support/chipsets/imst/sb/CS-012304.htm]
**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
*VIA
**VT 8237S
**VT 8251
*ATI
**SB 600
**SB 700
**SB 750
*ALi/ULi
**M1573
**M1575
**M1567
**M1697
*SiS
**SiS966/SiS966L
**SiS968
*Marvell
**88SE9130

參看

  • TCQ(Tagged Command Queuing)
  • Intel組合儲存技術軟件(Intel Matrix Storage Manager)

评论 (0)

  • 还没有评论,来抢沙发吧。