事務定義為請求者和完成者之間完成一次資訊傳送需要完成的一系列或多個資料包傳送的過程。
PCIE 事務可以分為4大類:存儲器事務、IO事務、配置事務、消息事務。這些事務可以分成非報告事務(non-posted transaction)和報告事務(posted transaction)。
非報告事務:存儲器讀、存儲器讀鎖定、IO讀、IO寫、配置讀、配置寫。
報告事務:存儲器寫、消息。
對于非報告事務,請求者發送一個 TLP 請求資料包給完成者。稍後,完成者傳回一個 TLP 完成資料包給請求者。非報告事務被作為分離事務處理。完成 TLP 的作用是向請求者确認完成者已經收到請求 TLP。非報告讀事務會将資料包含在完成 TLP 中,非報告寫事務會将資料包含在寫請求 TLP 中。
對于報告事務,請求者發送一個 TLP 請求資料包給完成者,但完成者不傳回 TLP 完成資料包給請求者。為了在完成事務中獲得最佳性能,以請求者不知道完成者是否成功接收請求為代價來優化報告事務。報告事務在請求 TLP 中可以不包含也可以包含資料。
TLP 資料包類型 | 縮寫名 |
存儲器讀請求 | Mrd |
存儲器讀請求--鎖定通路 | MRdLk |
存儲器寫請求 | MWr |
IO讀 | IORd |
IO寫 | IOWr |
配置讀(類型0或類型1) | CfgRd0、CfgRd1 |
配置寫(類型0或類型1) | CfgWr0、CfgWr1 |
沒有資料的消息請求 | Msg |
帶資料的消息請求 | MsgD |
沒有資料的完成 | Cpl |
帶資料的完成 | CplD |
沒有資料的完成--與鎖定的存儲器讀請求有關 | CplLk |
帶資料的完成--與鎖定的存儲器讀請求有關 | CplDLk |
非報告讀事務
請求者發送一個非報告讀請求 TLP 給它打算讀取其資料的完成者。當完成者接收該請求資料包并解碼其内容時,它從目标位址收集請求中指定量的資料。完成者建立一個或多個帶資料的完成 TLP (CplD),并将其會送給請求者。完成者可以在每個 CplD 資料包傳回最多 4KB的資料。
鎖定請求的非報告讀事務
請求者發送一個鎖定的存儲器讀請求 TLP (MRdLk)。請求者隻能是根聯合體,它代表 CPU 發送一個鎖定請求。不允許端點發起鎖定請求。
在請求者發送解除鎖定消息給完成者之前,從請求者到完成者的路徑繼續保持鎖定。解除鎖定指對消息通過的路徑及交換器的入端口/出端口解除鎖定。
非報告寫事務
報告存儲器寫事務
報告消息事務
對消息請求的支援可以去除 PCIe 系統對邊帶信号的需求。可以用于 PCI 風格的傳統中斷信号、電源管理協定、錯誤信令、解除 PCIe 結構中鎖定的路徑、插槽電源支援、熱插拔協定以及廠商定義的各種目的。