SATA_Express

**SATA Express**（英文：Serial Advanced Technology Attachment Express，亦可縮寫為 **Serial ATA Express**，也有坊間的非官方縮寫 **SATAe**）是一種基於 SATA 和 PCI Express（PCIe）而來的高速電腦匯流排，用於 SATA、PCIe 儲存裝置，最初是作為 SATA 3.2 版標準發表。

## 來歷

### 可用性

最初內建 SATA Express 控制器的是英特爾於 2014 年的 9 系列 PCH 晶片組（H97、Z97），適用於 Haswell 微架構的處理器（LGA 1150 插槽）。不過，2013 年 11 月華碩釋出了帶有 SATA Express 連接埠的「Z87-Deluxe/SATA Express」主機板，使用一顆由祥碩科技提供的 SATA/PCIE 分配晶片 ASM106SE 和相應的多工器晶片支援，不過這款主機板僅在 2014 年的 CES 消費電子展上展出以後便無任何推出市場的計劃了。

2014 年 4 月，華碩公開展示了一種準量產型的 SATA Express 硬體，並支援華碩稱為「帶獨立展頻時鐘的分立式基準時脈」（SRIS）特性。SRIS 的要點在於在 SATA Express 儲存裝置上增加一個用於資料訊號傳輸的時鐘發生器，在主機板的韌體上予以額外支援，來降低 SATA Express 資料連接線傳輸同步 PCIe 匯流排訊號時封鎖的技術需求，並降低輻射。

2014 年 5 月，首批使用 Z97 和 H97 晶片組的主機板上架販售，不少主機板不僅提供了 SATA Express 連接埠，還提供了 M.2 插槽（M.2 是一種介面卡式儲存器連接結構，安裝於主機板上，和 SATA Express 原生物理介面一樣提供 PCIe 和 SATA 的腳位）。Z97 和 H97 為每個 SATA Express 連接埠各提供了 PCIe 2.0 ×2 規格的 PCIe 通道，每個 SATA Express 裝置可擁有 1GB/s 的頻寬。不過這兩款晶片組的主機板都主要用於高階效能機桌上型平台，對一般主流級市場影響不大。而極致效能級桌機平台上，英特爾於 2014 年 8 月推出了支援 SATA Express 的 X99 晶片組。X99 主機板上 SATA Express 介面的 PCIe 通道仍由 X99 PCH 提供，而 M.2 插槽的 PCIe 通道則是視主機板廠商而定，可從 X99 PCH 上引出兩條 PCIe 2.0 通道，也可從 LGA 2011-v3 插槽的處理器上引出最多 4 條 PCIe 3.0 通道，來供 M.2 插槽使用。

AMD 則於 2017 年發表了 Socket AM4 和 Socket SP3 (r2)/LGA 4094 處理器平台，內建 SATA Express 控制器。

### 使用度

SATA Express 的推廣使用上，分為兩種情況。單就 SATA Express 控制器本身而言是算成功的，至 2017 年推出的主機板晶片組、x86 CPU/SoC 均有支援。然而就 SATA Express 物理介面上來說則是相當的失敗，以至於 SATA Express 協定被 NVMe 協定取代，SATA Express 物理介面也被後續者 M.2 和 U.2 取代，載有 SATA Express 物理介面的主機板可謂是相當的少，早期甚至連驅動程式也欠奉；至於 SATA Express 物理介面的儲存裝置也可謂寥寥無幾。

2015 年 SATA Express 發佈了一種相容 SAS、PCI Express x4、SATA 總線的的 U.2 連接器介面，U.2 更多用於伺服器等企業應用場合。

## 特性

SATA Express 本身配備了新的物理連接介面，連接埠可向下相容原有 SATA 標準的 SATA 連接線插頭，而實際上 SATA Express 是使用兩條 PCIe 通道傳輸資料，其對應的連接埠幾乎相當於一個特化的 PCIe ×2 插槽，所以基於 SATA Express 的儲存裝置是通過 PCIe 匯流排與 SATA Express 控制器進行通信的。不像此前的數個 SATA 標準，由於固態硬碟機（SSD）的長足發展和越發廣泛的使用，SATA 3.0 對於 SSD 來說已不敷使用，能在與舊裝置相容的基礎上比 SATA 3.0（6 Gbps）提升多倍的匯流排頻寬，SATA 3.2 選擇使用 PCIe 和 SATA 共享技術標準。不過相比原來的 SATA 標準來說，為了能在 PCIe 匯流排上運行而修改了大量的技術參數標準，而為了相容舊有的 SATA，運作時功耗又會比只使用 PCIe 匯流排的控制器要高。選擇與 PCIe 走在一起的另一個原因是，作為一個可廣泛適配的電腦匯流排，PCIe 可在提供足夠的頻寬的同時，還能通過增加 PCIe 通道數來達成成倍頻寬提升。

此外，因為 SATA Express 支援原來在 SATA 邏輯介面層（面向作業系統）上運作的 AHCI，使得支援只有邏輯介面層標準的 NVMe（AHCI 的繼任者）也成為了可實現的目的，只要 SATA Express 的儲存裝置支援。支援 AHCI 可確保能相容現時大量的舊型 SATA 裝置和舊版的作業系統（如 Windows 7），對 NVMe 的支援則可全力發揮 PCIe 儲存裝置的功能與效能，像是大量 I/O 操作的並列化執行。

