1、流控機制
在數據發送過程中,發送者向接收者發送數據,通常需要接收者通知發送者自身是否可以接收數據,當接收者即將無法接收數據時(如FIFO快滿時),發送者需要停止發送數據,這就是流控機制。
2、流控機制過程
初始化流程:
- 復位釋放后,初始化,module b 通過信號fc_update_signal 通知module a 自身fifo深度是多少。
fc_update_signal一個周期的高電平表示存在一個存儲深度。 - Tx_fc_ctrl 收到初始化信息后,得知module b存在有效fifo 緩存,通知ren_ctrl允許產生讀使能ren
- ren_ctrl產生讀使能ren
- ren輸出給tx_fc_ctrl,module b的有效fifo深度減一
- tx_fc_ctrl計算module b是否存在有效數據,有則允許ren_ctrl產生讀使能
- ren_ctrl產生讀使能ren,并通知到tx_fc_ctrl,module b的有效fifo深度減一
- tx_fc_ctrl計算module b是否存在有效數據,有則允許ren_ctrl產生讀使能,沒有則不允許ren_ctrl產生讀使能
a. Module b模塊fifo已存在有效數據,從fifo讀取一個數據,此時已釋放出一個fifo深度
b. Fc_update更新fc_update_signal,通知tx_fc_ctrl模塊module b已釋放一個fifo空間,tx_fc_ctrl記錄的有效深度加1
c. 此時tx_fc_ctrl允許ren_ctrl產生讀使能
3、優缺點比較
此種流控機制需要發送端和接收端配合管理有效緩存空間。相對比單一bit的flow ctrl信號來說,稍微復雜一些,但是有個顯著的優點,相對于簡單的fc流控,能夠有效減少module b中的Data fifo的深度。
如圖所示,data pipeline的深度是不確定的,可能是20~100個周期,而流控信號只有4個pipe,在考慮其他方面的延時有3拍,
不考慮性能的情況下:保證不溢出 ,module b的fifo深度最小只需要1:而單純的fc信號流控需要的深度為1+100+4+3。
滿足最大性能的情況下,保證下游不斷流:module b的fifo深度需要:本文流控機制:100+4+3+1 ; 而單純的fc信號流控需要的深度:2 * (100+4+3+1)
-
存儲器
+關注
關注
38文章
7523瀏覽量
164130 -
接收機
+關注
關注
8文章
1184瀏覽量
53564 -
Module
+關注
關注
0文章
68瀏覽量
12864 -
FIFO存儲
+關注
關注
0文章
103瀏覽量
6024
發布評論請先 登錄
相關推薦
評論