隨著ATA走向序列式介面,過去SCSI所享有的技術優勢,逐漸的出現在ATA上,Serial ATA II規格的制定更是一個極具代表性的里程碑。SATA是否會逐漸侵蝕SCSI所主導的高階應用市場?甚至ATA取代SCSI之路是否更進一步?我們將深度探討這個主題。

以擴張既有SATA功能為目標的SATA II規格,從名稱發表及工作小組成立至今也已經過了一年了,而新增功能皆以提升高階伺服器及工作站應用面為主。

SATA II的規格推動分為Phase 1和Phase 2兩個階段,Phase 1定義了大幅改善磁碟存取效能的原生命令緩衝區(NCQ,Native Command Queue),儲存設備內部運作溫度及風扇監視機能,以及可支援設備熱插拔更換(Hot Swap)的背板規格。Phase 2則將最大傳輸率提升至3Gbps。另外,在去年9月英特爾科技論壇(Intel Developer Forum),除了發表對應原生運作模式的AHCI控制器介面規格外,SATA II工作小組以其為基礎、配合先前已制定的非同步存取機制,發表了Digital 1.1、Port Multiplier 1.0以及Port Selector 1.0 3項規格,改進了過去所缺乏的裝置數量擴張性、外接式介面及線路備援能力,大幅提升高階應用的功能性。

不過,在眾多新功能之中,重要性最高、最受矚目的莫過於NCQ,因為它大幅改進了多重存取下的磁碟存取效能。更重要的是,它讓ATA享有類似SCSI TCQ(Tagged Command Queue)的非循序磁碟存取功能,改進了部分過去Parallel ATA介面規格的重大缺點,甚至將足以使SATA II取代部分過去SCSI所盤據的產品線及市場,影響力之大不言可喻。

在這裡,我們將NCQ的技術改進分為兩個層面討論:磁碟內部存取機制的改良,以及ATA介面規格相對應的改進。更有效率的磁碟存取方式

磁碟機先天的機構限制,一直都是以磁碟為主的儲存系統效能上的一大瓶頸,尤其多工化作業系統以及多使用者伺服器環境的逐漸普及,造成更頻繁的同時磁碟多重存取,進一步的降低效能表現。

我們可以考慮一個改進的方式,那就是針對資料在磁碟上的實際資料排放方式,將讀寫存取命令進行最佳化的重新排序,以達成最低的整體存取時間。我們可以用升降梯的例子來描述這個觀念,升降梯並不會因為任意一個要求、或是按照發出需求樓層的順序,就隨機改變升降的方向,而是以當時所需求的最高及最低樓層做為升降的範圍,所以循序的樓層可以用最短的時間依序到達。

同樣的概念也就可以導入於磁碟存取命令的排序上。以磁軌搜尋時間(Seek Time)為例,循序的鄰近磁軌就可以依照相同的方向進行尋軌定位動作。另外,就以主軸馬達轉動延遲(Rotational Latency)而言,假如同時存取在相同磁軌上的數筆資料,就可以直接在一圈內存取完畢。簡而言之,導入非循序存取的概念,磁碟資料的存取並非依照以命令的順序,而是針對最佳化演算法(如最有名的RPS:Rotational Position Ordering演算法)所計算的「實際最佳順序」所進行。

由於只有磁碟機本身了解硬體目前的狀態(實際資料的磁區分布、磁頭位置、主軸馬達轉速等等),所以這些最佳化的動作,就需要由磁碟硬體本身去進行,而非交由磁碟控制器所負責。另外,也基於此,磁碟機本身就需要另外實作各自獨立的命令緩衝區(Command Queue),這也是NCQ(Native Command Queue)一詞的由來。

事實上,Command Queue在1998年就已經出現在ATA/ATAPI-4規格之中,但由於當時Parallel ATA硬碟產品的命令排序主要還是由磁碟介面控制器所負責,自然就無法進行如此徹底的最佳化命令排序。這也充分反映了半導體技術的持續進步,使得硬碟控制器的性能足以支撐執行最佳化演算法的所需運算能量。更重要的是,NCQ機制本身亦需要磁碟介面的諸多配合才能有效發揮作用,而Parallel ATA並無法滿足這些需求。

不過,成本因素依然是ATA介面的首要考量,自然也影響著SATA II在NCQ上的實作。由於市場定位較高之故,SCSI自然可以使用成本較高的最佳化方式。SATA II NCQ的最大支援命令數目僅有32個,SCSI的TCQ卻高達255個;SCSI TCQ可支援4組對應不同QoS的命令緩衝區(根據SCSI-3規格),但NCQ僅有1組。另外,SCSI TCQ產品可以同時依據邏輯磁區位址(LBA,Logical Block Address)的實際位置以及偵測磁頭驅動臂角度變化量(RPS,Rotational Position Sensing)作為最佳化的參考,而SATA II NCQ產品目前僅使用前者。

但是,較高程度的最佳化會對硬碟控制器有著較高的運算效能需求,自然代表較高的產品成本,支援RPS的SCSI硬碟出現在市場上,也是近期的事情。雖然不如SCSI TCQ,但是NCQ對於提升ATA硬碟效率依然有其貢獻,也代表著磁碟存取最佳化不再只是SCSI的專利,隨著技術的進步,ATA也可以享有昔日的高檔功能。在未來,SATA產品導入RPS最佳化,只是時間的問題。ATA介面規格相對應的改進