SATA Express 介面同時支援 PCIe 儲存裝置和 SATA 儲存裝置，其物理連接介面佔用兩條 PCIe 2.0/3.0 通道和兩個 SATA 3.0（6.0 Gbps）連接埠（兩種連接介面重用一個物理連接埠），主機和儲存裝置之間的連接是純 PCIe 匯流排連接的，不需要額外的匯流排抽象層。 2013 年 8 月的 SATA 3.2 版本規範中，正式將 SATA Express 匯流排標準推出，並公佈其硬體規格以及電氣特性參數。

SATA Express 選擇使用 PCIe，使得其效能可以通過多條並列的或是更高版本的 PCIe 匯流排來獲得效能的提升。舉個例子，使用 PCIe 2.0 ×2 時，可在 8b/10b 編碼及 2×5 GT/s 的吞吐量時獲得 1GB/s 的頻寬；而使用 PCIe 3.0 ×2 時，同樣通道下使用 128b/130b 編碼、2×8 GT/s 的吞吐量時可獲得接近 2 GB/s（實際 1,969MB/s）的頻寬。作為對比，SATA 3.0（6 Gbps）僅擁有 0.6 GB/s 的頻寬，使用的是效率相對較低的 8b/10b 編碼。

### 運行模式

對於 SATA Express 控制器和其連接的儲存裝置，它們可使用 3 種不同的邏輯裝置介面和命令集：

#### 傳統 SATA

用於向下相容傳統的 SATA 裝置（包括使用 AHCI 邏輯介面的 SATA 裝置）、SATA Express 控制器提供的 SATA 3.0 連接埠。

#### 使用 AHCI 的 PCI Express

一來是用於使用 PCIe 匯流排並通過 AHCI 邏輯介面與主機連接的 PCIe SSD；而二來是在作業系統中以相容性為目的，提供非效能最佳化，以廣泛使用的 SATA 模式（通過 AHCI 邏輯介面）存取 PCIe SSD（即 AHCI 模式，方便安裝不支援 NVMe 的舊版作業系統，如 Windows 7）。在 AHCI 開發的時代，系統的主機配接器將 CPU / 記憶體子系統與相對慢得多的、基於旋轉磁性介質的儲存子系統，AHCI 是針對這種懸殊的速度差來進行最佳化設計的。而到了固態硬碟廣泛使用的時代，AHCI 便出現了一些與固態硬碟的運作原理不相適應之處而導致的效能低落，現時固態硬碟機採用的快閃記憶體，儲存原理與 DRAM 有類似之處（儘管速度仍是慢得多），不同於旋轉儲存媒介。

#### 使用 NVMe 的 PCI Express

用於使用 PCIe 匯流排並通過 NVMe 邏輯裝置介面與主機連接的 PCIe SSD。NVMe 是一種轉為快閃記憶體設計的高效能、可擴展的主機控制器介面，其高效能主要在於低延時和 I/O 操作的並列性，現代 CPU、系統平台及應用均可受益。相比 AHCI，NVMe 提供在主機硬體和軟體可支援的情況下提供原生的儲存並行性支援，更少的資料儲存層級、更深的命令隊列和更高效的中斷處理。

## 物理介面

### SATA Express 原生物理介面

共有五種物理是 SATA Express 可用的，取決於裝置的用途：

* Host plug：即原生 SATA Express 物理介面，用於主機板、附加控制器（如擴展介面卡）上。與舊型 SATA 裝置無縫相容、不需要額外的適配器或轉換器的保守設計。主機板一側的連接器可選擇連接兩個舊型 SATA 裝置或是一個 SATA Express 連接線的 PCIe 固態硬碟。而連接埠上的匯流排工作在 PCIe 模式還是 SATA 模式，取決於所連接的儲存裝置。
* Host cable receptacle：SATA Express 資料連接線上的插頭，用於連接主機板上的 Host plug 插座，不相容於舊 SATA 插座。
* Device cable receptacle：SATA Express 資料連接線上的插頭，用於連接儲存裝置，相容舊型 SATA 插座，一個 Device cable receptacle 插座可插上一條舊 SATA 連接線與主機板的 SATA 插座連接，不過這樣的話裝置只會在 SATA 模式運作。
* Device plug：使用於 SATA Express 儲存裝置上，這種連接埠是部分向下相容設計，可令裝置與多連結 SAS（MultiLink SAS）或與下面提到的 U.2 主機板插頭配合使用。然而，SATA Express 在裝置與主機板連接後，需要裝置支援 PCIe 連接時方能開啟 PCIe 通道。
* Host receptacle：與 M.2 類似的板上連接方式，不需要連接線。這種連接方式間接相容連接一個舊型 SATA 裝置。

