基于FPGA的NVMe over PCIe逻辑加速引擎之PCIe加速模块设计(中)

PCIe 应答模块设计

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值