FPGA|CPLD|ASIC论坛
直播中

xianuser2012

12年用户 281经验值
擅长:可编程逻辑
私信 关注
[经验]

NVMe高速传输之摆脱XDMA设计21:PCIe的TLP读处理

对于存储器读请求TLP,使用Non-Posted方式传输,即在接收到读请求后,不仅要进行处理,还需要通过axis_cc总线返回CPLD,这一过程由读处理模块执行,读处理模块的结构如图1所示。
NVMe摆脱XDMA之22 TLP读处理.png

图1   读处理模块的结构图

当axis_cq总线接收到存储器读请求时,数据流被转发到读处理模块。读请求TLP只包含128比特的请求报头,而axis总线位宽也是128比特,因此在短时间内可能接收到多个读请求,为了应对这种情况,读处理模块采用了带有outstanding能力和事务并行处理的结构设计,能够有效提高读请求事务处理效率和数据传输吞吐量。

首先当读请求数据流到达读处理模块时,经过解析和地址映射的两级流水后,放入响应处理单元outstanding缓存中,响应处理单元从缓存中获取事务一一处理,将读取的数据打包成CPLD,并将CPLD放置到发送缓存中等待axis_cc总线的发送。根据地址的不同,读请求事务被分为三类,分别是读队列请求,读PRP请求和读数据请求,每种请求对应一个响应处理单元。



更多回帖

发帖
×
20
完善资料,
赚取积分