XDuser

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

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 上的工作; 另一方面, 为了降...

NVMe 现状扫盲

SSD优势与机械硬盘(Hard Disk Driver, HDD)相比,基于Flash的SSD具有更快的数据随机访问速度、更快的传输速率和更低的功耗优势,已经被广泛应用于各种计算领域和存储系统。SSD最初遵循为HDD设计的现有主机接口协议...

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

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

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

选用XDMA做NVMe IP的关键传输模块,可以加速IP的设计,但是XDMA对于开发者来说,还是不方便,原因是它就象一个黑匣子,调试也非一番周折,尤其是后面PCIe4.0升级。因此决定直接采用PCIe设计,虽然要费一番周折,但是目前看,还是...

NVMe开发基础之PCIe下

PCIe的事务层连接了PCIe设备核心与PCIe链路,这里主要基于PCIe事务层进行详细讨论与分析。 PCIe 设备具有和PCI设备相同的配置空间头类型,此外使用PCIe拓展配置空间 管理PCIe总线。PCI配置空间头分为Type0和Type1两种类型,Type0类型配置空间 头在PCIe总线中用于EP,Type1类型配置空间头用于Switch中的虚拟PCI桥。

NVMe IP开发基础之PCIe上

PCIe 体系结构常见的PCIe总线系统结构主要包含三种设备,分别是根复合体(RootComplex,RC)、Switch 和终端设备(EndPoint,EP)。

NVMe协议之AXI总线

NVMe需要用AXI总线进行高速传输。这里,AXI总线是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)协议中的重要组成部分,主要面向高性能、高带宽、低延时的片内互连需求。AXI...

NVMe协议分析

NVM Express(NVMe)是一种高性能、可扩展的接口协议,用于通过PCI express(PCIe)总线,实现主机软件与NVM设备之间的通信。目前,由于NVMe SSD相比于SATA SSD具有更高的吞吐量、更快的访问速度和...

NVMe控制器之接口转换模块设计

接口转换模块负责完成AXI4接口与控制器内部的自定义接口之间的转换工作。 由于AXI4接口协议的实现会占用大量的逻辑资源,为了节约资源,控制器内部的接口信号均采用逻辑简单的自定义接

NVMe控制器之完成信息解析设计

完成信息解析模块用于解析NVMe命令执行完成后返回的信息。该模块首先提取完成信息中的Status Field字段和ID号。通过检查Status Field字段,判断NVMe命令是否成功执行。若命令成功执行,则释放对应ID号的SQ中的缓存空间...

NVMe控制器之队列管理

队列管理模块是整个NVMe Host控制器的核心模块,该模块实现了提交队列与完成队列的管理,多队列请求的仲裁判决等功能。队列管理模块中含有数据选择单元、SQ、CQ、和仲裁器等模块。其中Admin SQ与IO SQ的内部结构一致,包含状态机、...