XDuser

专注于NVMe IP, NVMe包括RDMA,NVMe Host ,NVMe OF。期待与你相约。

NVMe高速传输之摆脱XDMA设计29:TLP 请求处理流程

本文主要交流设计思路,在本博客已给出相关博文九十多篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。若有NVME或RDMA 产品及项目需求,请看B站视频后联系。

NVMe高速传输之摆脱XDMA设计28:TLP 事务处理程序的执行流程计

前面提到最小桥设备模型的每个端口的输入端对接一个 TLP事务处理程序, 该程序负责将接收到的 TLP 事务进行解析和路由转发。 TLP 事务处理程序的执行流程如图 1 所示。图1 TLP 事务处理程序的执行流程图当对应任务接口的事务缓存中存...

NVMe高速传输之摆脱XDMA设计27:桥设备模型设计

桥设备模型模拟虚拟 PCI 桥设备的配置空间和路由功能。 桥设备是拓展 PCIe 链路的关键设备, 在 NVMe 子系统模型中, 桥设备模型一方面负责模拟 PCIE 集成块的配置空间, 另一方面用于构造 PCIe Switch 模型。 最小...

NVMe高速传输之摆脱XDMA设计25:驱动器设计

桥设备模型模拟虚拟 PCI 桥设备的配置空间和路由功能。 桥设备是拓展 PCIe 链路的关键设备, 在 NVMe 子系统模型中, 桥设备模型一方面负责模拟 PCIE 集成块的配置空间, 另一方面用于构造 PCIe Switch 模型。 最小...

NVMe高速传输之摆脱XDMA设计24:驱动器设计

驱动器负责 TLP 事务与接口信号的转换, 驱动器的程序结构如图 1 所示。 在本项目中使用的接口为 PCIE 集成块的接口, 分别是 cfg_mgmt 接口、axis_rq 接口、axis_rc接口、 axis_cq 接口、 axis_c...

NVMe高速传输之摆脱XDMA设计23:NVMe 子系统模型设计

NVMe 子系统模型是用来模拟 NVMe 子系统的功能仿真模型。 在当前的技术背景下, 单一的存储设备难以满足巨大的存储容量和速度需求, 因此很多存储系统都采用 PCIe 交换机来拓展链路, 或通过 RAID 技术来提升存储性能, 这些都使...

NVMe高速传输之摆脱XDMA设计22: UVM 验证包设计

UVM 验证包的主要功能是对 DUT 提供激励, 仿真验证对应的功能, 并对测试结果进行自动对比分析与统计。 验证包包含一个NoPHAE_env 验证环境, 验证环境下包含 axi4_lite_age...

NVMe高速传输之摆脱XDMA设计20: TLP读处理优化

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

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

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

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

应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块也分别针对两种TLP设置处理引擎来提高并行性和处理速度。对于...

NVMe高速传输之摆脱XDMA设计17:PCIe请求模块设计(下)

应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块也分别针对两种TLP设置处理引擎来提高并行性和处理速度。对于...

NVMe高速传输之摆脱XDMA设计16:PCIe请求模块设计(上)

请求模块的具体任务是将系统的请求转换成为axis接口形式的TLP或配置管理接口信号。这些请求主要包含初始化请求模块的具体任务是将系统的请求转换成为axis接口形式的TLP或配置管理接口信号。这些请求主要包含初始化配置请求和门铃写请求。

NVMe高速传输之摆脱XDMA设计15::PRP控制模块设计

PRP控制模块负责实现指令相关的PRP列表的生成、存储与管理。NVMe的提交命令中,存在PRP1和PRP2两个字段,PPR2作为地址指针还是PRP列表指针是根据命令请求数据传输长度和PRP1的偏移量来确定的。当PRP2作为PRP列表指针时,...

NVMe高速传输之摆脱XDMA设计14::队列管理模块设计(下)

PRP控制模块负责实现指令相关的PRP列表的生成、存储与管理。NVMe的提交命令中,存在PRP1和PRP2两个字段,PPR2作为地址指针还是PRP列表指针是根据命令请求数据传输长度和PRP1的偏移量来确定的。当PRP2作为PRP列表指针时,...

NVMe高速传输之摆脱XDMA设计12:NVMe 控制模块设计

NVMe 控制模块负责实现用户请求事务与 NVMe 事务的转换、 NVMe 命令提交与完成机制、 PRP 寻址机制。 在 NoP 逻辑加速引擎中, 用户通过配置系统控制模块的相关寄存器来发送 DMA 或队列管理请求, NVMe 控...