硬盤NCQ技術的作用和原理
NCQ(Native Command Queuing,原生命令隊列)是一種通過優(yōu)化硬盤指令的順序來提升硬盤性能和穩(wěn)定性的技術。當應用程序發(fā)送多條指令給硬盤時,NCQ可以對這些指令進行重新排序,以減少機
NCQ(Native Command Queuing,原生命令隊列)是一種通過優(yōu)化硬盤指令的順序來提升硬盤性能和穩(wěn)定性的技術。當應用程序發(fā)送多條指令給硬盤時,NCQ可以對這些指令進行重新排序,以減少機械負載并提高硬盤的讀寫效率。
硬盤讀寫過程中的挑戰(zhàn)
硬盤與內存不同,它有很大一部分是機械結構。硬盤的性能受到許多機械因素的影響,例如馬達轉速等。因此,硬盤的速度無法像內存那樣快速提高。
在硬盤上寫入數據的過程相對簡單,按照從外到內的順序依次寫入數據。但是,在讀取數據時,我們通常是隨機讀取分散在盤片上的數據。為了能夠準確讀取數據,我們需要在硬盤快速旋轉的同時精確定位數據,這是一項非常具有挑戰(zhàn)性的任務。
尋道延遲和轉動延遲
在準確讀取數據時,我們會遇到兩個問題:尋道延遲和轉動延遲。
尋道延遲是磁頭定位到指定磁道的時間。當磁頭在同心圓之間移動時,這個延遲就會產生。為了減少尋道延遲,一般的做法是重新排序任務,以最小化磁頭的移動距離。
轉動延遲是磁頭找到準確位置后,等待正確數據所在位置旋轉到磁頭下方的時間。提高硬盤的轉速可以降低轉動延遲,但是提高轉速并不容易實現。
NCQ技術的優(yōu)化方式
為了減少總延遲,我們需要綜合考慮尋道延遲和轉動延遲的優(yōu)化方法。NCQ技術(Native Command Queuing)就是為此而設計的一種綜合考慮尋道和轉動延遲的優(yōu)化算法。
NCQ技術通過優(yōu)化命令的順序來減少控制器和硬盤之間的延遲,使得命令的排序更加有效。通過對命令進行重新排序,NCQ可以最大程度地減少尋道和轉動延遲,從而提高硬盤的讀寫效率。
NCQ技術的具體實現
在SATA 300規(guī)范中引入了三種新技術來提高NCQ的效率:
1. Race-Free Status Return:在PATA(并行ATA)中,硬盤無法在控制器沒有發(fā)送下一個命令時返回之前命令的執(zhí)行狀態(tài)。為了解決這個問題,SATA 300允許硬盤隨時報告命令的執(zhí)行狀態(tài),從而實現更高效的管道化執(zhí)行,甚至可以同時回傳多個命令的執(zhí)行狀態(tài)。
2. Interrupt Aggregation:在DMA傳輸模式下,硬盤通知傳輸結束會引發(fā)中斷,從而造成延遲。為了降低中斷延遲,SATA 300提供了中斷聚集機制。如果硬盤能夠在同一時間內完成多個命令,這些命令引發(fā)的中斷可以被聚集在一起,大幅減少中斷的數目,從而降低延遲。
3. First Party DMA(FPDMA):在PATA中,硬盤需要通過發(fā)送中斷信號告知控制器準備傳輸數據,然后控制器才能發(fā)送服務命令。這個過程會導致較大的延遲。SATA II允許硬盤自主建立DMA傳輸通道,無需驅動程序介入,通過DMA setup FIS直接向控制器發(fā)送傳輸需求通知,從而實現數據傳輸。
通過這些技術的應用,NCQ技術能夠最大限度地減少命令在控制器和硬盤之間的延遲,從而提高硬盤的讀寫性能。
支持NCQ技術的硬件
目前市場上的硬盤中,只有某些型號的7200.7和Maxtor金鉆10系列支持NCQ。其中,帶有NCQ功能的7200.7已在國內市場有售,但金鉆10系列很難買到。
在支持NCQ技術的主板方面,目前只有Intel最新的9X5系列中使用的ICH6系列南橋支持NCQ。而剛剛發(fā)布的NF4系列也將支持NCQ。此外,市場上唯一支持NCQ的獨立擴展卡是Silicon Image 3124,其他廠家可能會推出類似產品以支持NCQ技術。