Обзоры
Технология сортировки команд NCQ

Технология сортировки команд NCQ


Несмотря на значительный рост производительности жестких дисков, они по-прежнему остаются самым медленным компонентом в системе, ответственным за задержки в выполнении программ. Безусловно, это хорошо известно и выпускающим винчестеры компаниям, исследовательские подразделения которых предпринимают отчаянные попытки улучшить сложившуюся ситуацию.

Экстенсивный путь развития HDD, предполагающий увеличение плотности записи данных и повышение частоты вращения шпинделя, ведет к значительному удорожанию продукции или же не дает ожидаемого прироста быстродействия. Поэтому разработчикам приходится изыскивать новые пути решения проблемы, одним из которых является внедрение технологии сортировки очереди команд Native Command Queuing (NCQ), в последнее время ставшей довольно популярной.

Как работает NCQ

При обращении к жесткому диску значительная часть времени уходит на поиск необходимых дорожки и сектора для считывания/записи данных. С помощью технологии NCQ очередь поступивших запросов динамически перестраивается в буфере контроллера таким образом, чтобы позиционирование головок осуществлялось максимально быстро. Эта функция приобретает наибольшее значение, когда речь идет о многозадачной среде, в которой несколько приложений независимо обращаются к участкам жесткого диска (процесс не приостанавливается до окончания текущей операции ввода/вывода), физически расположенных довольно далеко друг от друга. Упорядочивание запросов позволяет уменьшить количество перемещений головок для считывания/записи запрашиваемой информации, тем самым сокращая суммарное время выполнения этой операции.

В упрощенном варианте алгоритм NCQ можно представить как схему работы лифта, где так называемая транспортная задача решается не в порядке поступления запросов от пассажиров, а по ходу спуска/подъема кабины. К тому же очередь динамически перестраивается в зависимости от требований входящих людей.

Технология сортировки команд NCQ
Без NCQ(слева); С NCQ (справа)

Для наглядности приведем рисунок, иллюстрирующий работу винчестера с технологией NCQ и без нее. Здесь жесткому диску нужно получить данные, находящиеся в секторах 1, 2, 3 и 4. Использование NCQ способствует существенному упрощению траектории движения головки и уменьшению количества оборотов шпинделя, необходимых для завершения всей операции, по сравнению с последовательным выполнением этой же команды. Применение данной технологии позволяет также несколько снизить механическую нагрузку на блок головок чтения/записи, тем самым теоретически уменьшая его износ и увеличивая срок службы.

Неудивительно, что разработчики довольно давно занимаются проблемой оптимизации очереди команд. Более десяти лет аналогичная технология, Tagged Command Queuing (TCQ), успешно использовалась в SCSI-дисках, которыми оснащались серверные системы. В 1997 г. были предприняты попытки интегрировать подобную технологию в HDD с Parallel ATA, устанавливаемые в настольные ПК, однако из-за особенностей протокола и слабой реализации многозадачности массовых ОС того времени, эффективность такого решения не оправдывала затрат. Да и в случае ее неполной поддержки оборудованием могли возникать дополнительные «паузы» в работе контроллера. Ситуация существенно улучшилась после создания интерфейса Serial ATA (SATA). Внедрение NCQ не потребовало значительного изменения базового протокола SATA, к тому же появилась возможность идентификации поддержки устройством очереди команд (для SATA она составляет 32 запроса). Это позволило контроллеру без каких-либо проблем одновременно взаимодействовать с дисками, имеющими NCQ и нет.

Необходимое и достаточное

Технология NCQ была объявлена дополнительной функцией в SATA 1.0a, а в SATA II предполагалась как обязательная составляющая. Однако, к сожалению, в новой спецификации она осталась в качестве рекомендуемого пункта. Для ее работы необходимо выполнение следующих условий: поддержка NCQ жестким диском и контроллером SATA (интегрированным или внешним), а также наличие драйвера для ОС. Если с программной частью у пользователей, имеющих доступ в Интернет, проблем обычно не возникает, то с аппаратными возможностями все не так просто.

Поддержкой NCQ обладают контроллеры, интегрированные в южные мосты чипсетов Intel 9xx (ICH6R/M и ICH7R/M). В то же время, согласно информации с сайта компании Intel, базовые версии ICH6 и ICH7 и более ранние не имеют этой функции. Также обеспечивается работа данной технологии в серии чипсетов NVIDIA nForce4, а платы с наборами логики от VIA получают поддержку NCQ в случае применения южного моста VT8251. SIS включила NCQ в свой южный мост SIS966, а чипсеты с «югами» от ULi обзаведутся NCQ после установки M1575. Потому, если вы хотите иметь в своей системе технологию сортировки команд, при покупке новой материнской платы следует учитывать и этот момент. В случае использования внешних контроллеров SATA нужно внимательно изучить спецификацию.

