Может ли очередь команд заметно ускорить приводы 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 об/мин).
Работая на 10 000 об/мин, привод Western Digital Raptor по-прежнему остаётся самой быстрой моделью SATA.
NCQ против не-NCQ на Seagate Barracuda 7200.7
К нам поступили две модели Seagate Barracuda 7200.7. В отличие от рекламных лозунгов, реальное тестирование модели показало, что привод не способен состязаться с жёсткими дисками Western Digital Raptor – даже с очередью команд. Причина заключается в относительно медленной скорости вращения дисков у Seagate Barracuda 7200.7. Впрочем, винчестеры Seagate всё же заслуживают похвалы за очень низкий уровень шума.
Если вы желаете сравнить результаты производительности WD740 Raptor и Seagate Barracuda 7200.7, то мы рекомендуем ознакомиться со следующей статьёй Умные жёсткие диски: Seagate Barracuda 7200.7 и Western Digital WD740 Raptor.
Тестовая система: 925X и ICH6
Пока на рынке присутствует немного контроллеров, которые поддерживают очередь команд. Наш выбор пал на Promise FastTrak TX4200, который поддерживает оба режима очереди. Кроме того, мы использовали традиционную периферию – чипсет Intel 925X с новым южным мостом ICH6, который также поддерживает очередь команд. В качестве материнской платы мы взяли Asus P5AD2.
Тестовая конфигурация
Процессор | |
Socket 775 | Intel Pentium 4 520, 2,8 ГГц Кэш 1 Мбайт, FSB800 |
Системные компоненты | |
DDR2 SDRAM | 2x 512 Мбайт PC5400 Corsair CM2X512-5400C4PRO |
Материнская плата | Asus P5AD2 Premium Чипсет Intel 925X |
Графическая карта | ATi X600 XT, 128 Мбайт, PCI Express |
Системный жёсткий диск | Western Digital WD800JB 80 Гбайт, 7200 об/мин, кэш 8 Мбайт |
Жёсткие диски, набор I | Seagate Barracuda 7200.7 ST3160827AS 160 Гбайт, 7200 об/мин, кэш 8 Мбайт, поддержка NCQ Seagate Barracuda 7200.7 ST3160023AS |
Жёсткие диски, набор II | Western Digital WD360 Raptor 36 Гбайт, 10 000 об/мин, кэш 8 Мбайт Western Digital WD740 Raptor |
Программное обеспечение | |
Чипсет Intel | Intel Chipset Installation Utility 6.0.1.1002 |
DirectX | 9.0c |
ОС | Windows XP Professional Build 2600 Service Pack 1 |
Тесты и настройки | |
Производительность передачи данных | c’t h2benchw Ver. 3.6 |
Диаграмма передачи данных | Winbench 99 2.0 Disk Inspection Test |
Производительность ввода/вывода | IOMeter 2003.05.10 Fileserver Benchmark Pattern Webserver Benchmark Pattern Database Benchmark Pattern Workstation Benchmark Pattern Throughput Benchmark Pattern |
Производительность приложений | Winbench 99 2.0 Disk Winmarks Disk Inspection |
IO Meter 2003
ZD Winbench 99 2.0
c’t h2benchw Ver. 3.6
Заключение
Реклама Seagate обещает, что привод Barracuda 7200.7 с NCQ будет демонстрировать существенный прирост производительности. К тому же, этот жёсткий диск должен работать так же быстро, как и приводы на 10 000 об/мин – к примеру, Western Digital Raptor. Однако амбиции компании не выполняются по времени доступа, скорости передачи данных и производительности ввода/вывода.
В то же время, можно отметить, что очередь команд всё же обеспечивает улучшения для тестовых приложений типа Winbench 99 2.0, которые симулируют доступ обычных бизнес и high-end приложений. В данном случае привод Seagate лишь немного уступает WD360.
Впрочем, в любом случае, никакой современный привод SATA не может угнаться за WD740. У последнего слишком велика скорость передачи данных и слишком малы задержки. Благодаря поддержке TCQ, старшая модель Raptor побеждает WD360 в тестах IOMeter.
В общем, мы признаём, что очередь команд обеспечивает преимущества по сравнению с приводами, которые не оснащены этой технологией. В то же время, загрузка процессора при использовании очереди команд тоже оказывается чуть более высокой. Впрочем, учитывая производительность современных процессоров, это вряд ли можно считать критичным.