為了進一步的發揮NCQ的優勢,SATA II在介面規格上亦做了相當程度的改良,以達成更有效率的資料傳輸及命令執行狀態回報,提升磁碟機內部非循序存取以及命令排序的效能。從這些改良,也可以了解到Parallel ATA原先的諸多缺點。更重要的,過去被長期忽略的主控器命令延遲(Command Overhead),成為NCQ所改進的重點。

Race-Free Status Return
在Parallel ATA,如果在磁碟機介面控制器尚未對磁碟端發出下一個命令的服務請求,磁碟無法回傳之前命令的執行狀態,這會造成額外的延遲,而且如果介面控制器並非完全透過硬體實作加速,還會增加處理器額外的負擔,對於同時發出並執行多組命令的應用環境會降低不少效能。為此,SATA II免除了這項限制,毋須以往的通訊協定交握(Handshake)動作,允許各磁碟端可以隨時回報命令執行狀態,所以命令執行完畢訊息的回報可以達成高度的管線化,甚至做到數個命令同時回傳的程度。

Interrupt Aggregation
在既有DMA傳輸模式下,設備端通知傳輸結束,需要製造一個中斷訊號(Interrupt),這會造成不少延遲,所以SATA II提供中斷訊號聚集機制。如果磁碟同時間內完成多組命令,這些命令完成所造成的中斷就可以聚集在一起,大幅減少中斷的數目,這對於降低多工環境的中斷延遲有著極大的貢獻。

First Party DMA(FPDMA)
當Parallel ATA的磁碟準備要傳輸資料時,會先發出中斷訊號告知磁碟機介面控制器,然後介面控制器對磁碟發出服務命令,決定該資料傳輸命令的標籤(Tag)以取得受到保護的主記憶體位址。當上述動作完成,磁碟機介面控制器的驅動程式就進行直接記憶體存取(DMA,Direct Memory Access)通道的設定。這過程會造成不小的延遲,尤其不少ATA控制器並非完全透過硬體加速實作,驅動程式的介入意味著更高的處理器負擔。SATA II允許磁碟端自行建立DMA傳輸通道,毋需驅動程式介入,透過DMA setup FIS(Frame Information Block)直接對磁碟機介面控制器送出需求通知、標定命令標籤,使其載入該命令標籤所指定的受保護記憶體位址範圍,DMA引擎就可以進行資料傳輸。另外,FPDMA機制允許非循序、或循序卻分成數次的資料傳輸,可大幅提昇磁碟端存取命令排序的彈性。NCQ的系統需求與支援產品

除了磁碟機需要支援NCQ外,磁碟介面控制器以及驅動程式亦需要支援FPDMA的功能。值得注意的是,由於FPDMA僅為既有ATA通訊協定的延伸,SATA II允許混用尚未支援NCQ的裝置,磁碟介面控制器僅需對支援NCQ的裝置發出FPDMA命令即可。另外,雖然支援NCQ的磁碟機本身就可以自行針對Command Queue進行排序,但是沒有介面控制器的配合,NCQ發揮的效益就會相當的有限。反過來說,如果介面控制器支援,但是缺乏支援的硬碟機產品,也同樣毫無效果可言。簡而言之,需要兩方面的同步配合才能克盡全功。根據去年4月及7月英特爾所發表關於NCQ的正式技術文件,去年下半年支援NCQ的硬碟將會陸續出現在市場上,而目前Seagate新款Barracuda 7200.7 Plus以及Fujitsu新款2.5吋硬碟已經支援NCQ。隨著SATA II規格控制器的逐漸普及,可以預期NCQ將會成為未來ATA硬碟機的標準,也將會拉近ATA與SCSI在多工環境下的效能差距。SATA II是否已經具備完全取代SCSI的條件?

隨著SATA產品規格架構的逐漸成熟及日益完整,過去SCSI所獨有的眾多強大功能,也得到了「舊時王謝堂前燕,飛入尋常百姓家」的機會。此時,我們就不得不好奇,是否這代表SATA II即將大舉侵入SCSI所佔有的高階產品領域,逐步壓縮SCSI的市場空間?在過去Parallel ATA就已經靠著價格優勢大幅侵蝕SCSI市場,那麼SATA豈不是更有機會?以長期發展的角度而言,這已經是很難避免的趨勢。雖然SCSI在功能性上依然保有相當程度的優勢,但是假以時日,SATA II成為ATA規格的主流,憑藉著龐大市場規模壓低產品單位成本,屆時SCSI的生存空間將會越來越小,被迫向上發展至現有Fibre Channel的市場。值得注意的是,Serial Attached SCSI(SAS)規格為了降低產品成本以及擴大應用範圍,在實體層上選擇與SATA相容。這究竟是否會讓SCSI有起死回生的契機,還是反過來拉抬SATA的市場地位,依然在未定之天。

不過,SATA II的發展依然有其隱憂,最大的瓶頸在於AHCI介面規格控制器的發展速度及普及程度。如果重要的作業系統不支援AHCI規格,意味著SATA無法使用原生模式運作,眾多架構上的發展潛力及嶄新規格將無用武之地。更重要的是,微軟新一代作業系統Longhorn極可能延宕至2006年,如此一來,勢必對SATA II的市場發展造成極為不利的影響。

無論如何,SATA II的應用普及化,依然需要一段不短的時間,就算要完全取代Parallel ATA,亦絕非一朝一夕之功。但是,SATA的發展,大幅提升了ATA介面的使用便利性及可擴充性,在未來的企業儲存應用上,將扮演更重要的角色,甚至假以時日進而成為主角,亦非不可能之事。文⊙劉人豪

熱門新聞

Advertisement