在介紹事務層之前,首先簡單地了解一下PCIe總線的通信機制。假設某個設備要對另一個設備進行讀取數(shù)據(jù)的操作,首先這個設備(稱之為Requester)需要向另一個設備發(fā)送一個Request,然后另一個設備(稱之為Completer)通過Completion Packet返回數(shù)據(jù)或者錯誤信息。在PCIe Spec中,規(guī)定了四種類型的請求(Request):Memory、IO、Configuration和Messages。其中,前三種都是從PCI/PCI-X總線中繼承過來的,第四種Messages是PCIe新增加的類型。
詳細的信息如下表所示:
從表中我們可以發(fā)現(xiàn),只有Memory Write和Message是Posted類型的,其他的都是Non-Posted類型的。所謂Non-posted,就是Requester發(fā)送了一個包含Request的包之后,必須要得到一個包含Completion的包的應答,這次傳輸才算結束,否則會進行等待。所謂Posted,就是Requester的請求并不需要Completer通過發(fā)送包含Completion的包進行應答,當然也就不需要進行等待了。很顯然,Posted類型的操作對總線的利用率(效率)要遠高于Non-Posted型。
那么為什么要分為Non-Posted和Posted兩種類型呢?對于Memory Writes來說,對效率要求較高,因此采用了Posted的方式。但是這并不意味著Posted類型的操作不需要Completer進行應答,只是此時Completer采用了另一種應答機制——Ack/Nak的機制。
PCIe的TLP包共有一下幾種類型:
TLP傳輸?shù)氖疽鈭D如下圖所示:
TLP在整個PCIe包結構的位置如以下兩張圖所示:(第一張為發(fā)送端,第二張為接收端)
其中,TLP包的結構圖如下圖所示:
圖中的TLP Digest即ECRC(End-to-End CRC),是可選項。此外,TLP的長度(包括其中的Header、Data和ECRC)是以DW(雙字,即四個字節(jié))為單位的。
-
總線
+關注
關注
10文章
2999瀏覽量
90870 -
PCIe
+關注
關注
16文章
1403瀏覽量
86921
原文標題:【博文連載】PCIe掃盲——PCIe總線事務層入門(一)
文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
基于FPGA的PCIE總線擴展卡的設計


如何利用PCIe DMA總線實現(xiàn)一個基于FPGA的PCIe 8位數(shù)據(jù)采集卡?
采用Flow Control機制的PCIe總線

Flow Control機制可以顯著地提高總線的傳輸效率

PCIe掃盲—PCIe錯誤檢測機制的詳細資料概述
PCIe總線的熱插拔機制
PCIe 9110IM PCIe總線轉CAN設備手冊

PCIe熱插拔機制介紹

評論