原理
一般硬碟使用的硬碟格式通常為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動作獲取特定存儲器位置,而是由硬碟本身創建DMAsetupFIS(Frame Information Structure)直接對host controller提交存儲器訪問通知,如此無須驅動程式的運作,可以有效提升訪問效率。
條件
打開NCQ,除硬碟本身必須支持NCQ外,作業系統(OS)與接口控制器(controller)的支持也是不可或缺的條件。舉例說,在Microsoft Windows平台上,從Windows Vista開始才支持NCQ,而Windows XP若要使用NCQ,則要額外安裝支持軟體。
支持NCQ技術的晶片組
(舊數據) 支持NCQ的硬碟控制器(部分):
•JMicron
•JMB360
•JMB361
•JMB362
•JMB363
•JMB365
•JMB366
•Silicon Image
•SiI 3124
•SiI 3132
•SiI 3531
•nVIDIA
•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
•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)