在pcie的拓撲結構中,最多支援256個bus, 每條bus最多支援32個device,每個device最多支援8個function,所以,由bus:device:function(bdf)構成了每個function的唯一的"身份證號". 如下圖,乙個簡單的pcie拓撲結構中bdf分布:
那麼,這麼多的function,host怎麼知道他們具有什麼本領?答案是,每個function都有乙個大小為4kb的configuration space。在系統上電的過程中,在列舉整個pci bus之後,就會將所有的bdf的configuration space讀到host記憶體中。在host記憶體中有乙個大小256mb的memory block, 專門用來存放所有的configuration space.
為什麼是256mb?我們計算一下:256(bus)*32(dev)*8(func)*4kb=64*1024*4kb=256mb.其中,host
PCIe掃盲 PCIe錯誤源詳解(一)
這篇文章來詳細地分析一下各種錯誤源的產生原理,由於內容較多,因此分為兩篇文章。第一篇介紹一下ecrc校檢錯誤和data poisoning等 第二篇文章介紹事務 transaction 錯誤 鏈路流量控制 link flow control 相關的錯誤 異常的tlp malformed tlp 以及...
PCIe掃盲 TLP Header詳解(一)
事務層包 tlp 的一般格式如下圖所示 前面的文章介紹過,tlp header為3dw或者4dw,data payload為1 1024dw,最後的tlp digest ecrc 是可選的,為1dw。tlp header在整個tlp的位置如下圖所示,需要注意的是,tlp header的格式和內容都會...
PCIe掃盲 TLP Header詳解(三)
completions completions的tlp header的格式如下圖所示 這裡來解釋一下completion status codes 000b sc successful completion 表示請求 request 被正確的處理 001b ur unsupported reques...