I/O Submission Queue (SQ) / I/O Completion Queue (CQ)
NVM Express основан на парном механизме очередей отправки и завершения. Очереди создаются, управляются и контролируются набором команд администратора (Admin Command Set). Команды размещаются программным обеспечением хост-контроллера в очередь отправки. Завершения помещаются в связанную очередь завершения. Несколько очередей отправки могут использовать одну и ту же очередь завершения. Контроллер выбирает записи SQ по порядку из очереди передачи, однако затем он может выполнять эти команды в любом порядке.
Количество создаваемых очередей команд зависит от конфигурации системы и ожидаемой рабочей нагрузки. Например, в системе на основе четырехъядерного процессора может быть создана пара очередей на ядро. Это позволяет избежать блокировки и гарантировать, что структуры данных создаются в кеше соответствующего ядра процессора.
Пары SQ/CQ создаются в одном ядре процессора. Одному запросу завершения может соответствовать один запрос отправки (1:1 mapping, рис. 1), или несколько (n:1 mapping, Рис. 2)