原理
一般
硬碟使用的硬碟格式通常為
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動作獲取特定存儲器位置,而是由硬碟本身創建
DMAsetup
FIS(Frame Information Structure)直接對host controller提交
存儲器訪問通知,如此無須
驅動程式的運作,可以有效提升訪問效率。
條件