[vSAN]SSD PCIe接口

PCIe 是 SSD 一項重要和主流的接口技術,所以我們有必要對 PCIe 有深入的了解。

PCIe 從第一代到最近 2022 年第六代的規格問世,速度越來越快。相比於 SAS/SATA,PCIe 資料傳輸的「高速公路」更多,最多可以有 32 個 Lane,而 SAS/SATA 只能有一個 Lane。所以我們可以說,PCIe 的速度就是 Lane 的數量 x 單條 Lane 的速度。

PCIe 拓樸結構

PCIe 採用的是樹形拓樸結構,如下圖所示:

Root Complex 是樹的根,服務於 CPU。Root Complex 能存取 PCIe 設備,也能存取記憶體。

所以具體來說,Root Complex 的 spec 是什麼呢?其內部結構很複雜,PCIe Spec 並沒有規定 Root Complex 應該具備什麼功能或不應該具備什麼功能。我們可以把 Root Complex 想像成一台筆記型電腦,外部的 PCIe 設備就像 USB 插槽。如果插槽不夠用,我們需要擴充更多設備,就需要一個 Switch,這就像是一個 USB Hub。

PCIe 分層結構

PCIe 作為一個資料通訊接口,某種意義上與跨主機的網路接口類似,都需要分層處理各種複雜的問題。網路有 TCP/IP 五層協議,而 PCIe 則定義了三層:Physical Layer、Data Link Layer 和 Transaction Layer,如下圖所示:

和網路通信一樣,PCIe 也是以 Packet 的形式傳輸,每一層都有固定的格式。

Physical Layer

負責處理 Packet 的物理傳輸,包含如何分配到各個 Lane 傳輸以及匯總。

Data Link Layer

主要負責 Data 的檢錯和糾錯,以及電源管理等功能。

Transaction Layer

主要負責創建 Packet、流量控制、QOS 和事務排序等工作。

總結

  • PCIe 是 SSD 的主流接口技術,速度隨著代數提升而增加。
  • PCIe 採用樹形拓樸結構,Root Complex 是其核心。
  • PCIe 分為三層結構,分別處理物理傳輸、資料連結和事務處理。