什麼是 SATA Express (SATA 3.2) https://www.sata-io.org/sata-express
SATA Express 規範
- SATA Express 為一種連接 電腦主機端 (透過 host bus adapters) 到存儲裝置 ( mass storage device) 的連接線匯流排 (SATA 定義也一樣).
- 電腦主機端 (透過 host bus adapters)的連接器同時支援 PCIe 或是 SATA 的連接埠.
SATA Express Host 端
- SATA Express host 連接器.
- 可接受 1 至 2 個 SATA 硬碟裝置或是 1 個 PCIe 硬碟裝置,速度可以達到 2 lanes (或 4 lanes) 的 PCIe (後面會解釋).
- 硬碟裝置告訴 host 它是 PCIe 或是 SATA 的裝置.
很好!! 看完我也不知道這是什麼鬼~ 看圖來說明會比較容易了解.
圖片出自於
https://www.sata-io.org/ sites/default/files/images/ NVMe_and_AHCI_as_SATA_Express_Interface_Options_Overview_final.pdf
從圖片可以看到
Host 指的就是 SATA 埠 (Legacy SATA) 或是 PCIE 的埠(SATA 3.2) ,裝置也可以同時是傳統的 Legacy SATA 硬碟裝置,或是新型的 PCIE (PCI-E) SSD 硬碟裝置,中間的連線都是透過 SATA Express 的連接器.
可能感覺會更混亂了~
這是一張更完整有關於 SATA Express 3.2 的方塊圖.
SATA Express 3.2 提供 3 種模式
- Legacy SATA (圖片最左邊)
相容於傳統的 SATA 硬碟裝置,驅動程式方面是透過 AHCI Driver,不過 Controller 是採用 SATA Express controller.
也就是說連接到 SATA 硬碟裝置跟傳統的 SATA 一樣不變 (可以沿用舊有的 SATA 硬碟裝置),唯一變的是 Host 採用成 SATA Express host 的連接器與控制器,所以我們傳統使用的 SATA 硬碟裝置 (速度上限為 600MB/s) 還是可以透過 SATA Express 3.2 連接到傳統 SATA 硬碟來使用. - SATA Express / AHCI (圖片中間)
使用的是 PCI Express SSD 的硬碟裝置,透過 AHCI 的驅動程式並使用 PCI Express lanes 為介面, 使用 AHCI 驅動程式的好處,是它相容於多數的作業系統但缺點是它並沒有針對 PCI Express SSD 做最佳化的效能調整.
AHCI 發展一經好一段時間,她主要的設計是架構在 CPU / Memory 子系統下的 host bus adapter (HBA) 主要可以用於較慢速的旋轉式磁性媒體(硬碟); 因此當使用 AHCI 為驅動程式時 SSD 硬碟裝置的運做會比較像是 DRAM.進階主機控制器介面(Advanced Host Controller Interface,縮寫:AHCI),可以讓 SATA 儲存裝置 啟用進階的 SATA 功能( 如 NCQ 及熱插拔).
- SATA Express / NVMe (圖片最右邊)
使用的是 PCI Express SSD 的硬碟裝置,透過 NVMe 的驅動程式並使用 PCI Express lanes 為介面,作為高性能和可擴展主機控制器接口設計,還針對了 PCI Express的固態硬盤的連接埠做了效能優化的處理.NVMe 的設計一開始就針對 低延遲和 PCI Express 固態硬盤的並行性,並滿足現代的 CPU,平台和應用的並行性.和 AHCI 相比 NVMe 它的優點 如使用較少的階段的數據傳輸,更深入的命令列 (command queues)和更高效中斷處理(interrupts processing).
關於 AHCI 與 NVMe 的比較可以參考 NVMe_and_AHCI_as_SATA_Express_Interface_Options_Overview_final.pdf
AHCI | NVMe | |
Maximum Queue Depth | 1 command queue 32 commands per Q |
64K queues 64K Commands per Q |
Un-cacheable register accesses (2K cycles each) | 6 per non-queued command 9 per queued command |
2 per command |
MSI-X and Interrupt Steering | Single interrupt; no steering | 2K MSI-X interrupts |
Parallelism & Multiple Threads | Requires synchronization lock to issue command | No locking |
Efficiency for 4KB Commands | Command parameters require two serialized host DRAM fetches |
Command parameters in one 64B fetch |
PCI-SIG 的 PCI Express 3.0 規格,新版每條 Lane 的單向頻寬增到 8Gbps.但因為編碼方式改變了,相較於 2.0 之前採用 8b/10b (每10個bit只有8個是有效資料)而 3.0 編碼方式為 128/130,所以資料傳輸頻寬以及原始傳輸率基本當都可以算成 8Gbps =1GB
SATA Express 支援 PCI-E Gen 3 x1 或 x2 lanes, 所以可以支援到 x1 8Gbps (1GB/sec) , x2 16Gbps (2GB/sec)所以目前 SATA Express PCIe Drive 速度上限為 2GB/s.
相較於 SATA Generation 3 的 6Gbit/s – (20% overhead – 每八個位元的資料串上用十位元來加以編碼) 4.8 Gbit/s = 600 MByte/s 是快很多了.
2 thoughts on “SATA Express (SATA 3.2)”