延續上一節的主題,本節站長打算介紹的是目前市面上最常見的磁碟介面-SATA 以及商用、伺服器專業市場的主流磁碟介面-SAS。
最主流的磁碟界面-SATA
SATA 的全稱是 Serial Advanced Technology Attachment (可簡寫為 Serial ATA),最早是在 2000 年底由以 Intel、IBM、Maxtor、Quantum、Seagate 與 Dell 等七家大型科技公司為首的 Serial ATA Working Group 所發佈與制定,從名稱上不難看出 SATA 的發展基礎實際上就是站長在上一節中所介紹的 IDE/ATA,主要是為了解決 IDE/ATA 最大的幾個缺點而設計的。
採用序列訊號傳輸
SATA 與 IDE/ATA 最大的不同是在訊號傳輸的方式,為了改善 IDE/ATA 使用並列訊號傳輸時須要相當大量的訊號傳輸線路 (IDE/ATA 排線一共由多達 40 條並排帶狀電纜所構成),連帶導致嚴重的串音干擾以及訊號線接頭過於龐大占用大量空間的兩大問題,SATA 改為使用序列訊號傳輸,並且透過訊號頻率大幅提升的方式來彌補資料傳輸通道寬度大幅減少的不足,甚至反而提供了遠高於 IDE/ATA 所能提供的傳輸速度。
採用序列訊號傳輸後 SATA 的傳輸線只需要 7-pin 即可滿足傳輸需求,因此傳輸線的寬度也因此大幅縮減,電腦機殼內的走線難度因此下降了許多 (同時也因為傳輸線連接埠的寬度大幅縮減,SATA 的筆記型電腦硬碟與桌上型電腦硬碟使用了完全相同的傳輸連接埠設計,而不再如 IDE/ATA 提供兩種不同的連接埠)。
不再有 Master 與 Slave 之分
以往 IDE/ATA 介面中每條 ATA 通道可以有兩個裝置,而為了維持兩個裝置同時正常運作,必須使用 Jumper 的調整來分別賦予這兩個裝置不同的識別代號 (通常分別被稱為 Master 與 Slave,雖然後來有 Cable Select 功能但實際上還是經常出狀況),而這在實際安裝上造成了許多困擾且經常成為新手在組裝電腦時會遇上的障礙。
而在 SATA 中,所有裝置都使用點對點的方式直接與 SATA 主機控制器連結,因此也就不再有區分 Master 與 Slave 的需要了,此外,得益於大幅縮小的 SATA 連接埠體積,絕大多數主機板都內建了四到八個 SATA 連接埠,因此實際可以安裝的裝置數量實際上是沒有減少,甚至反而是增加的。
新的專用電源接頭規格
自 ST-506 以降的所有硬碟以及早期的軟碟機使用的電源介面都是採用由 Molex Connector Company 在 1950、1960 年代所發展的 Molex 接頭規格中的「D 型大四針連接器」,常被稱為「大 4-pin 接頭」,包含四個針腳,可對硬碟提供 +5 V 與 +12 V 兩種電壓。
而在 SATA 標準當中則引入了新的 15-pin 專用電源接頭,除了 +5 V 與 +12 V 之外另外還提供了 +3.3 V 電壓,並且設計上比原先的大 4-pin 接頭要容易安裝許多。
SATA 1.0 (SATA/150, 2003 年)
在 2000 年 Serial ATA Workgroup 首次宣布 SATA 介面後,SATA 標準歷經了長達兩年左右的醞釀與經過 40 次的修訂,直到 2003 年才正式宣佈了 1.0a 版本的 SATA 標準 (這是第一版被視為正式規範的 SATA 標準)。
同時也是在這一年裡 Seagate 推出了第一款採用 SATA 介面的 Barracuda V 硬碟,提供 60 GB、80 GB 以及 120 GB 三種不同的容量選擇。
第一世代的 SATA 標準可以提供高達 150 MB/s 的最大資料傳輸速率 (採用 8b/10b 編碼) 並且支援熱插拔。
初期的 SATA 硬碟與搭配的控制器仍然採用 IDE 裝置的設計,因此除了傳輸速率稍微提升之外其實並沒有太多明顯的新特性,許多廠商在當時推出 SATA 型號時實際上是與同世代的 IDE/ATA 版本使用相同的基礎,只是透過修改電路板設計的方式將原先搭配的 Parallel ATA 介面替換為 SATA 介面。
進階主機控制器介面 AHCI
為了在 SATA 當中引入一系列新特性,對原有的 IDE 規範進行改進顯然是無可避免的,於是 Intel 等廠商在 2004 年 SATAII 規範推出之前便提出了一項稱為進階主機控制器介面 (Advanced Host Controller Interface,AHCI) 的標準,用以取代原有、延用至 PATA 時期的 IDE 規範。
整體而言 AHCI 的概念仍是脫胎自 IDE 匯流排 (但由於 SATA 起採用點對點連線而不再有 Master 與 Slave 之分,因此相關的概念都只採 Bus Master IDE 的部分,並且去除了 SATA 早期為了維持相容性而進行的 Master、Slave 裝置模擬),主要是朝降低對 CPU 的性能依賴以及提供 SATA 所引入的熱插拔、電源管理等新特性的方向進行規劃與調整。
由於 AHCI 在設計上與原有的 IDE 並不相容,因此自 2004 年起的電腦通常除了 AHCI 支援之外還會同時提供 IDE 相容模式,可允許使用者將電腦設定為繼續使用傳統 IDE 介面的方式運作,但在這種情況下性能會受到影響且將無法享受所有 SATA 技術引入的新特性。
此外,由於 Windows XP 是在 2001 年推出,當時還沒有 AHCI 這樣的技術,因此 Windows XP 並不提供 AHCI 的原生支援,使用者若要在採用 AHCI 的系統上安裝 Windows XP 等舊版系統,將會需要在安裝時提供 AHCI 驅動程式 (如在第一階段安裝程式中按下 F6 並使用包含安裝階段驅動程式的磁碟片或是提前將相關的驅動程式整合入 Windows 安裝映像中),在安裝之後也要確保 AHCI 驅動程式的正常運作,否則將會無法開機。
當年有些使用者會在 BIOS 被意外重設之後發現無法正常開機、Windows 找不到系統檔案的狀況很多時候也是因為 AHCI、IDE 模擬相關的選項被重設所造成的。
SATA 2.0 (SATA/300,2004 年)
在第一世代 SATA 推出約一年後第二世代的 SATA 標準便被提出,2.0 版本的 SATA 標準當中保持了與第一世代 SATA 的相容性並且引入了幾項新特性,其中以被稱為原生指令排序 Native Command Queuing (NCQ) 的功能最為重要。
近代電腦系統所使用的檔案系統 (如 FAT32 與 NTFS) 大多有在儲存檔案時可能將檔案拆分為許多區塊並且零散地將其儲存在實體磁盤上不同位置磁區的問題,在這種情況下硬碟要讀取一個檔案的過程中便可能會經常需要將磁頭來回進行移動以讀取散落在各處的磁區,在磁頭來回找尋下一個磁區的過程中便導致了延遲與卡頓的出現,這同時也是早期透過進行磁碟重組可以有效改進電腦運作性能的主要原因。
而原生指令排序 (NCQ) 功能就是為了解決這樣的狀況而設計的,NCQ 功能可以允許硬碟透過改變讀取磁區的順序來提高讀取的效率、減少磁頭的移動距離與所消耗的時間,進而改善讀取散落檔案時的性能,根據 SATA-IO 官方的說法,NCQ 功能大約可以提高 10% 左右的磁碟讀取性能。
不過 NCQ 功能需要作業系統、硬碟以及主機板上的內建硬碟控制器三者的完整支援才能發揮作用,因此在 2006 年之前並不算普及,至於另一項 SATAII 帶來的重要改進則是讀取速率加倍,由 SATA 1.0 的 1.5 Gb/s 大幅提高為 3 Gb/s。
值得注意的是,雖然 SATA 2.0 標準在 2004 年 04 月就已經發布,但初期上市的硬碟並無法完全支援 SATA 2.0 的所有特性 (此種過渡期的產物被稱為 Serial ATA II Phase 1,相較於第一世代 SATA 產品而言主要是加入了對 NCQ 功能的支援),例如首款支援 NCQ 的 Barracuda 7200.7 與隔年推出的 Barracuda 7200.8 實際上都屬於此類過渡產品,真正要完整支援 SATA II 的 Seagate 硬碟要等到 2005 年才做為 Barracuda 7200.9 系列發布。
SATA 3.0 (SATA/600,2009 年)
接下來在 2009 年推出的第三世代 SATA 則是再次進一步將傳輸速率提高了一倍 (高達 6Gb/s) 並且針對 NCQ 功能新增了一些補充指令以提高 NCQ 功能所帶來的性能提升,目前的傳統硬碟與許多固態硬碟都是依照 SATA 3.0 規範的內容設計。
由於傳統硬碟的連續資料讀取速率通常落在 150 MB/s 左右,因此 SATA 3.0 在初期所顯示的優勢其實並不明顯,但隨著固態硬碟的誕生,SSD 隨便就能達到 500 MB/s 左右的傳輸速度其實便已經相當接近 SATA 3.0 所能提供的極限了。
面向伺服器與專業用途的主流磁碟介面-SAS
在過去十年裡 Serial ATA 取代了以往個人電腦所使用的 IDE/PATA 成為了最主流的磁碟介面,而在伺服器與專業用途市場這邊其實也發生了相當類似的事情,還記得在上節當中站長曾介紹在伺服器市場中被長期、廣泛應用的 SCSI 介面,發展到 2000 年以後其實也開始遇上頻寬拉不上去、干擾嚴重的問題了,因此 SCSI 的後繼者也採用了從 PATA 到 SATA 相同的思路,將原先使用多年的並列訊號傳輸改採序列訊號傳輸,於是 Serial Attached SCSI (SAS) 便誕生了。
大量參採 SATA 規範
Serial Attached SCSI (SAS) 在 SATA 1.0 規範定案後的隔年推出,在 SCSI 的基礎上發展之餘還大量參採了 SATA 的規範,包含傳輸速率、採用點對點連結等特性都與 SATA 相同。
SAS 規範當中就連訊號線與電源線的規格也都採用與 SATA 極為相似的外型與針腳定義 (上圖就是一條典型的 SAS 連接線,同時整合了電源線與訊號線部分,眼尖的讀者可能會發現不一樣的其實只有 SAS 接頭在訊號部分與電源部分之間多了一塊凸起,當中包含了額外的 7-pin 訊號線),但中央的凸起部分在 SATA 硬碟上正好是缺口,因此這種線路也可以使用在 SATA 硬碟上而不會有任何問題。
值得注意的是,在絕大多數情況下 SAS 控制器甚至可以相容 SATA 規格的硬碟 (雖然是可選特性,但時至今日的 SAS 控制器幾乎全部都具備連結 SATA 規格硬碟的能力,但需特別注意的是 SATA 控制器是無法連結 SAS 規格硬碟的)。
遠比 SATA 強大的擴展彈性
相較於 SATA 而言,SAS 除了可靠性更高、架構更完善、功能更完整之外最大的特色就是 SAS 的擴展彈性遠比 SATA 要來得強大,同時這也是伺服器經常有的需求 (一台伺服器可能會需要裝上許多實體硬碟)。
考慮到伺服器內部的緊湊空間,SATA 傳輸線雖然已經很細,但若每個實體硬碟的點對點傳輸都需要一條單獨線路才能滿足顯然是不切實際的,因此 SAS 規範當中設計了數種一對多傳輸線,其接頭體積甚至只比單一的 SATA 訊號線接頭還要來得大上一點而已。
以 SAS-1、SAS-2 主要使用的 SFF-8087 為例 (上圖),單一接頭就可以接出四個 SAS 介面,可以大幅降低伺服器內配線的困難度並且改善散熱問題,這使得現今在一台 2U 伺服器的機殼內塞入多達 24 個實體硬碟成為可能。
除了一對多傳輸線以外 SAS 還有擴展板 (Expander) 的設計,可以透過分出子系統的方式來讓單一系統支援更多的 SAS 設備,不過需要注意的是,SAS 目前有三個不同世代的產品在市面上大量流通,要達到最高的傳輸速率需要控制器 (Controller)、擴展板 (Expander)、硬碟櫃背板 (Cage & Backplate)、硬碟本身 (Drive) 全部都採用最新世代的產品才行,否則傳輸速率就會自動降速至沿途各項設備之中最舊設備所支援的最快等級。
SAS-1 (3.0 Gbps,2004)
相較於 SATA 代間有許多功能差異而言,SAS 的代間差距是以最高傳輸速率的提升為主 (畢竟許多 SATA 後來新增的功能其實都是從 SAS 搬過去的),在 2004 年推出的第一代 SAS 提供了 3.0 Gbps 的傳輸速率 (相當於差不多時間推出的 SATA II)。
SAS-2 (6.0 Gbps,2009)
在 2009 年 SATA III 推出時第二世代的 SAS 也被發布,最高傳輸速率翻一倍來到了 6 Gbps (相當於差不多時間推出的 SATA III)。
SAS-3 (12.0 Gbps,2013)
目前出貨的伺服器大多仍是搭配在 2013 年發布的第三世代 SAS,最高傳輸速率進一步提高至 12 Gbps。
由於 SAS-3 提供的 12 Gbps 傳輸速率實際上已經大幅超越 SATA 所能夠提供的上限傳輸速率,已經能夠滿足絕大多數傳統硬碟的傳輸速率需求,再加上固態硬碟方面有 NVMe 的競爭,雖然在 2017 年理論傳輸速率高達 24 Gbps 的 SAS-4 標準也已經發布,但目前還看不太到支援 SAS-4 的產品。