posted & non posted transaction
就其中posted 與non-posted transaction來說可以看PCI中的講解
PCI 總線規定了兩類數據傳送方式,分別是Posted 和Non-Posted 數據傳送方式。其中使用Posted 數據傳送方式的總線事務也被稱為Posted 總線事務;而使用Non-Posted 數據傳送方式的總線事務也被稱為Non-Posted 總線事務。

其中P osted 總線事務指PCI 主設備向PCI 目標設備進行數據傳遞時,當數據到達PCI 橋後,即由PCI 橋接管來自上游總線的總線事務,並將其轉發到下游總線。採用這種數據傳送方式,在數據還沒有到達最終的目的地之前,PCI 總線就可以結束當前總線事務,從而在一定程度上解決了PCI 總線的擁塞。

而Non-Posted 總線事務是指PCI 主設備向PCI 目標設備進行數據傳遞時,數據必須到達最終目的地之後,才能結束當前總線事務的一種數據傳遞方式。

顯然採用Posted 傳送方式,當這個Posted 總線事務通過某條PCI 總線後,就可以釋放PCI 總線的資源;而採用Non-Posted 傳送方式,PCI 總線在沒有結束當前總線事務時必須等待。這種等待將嚴重阻塞當前PCI 總線上的其他數據傳送,因此PCI 總線使用Delayed 總線事務處理Non-Posted 數據請求,使用Delayed 總線事務可以相對緩解PCI 總線的擁塞。Delayed 總線事務的詳細介紹見第1.3.5 節。

PCI 總線規定只有存儲器寫請求( 包括存儲器寫並無效請求) 可以採用Posted 總線事務,下文將Posted 存儲器寫請求簡稱為PMW(Posted Memory Write) ,而存儲器讀請求、I/O 讀寫請求、配置讀寫請求只能採用Non-Posted 總線事務。

下文以圖1 ‑1 的處理器系統中的PCI 設備11 向存儲器進行DMA 寫操作為例,說明Posted 傳送方式的實現過程。PCI 設備11 進行DMA 寫操作時使用存儲器寫總線事務,當PCI 設備11 獲得PCI 總線x1 的使用權後,將發送存儲器寫總線事務到PCI 總線x1 。當PCI 橋1 發現這個總線事務的地址不在該橋管理的地址範圍內將首先接收這個總線事務,並結束PCI 總線x1 的總線事務。

此時PCI 總線x1 使用的資源已被釋放,PCI 設備11 和PCI 設備12 可以使用PCI 總線x1 進行通信。PCI 橋1 獲得PCI 總線x0 的使用權後,將轉發這個存儲器寫總線事務到PCI 總線x0 ,之後HOST 主橋x 將接收這個存儲器寫總線事務,並最終將數據寫入主存儲器。

由以上過程可以發現,Posted 數據請求在通過PCI 總線之後,將逐級釋放總線資源,因此PCI 總線的利用率較高。而使用Non-Posted 方式進行數據傳送的處理過程與此不同,Non-Posted 數據請求在通過PCI 總線時,並不會及時釋放總線資源,從而在某種程度上影響PCI 總線的使用效率和傳送帶寬。

 

20141212223606750.jpg

20141212225725289.jpg

20141212225829108.jpg

20141212230806122.jpg

20141212231342053.jpg

20141212231350680.jpg

我怕她消失 所以搬過來

原網址 https://blog.csdn.net/lin200753/article/details/41901037

 

 

PMW: 這是一個posted write的動作。也就是說master 發出一筆 write data到slave。當送出這個動作後,master就不管是否真的會到slave。也就是說master在發出 write data後,就不負有任何的責任。
DRR:這是一個non-posed read的動作。也就是說master發出一筆 read data到slave。當送出這個動作後,master還是繼續等待slave的回覆。也就是說master在發出 read data後,還負對資料回來的責任。
DWR:這是一個non-posed write的動作。也就是說master發出一筆 write data到slave。當送出這個動作後,master還是繼續等待slave的回覆,確保資料是真的被寫到slave。也就是說master在發出 write data後,還負有對正確寫入的責任。
DRC: 這是一個回覆read的動作,也就是如果master有發出一筆 read data 到slave,那他就會等到slave回覆的DRC封包,得到它想要的資料及狀態。
DWC: 這是一個回覆 write 的動作,也就是如果master有發出一筆 write data 到slave,那他就會等到slave回覆的DWC封包,得到它想要的資料及狀態。
Posted: 指 master 送出去的命令後,即失去對它的責任。它有沒有正確到達目的地是別人的責任,不是 master的。
Non-posted:指 master 送出去的命令後,還負有對它的責任。它有沒有正確到達目的地是 master關心的事情。

arrow
arrow

    JL8051 發表在 痞客邦 留言(0) 人氣()