![]() |
|
![]() |
||
AHCI(串行ATA高級主控接口)
AHCI,全稱為Serial ATA Advanced Host Controller Interface(串行ATA高級主控接口),是在Intel的指導下,由多家公司聯合研發的接口標准,其研發小組成員主要包括Intel、AMD、戴爾、Marvell、邁拓、微軟、Red Hat、希捷和StorageGear等著名企業。在AHCI技術裡面我們最常用到的高級功能就是熱插拔功能和NCQ(全速命令排序)。
主板BIOS中設置AHCI功能
AHCI描述了一種PCI類設備,主要是在系統內存和串行ATA設備之間扮演一種接口的角色,而且它在不同的操作系統和硬件中是通用的。對於主板來說,它是一項可選功能,只有當用戶在BIOS設置裡面啟用磁盤控制器(部分主板擁有一個以上的磁盤控制器)的AHCI後再正確安裝操作系統,該功能纔能生效。
Intel Matrix 存儲管理器界面
在前面我們提到SATA接口可以支持熱插拔,但其實在SATA 1.0具備完整的熱插拔能力,而到了SATA II這個能力纔真正得到完善。在開啟了主板的磁盤控制器(部分主板擁有一個以上的磁盤控制器)的AHCI功能,正確安裝操作系統和驅動程序後,我們就可以對該控制器下的SATA/eSATA設備進行輕松的熱插拔操作。
NCQ(全速命令排序)
一直以來SCSI硬盤在多任務負載下的表現能力為人稱道,其根本的原因除了SCSI接口驚人的接口速率外,便是它的指令排序功能。以往的PATA、SATA硬盤也正是因為缺少一種指令優化執行功能而在性能上落後於SCSI硬盤。針對這一困境,Intel的AHCI 1.0規范首次引入的NCQ(Native Command Queuing),它的應用能夠大幅度減少硬盤無用的尋道次數和數據查找時間,這樣就能顯著增強多任務情況下硬盤的性能。
NCQ和非NCQ的磁頭工作方式
如果沒有原生命令隊列,當命令被發往硬盤時,會按照命令到達的順序進行處理。盡管這樣聽起來非常合理,但其實這樣的效率會比較低。假設你的硬盤收到三條從硬盤讀取數據的命令,第一條命令要求讀取最裡面的磁道的數據,第二條命令要求讀最外側的磁道的數據。最後一條命令又要求讀取最內 側的數據。如果按照順序執行命令,磁頭需要在整個硬盤上四處游走。
如果能夠先執行兩個需要在外側磁道讀取數據的命令(第一條和第三條命令)再 去執行第二條讀取內側磁道的命令,效率就能提高很多。這就是原生命令隊列所起到的作用。通過原生命令隊列功能,磁盤可以查看多個要求然後按照效率最高的方式進行處理。以這種方式處理命令可以提高硬盤的系統性能,而且由於這種方式效率較高,所以也能延長硬盤的使用壽命。