本文檔介紹了稱為“橋緩沖區釋放管理(BRM)”的Tsi620功能如何避免或限制擁塞情況下可能發生的基于優先級的饑餓。
Tsi620緩沖區釋放管理
在基于優先級的協議中,需要重新排序以避免死鎖情況。當緩沖區被無法向前處理的事務占用時,就會發生死鎖。重新排序通過允許較高優先級的事務在較低優先級的事務之前完成來幫助防止死鎖情況。
RapidIO和PCI都允許基于優先級對事務進行重新排序。使用PCI協議,優先級與事務類型相關聯:可以在讀取響應之前發送寫入,并且可以在讀取請求之前發送寫入和讀取響應。RapidIO使用數字優先級方案,最高優先級為3,最低優先級為0。較高優先級的數據包可以先于較低優先級的數據包發送。PCI事務映射到RapidIO優先級,如下所示:
PCI寫入– RapidIO優先級2
PCI讀取響應– RapidIO優先級1
PCI讀取請求– RapidIO優先級0
PCI / RapidIO優先級映射保留了避免死鎖所必需的PCI重新排序。
重新排序的副作用是,在擁塞情況下,較高優先級事務的低速率可能會餓死較低優先級的數據包。如圖1所示,當較高優先級的事務完成時,它們將釋放只能由其他較高優先級的事務占用的緩沖區。在最左側,緩沖區已完全滿,并且高優先級數據包正在傳輸到RapidIO。在中間,另一個高優先級數據包被傳送到RapidIO,而新的高優先級數據包則被接收到上一步清空的緩沖區中。在最右邊,再次僅發送和接收高優先級數據包。“乒乓”行為會導致優先級較低的數據包匱乏。
緩沖區管理–高和低優先級數據包
基本機制
Tsi620中的串行RapidIO端點(SREP)根據優先級分配緩沖區空間。水印是緩沖區填充級別,用于確定可將多少個緩沖區用于給定優先級及更高級別的數據包。圖2顯示了如何為不同的RapidIO數據包優先級和不同類型的PCI事務分配緩沖區。請注意,PCI事務具有三個優先級,而RapidIO數據包具有四個優先級。
I2R和R2I水印
Tsi620 BRM功能強制完成多個交易,然后再接受更多交易。這會造成暫時的無擁塞情況,從而防止了重新排序行為。BRM功能基于兩個緩沖區填充級別設置,稱為STOP和RESUME(請參見圖3)。
BRM恢復和停止級別與水印的關系
當緩沖區填充水平達到STOP點時,SREP停止將已完成事務釋放的緩沖區通知橋ISF /交換ISF(請參見圖4)。網橋ISF /交換機ISF停止轉發數據包,并且緩沖區填充級別最終下降到RESUME點。因為STOP設置在高優先級數據包的水印之上,而RESUME設置在低優先級數據包的水印之下,所以當緩沖區填充水平從STOP點下降到RESUME點時,所有優先級的數據包都可以向前轉發。
一旦到達RESUME點,就會將實際的緩沖區填充級別通知給橋ISF /交換機ISF,所有優先級的數據包都可以開始流入緩沖區。由于RESUME點位于低優先級數據包的水印之下,并且現在有許多緩沖區可用,因此所有優先級的數據包都可以流入緩沖區。結果,這種緩沖機制有助于防止基于優先級的饑餓。
緩沖區釋放管理操作
在極少數流量情況下,BRM機制可能會通過阻止完成未完成交易所需的更高優先級數據包的轉發進程而導致死鎖。為避免死鎖,BRM將最大時間設置為STOP狀態。一旦超時到期,就可以選擇兩種可能的行為:
在達到RESUME值之前,請勿使用BRM-這將禁用BRM,直到不再存在擁塞情況為止。當擁塞時間很短和/或出現死鎖的可能性很高時,這是首選的操作模式。這會導致長時間的基于優先級的饑餓,但是會避免由于BRM而導致長時間不轉發任何數據包的情況。
如果再次達到STOP級別,請重新接合BRM。這是當擁塞時間較長且死鎖的可能性較低時的首選操作模式。這樣就避免了基于優先級的饑餓,這是以較長的時間為代價的,即死鎖發生時不會轉發任何數據包。
編輯:hfy
-
RapidIO
+關注
關注
1文章
39瀏覽量
20825 -
PCI
+關注
關注
4文章
671瀏覽量
130417 -
數據包
+關注
關注
0文章
267瀏覽量
24443
發布評論請先 登錄
相關推薦
評論