Подавляющее большинство жестких дисков из новых линеек работает с NCQ. Однако перед приобретением HDD не лишним будет посетить сайты производителей, где обычно указываются такие подробности. Убедиться в том, что диск поддерживает технологию NCQ, можно и с помощью утилиты HD Tune (см. на диске).

Как винчестеры «становятся в очередь»

Для включения NCQ в BIOS платы необходимо выставить режим контроллера AHCI (Advanced Host Controller Interface) и во время инсталляции операционной системы установить (по нажатии F6) соответствующие драйверы (в нашем случае это Intel Matrix Storage Manager 5.5.0.1035), предварительно записав их на дискету.

После инсталляции ОС мы решили убедиться в справедливости суждения о том, что привычные операции последовательного чтения/записи/копирования из-за малой глубины очереди команд не получают заметного прироста производительности. Подтверждение ищите на соответствующей диаграмме.

Для усложнения задачи мы одновременно запускали два процесса, активно нагружающих винчестер. При этом было решено не синтезировать интенсивную работу с разнообразными базами данных в многопользовательской среде, а создать вполне реальные ситуации, с которыми может столкнуться владелец ПК. Пользователи LAN, а также те, кто выходит в Интернет через домашнюю сеть, наверняка знают, что периодически при очередной закачке каких-либо файлов нагрузка на винчестер становится чрезмерной, и дальнейшая работа с системой затрудняется. В этом случае приходится идти на компромисс: ограничивать скорость копирования или ожидать ее завер-шения, теряя собственное время.

Мы попытались разобраться, сможет ли исправить ситуацию технология NCQ. Для этого на жестком диске Maxtor MaXLine III 7V250F0 были созданы три раздела по 20 GB каждый (FAT32), которые физически располагались в разных областях HDD. На один из них записывались тестовые наборы, включающие крупные файлы (объем 4,9 GB, 9 фильмов AVI), мелкие (330 MB, всего 65 293 штуки) и среднего размера (3 GB, 747 MP3-композиций). После чего данные поочередно копировались во второй, свободный раздел, при этом одновременно ставилась следующая задача – копирование в третий раздел тестируемого диска образа DVD с другого винчестера (системного). Как видим, в таком случае применение NCQ действительно имеет практическую ценность для пользователя настольного компьютера. Ее активация приводит к уменьшению срока выполнения обоих заданий, что связано с хорошей работой алгоритма упорядочения команд и эффективным решением транспортной задачи для получения оптимального маршрута перемещения головок.

Кроме тестов с копированием, был проведен замер времени дефрагментирования раздела. В случае включения NCQ данный показатель уменьшается просто феноменально. Это как раз та ситуация, когда польза от NCQ максимальна.

Включать или не включать?

Да, технология действительно работает, однако стоит ли утруждаться, доставая с антресоли флоппик, чтобы считать с него при установке операционной системы необходимые драйверы и включить таким образом NCQ? Это скорее зависит от специфики использования ПК. Результаты тестов показали, что при повседневной работе сортировка очереди запросов не дает никакого преимущества. Более того, в ряде случаев производительность жесткого диска может даже незначительно снижаться. Линейные операции копирования не требуют сортировки, в то время как NCQ работает независимо от этого, затрудняя функционирование контроллера.

Технология сортировки команд NCQ
Технология сортировки команд NCQ
Технология сортировки команд NCQ

Если же, к примеру, активно используется локальная сеть, перекачиваются большие объемы информации или же частенько приходится копировать/перемещать различные файлы, при этом параллельно запуская другие программы, то NCQ на самом деле поможет ускорить работу. Правда, рассчитывать на действительно ошеломляющий результат стоит лишь при дефрагментации данных. Поставив данную процедуру в планировщик задач для ежедневного выполнения, можно и вправду сэкономить много времени и забыть о том, как мешает спать шум системного блока.

Практическая ценность технологии сортировки команд, вероятно, возрастет с повсеместным внедрением двухъядерных процессоров. Применение таких CPU зачастую несколько меняет модель использования компьютера, позволяя владельцу ПК безбоязненно работать одновременно с несколькими ресурсоемкими приложениями. При этом в подавляющем большинстве случаев в подобных системах по-прежнему будет один жесткий диск, что даст возможность технологии NCQ в условиях повышенной нагрузки на HDD в полной мере реализовать свое предназначение.

Конфигурация тестового стенда
ПроцессорIntel Pentium 4 630 (3,0 GHz)Compass, www.compass.ua
Материнская платаASUS P5LD2 (Intel 945P+ICH7R)MTI, www.mti.ua
Память1 GB (2×512 MB) A-Data Vitesta DDR2-667MTI, www.mti.ua
ВидеокартаPoint of View GeForce 7800 GT 256 MB«Навигатор», www.navigator.ua
Жесткий дискMaxtor MaxLine III 7V250F0 (250 GB, SATA II)MTI, www.mti.ua
Samsung SP2504C (250 GB, SATA II)Представительство Samsung, www.samsung.ua
ОСWindows XP Professional SP2
ДрайверыIntel Matrix Storage Manager 5.5.0.1035

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: