设计上,经常听到 payload、主频、端口多少Gbps 、总线位宽 ,额外开销等 术语。
1. 额外开销
逻辑上的有效数据,比如tcp 网络帧 ,需要smac + dmac +ip +tcp+crc 、 这些是除payload的额外开销;
2. 主频
系统处理逻辑使用的时钟,不同模块可以使用不同主频时钟(与总线位宽有关系);
3. 总线位宽
就是payload 数据的位宽。比如pcie 是 512 或者 1024 bit的位宽; 有些设计会存在fregment,pd (pkt 的desc),fd()、sf(start of frg),ef (end of frg)这些信息;
4. 端口xxxGbps
可以举个计算主频的例子:
通常为了满足端口速率, 需要关注小包场景和某些拐点。 比如bus_wdth 是512 bits (64B),此时发送的数据payload为520 bits(65B),就需要消耗2 cycle的时钟。端口速率就下降一半;
设 系统总线位宽为N bits,最小payload 为 P Bytes,系统开销为 x Bytes ,端口速率为 M Gbps。
则clk_frq 需要满足以下公式:
( (clk_frq / (roundup((P*8)/N,0 )) * (P+X)*8 ) / 1024 >= M
解释: 先计算payload需要几拍传输,就会对主频打几折,然后在使用折损后的主频 x (payload +开销)*8 / 1024