PCIe掃盲 Base Limit暫存器詳解

2021-09-24 21:12:34 字數 1412 閱讀 2130

base和limit暫存器在type1 header中的位置如下圖所示:

base和limit暫存器分別確定了其所有分支下裝置(the device that live beneath this bridge)的位址的起始和結束位址。根據請求型別的不同,分別對應不同的limit&base組合:

·        prefetchable memory space(p-mmio)

·        non- prefetchable memory space(np-mmio)

·        io space(io)

一旦該橋分支下面的任意裝置的bar發生改變,該橋的base&limit暫存器也需要做出對應的改變。

下面以乙個簡單的例子,來分析一下:

如上圖所示,連線到switch的portb上的pcie endpoint分別配置了np-mmio、p-mmio和io空間。下面來簡單地分析一下portb的header中的base & limit 暫存器。

需要注意的是,endpoint的需要的np-mmio的大小明明只有4kb,portb的header卻給其1mb的空間(最小1mb),也就是說剩餘的空間都將會被浪費掉,並且其他的endpoint都將無法使用這一空間。

注:io空間可分配的最小值為4kb,最大值則取決於作業系統和bios。

unused base and limit registers

很多情況下,我們並不需要所有的位址空間型別,比如所在某乙個endpoint中沒有使用io space。此時,其對應的橋的header會把base的位址設定為大於limit的位址,也就是把位址範圍設定為無效。

乙個完整的例子如下圖所示:

PCIe掃盲 PCIe錯誤源詳解(一)

這篇文章來詳細地分析一下各種錯誤源的產生原理,由於內容較多,因此分為兩篇文章。第一篇介紹一下ecrc校檢錯誤和data poisoning等 第二篇文章介紹事務 transaction 錯誤 鏈路流量控制 link flow control 相關的錯誤 異常的tlp malformed tlp 以及...

PCIe掃盲 PCIe匯流排體系結構入門

和很多的序列傳輸協議一樣,乙個完整的pcie體系結構包括應用層 事務層 transaction layer 資料鏈路層 data link layer 和物理層 physical layer 其中,應用層並不是pcie spec所規定的內容,完全由使用者根據自己的需求進行設計,另外三層都是pcie ...

PCIe掃盲 PCIe匯流排事務層入門(一)

在介紹事務層之前,首先簡單地了解一下pcie匯流排的通訊機制。假設某個裝置要對另乙個裝置進行讀取資料的操作,首先這個裝置 稱之為requester 需要向另乙個裝置傳送乙個request,然後另乙個裝置 稱之為completer 通過completion packet返回資料或者錯誤資訊。在pcie...