原生指令排序
原生命令佇列(英语:,簡稱: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):
- First party (第一方)DMA(FPDMA):
條件
開啟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 (页面存档备份,存于)
- 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)