I/O Submission Queue (SQ) / I/O Completion Queue (CQ)

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)

Пары «отправка — завершение» (Submission Queue — Completion Queue). Одному запросу отправки соответствует один запрос завершения. (1:1 mapping).
Рис. 2. Пары «отправка — завершение» (Submission Queue — Completion Queue). В ядре Core B несколько запросов отправки соотносятся с одним запросом завершения. (n:1 mapping).
Exit mobile version