和很多的串行傳輸協議一樣,一個完整的PCIe體系結構包括應用層、事務層(Transaction Layer)、數據鏈路層(Data Link Layer)和物理層(Physical Layer)。其中,應用層并不是PCIe Spec所規定的內容,完全由用戶根據自己的需求進行設計,另外三層都是PCIe Spec明確規范的,并要求設計者嚴格遵循的。
一個簡化的PCIe總線體系結構如上圖所示,其中Device Core and interface to Transaction Layer就是我們常說的應用層或者軟件層。這一層決定了PCIe設備的類型和基礎功能,可以由硬件(如FPGA)或者軟硬件協同實現。如果該設備為Endpoint,則其最多可擁有8項功能(Function),且每項功能都有一個對應的配置空間(Configuration Space)。如果該設備為Switch,則應用層需要實現包路由(Packet Routing)等相關邏輯。如果該設備為Root,則應用層需要實現虛擬的PCIe總線0(Virtual PCIe Bus 0),并代表整個PCIe總線系統與CPU通信。
事務層(Transaction Layer):接收端的事務層負責事務層包(Transaction Layer Packet,TLP)的解碼與校檢,發送端的事務層負責TLP的創建。此外,事務層還有QoS(Quality of Service)和流量控制(Flow Control)以及Transaction Ordering等功能。
數據鏈路層(Data Link Layer):數據鏈路層負責數據鏈路層包(Data Link Layer Packet,DLLP)的創建,解碼和校檢。同時,本層還實現了Ack/Nak的應答機制。
物理層(Physical Layer):物理層負責Ordered-Set Packet的創建于解碼。同時負責發送與接收所有類型的包(TLPs、DLLPs和Ordered-Sets)。當前在發送之前,還需要對包進行一些列的處理,如Byte Striping、Scramble(擾碼)和Encoder(8b/10b for Gen1&Gen2, 128b/130b for Gen3& Gen4)。對應的,在接收端就需要進行相反的處理。此外,物理層還實現了鏈路訓練(Link Training)和鏈路初始化(Link Initialization)的功能,這一般是通過鏈路訓練狀態機(Link Training and Status State Machine,LTSSM)來完成的。
需要注意的是,在PCIe體系結構中,事務層,數據鏈路層和物理層存在于每一個端口(Port)中,也就是說Switch中必然存在一個以上的這樣的結構(包括事務層,數據鏈路層和物理層的)。一個簡化的模型如下圖所示:
關于事務層,數據鏈路層和物理層的詳細的功能圖標如下圖所示:
-
總線
+關注
關注
10文章
2730瀏覽量
87355 -
PCIe
+關注
關注
13文章
1102瀏覽量
81203 -
數據鏈路層
+關注
關注
0文章
51瀏覽量
11950
原文標題:【博文連載】PCIe掃盲——PCIe總線體系結構入門
文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論