技術 > 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技術的這款低端産品的上市無疑是普及硬盤領域最新技術的最好途徑。