Оптимизация очереди команд в жестких дисках (NCQ)

Жесткие диски с поддержкой NCQ (Native Command Queuing) используют специальный буфер, внутри которого команды, стоящие в очереди, могут динамически перестраиваться в соответствии с положением магнитной головки и текущей загрузкой для увеличения общей производительности. Рост производительности относительно TCQ обеспечивается за счет применения механизма возвращения статуса, агрегации (объединения) прерываний, а также благодаря использованию "First Party DMA". Технология NCQ реализована в виде дополнения к стандарту "Serial ATA" 1.0 и является неотъемлемой частью стандарта SATA-2. Введение поддержки NCQ не потребовало никаких изменений в базовом протоколе SATA. При работе с NCQ используется структура FIS (Frame Information Structure), примитивы, являющиеся стандартными для спецификации SATA, и две новые команды ("Read FPDMA Queued" и "Write FPDMA Queued"). Для использования этих команд со стандартными портами SATA необходимо выполнение трех требований:

  • Поддержка жестким диском NCQ.
  • Для обеспечения операций "First Party DMA" и оперативного завершения работы с каждой командой контроллер материнской платы должен поддерживать установки "DMA Setup FIS" и "Set Device Bits FIS".
  • Драйвер системы должен определять наличие поддержки NCQ и использовать команды "FPDMA Queued".