對相關NVMe IP視頻感興趣的,請到B站搜用戶名: 專注與守望
3)PCIe事務層
PCIe的事務層連接了PCIe設備核心與PCIe鏈路,這里主要基于PCIe事務層進行討論與分析。事務層采用TLP傳輸事務,完整的TLP由TLPPrefix、TLP頭、Payload和TLP Digest組成。TLP頭是TLP中最關鍵的部分,一般由三個或四個雙字的長度,其格式定義如表1所示。
表1 PCIeTLP報文頭格式
常用的PCIeTLP事務類型如表2所示。其中Non-Posted類型的事務請求需要 使用完成報文(CompletionPacket,Cpl)或帶數據的完成報文(CompletionPacketwith Data,CplD)類型的響應包返回請求狀態或數據,Posted類型的事務請求不需要使用 完成報文。 PCIe總線協議定義了基于地址的路由、基于ID的路由和隱式路由三種TLP路由 方式。其中,存儲器讀寫和I/O讀寫TLP采用基于地址的路由,該類型的報文可由 RC 或EP發出,根據TLP中的Address字段進行路由選徑。配置讀寫報文、Cpl和 CplD 完成報文使用基于ID的路由,配置讀寫報文只能由RC發出,而完成報文可由 任何設備發出,這些報文根據TransactionID進行路由選徑,TransactionID則由PCIe 總線號、設備號、功能號和Tag字段構成。消息報文使用隱式路由,一般由RC發出 EP 響應,該類型報文的路由直接由下游端口到上游端口,或為RC向EP發出的廣播。
表2 PCIeTLP事務類型
4)PCIe 配置空間
PCIe 設備具有和PCI設備相同的配置空間頭類型,此外使用PCIe拓展配置空間 管理PCIe總線。PCI配置空間頭分為Type0和Type1兩種類型,Type0類型配置空間 頭在PCIe總線中用于EP,Type1類型配置空間頭用于Switch中的虛擬PCI橋。 Type0 類型的配置空間頭結構如表3所示。其中主要的寄存器的作用如下:
(1)設備ID和供應商ID:由PCI-SIG分配,當供應商ID為16’hFFFF時表示 無效的設備;
(2)狀態寄存器:保存PCIe設備的狀態信息;
(3)命令寄存器:初始值為0,需要合理配置該寄存器才能訪問該設備的存儲 器或者I/O空間;
(4)頭類型:當值為0時表示設備使用Type0的配置空間,值為1時表示設備 使用Type1的配置空間;
(5)基地址寄存器(BaseAddressRegister,BAR):保存PCIe 設備使用的地址空間的基地址;
(6)拓展功能指針:指向拓展配置空間的偏移地址。
表3 PCIeType0類型配置空間頭
Type1類型的配置空間頭如表4所示。其中主要寄存器的作用如下:
(1)00h~14h的寄存器作用與Type0類型的相同;
(2)下級最大總線號、下一級總線號、上一級總線號:下級最大總線號為該設 備下游的PCIe子樹中最大的總線號,下一級總線號為直接連接在該設備下游端口的 總線號,上一級總線號為與該設備上游端口直接連接的總線號,三者共同確定了該設 備在PCIe樹中的位置;
(3)存儲地址大小、存儲基地址:兩者共同表示分配到該設備的存儲地址域;
(4)拓展功能指針:指向拓展配置空間的偏移地址。
表4 Type1類型的配置空間頭
審核編輯 黃宇
-
PCIe
+關注
關注
16文章
1310瀏覽量
84572 -
nvme
+關注
關注
0文章
241瀏覽量
23094
發布評論請先 登錄
評論