最新博文
0
推荐 588
阅读
推荐 588
阅读
NVMe高速传输之摆脱XDMA设计23:NVMe 子系统模型设计
NVMe 子系统模型是用来模拟 NVMe 子系统的功能仿真模型。 在当前的技术背景下, 单一的存储设备难以满足巨大的存储容量和速度需求, 因此很多存储系统都采用 PCIe 交换机来拓展链路, 或通过 RAID 技术来提升存储性能, 这些都使...
0
推荐 852
阅读
推荐 852
阅读
NVMe高速传输之摆脱XDMA设计22: UVM 验证包设计
UVM 验证包的主要功能是对 DUT 提供激励, 仿真验证对应的功能, 并对测试结果进行自动对比分析与统计。 验证包包含一个NoPHAE_env 验证环境, 验证环境下包含 axi4_lite_age...
0
推荐 846
阅读
推荐 846
阅读
NVMe高速传输之摆脱XDMA设计21: UVM验证平台
NVMe over PCIe采用 AXI4-Lite 接口、AXI4 接口和 PCIe3.0X4 接口,其中AXI4-Lite 和 AXI4 总线接口均可抽象为总线事务,而 PCIe 接口信号可被抽象为 PCIeTLP 事务,因此为了方便的...
0
推荐 996
阅读
推荐 996
阅读
NVMe高速传输之摆脱XDMA设计20: TLP读处理优化
对于存储器读请求TLP,使用Non-Posted方式传输,即在接收到读请求后,不仅要进行处理,还需要通过axis_cc总线返回CPLD,这一过程由读处理模块执行,读处理模块的结构如图1所示。图1 读处理模块的结构图当axis_cq总线接...
0
推荐 806
阅读
推荐 806
阅读
NVMe高速传输之摆脱XDMA设计19: PCIe的TLP读处理
对于存储器读请求TLP,使用Non-Posted方式传输,即在接收到读请求后,不仅要进行处理,还需要通过axis_cc总线返回CPLD,这一过程由读处理模块执行,读处理模块的结构如图1所示。图1 读处理模块的结构图当axis_cq总线接...
0
推荐 707
阅读
推荐 707
阅读
NVMe高速传输之摆脱XDMA设计18: PCIe应答模块设计
应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块也分别针对两种TLP设置处理引擎来提高并行性和处理速度。对于...
0
推荐 684
阅读
推荐 684
阅读
NVMe高速传输之摆脱XDMA设计17:PCIe请求模块设计(下)
应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块也分别针对两种TLP设置处理引擎来提高并行性和处理速度。对于...
0
推荐 703
阅读
推荐 703
阅读
NVMe高速传输之摆脱XDMA设计16:PCIe请求模块设计(上)
请求模块的具体任务是将系统的请求转换成为axis接口形式的TLP或配置管理接口信号。这些请求主要包含初始化请求模块的具体任务是将系统的请求转换成为axis接口形式的TLP或配置管理接口信号。这些请求主要包含初始化配置请求和门铃写请求。
0
推荐 800
阅读
推荐 800
阅读
NVMe高速传输之摆脱XDMA设计15::PRP控制模块设计
PRP控制模块负责实现指令相关的PRP列表的生成、存储与管理。NVMe的提交命令中,存在PRP1和PRP2两个字段,PPR2作为地址指针还是PRP列表指针是根据命令请求数据传输长度和PRP1的偏移量来确定的。当PRP2作为PRP列表指针时,...
0
推荐 731
阅读
推荐 731
阅读
NVMe高速传输之摆脱XDMA设计14::队列管理模块设计(下)
PRP控制模块负责实现指令相关的PRP列表的生成、存储与管理。NVMe的提交命令中,存在PRP1和PRP2两个字段,PPR2作为地址指针还是PRP列表指针是根据命令请求数据传输长度和PRP1的偏移量来确定的。当PRP2作为PRP列表指针时,...
0
推荐 635
阅读
推荐 635
阅读
NVMe高速传输之摆脱XDMA设计13::队列管理模块设计(上)
注:这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接采用PCIe设计,结合UVM验证加快设计速度。 队列管理模块采用队列的存储与控制分离的设计结构,如图1所示为队列管理模块的结构框图。 ...
0
推荐 837
阅读
推荐 837
阅读
NVMe高速传输之摆脱XDMA设计12:NVMe 控制模块设计
NVMe 控制模块负责实现用户请求事务与 NVMe 事务的转换、 NVMe 命令提交与完成机制、 PRP 寻址机制。 在 NoP 逻辑加速引擎中, 用户通过配置系统控制模块的相关寄存器来发送 DMA 或队列管理请求, NVMe 控...
0
推荐 1074
阅读
推荐 1074
阅读
NVMe IP高速传输却不依赖XDMA设计之11:NVMe初始化状态机设计
在完成PCIe配置初始化后,PCIe总线域的地址空间都分配完毕,可以执行传出存储读写TLP,系统初始化进入NVMe配置初始化。NVMe配置初始化主要完成NVMe设备BAR空间的NVMe寄存器配置。图1为NVMe配置初始化状态机状态转移图。各...
0
推荐 1092
阅读
推荐 1092
阅读
NVMe IP高速传输却不依赖XDMA设计之十:PCIe初始化状态机设计
PCIe配置初始化状态机实现PCIe设备枚举和配置空间初始化过程,在完成链路训练后,使用DFS(深度优先搜索)算法枚举PCIe总线上的设备,完成PCIe总线域的地址分配和设备的初始化。PCIe配置初始化是PCIe总线正常进行数据传输的前提,...
0
推荐 1081
阅读
推荐 1081
阅读
NVMe IP高速传输却不依赖XDMA设计之九:系统初始化
直接采用PCIe实现NVMe功能,它的系统初始化流程主要分为链路训练、PCIe 初始化和 NVMe 初始化, 分别实现 PCIe链路连接、 PCIe 设备枚举配置和 NVMe 设备配置功能。 其中链路训练由 PCIE 集成块实现, 初始化模...





