电子说
在数据发送过程中,发送者向接收者发送数据,通常需要接收者通知发送者自身是否可以接收数据,当接收者即将无法接收数据时(如FIFO快满时),发送者需要停止发送数据,这就是流控机制。
初始化流程:
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产生读使能
此种流控机制需要发送端和接收端配合管理有效缓存空间。相对比单一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)
全部0条评论
快来发表一下你的评论吧 !