Когда накопители c интерфейсом Serial ATA медленно, но верно вытесняли устройства с привычным Parallel ATA, аргументов в пользу нового стандарта было два: во-первых, удобство подключения, во-вторых, перспективы в будущем получить более высокую скорость работы. Проведенное нами в то время тестирование (cм. Андрианов С., Что же выбрать: Serial или Parallel ATA? //
Мир ПК. 2004. №4. с. 51) подтвердило: производительность дисков с обоими интерфейсами примерно одинакова. Вполне логично было предположить, что увеличение производительности произойдет с появлением интерфейса SATA 2. Окончательный стандарт этого интерфейса пока еще не принят (c текущим состоянием дел можно ознакомиться на сайте консорциума разработчиков
www.serialata.org), но накопителей и контроллеров, поддерживающих какой-либо из вариантов спецификации, на рынке уже достаточно. А значит, пришло время внимательно присмотреться к ее достоинствам и недостаткам. Технологических нововведений, способных отразиться на производительности, по сути дела, два — увеличение пропускной способности интерфейса до 300 Мбайт/c и метод сортировки команд NCQ (Native Command Queuing), который ранее существовал как дополнение к стандарту SATA 1.0.
C увеличением пропускной способности все более или менее понятно — пока никакого существенного эффекта от него не будет, так как скорости чтения и записи на диск еще не достигли и прежнего максимума (150 Мбайт/c). Впрочем, некоторое повышение производительности все же возможно при условии большого объема кэш-памяти накопителя и эффективного алгоритма ее использования. А вот с сортировкой команд, пожалуй, стоит разобраться более подробно.
Общая идея технологии NCQ заключается в оптимизации перемещений считывающей головки и соответственно уменьшении времени ожидания считывания. Следует отметить, что сходная технология TCQ (Tagged Command Queuing) применяется в серверных накопителях уже достаточно давно. В алгоритме TCQ запросам к накопителю присваиваются определенные «ярлыки», обеспечивающие один из трех возможных приоритетов в обработке: выполнять запросы строго в порядке поступления (Ordered), обработать запрос сразу после выполнения текущего (Head of queue) и обработать в наиболее оптимальный для накопителя момент времени (Simple). Реализация алгоритма TCQ позволяла создавать очереди на обработку длиной до 216 запросов и таким образом оптимизировать траекторию считывающих головок. По сравнению с TCQ алгоритм обработки NCQ, с одной стороны, упрощен (максимальная длина очереди — 32 запроса), но, с другой, в него добавлена возможность частичной обработки запроса (Out of order data), при которой накопитель может передать часть данных из одного запроса, потом часть данных из следующего, а потом, при удобном случае (т.е. при подходящем расположении считывающих головок), вернуться к обработке недовыполненных запросов, что по идее также должно уменьшить время ожидания перед считыванием очередного блока данных. Кроме того, в алгоритме NCQ возможны только два статуса для исполнения — либо немедленно, либо в наиболее удобный для накопителя момент времени. В общем, теоретически применение NCQ вроде бы существенно и без лишних затрат повышает производительность. В некоторых предварительных обзорах и пресс-релизах даже говорилось о том, что накопители с частотой вращения 7200 об/мин, поддерживающие технологию NCQ за счет своей «интеллектуальности», могут показывать более высокую производительность, чем накопители с частотой вращения 10 000 об/мин.
На практике для того, чтобы накопитель с NCQ полностью продемонстрировал свои возможности, первым делом необходимо обзавестись контроллером, поддерживающим это нововведение. Если не рассматривать вариант отдельного RAID-контроллера, то требование можно переформулировать: необходимо применение системной платы с южным мостом ICH7R или ICH7R для систем на базе процессоров Intel или на платы на наборе микросхем nForce4 Ultra для процессоров AMD.
В качестве тестового стенда мы использовали ПК NIX X4000 Pro на базе системной платы Gigabyte GA-8I955X Pro, любезно предоставленный компанией «НИКС Компьютерный супермаркет». Новое поколение дисков было представлено накопителями Western Digital WD2500 и Samsung SpinPoint SP2504C. Для того чтобы пользоваться преимуществами алгоритма сортировки, необходимо выставить в BIOS режим работы контроллера AHCI (Advanced Host Controller Interface) и установить в систему соответствующий драйвер для его корректной работы — в нашем случае это Intel Matrix Storage Manager. Убедившись, что накопитель действительно работает в режиме SATA 2, запускаем наш универсальный набор тестов WorldBench 5, позволяющий оценить скорость работы ПК на комплекте реальных приложений. Повторив тест 3 раза и усреднив результаты, отключаем режим AHCI в BIOS и повторяем измерения. Результаты приведены в табл. 1. Возможно, это покажется несколько странным, но в большинстве случаев в режиме, поддерживающем сортировку команд, производительность не только не повышается, но, наоборот, несколько снижается. Заметное увеличение скорости работы наблюдается только для приложения Nero Express.
Таблица 1. Время выполнения эталонного набора действий в тестах WorldBench 5, с
Накопитель | ACD Systems ACDSee PowerPakc 5.0 | Adobe Photoshop 7.0.1 | Adobe Premiere 6.5 | Ahead Software Nero Express 6.0.0.3 | Discreet 3ds max 5.1 (DirectX) | Discreet 3ds max 5.1 (OpenGL) |
SP2504 без NCQ | 535 | 357 | 452 | 582 | 278 | 333 |
SP2504 c NCQ | 548 | 359 | 452 | 421 | 279 | 334 |
WD2500 без NCQ | 556 | 357 | 455 | 519 | 274 | 334 |
WD2500 c NCQ | 557 | 359 | 450 | 471 | 279 | 327 |
Накопитель | Microsoft Office XP with SP-2 | Microsoft Windows Media Encoder 9.0 | Mozilla 1.4 | MusicMatch Jukebox 7.10 | Roxio VideoWare Movie Creator 1.5 | WinZipComputing WinZip 8.1 |
SP2504 без NCQ | 527 | 364 | 463 | 488 | 288 | 357 |
SP2504 c NCQ | 527 | 362 | 452 | 421 | 279 | 334 |
WD2500 без NCQ | 556 | 357 | 455 | 519 | 274 | 334 |
WD2500 c NCQ | 557 | 359 | 450 | 471 | 279 | 327 |
Теперь воспользуемся другим нашим традиционным набором тестов — PCMark04. Результаты измерений с его помощью приведены в табл. 2.
Таблица 2. Производительность дисковой подсистемы в тестах PCMark04, Мбайт/с
Накопитель | XP Startup | Application Load | File Copying | General HDD Usage |
SP2504 без NCQ | 8,1138 | 6,132 | 49,409 | 5,1614 |
SP2504 c NCQ | 9,91 | 7,32 | 49,87 | 6,138 |
WD2500 без NCQ | 8,906 | 7,27 | 41,6428 | 5,81 |
WD2500 c NCQ | 9,62 | 8,4 | 41,693 | 6,438 |
Примечание. Каждое измерение проводилось 5 раз, приведены средние значения.
Согласно этим данным, похоже, что некоторый прирост производительности все же присутствует, причем во всех приложениях. На первый взгляд противоречивые результаты вполне согласуются друг с другом, но прежде чем делать выводы, проведем традиционное измерение низкоуровневых параметров накопителей с помощью HDTach 3.0 (см. табл. 3). Здесь мы видим своего рода «компромисс» между предыдущими тестами: результаты в обоих режимах работы совпадают в пределах допустимой погрешности. И это тоже легко объяснимо. Так каким же данным верить?
Таблица 3. Низкоуровневые параметры накопителей, измеренные с помощью HDTach
Накопитель | Скорость обмена с буфером, Мбайт/с | Средняя скорость чтения, Мбайт/с | Время случайного доступа, мс |
SP2504 без NCQ | 173,70 | 59,70 | 15,60 |
SP2504 c NCQ | 171,00 | 61,70 | 15,50 |
WD2500 без NCQ | 164,00 | 53,00 | 13,40 |
WD2500 c NCQ | 166,30 | 52,80 | 13,40 |
Пожалуй, теперь уже можно подвести первые итоги. Одинаковые результаты в третьем тесте объясняются проще всего: сортировка команд на такие характеристики, как время случайного доступа, не влияет. А для того чтобы объяснить отсутствие прироста производительности в WorldBench, стоит вспомнить о том, что изначально сортировка команд применялась в серверных накопителях. То есть тех, которые используются в приложениях, отличающихся большим числом запросов к случайным областям диска. В этом случае перераспределение запросов и оптимизация перемещений головок действительно могут определить значительный прирост производительности. А при работе с нашей тестовой системой в типовых приложениях, на основе которых и построен WorldBench, очередь к жесткому диску составляла максимум два-три запроса, да и дефрагментация перед началом тестирования лишает технологию NCQ последних шансов продемонстрировать свои преимущества. Измерения, проводимые в тестах для накопителей пакета PCMark 2004, построены на основе анализа «следов» обращения к жестким дискам при работе приложений, но, по всей видимости, именно синтетический характер нагрузки и обусловливает несколько большую длину очереди к жесткому диску. Как следствие, создаются условия, при которых сортировка команд позволяет достичь измеряемого прироста производительности.
Таким образом, с одной стороны, никакого существенного увеличения производительности от применения NCQ и SATA 2 вроде бы не наблюдается. Поэтому, пожалуй, стремиться любой ценой получить в пользование накопитель и системную плату с гордой надписью SATA 2 совершенно ни к чему. Но, опять же как подтверждают и наши измерения, при использовании определенного ПО сортировка команд все же приносит ощутимый эффект. Причем дело здесь не только в области применения конкретной программы, но и в способах реализации ввода/вывода — при асинхронном обращении к диску (т.е. когда программа не приостанавливает свою работу до завершения текущей операции ввода/вывода) вероятность возникновения очереди запросов и соответственно ее оптимизации существенно возрастает. То есть вполне возможно, что по мере того как накопители и контроллеры с поддержкой NCQ будут получать все более широкое распространение и, следовательно, все большее число разработчиков начнут оптимизировать под NCQ свои приложения, выигрыш в производительности станет увеличиваться. И пока подобные соображения по-прежнему остаются главным аргументом в пользу применения нового стандарта.
Редакция выражает благодарность представительствам Western Digital и Samsung, а также компании «НИКС Компьютерный супермаркет» (http://www.nix.ru/) за оборудование, предоставленное для тестирования.