大俠好,歡迎來到FPGA技術江湖,江湖偌大,相見即是緣分。大俠可以關注FPGA技術江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。
今天給大俠帶來PCI-Express transaction Layer specification(處理層協議),本次PCIE TLP 學習經驗分享分為三篇,今天帶來第三篇,也就是最后一篇,請求和應答處理機制(Request Handling Rules、Completion Handling)、virtual channel(vc)Mechanism虛擬通道機制(TC/VC映射、Flow Control)、Data Integrity數據完整性等內容,話不多說,上貨。
四、 請求和應答處理機制
處理機制就是對接收到的經Data Link Layer進行數據完整性驗證的Tlp進行處理。無效的包將被拋棄,保留字(reserved)將被忽略。以下是處理流程:
對所有的包分request handling和completion handling,按不同的規范處理。
1. Request Handling Rules
如果請求是一個不支持的請求包,并且需要響應,則Completion Status=UR,即不支持的請求。如果請求包是一個Message 包則按Message包處理規則處理,否則對這個request進行處理。如果請求違反器件編程定義則給出ca響應,即響應器件放棄該請求,否則做出正確應答。
2.Completion Handling
如果接收到一個completion包的Transaction ID和requester的Transaction ID不一致則這個應答包是非預期包。合法的應答包將按Compl.Status域處理并提取有效數據負荷。
五、virtual channel(vc)Mechanism虛擬通道機制
虛擬信道(virtual channel)在總線中提供用TC域來區分的虛擬信息通路,即某一傳輸通路,有不同的流程控制機制(Flow Control)。當某流程控制出現擁塞時,其他通路依然暢通。VC有自己的獨立流控制,是實現Qos的秘訣。VC通道是解決擁塞的基礎。
在Switch內部,VC通道機制如下:
1. TC/VC映射
每個TLP包并不包含具體的VC信息,VC是由TC映射得到的。每個器件的TC/VC映射是不同的,TC0/VC0是固定的。具體TC、VC映射如下:
一個或多個TC映射到一個VC,同一個TC不能映射到不同的VC上,連接雙方的映射機制一致。除了TC0外,其他的可以軟件設置。鏈路兩端的映射方案要一致,如圖是一種映射方案。
具體的虛擬通道是由VC ID決定和識別的。
2. Flow Control
每個虛擬通道有獨立的流程控制的緩沖空間。在收發雙方,流程控制信息是用數據鏈路包(DLLP)打包發送的,其中的“VC ID“就是用來載送虛擬通道的識別。總的來說,流程控制是由數據交易層(Transaction Layer)搭配了數據鏈路層(Data Link Layer)來處理的,只是,處理層通常是針對接收到的TLP打包,生成TC,再由TC映射到VC。流程控制信息是FCP(Flow Control Package),即DLLP打包的一種。流程控制的信用單位是Credit,也就是接收器的緩沖空間是4DW。信用單位:就是接收端緩沖空間大小的基本單位。
流程控制能分辨三種包:posted requests(p)、non-posted requests(Np)、completions(cpl)。還可以分辨三種包的包頭Header和數據Data,可以這樣說,每個虛擬通道(VC)對應的特定流程控制包含6種不同的流程控制信息:
1、PH=posted Request Header;
2、PD=posted request Data Payload;
3、NPH=non-posted request Header;
4、NPD=non-posted request Data Payload;
5、CPLH=completion Header;
6、CPLD=completion Data Payload。
各種包對應的流程控制如下表:
六、Data Integrity數據完整性
主要的數據完整性保證之一是Data Link Layer中的crc(lcrc)。為了確保數據端對端的可靠性在Transaction層的TLp Digest域還選擇性的做一ECRC校驗,ECRC的初值是FFFF FFFF,算法實現如下:
Transaction Layer specifications只是pcie總線規范的一層規范,主要處理數據包的傳送管理,此外還有Data Link Layer規范和physical Layer規范。
此次分享到此結束,后面有時間還會給各位大俠分享關于PCIE的相關其他內容,愿大俠持續關注,一切安好,告辭。
-
FPGA
+關注
關注
1630文章
21801瀏覽量
606355 -
總線
+關注
關注
10文章
2904瀏覽量
88442 -
TLP
+關注
關注
0文章
32瀏覽量
15683 -
數據完整性
+關注
關注
0文章
14瀏覽量
5118
原文標題:PCI-E TLP(處理層協議)學習經驗分享 III
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
在FPGA上設計PCI-e Gen2.0和PCI-e Gen3.0有什么不同
解決臺式機PCI-E 1X不夠難題 :樂擴PCI-E 1X轉2口PCI-E 1X擴展卡
PCI PCI-X PCI-E介紹 精選資料分享
PCI-e總線FPGA開發板資料說明
淺談顯卡PCI/AGP/PCI-E接口的區別
Intel的核顯真的占用了CPU的4根PCI-E通道嗎
![Intel的核顯真的占用了CPU的4根<b class='flag-5'>PCI-E</b>通道嗎](https://file.elecfans.com/web1/M00/AE/5E/o4YBAF3Yl_qAFQQOAAALrjIIEvY284.png)
pci-e插槽的規格有哪些 各個版本的pci-e的規范區別
![<b class='flag-5'>pci-e</b>插槽的規格有哪些 各個版本的<b class='flag-5'>pci-e</b>的規范區別](https://file1.elecfans.com/web2/M00/8F/76/wKgaomTNsZmAQ9_KAAATDJ1IR8c548.jpg)
PCI-E TLP學習筆記(1)
![<b class='flag-5'>PCI-E</b> <b class='flag-5'>TLP</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>(1)](https://file1.elecfans.com/web2/M00/0B/D5/wKgaomcqw3eABslaAAAX6fE_k44094.png)
PCI-E TLP學習筆記(2)
![<b class='flag-5'>PCI-E</b> <b class='flag-5'>TLP</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>(2)](https://file1.elecfans.com/web1/M00/F4/60/wKgZoWcqxBKAdXMnAAAVJa4BJAo351.png)
評論