NVMe高速传输之摆脱XDMA设计3:PCIe 应答模块设计

XDMA好用,但有时也不好用,它就像一个黑匣子,给出接口说明,对大部分人来说,是挺方便,但是要进一步理解NVMe高速传输,甚至RDMA高速传输,有必要搞明白PCIe如何工作,这也是基于PCIe开发NVMe的原因。希望我们给的思路能起到抛砖引玉的效果。

应答模块的具体任务是接收来自 PCIe 链路上的设备的 TLP 请求, 并响应请求。由于基于 PCIe 协议的 NVMe 数据传输只使用 PCIe 协议的存储器读请求 TLP 和存储器写请求 TLP, 应答模块分别针对两种 TLP 设置处理引擎来提高并行性和处理速度。
对于存储器写请求 TLP, 该类型的 TLP 使用 Posted 方式传输, 即不需要返回完成报文, 因此只需要接收并做处理, 这一过程由写处理模块来执行, 写处理模块的结构如图 1 所示.
在这里插入图片描述
图1 写处理模块的结构图
当 axis_cq 总线中出现数据流传输时, 应答模块首先对传输的 TLP 报头的类型字
段进行解析, 如果为存储器写请求则由写处理模块进一步解析。 写处理模块提取出
TLP 报头的地址字段、 长度字段等, 然后将数据字段写入数据缓存中。 提取出的地址
字段用于进行地址映射, 在 NVMe 协议中, 设备端的请求写分为两种, 分别是写完
成队列和写数据, 因此地址映射的定向对应为队列管理模块的完成条目处理单元和数
据传输 AXI 总线的写通道。 完成条目的字段长度为 128 比特, 因此无需进行数据缓
存, 跟随地址映射发送到队列管理模块。 AXI Master 驱动负责将解析的字段与缓存的
数据组成 AXI 写传输事务发送到 AXI 写通道, 实现数据的写传输。

想进一步了解相关视频,请搜索B站用户:专注与守望
链接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值