Когда контроллер NVME отправляет данные в FPGA.Иба не в порядке.у нас возникли проблемы с получением lba в правильном порядке с исходного диска nvme.
Я работаю с NVMe над проектом с использованием Samsung 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)» с битом «Последовательный запрос» [6] внутри dword 13 для каждой команды чтения / записи.Я подтвердил, что DSM поддерживается в нашем устройстве NVMe (Samsung 970 Pro), но похоже, что он не влияет на порядок передачи lba в команде чтения NVMe.
Пожалуйста, помогите мне уточнить, что такое «Последовательный»Параметр «Запросить» внутри каждой команды чтения NVMe, как описано в спецификации NVMe, «команда является частью последовательного чтения, включающего несколько команд чтения».Может ли он изменить порядок передачи lba в команде чтения NVMe?Как мы ожидаем (1) получить lba по порядку от команды чтения NVMe (с большим lba), возможно ли это?Что мы можем сделать для нашего ожидания?