需要特別注意的是,PCIe的Spec中明確規(guī)定只有Root有權(quán)限發(fā)起配置請(qǐng)求(Originate Configuration Requests),也就是說(shuō)PCIe系統(tǒng)里面的其他設(shè)備是不允許去配置其他設(shè)備的配置空間的,即peer-to-peer的配置請(qǐng)求是不允許的。并且配置請(qǐng)求的路由(Routing)方式只能是采用BDF(Bus,Device,F(xiàn)unction)。
處理器一般不能夠直接發(fā)起配置讀寫請(qǐng)求,因?yàn)槠渲荒墚a(chǎn)生Memory Request和IO Request。這就意味著Root必須要將處理器的相關(guān)請(qǐng)求轉(zhuǎn)換為配置讀寫請(qǐng)求。針對(duì)傳統(tǒng)的PCI設(shè)備(Legacy PCI),采用的是IO間接尋址訪問(wèn)(IO-indirect Accesses);針對(duì)PCIe設(shè)備,采用的是Memory-Mapped Accesses。
前面的文章還介紹過(guò),Root和Switch的每一個(gè)端口中都包含一個(gè)P2P橋,并且知道橋的配置空間頭(Configuration Space Header)是Type1型的。如下圖所示:
每個(gè)Type1型的Header中都包含最后一級(jí)總線號(hào)(Subordinate Bus Number)、下一級(jí)總線號(hào)(Secondary Bus Number)和上一級(jí)總線號(hào)(Primary Bus Number)等信息。當(dāng)配置請(qǐng)求進(jìn)行BDF路由的時(shí)候,正是依靠這些信息來(lái)確定要找的設(shè)備的。一個(gè)簡(jiǎn)單地例子如下圖所示:
注:上面的例子是整個(gè)PCIe總線系統(tǒng)中只有一個(gè)Root的情況,實(shí)際上PCIe Spec還允許總線系統(tǒng)中存在多個(gè)Root(即Multi-Root)。關(guān)于Multi-Root,這里就不詳細(xì)地介紹了,有興趣地可以自行閱讀PCIe的Spec。
-
PCIe
+關(guān)注
關(guān)注
15文章
1245瀏覽量
82874 -
root
+關(guān)注
關(guān)注
1文章
86瀏覽量
21403
原文標(biāo)題:【博文連載】PCIe掃盲——配置空間的讀寫機(jī)制
文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論