XDuser

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

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设计13::队列管理模块设计(上)

注:这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接采用PCIe设计,结合UVM验证加快设计速度。 队列管理模块采用队列的存储与控制分离的设计结构,如图1所示为队列管理模块的结构框图。 ...

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

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

NVMe IP高速传输却不依赖XDMA设计之11:NVMe初始化状态机设计

在完成PCIe配置初始化后,PCIe总线域的地址空间都分配完毕,可以执行传出存储读写TLP,系统初始化进入NVMe配置初始化。NVMe配置初始化主要完成NVMe设备BAR空间的NVMe寄存器配置。图1为NVMe配置初始化状态机状态转移图。各...

NVMe IP高速传输却不依赖XDMA设计之十:PCIe初始化状态机设计

PCIe配置初始化状态机实现PCIe设备枚举和配置空间初始化过程,在完成链路训练后,使用DFS(深度优先搜索)算法枚举PCIe总线上的设备,完成PCIe总线域的地址分配和设备的初始化。PCIe配置初始化是PCIe总线正常进行数据传输的前提,...

NVMe IP高速传输却不依赖XDMA设计之九:系统初始化

直接采用PCIe实现NVMe功能,它的系统初始化流程主要分为链路训练、PCIe 初始化和 NVMe 初始化, 分别实现 PCIe链路连接、 PCIe 设备枚举配置和 NVMe 设备配置功能。 其中链路训练由 PCIE 集成块实现, 初始化模...

RDMA over RoCE V2设计2:IP整体框图

设计IP需要考虑如下因素:1)基于 IBTA 1.5 协议规范,支持 RoCE v2 标准协议传输,同时支持 ARP协议和 ICMP 协议。2)基于 Xilinx CMAC 集成块进行开发并独立设计 UDP/IP 协议栈。一方面,CMAC ...

RDMA over 为什么要设计CE V2设计1:

一)设计目标:RDMA技术采用无感传输机制,消除传统网络传输中需要CPU介入下的多重数据复制与内核参与环节,实现直接跨主机内存访问的机制。其设计目标为优化分布式环境下的数据传输效率,降低CPU负载。RoCEv2基于标准网络的以太网、网络层和...

NVMe IP高速传输却不依赖XDMA设计之八

性能监测单元负责监测 NVMe over PCIe 逻辑加速引擎的运行状态和统计信息, 包括复位后运行时间信息、 NVMe 指令数量统计信息、 数据操作数量统计信息、 IOPS 性能统计信息、 指令延迟统计信息等。 这些信息存储在性能监测单...

NVMe IP高速传输却不依赖XDMA设计之七

DMA 控制单元负责控制 DMA 传输事务, 该单元承担了 DMA 事务到 NVMe 事务的转换任务, 使用户对数据传输事务的控制更加简单快捷。 DMA 控制功能由 DMA寄存器组实现。DMA 寄存器组包含 DMA 操作寄存器、 DMA 长...

NVMe IP高速传输却不依赖XDMA设计之六

队列控制单元负责控制 NVMe 队列的创建、 删除等管理功能, 通过队列控制单元能够根据工作场景调整在运行的 NVMe 队列数量, 从而直接影响数据传输性能。队列控制功能由队列控制寄存器和队列操作状态寄存器实现。队列控制寄存器用于提供队列操...

NVMe IP高速传输却不依赖XDMA设计之五

通过PCIe直接进行高速数据读写,首先需要实现对PCIe的初始化控制,该控制单元负责控制初始化进程和获取初始化状态。 对于初学者而言,初始化进程比较复杂,在初始化过程中可能由于 PCIe 链路或 NVMe 设备的不确定性导致初始化失败, 通...

NVMe IP高速传输却不依赖XDMA设计之四

系统控制模块负责实现 NVMe over PCI 逻辑加速引擎的控制功能, 其结构如图 1 所示。 用户通过系统控制模块实现对初始化功能、 队列管理功能、 DMA 功能等主要功能的控制, 同时逻辑加速引擎的工作状态也通过此模块反馈给用户。 ...

NVMe IP高速传输却不依赖XDMA设计之三

结合目前应用需求,以及前面基础分析,确定IP应具有如下特色:(1) 通用性前端数据采集系统基于 FPGA 开发。 一方面, 设备类型多, 使用的 FPGA型号各不相同, 需要实现的设计能够在多种类型 FPGA 上的工作; 另一方面, 为了降...