NVMe高速传输之摆脱XDMA设计53: 选择测试环境软件平台
本文主要交流设计思路,在本博客已给出相关博文九十多篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。若有NVME或RDMA 产品及项目需求,请看B站视频后联系。
为方便测试激励控制和测试过程分析, 使用与 Vivado2019.1软件版本配套的SDK开发套件进行软件测试平台的搭建。 执行主要功能测试的软件程序与仿真验证测试步骤一致, 实际上板主要分析进行性能测试的软件程序设计。
(1) IOPS 测试
IOPS 为每秒输入/输出操作数, 对于大量随机数据请求的传输场景, 例如 4KB 随机读写, IOPS 是一项非常关键的指标。 4KB 随机读写 IOPS 测试程序执行流程如图1 所示。 在初始化结束后, 创建完成和提交队列, 然后执行 IOPS 测试程序。 首先配置 DMA 寄存器组, 配置 DMA 长度寄存器值为 8, 即传输数据量为 8*512B, 然后配置随机的 DMA 源地址和 DMA 目的地址, 最后根据测试 IOPS 的读或写配置 DMA类型寄存器。 与配置流程并行运行的还有一个计时程序, 计时器从程序运行开始进行计时, 计时为 1 秒时计时结束, 当计时未结束时, 在配置 DMA 类型后返回配置新的DMA 请求。 计时结束后, 读取 IOPS 寄存器, 得到 IOPS 性能测试结果。
图1 4KB 随机读写 IOPS 测试程序执行流程图
在执行 IOPS 测试程序前, 需要创建 I/O 完成和提交队列, 根据 Intel 发布的性能基准测试结果, 并发闪存组件的数量受到 NVMe 队列的数量和深度的影响, 从而影响到整体性能。 为了测试 NoP 逻辑加速引擎在不同队列数量和深度下的传输性能,这里依次创建不同深度、 数量的队列后执行 IOPS 测试。
B站已给出相关性能的视频,如想进一步了解,请搜索B站用户:专注与守望
链接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click