NCQ簡介
什麼是NCQ呢? NCQ被稱為“全速命令佇列(Native Command Queuing,NCQ)”。全速命令佇列是SATA II最先進和最令人期待的特性,是SATAⅡ規範中的重要組成部分,也是SATAⅡ規範唯一與硬碟性能相關的技術。NCQ是一項強大的接口/硬碟技術,它通過在硬碟內部最佳化作業的執行順序來提升硬碟性能和使用壽命。
技術說明
首先讓我們來看一下硬碟是怎樣讀寫信息的。硬碟通過將信息寫入磁碟磁軌上的特定位置進行信息存儲,硬碟訪問磁碟上信息的過程如下:
● 尋找存儲數據的目標磁碟(platter),訪問該磁碟。
● 尋找磁碟上存儲數據的目標磁軌(track),訪問磁軌。
● 尋找磁軌上存儲數據的目標簇(cluster),訪問簇。
● 尋找簇上存儲數據的目標扇區(sector),訪問扇區。
● 尋找目標數據,讀取數據。
通過上面的步驟,硬碟即可獲取所需要的數據信息。硬碟寫入數據的步驟也是如此,區別僅僅在於讀操作變為寫操作。大多數情況下數據存入硬碟並非是順序存入,而是隨機存入,甚至有可能一個檔案被分配在不同碟片上。對於不支持NCQ的硬碟來說,大量的數據讀寫需要反覆重複上面的步驟,而對於不同位置的數據存取,磁頭需要更多的操作,降低了存取效率。支持NCQ技術的硬碟對接收到的指令按照他們訪問的地址的距離進行了重排列,這樣對硬碟機械動作的執行過程實施智慧型化的內部管理,大大地提高整個工作流程的效率:即取出佇列中的命令,然後重新排序,以便有效地獲取和傳送主機請求的數據,在硬碟執行某一命令的同時,佇列中可以加入新的命令並排在等待執行的作業中。顯然,指令排列後減少了磁頭臂來回移動的時間,使數據讀取更有效。
舉例說明
如圖所示,如果新的命令恰好是處理起來機械效率最高的,那么它就是佇列中要處理的下一個命令。舉個例子:比如向硬碟下達一組數據傳送指令,由於數據在磁碟上分布位不同,磁頭可能會先讀取260扇區,再讀取7660扇區,然後又讀取261扇區……如果我們對指令進行最佳化排列,可以先讀260扇區,接著依次讀261扇區,最後讀取7660扇區……顯然,指令排列後減少了磁頭臂來回移動的時間,使數據讀取更有效。並且有效的排序算法除了考慮目標數據的線性位置,也會考慮其角度位置,並且還要對線性位置和角度位置進行最佳化,以使匯流排的服務時間最小,這個過程也稱做“基於尋道和鏇轉最佳化的命令重新排序”。
不過,要充分享用NCQ技術,光硬碟支持是不行的,還要對應的硬碟控制器(如南橋晶片中的磁碟控制器)支持才行。例如Intel從945晶片組的ICH7南橋開始支持NCQ技術,nVidia從nForce4 SLI晶片組開始支持NCQ技術。
其他信息
下面是seagate官方關於支持NCQ硬碟的數據。
從seagate推出高端NCQ硬碟以來,一直深受廣大用戶擁戴,這次NCQ硬碟向低端發展,體現了seagate對用戶的全方位考慮。據相關媒體報導,擁有NCQ技術的新款硬碟相對沒有NCQ技術的舊版硬碟產品。整體性能可以提升5%~20%,而擁有NCQ技術的這款低端產品的上市無疑是普及硬碟領域最新技術的最好途徑。