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