Ping/Pong Buffer in ARINC429 Block transmitting Mode

In Arinc429 transmitting mode, there are 2 buffers:buffer0 and buffer1. The mechanics of the 2 buffers is called Ping/Pong. Followings are some tips from internet to explain what is ping/pong and why is ping/pong:

在USB傳輸裏面,因爲數據緩衝的關係,在某些協議應用的時候就需要採用乒乓機制來處理數據的快速,大量的傳輸.例如MASS STORAGE CLASS.

你的USB的硬件能處理乒乓操作是指你的USB硬件層其實有兩個數據緩衝區(A和B),當你ENABLE該機制的時候,你在操作USB數據緩衝區(假設爲A)的時候,USB的另一個緩衝區(假設爲B)自動地和你的HOST在進行數據傳輸. 當USB的緩衝區B和HOST交換數據完成時, USB就會自動切換到緩衝區A和HOST進行數據傳遞. 你的應用模塊再對USB進行數據寫的時候,你就是在填的USB的緩衝區B了.

這樣的話,其實就可以很容易地處理在兩個不同處理速度的設備之間進行數據的批量傳遞.不會發生不可預料的追尾(還沒有發送出去的數據被重新覆蓋)和無效數據傳遞(讀取指針超過寫入指針).

一種硬件中常用的面積換速度的手段假設數據輸入線速度爲T0,每幀長度爲K個BYTE,處理每幀需要的時間爲T1,若採用通常手段開闢一個1KBYTE的緩衝區,則輸出線速度爲T0+T1.

而乒乓操作則是建立一個2KBYTE的緩衝區,當接受第N+1個數據幀的同時處理第N幀,這樣輸出線速度爲max(T0,T1)<(T0+T1)

以上的結論建立在這麼個假設之上,那就是該處理器能並行的處理數據流,而硬件的基本特性就是並行處理,因此一般乒乓操作是對硬件而言。當然,對於數據速率遠小於指令週期的處理器來說,該操作也可認爲是以並行方式執行的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章