|
Может ли очередь команд заметно ускорить приводы SATA?
Если верить основным законам физики, то способов увеличения производительности жёстких дисков совсем немного. К примеру, сегодня уже практически достигнут скоростной предел привода головки, который влияет на время доступа и производительность ввода/вывода. Кроме того, скорость вращения дисков и скорость чтения не может увеличиваться бесконечно. В то же время, очередь команд позволяет приводу анализировать команды и выполнять их в наиболее эффективном порядке.
Очередь команд хорошо проявляет себя и в многопоточном окружении. Дело в том, что потоки выполняются параллельно, поэтому в одно и то же время к приводу могут поступать команды чтения данных из совершенно разных областей.
Так что внедрение очереди команд действительно помогает решить проблему увеличения участков случайного доступа в многопоточном окружении.
Очередь команд уже достаточно долго используется на рынке SCSI, а сегодня ею обзавёлся и интерфейс SATA.
Тегированная или "родная" очередь команд
Очередь команд представляет собой последовательность входящих команд, которые анализируются и выстраиваются в оптимальном для выполнения порядке. Почти каждый доступ в определённую область пластины требует перемещения головки. Если уменьшить эти перемещения простым перестроением команд, то можно значительно сэкономить на задержках. На экономию времени влияют два фактора: время поиска и задержка вращения. Первый связан с задержкой, которая требуется на перемещение несущей головки в определённую позицию. Второй фактор связан с ожиданием появления нужного сектора дорожки под головкой.
Кстати, сегодня существует несколько технологий очереди команд. Пока что "родная" очередь команд (Native Command Queuing, NCQ) являлась только уделом SATA, в то время как тегированная очередь команд (Tagged Command Queuing, TCQ) используется в интерфейсе SCSI с начала 1990-х годов. TCQ также была интегрирована в стандарт ATA 4 для UltraATA. Но из-за незначительных преимуществ для настольных компьютеров эта технология никогда не использовалась. Принцип работы TCQ заключается в изменении порядка следования команд на основе адреса LBA (Logical Block Addressing).
Когда в SCSI используется технология TCQ, то некоторые команды маркируются так называемым тэгом. Жёсткий диск обрабатывает команды по-разному, в зависимости от тэга.
- Упорядоченно (Ordered).
Эти команды исполняются в том же порядке, в каком они поступают. - В начале очереди (Head of queue).
Эти команды выполняются сразу же после текущей команды. - Простой (Simple).
В данном случае жёсткий диск определяет последовательность команд в очереди. Это действительно имеет смысл, поскольку жёсткий диск лучше всех знает свои параметры (цилиндры/головки/секторы).
"Родная" очередь команд (NCQ) работает как "простой" режим TCQ, однако другие два варианта недоступны.
Очередь команд упорядочивает все входящие команды. Длину очереди называют глубиной. Максимальная длина NCQ составляет 32 команды на источник. Теоретически, TCQ может работать с числом тэгов до 216, но подобное встречается не часто. В реальных условиях длина очереди редко превышает 64 команды.
Наконец, NCQ обеспечивает дополнительную возможность по сравнению с TCQ. Она называется "Out of Order Data" (данные вне очереди) и предусматривает доставку только данных требуемого приложения, что ещё больше снижает время поиска.
Что же лучше?
Чтобы прояснить отличия между TCQ и NCQ, мы протестировали технологию на четырёх различных приводах: два из них - это Seagate Barracuda 7200.7 на 160 Гбайт, один из которых поддерживает NCQ на 32 записи, а второй лишён этой возможности. Кроме того, мы добавили в тестирование самые быстрые приводы Serial ATA: Western Digital Raptor на 36 Гбайт и более скоростную модель на 74 Гбайт с поддержкой TCQ. К сожалению, напрямую сравнивать TCQ и не-TCQ невозможно из-за разной скорости вращения приводов (7200 об/мин против 10 000 об/мин).
NCQ против не-NCQ на Seagate Barracuda 7200.7
К нам поступили две модели Seagate Barracuda 7200.7. В отличие от рекламных лозунгов, реальное тестирование модели показало, что привод не способен состязаться с жёсткими дисками Western Digital Raptor - даже с очередью команд. Причина заключается в относительно медленной скорости вращения дисков у Seagate Barracuda 7200.7. Впрочем, винчестеры Seagate всё же заслуживают похвалы за очень низкий уровень шума.
Если вы желаете сравнить результаты производительности WD740 Raptor и Seagate Barracuda 7200.7, то мы рекомендуем ознакомиться со следующей статьёй