NVMe高速传输之摆脱XDMA设计19: PCIe的TLP读处理
对于存储器读请求TLP,使用Non-Posted方式传输,即在接收到读请求后,不仅要进行处理,还需要通过axis_cc总线返回CPLD,这一过程由读处理模块执行,读处理模块的结构如图1所示。图1 读处理模块的结构图当axis_cq总线接...
发表于 8/5/2025 5:35:08 PM
阅读(822)
NVMe高速传输之摆脱XDMA设计18: PCIe应答模块设计
应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块也分别针对两种TLP设置处理引擎来提高并行性和处理速度。对于...
发表于 8/4/2025 5:04:37 PM
阅读(726)
NVMe高速传输之摆脱XDMA设计17:PCIe请求模块设计(下)
应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块也分别针对两种TLP设置处理引擎来提高并行性和处理速度。对于...
发表于 8/4/2025 5:01:43 PM
阅读(704)
NVMe高速传输之摆脱XDMA设计15::PRP控制模块设计
PRP控制模块负责实现指令相关的PRP列表的生成、存储与管理。NVMe的提交命令中,存在PRP1和PRP2两个字段,PPR2作为地址指针还是PRP列表指针是根据命令请求数据传输长度和PRP1的偏移量来确定的。当PRP2作为PRP列表指针时,...
发表于 8/3/2025 9:21:07 PM
阅读(827)
NVMe高速传输之摆脱XDMA设计14::队列管理模块设计(下)
PRP控制模块负责实现指令相关的PRP列表的生成、存储与管理。NVMe的提交命令中,存在PRP1和PRP2两个字段,PPR2作为地址指针还是PRP列表指针是根据命令请求数据传输长度和PRP1的偏移量来确定的。当PRP2作为PRP列表指针时,...
发表于 8/3/2025 9:18:59 PM
阅读(754)
NVMe高速传输之摆脱XDMA设计13::队列管理模块设计(上)
注:这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接采用PCIe设计,结合UVM验证加快设计速度。 队列管理模块采用队列的存储与控制分离的设计结构,如图1所示为队列管理模块的结构框图。 ...
发表于 8/3/2025 8:57:56 PM
阅读(650)
NVMe高速传输之摆脱XDMA设计12:NVMe 控制模块设计
NVMe 控制模块负责实现用户请求事务与 NVMe 事务的转换、 NVMe 命令提交与完成机制、 PRP 寻址机制。 在 NoP 逻辑加速引擎中, 用户通过配置系统控制模块的相关寄存器来发送 DMA 或队列管理请求, NVMe 控...
发表于 7/30/2025 12:07:01 PM
阅读(863)
NVMe IP高速传输却不依赖XDMA设计之11:NVMe初始化状态机设计
在完成PCIe配置初始化后,PCIe总线域的地址空间都分配完毕,可以执行传出存储读写TLP,系统初始化进入NVMe配置初始化。NVMe配置初始化主要完成NVMe设备BAR空间的NVMe寄存器配置。图1为NVMe配置初始化状态机状态转移图。各...
发表于 7/30/2025 12:01:01 PM
阅读(1105)
NVMe IP高速传输却不依赖XDMA设计之十:PCIe初始化状态机设计
PCIe配置初始化状态机实现PCIe设备枚举和配置空间初始化过程,在完成链路训练后,使用DFS(深度优先搜索)算法枚举PCIe总线上的设备,完成PCIe总线域的地址分配和设备的初始化。PCIe配置初始化是PCIe总线正常进行数据传输的前提,...
发表于 7/27/2025 5:37:58 PM
阅读(1120)
NVMe IP高速传输却不依赖XDMA设计之八
性能监测单元负责监测 NVMe over PCIe 逻辑加速引擎的运行状态和统计信息, 包括复位后运行时间信息、 NVMe 指令数量统计信息、 数据操作数量统计信息、 IOPS 性能统计信息、 指令延迟统计信息等。 这些信息存储在性能监测单...
发表于 7/2/2025 6:02:04 PM
阅读(889)
NVMe IP高速传输却不依赖XDMA设计之七
DMA 控制单元负责控制 DMA 传输事务, 该单元承担了 DMA 事务到 NVMe 事务的转换任务, 使用户对数据传输事务的控制更加简单快捷。 DMA 控制功能由 DMA寄存器组实现。DMA 寄存器组包含 DMA 操作寄存器、 DMA 长...
发表于 7/2/2025 6:00:02 PM
阅读(929)
NVMe IP高速传输却不依赖XDMA设计之五
通过PCIe直接进行高速数据读写,首先需要实现对PCIe的初始化控制,该控制单元负责控制初始化进程和获取初始化状态。 对于初学者而言,初始化进程比较复杂,在初始化过程中可能由于 PCIe 链路或 NVMe 设备的不确定性导致初始化失败, 通...
发表于 7/1/2025 11:08:24 AM
阅读(944)
NVMe IP高速传输却不依赖XDMA设计之四
系统控制模块负责实现 NVMe over PCI 逻辑加速引擎的控制功能, 其结构如图 1 所示。 用户通过系统控制模块实现对初始化功能、 队列管理功能、 DMA 功能等主要功能的控制, 同时逻辑加速引擎的工作状态也通过此模块反馈给用户。 ...
发表于 6/29/2025 5:36:59 PM
阅读(1088)
NVMe IP高速传输却不依赖XDMA设计之三
结合目前应用需求,以及前面基础分析,确定IP应具有如下特色:(1) 通用性前端数据采集系统基于 FPGA 开发。 一方面, 设备类型多, 使用的 FPGA型号各不相同, 需要实现的设计能够在多种类型 FPGA 上的工作; 另一方面, 为了降...
发表于 6/29/2025 5:33:38 PM
阅读(1067)
NVMe IP高速传输却不依赖XDMA设计之一
选用XDMA做NVMe IP的关键传输模块,可以加速IP的设计,但是XDMA对于开发者来说,还是不方便,原因是它就象一个黑匣子,调试也非一番周折,尤其是后面PCIe4.0升级。因此决定直接采用PCIe设计,虽然要费一番周折,但是目前看,还是...
发表于 5/24/2025 5:22:36 PM
阅读(1206)

