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