這五種 SATA Express 物理連接器僅提供兩個 PCIe 通道（即 PCIe ×2 規格），畢竟一開始就是基於舊版 SATA 及 SAS 物理介面改造的保守設計，注重向下相容性和成本效益，以便降低推廣成本，而且就算因效能接受度問題（僅支援到 PCIe ×2）沒有廠商願意推出搭載這類連接器的主機板或裝置，相容 SATA 介面的設計也能保證其可用性及重用性。

### U.2 和 M.2

事實上 SATA-IO 並不滿足於讓 SATA Express 僅支援到 PCIe x2 的規格。SFF-8639 連接器規格（即後來的 U.2）支援 PCI Express x4、SAS、SATA 總線，但採用線纜結構，主要用於企業級、伺服器固態儲存裝置。至 2015 年 3 月，一些廠商推出了使用 U.2 連接器、支援 NVMe 的固態硬碟產品（如 Intel 750 系列），預料本規格在效能上會獲得更廣的接受度，因為和 M.2 一樣可以使用 PCIe x4 的規格，比原生 SATA Express 的高出一倍的 PCIe 通道，能達成最高約 32Gbps（約 4GB/s）的頻寬，同時保有 SATA 等舊型匯流排的間接相容性。因針腳定義相同，SATA Express 也可直接使用 M.2 物理介面來實現板上連接，而市面上也有 M.2 與 U.2 的被動轉接器販售。也有 SATA Express 裝置直接採用 PCIe 物理規格的例子。

U.2 支援熱插拔而 M.2 不支援熱插拔；U.2 可使用 3.3V 電源電壓和 12V 電源電壓，而 M.2 隻能使用 3.3V 電源電壓；M.2 可應用於固態硬碟、無線網卡等裝置，而 U.2 僅用於 2.5 英吋固態硬碟。

下表簡略展示 SATA Express 不同連接器之間的相容度：

## 相容度

SATA Express 向下相容是裝置層級的，只要儲存裝置支援 SATA 均可使用；而 PCIe 模式，只要主機板晶片組 / SoC 有 SATA Express 控制器，也只需裝置支援即可正確開啟。不過無論是何種模式，仍然需要作業系統驅動程式的支援。

機械參數上，無論是原生 SATA Express 連接器還是 U.2 連接器，針腳的功能設定類似於 USB 3.0 向下相容 USB 2.0 的做法，原生 SATA Express 在兩個舊型 SATA 7 針連接器的基礎上另外新增了其它 PCIe 所需針腳位，也因此可讓舊型 SATA 資料傳輸線適配（最多插入兩個裝置）。而 U.2 則是採用與 M.2 類似的針腳定義，U.2 需要額外的被動適配器才能與舊型 SATA 裝置連接。另外，現時不是所有的主機板都配備 U.2 連接埠，與 M.2 類似的，需要 PCIe 轉接卡（被動或主動的，無橋接晶片的被動介面卡一般用於純 PCIe 裝置，帶橋接晶片的主動介面卡一般用於轉接 SATA 連接埠裝置）；如果主機板上配備了 M.2 連接埠，除了使用 M.2 規格的裝置以外，也可通過被動轉接器使用 U.2 的裝置而無頻寬損失。

軟體層面上，作業系統只要有 AHCI 驅動程式即可開啟 SATA Express 的 SATA 模式（AHCI 介面）存取舊型 SATA 裝置，或是通過 AHCI 介面存取 SATA Express 連接器的 PCIe 固態硬碟，與使用普通的 SSD 無甚區別。但是 NVMe 的支援上，則需要較新的作業系統才有內建的驅動程式支援，舊作業系統（包括 Windows 8 及之前版本的 Windows、Linux 核心版本 3.3 以前的 Linux 核心、FreeBSD 9.2 以前的 FreeBSD、Mac OS X 10.10 以前的 Mac OS X）需要額外的驅動程式方能支援。雖然一些支援 NVMe 的 SSD 有相容模式以便安裝舊版作業系統，不過像是 Intel 600p 這樣的 SSD，本身無 AHCI 相容模式支援的，需要在載入 NVMe 驅動的情況下安裝舊版作業系統。

## 參見

* 電腦裝置頻寬列表
* M.2
* 串列 SCSI (SAS)
* NVMe

## 備註

## 參考資料

## 外部連結

* 官方網站：Serial ATA International Organization (SATA-IO)
* SSD 不卡彈，新介面 SATA Express 解開速度限制， 1GB\_s 起跳相容老 SATA（頁面存檔備份，存於網際網路檔案館）
* LFCS: Preparing Linux for nonvolatile memory devices（頁面存檔備份，存於網際網路檔案館）, LWN.net, April 19, 2013, by Jonathan Corbet
* NVMe vs AHCI: Another Win for PCIe（頁面存檔備份，存於網際網路檔案館）, AnandTech, March 13, 2014, by Kristian Vatto
* Intel SSD DC P3700 Review: Understanding NVM Express, Tom's Hardware, August 13, 2014, by Drew Riley
* PCIe SSD 101: An Overview of Standards, Markets and Performance, SNIA, August 2013, archived from the original on February 2, 2014
* Interface card mount – US patent 20130294023, November 7, 2013, assigned to Raphael Gay
* MultiLink SAS presentations, press releases and roadmaps, SCSI Trade Association