Оптимизация очереди команд в жестких дисках (NCQ)
Жесткие диски с поддержкой NCQ (Native Command Queuing) используют специальный буфер, внутри которого команды, стоящие в очереди, могут динамически перестраиваться в соответствии с положением магнитной головки и текущей загрузкой для увеличения общей производительности. Рост производительности относительно TCQ обеспечивается за счет применения race-free механизма возвращения статуса, агрегации (объединения) прерываний, а также благодаря использованию 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.