一 常見接口速度 二事務處理層協議理解 1 事物層空間說明 2 配置空間概述 21 配置空間寄存器說明 22 PCI總線配置概述 3 BAR空間概述 31 BAR空間與DMA空間映射關系例子 4 事物處理層概述 41 存儲器讀寫請求TLP包頭格式 42 完成包報文頭格式 33 配置讀寫請求報文頭格式 44 消息請求報文頭格式

<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMiBpZD0="二事務處理層協議理解">(二)事務處理層協議理解

Capabilities Pointer : PCIe設備必須支持此寄存器,存放一些與PCI設備相關的擴展配置信息。 Interrupt Pin :PCI通過了4個中斷引腳INTA#,INTB#,INTC#,INTD# Base Address Register0~5 : 保存PCI設備使用的地址空間的基地址,該基地址保存的是該設備在PCI總線域中的地址。 Command:PCI設備的命令寄存器,在初始化時,值為0,此時該PCI設備只能夠接受配置請求總線事物外,無法接受任何存儲器或者I/O請求。系統軟件需要合理設置該寄存器之後,才能訪問該設備的存儲器或I/O空間。(寄存器具體功能查看《PCI+EXPRESS體系結構導讀》p49) Status :絕大多數是只讀位,保存PCI設備的狀態。

TLP(Transaction Layer Sepcification) 有三部分組成,幀頭、數據、摘要(或者稱 ECRC)。 TLP 頭標長 3 或者 4 個 DW,格式和內容隨事物類型變化;數據端為 TLP 幀頭定義下的數據段,如果該 TLP 不攜帶數據,那該段為空。 Digest段( Optional)是基於頭標、數據字段計算出來的 CRC,成為 ECRC,一般 Digest 段由 IP 核填充。所以, PCIe 的處理在用戶層表現為處理 TLP 中頭標和數據段。


Fmt與Type:規定事物類型、頭標長度和是否有數據載荷。


Posted與Non-Posted包
Non-posted :即請求需要返回completion的響應包; Posted:即不需要completion返回響應包。例如上面的存儲器寫入請求包和Message包都隸屬於posted包。** Length : 1~1024DW,當值為**0:表示1024DW
DW BE:

Requester ID : 包含“生成這個TLP報文”的PCIe設備的總線號(Bus Number)、設備號(Device Number)、功能號(Function Number)
Tag:Requester ID、Tag合起來組成Transaction ID,在同一時間段內,PCIe設備發出的每一個Non-Posted數據請求TLP,其Transaction ID必須唯一。也就是Tag必須唯一。

* Byte0~3 與存儲器、配置請求報文對應字段含義一致。
* Completer ID:該字段存放“發送完成報文”的PCIe設備的ID號。
* Byte Count 記錄源設備還需要從目標設備中獲得多少字節的數據就能完成全部數據傳遞。
* Lower Address:接收端必須使用存儲器讀寫完成TLP的Low Address 字段,識別一個TLP中包含數據的起始地址。



PCIe總線規定了一下幾類消息報文:
INTx Interrupt Signaling INTx中斷信息包 Power Management 電源管理機能。 Error Signaling錯誤信息包 Locked Transaction Support 鎖住交易的支持 Slot Power Limit Support插槽電源限制的支持 Vendor-Defined Messages制造商自行定義信息INTx 中斷消息報文
