当 NVME 控制器向 FPGA 发送数据时。lba 不正常。我们在从 nvme 源磁盘获取具有正确顺序的 lba 时遇到了麻烦。
我正在与 NVMe 合作使用三星 SSD 970 PRO 512GB 的项目。在我们的项目中,我们使用 FPGA 与 NVMe 设备进行通信,但我们的过程遇到了如下问题:
1. FPGA having FIFO buffer mapped with DMAP2P works as destination/from address for NVMe controller to read/write.
2. NVMe driver sends command to NVMe controller, requests a read command with transfer size 4096 lba (2MB).
3. When controller sends data into FPGA. lba is not in order. we got trouble about getting lba with correct order from nvme source disk. (1)
我调查了“数据集管理(DSM)”,每个读/写命令在 dword 13 内都有“顺序请求”位 [6]。我确认我们的 NVMe 设备(Samsung 970 Pro)支持 DSM,但看起来它对 NVMe 读取命令中的 lba 传输顺序没有任何影响。
请帮助我澄清每个 NVMe 读取命令中的“顺序请求”选项是什么,因为在 NVMe 规范中描述了“命令是包含多个读取命令的顺序读取的一部分”。是否能够在 NVMe 读取命令中更改 lba 传输顺序?正如我们所期望的(1)从 NVMe 读取命令(具有大的 lba)中按顺序接收 lba,这可能吗?我们能为我们的期望做些什么?