PCIE思考:簡單路由

NoNounknow發表於2024-05-09

上電:

主機裝置上電,BIOS透過掃描下游裝置的BAR,為其註冊響應的空間,當需要對這些空間進行操作的時候,就會轉換成TLP包的形式進行訪問,當然直接和PCIE裝置互動的還是RC;

其中BAR的低位(具體情況具體分析)作為定址其的地址;

簡單DMA讀步驟(PCIE裝置發起讀):

1.下游裝置發起請求;

2.CPU把資料寫到指定位置,併傳送TLP通知RC讓PCIE裝置讀取;

3.透過路由PCIE接到這部分通知,發起MRD給RC,RC收取MRD把指定位置的資料打包成CPLD;

4.PCIE裝置收到路由後的CPLD;

TLP包

TLP包的組幀格式複雜,主要參考:hapter 5 TLP Element //TLP 元素

但簡而簡之,TLP包是可劃分為諸多型別的,其中又分為兩大類:報告和非報告:2.2.2 事務層(Transaction Layer)

報告和非報告標誌了操作需不需要返回完成包這個事件;

路由:

Programmed I/O Transaction

TLP包是怎麼從傳送到接收的,需要參考路由部分內容;Chapter 4 Address Space & Transaction Routing//地址空間與事務路由

也可以參考:http://www.ssdfans.com/?p=8216

不同的TLP包有不同的路由方式,其中:

DMA Transaction

相關文章