原生命令佇列
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
此條目沒有列出任何參考或來源。 (2021年6月10日) |
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/NCQ.svg/250px-NCQ.svg.png)
原生命令佇列(英語:Native Command Queuing,簡稱: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):
- 中斷聚合(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 [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)