CHI l-credit的使用关注点
握手差异
CHI和AXI的一个很大不同,
就在于握手机制。
AXI协议中使用的是valid-ready握手的方式,
CHI协议中则设计了一套credit机制进行握手。
credit握手
credit由rx发出,tx接收。
tx每拥有一个credit,就可以向rx发送一笔数据,即一次flitv。
rx每收到一个flitv,就再发出一个credit给tx。
每个通道(REQ/SNP/RSP/DATA)都有独立的credit。
credit和valid-ready的一个最大区别,就在于:
valid-ready握手是必须握完一个事务才能握下一个,
credit握手则是,我可以一次性给你发很多个credit,你慢慢发事务。
给credit的含义就是,你可以发,而我必须接收,
所以rx内的buffer深度必须大于等于credit数量,
不然就会丢包。
接口流水
两个节点之间,假定路径上有4拍延迟,
那么需要4个credit,就可以保证流水。
如果flitv或者credit因为走线加拍,那么credit数量就需要对应增加。
当然,在4拍路径下,给6个credit,有2个credit的裕量,这肯定也是可以的,
不会有功能问题,但存在面积代价。
由于多了2个credit,RX的buffer或者FIFO就必须对应增加2深。
当数据位宽较大时,FIFO深度多了2深就算是比较明显的浪费了。
CHI l-credit的使用关注点
https://rongyel.github.io/posts/418ca596.html