Жажда скорости.

Автор: GReY
Дата: 22.10.2001
Все фото статьи

Технология не стоит на месте


Как быстро убегает время! Вроде совсем недавно, в 1997 году, мы впервые смаковали новое слово UltraDMA, сулившее устранение ставших очевидными ограничений предыдущих версий стандарта ATA, а именно: вдвое большие скорости дисков – недостижимые, казалось, 33 МБ/с, повышенную помехозащищённость и т.п. Спецификация UltraATA была «на ура» принята всеми производителями жёстких дисков и на рынок хлынули новые модели жёстких дисков. Не подкачали и чипмейкеры, объявив наборы логики i430TX и Apollo VPX с поддержкой нового протокола. Всеобщий ажиотаж, резкий рост спроса на новые (а значит дорогие) продукты, покупатели гордятся приобретением, продавцы считают монеты, все довольны, аплодисменты. Занавес.
Надо заметить, что сами жёсткие диски тогда были довольно несовершенны, их максимальный физический трансфер ещё не перевалил отметку 6 МБ/с, а чипсеты были неплохо настроены на работу в PIO режиме, так что эффективная пропускная способность интерфейса достигала 14 МБ/с. Не удивительно, что спустя некоторое время из среды особо пытливых пользователей послышался ропот – зачем переплачивать за никуда не годные 33 МБ/с? Утешало одно: чуть погодя появятся новые поколения дисков и этот запас скорости будет востребован. Шло время, диски действительно постепенно ускорялись, как тут, в 1999 году, случилась акция «Даёшь UltraATA/66». Почём опиум для народа? :) Производители дисков опять отреагировали мгновенно, а вот чипсет-мейкеры на этот раз не спешили. Только VIA Technologies поддержала стройное «эй ухнем» выпуском модификаций южных мостов, ни Intel, ни Ali, ни SiS (надо заметить, что все другие компании, например OPTI, UMC уже были вытеснены с рынка чипсетов для ПК) не торопились что-либо менять. Зато не растерялись третьи компании, такие как CMD, Promise, HighPoint, выпустившие микросхемы внешних PCI IDE контроллёров стандарта UltraATA/66. За них просили немалых денег, что было на руку VIA, предлагавшей ATA/66 как бы бесплатно, однако на одной тонкости в предложении VIA я ещё заострю внимание ниже. Поскольку Intel всё задерживал и задерживал выпуск чипсетов с ICH, спрос на продукцию VIA стремительно рос. А в 2000 году широкую поддержку производителями приобрёл стандарт UltraATA/100. Этот стандарт все производители поддержали также дружно, как и UltraATA/33, однако, надо заметить, что его разработка не закончена и по сегодняшний день.
Скорость чтения/записи жёстких дисков, в общем случае, пропорциональна плотности хранения данных на пластине. Предлагаю ознакомиться с темпами роста плотности хранения с начала того самого1999 года по наши дни:

Темпы роста плотности хранения
 Дата анонса Наименование серии Об/мин Уд.ёмкость,ГБ/пл. Доступность в продаже
 08.03.99 Seagate U Series 4 5400 4,3 следующий месяц
 08.03.99 Seagate Medalist 17242 5400 4,3 следующий месяц
 15.03.99 Quantum Fireball CX 5400 6,8 
 26.04.99 WD Caviar AA 5400 6,8 
 26.04.99 WD Expert BA 7200 6,8 
 17.05.99 Maxtor DiamondMax 6800 5400 6,8 сентябрь
 01.06.99 Seagate Barracuda ATA 7200 6,8 лето
 01.06.99 Seagate Barracuda ATA 7200 7,1 лето
 07.06.99 Quantum Fireball Plus KX 7200 6,8 
 15.06.99 IBM Deskstar 34GXP 7200 6,8 
 15.06.99 IBM Deskstar 37GP 5400 7,5 
 28.06.99 Maxtor DiamondMax Plus 6800 7200 6,8 август
 14.07.99 Fujitsu MPE_AH 7200 6,8 
 14.07.99 Fujitsu MPE_AT 5400 6,8 
 21.07.99 Samsung SpinPoint V6800 5400 6,8 
 23.07.99 Fujitsu MPE_AE 5400 8,4 
 26.07.99 Quantum Fireball LCT 5400 8,6 
 09.08.99 Seagate U Series 8 5400 8,4 сентябрь
 16.08.99 Maxtor DiamondMax VL 17  5400 8,7 сентябрь
 16.08.99 Maxtor DiamondMax 36 5400 9,1 сентябрь
 07.09.99 Maxtor DiamondMax 40/VL 20 5400 10,2 октябрь
 08.09.99 WD Caviar AA (Performer) 5400 9,1 месяц
 10.09.99 Samsung SpinPoint V9100  5400 9,1 сентябрь
 17.09.99 Samsung SpinPoint V10200 5400 10,2 октябрь
 20.09.99 Quantum Fireball LCT10 5400 10,2 
 01.10.99 Samsung SpinPoint P10200 7200 10,2 
 07.10.99 WD Caviar AA 5400 10,2 
 04.11.99 Fujitsu MPF_AT 5400 10,2 
 08.11.99 Maxtor DiamondMax Plus 40 7200 10,2 январь
 13.12.99 WD Caviar BA 7200 10,2 
 ––.––.1999 Seagate U Series 10 5400 10 
 17.01.00 Quantum Fireball Plus LM 7200 10,2 
 31.01.00 Seagate Barracuda ATA II 7200 10,2 следующий месяц
 22.02.00 Fujitsu MPF_AH 7200 10,2 
 13.03.00 Maxtor DiamondMax 60/VL 30 5400 15,3 апрель
 13.03.00 Fireball LCT15 4400 15 
 15.03.00 IBM Deskstar 75GXP 7200 15,3 
 15.03.00 IBM Deskstar 40GV 5400 20,6 
 03.04.00 WD Caviar AA 5400 15 
 08.05.00 Samsung SpinPoint V15300 5400 15,3 июнь
 05.06.00 Seagate U Series 5 5400 20 следующий месяц
 19.06.00 Quantum Fireball LCT20 4500 20 
 19.06.00 Samsung SpinPoint V20400 5400 20,4 июль
 ––.06.2000 Samsung SpinPoint P20 7200 20,4 
 17.07.00 Maxtor DiamondMax Plus 45 7200 15,3 август
 17.07.00 Maxtor DiamondMax 80/VL40 5400 20,4 август
 24.07.00 Fireball Plus AS 7200 20,5 
 22.08.00 WD Caviar BB 7200 20 
 06.09.00 Seagate Barracuda ATA III 7200 20 
 10.10.00 WD Protege EB 5400 20 конец 3 кв.
 11.10.00 Fujitsu MPG_AH-E 7200 20,4 
 11.10.00 Fujitsu MPG_AT 5400 15,3 
 11.10.00 Fujitsu MPG_AT 5400 20,4 
 08.11.00 Maxtor DiamondMax Plus 60 7200 20 
 14.11.00 IBM Deskstar 60GXP 7200 20,4 
 18.01.01 WD Caviar AB 5400 30 
 12.02.01 Maxtor 531DX 5400 30 
 24.03.01 Samsung SpinPoint V30 5400 30 
 04.06.01 Maxtor 541DX 5400 40 
 11.06.01 Seagate U6 5400 40 
 18.06.01 Maxtor 536DX 5400 30 
 18.06.01 Maxtor DiamondMax D540X 5400 40 
 27.06.01 Seagate Barracuda ATA IV 7200 40 
 11.07.01 WD Caviar BB 7200 33  
 07.09.01 Samsung SpinPoint V40 5400 40  
 11.09.01 Maxtor DiamondMax Plus D740X 7200 40  


Если посмотреть на график, построенный по данным таблицы, то видно, что плотность увеличивается либо линейно, либо по некоей, близкой к параболической, функции. Т.е. с сегодня на завтра мы можем иметь возрастание скорости больше, чем со вчера на сегодня. В таком случае становится понятно беспокойство инженеров о запасе пропускной способности интерфейса ATA и появление стандарта UltraATA/100. В очередной раз возможности протокола в два–три раза превышают возможности дисков, но что это даёт реально? Пока ничего, однако, со дня на день мы опять столкнёмся с тем, что интерфейс – дыхательная система диска – не даёт диску работать в полную силу.

UltraDMA как воздух


Чтобы проиллюстрировать влияние протокола на работу дисков, приведу графики, снятые в быстром режиме с ж/д Fujitsu MPG3204AT при помощи SST Владимира Афанасьева. Не совсем стабильная форма графиков объясняется тем, что Windows не предоставляет приложениям ДОС достаточного приоритета, периодически отвлекаясь «по своим делам». Именно поэтому (а также из соображений экономии времени, за что читатели, надеюсь, меня не будут бить ногами :), я не стал снимать графики в «полном» режиме. График “Linear verify speed” показывает физическую скорость чтения с поверхности диска, а “Linear read speed” показывает реальную производительность с учётом скорости интерфейса.
Тесты я проводил под Windows проводились из-за желания увидеть картину работы именно из-под Windows, а не ДОС. Вообще-то некоторые контроллёры позволяют выбрать необходимый протокол и под ДОС, но такие контроллёры, как правило, поддерживают протокол UltraDMA/66 или UltraDMA/100, что не вызовет сложностей, о которых я хочу рассказать.
Почему я выбрал именно SST? Потому, что это один из самых доступных, простых в использовании и в то же время точных измерителей скорости диска. У HDTach, не смотря на то, что он работает с диском под Windows напрямую через VxD, графики не менее рваные, да и в режиме Advanced size check он вовсе отказался работать на моей рабочей системе (зависание намертво, с вылетом файловой системы). А Winbench излишне громоздок и его применение в данном случае не считаю целесообразным, поскольку результаты SST очень точно кореллируются с результатами Winbench, но полученные скорости слегка меньше по абсолютной величине.
Линейка Fujitsu MPG является типичным представителем современных жёстких дисков. Диски серии AT с частотой вращения 5400 об/мин являются одними из самых дешёвых, а потому их часто устанавливают в недорогие компьютеры или компьютеры начального уровня и покупают в качестве апгрэйда для старых систем. Чипсет i815E, на котором основана использовавшаяся при снятии графиков системная плата Intel D815EEA, также широко распространён. Хочу сразу оговориться, что картина, аналогичная описанной, наблюдается на системах с любыми чипсетами. Итак, перейдём непосредственно к результатам.





Как видно из первой диаграммы, в режимах PIO современные платы не могут прокачивать даже пяти мегабайт данных в секунду (справедливости ради надо отметить, что некоторые модели плат, обеспечивают скорость 7-8 МБ/с). Однако в режиме Multi-word DMA2, который по спецификации обеспечивает такую же, как и PIO4, пиковую скорость передачи 16 МБ/с, ситуация кардинально другая – эффективная скорость чтения составляет приличные 14 МБ/с. По-видимому, ATA интерфейс не стал медленнее, просто работа с портами ввода/вывода для современного процессора осложнилось настолько (это очень старая песня, когда на Pentium операции I/O отнимала намного больше тактов, чем на 80486, а на Pentium Pro больше, чем на Pentium MMX и т.д.), что КПД ввода/вывода с использованием процессора упал ниже 50%.
Тем не менее, даже при пиковой скорости 14 МБ/с жёсткий диск, почему-то, отдаёт данные со скоростью всего семь с небольшим мегабайт в секунду. Способен ли тут чем-нибудь помочь старый-добрый UltraDMA? О, в UDMA2 всё стало ещё более интересным: хотя максимальная скорость почти достигла 28 МБ/, скорость чтения до середины диска составляла всего 14 МБ/с, т.е. половину от физической! Затем скорость чтения резко возрастает и в последней трети поверхности соответствует возможностям диска.

Скорость скорости – рознь


Даже режим UDMA3, который, формально, относится к спецификации UltraATA/66 и при котором реальная пиковая скорость передачи составляет около 35 МБ/с (т.е. заведомо больше, чем может обеспечить винчестер физически), не позволяет диску передать все данные в самых быстрых зонах. Лишь протокол DMA/66 позволяет жёсткому диску полностью реализовать свой потенциал и график скорости чтения максимально приблизился к графику скорости проверки. По понятным причинам, при DMA/100 (UDMA5) графики, в пределах погрешности измерения, получились идентичными UDMA4, поэтому диаграмму приводить я не стал.
Что же не позволяет винчестеру использовать полностью пропускную способность интерфейса? Дело в том, что размеры блока считываемых за один присест данных могут быть самыми произвольными. Когда измеряется максимальная скорость чтения из буфера, этот размер варьируется для достижения наилучшего результата. При работе приложений размер запрашиваемого блока данных, благодаря системе кэширования и упреждающего чтения, обычно одинаков и несколько меньше того, при котором достигается наибольшая скорость передачи. Это, а также неизбежные оверхеды в электронике диска и коде ATA-драйвера при многочисленных запросах снижают эффективную скорость передачи. Жёсткие диски, имеющие более быстродействующую электронику, менее подвержены таким флуктуациям и достигают больших эффективных скоростей передачи небольших блоков данных.
Необычное поведение графика скорости чтения, а именно рост полезной скорости с уменьшением скорости физической, объясняется алгоритмами кэширования, заложенными в электронику жёсткого диска. Мне сложно рассуждать о деталях, поскольку ни одна компания-производитель не делится техническими данными с посторонними, но по графикам очевидно, что в данном случае, при невозможности отправить прочитанные с пластины данные в компьютер сразу, не производится упреждающее чтение (read-ahead) и дальнейшие блоки данных читаются на следующих оборотах пластины. Это следствие выбранной производителем диска стратегии кэширования – с накоплением или без. У жёстких дисков других производителей при недостатке пропускной способности интерфейса скорость либо не меняется совсем (IBM и Maxtor), либо немного колеблется вверх и вниз, в зависимости от соотношения физической скорости чтения и скорости интерфейса (Quantum).
Честно говоря, нехватка пропускной особенности в реальной жизни вредна не настолько сильно, как это показывает график линейной скорости. При непоследовательном чтении/записи большую роль приобретает среднее время задержки (равное половине времени оборота пластины). Так, если доступ происходит к случайным блокам данных длиной 64 килобайт (обычный размер блока, считываемого Windows в кэш), то скорость приближённо можно подсчитать по формуле: V=64/(L+64/X), где L – среднее время задержки, X – физическая скорость чтения. В случае нашего Fijitsu MPG-AT, при чтении в режиме PIO4 достигается эффективная скорость 2588 КБ/с (при линейной скорости 3339 КБ/с), а в UDMA4/5 в среднем 7806 КБ/с (средняя линейная скорость равна 24453 КБ/с). Не смотря на то, что скорость линейного чтения возросла более чем в 7 раз, эффективная скорость возросла только в три раза. Для жесткого диска с такой же физической скоростью чтения, но частотой вращения 7200 об/с эффективная скорость возросла бы почти в 3,5 раза, с 2742 до 9429 КБ/с. Как видите, в формуле не учтено время поиска, т.е. предполагается, что обрабатываемые блоки данных расположены непоследовательно, но близко друг от друга и операции поиска занимают минимальное время.

Не все UltraATA/66 одинаково полезны


А теперь подошло время обещанной истории про ловкую VIA Technologies, которая, практически, первой объявила миру о поддержке стандарта UltraATA/66 в её чипсетах. Самым передовым южным мостом компании тогда являлся VT82C596 и его новые ревизии поддерживали расширенные режимы UltraDMA/66. Так представлено в спецификациях, так сообщает BIOS материнских плат. Каково же было моё удивление, когда на материнской плате ACORP 6VIA85P, в которой использован мост VT82C596B ревизии E, вышерассмотренный диск Fujitsu MPG3204AT показал картину, промежуточную приведённым графикам для режимов UDMA2 и UDMA3. Я углубился в поиски и выяснил, что, не смотря на сообщение при загрузке о наличии режима UDMA4, установить его невозможно и диск мог работать лишь в режимах UDMA0, 2 и 3. Заинтригованный таким открытием, я стал изучать другие материнские платы, использующие такой же южный мост, полагая, что по продукции Acorp нельзя делать каких либо выводов о чипсете в целом. Действительно, платы от Chaintech, Gigabyte и ASUS позволяли установить режим UDMA4, но, сюрприз-сюрприз, скорость чтения при этом оставалась ничуть не больше, чем при UDMA3!
Вот так владельцы плат на чипсетах Apollo Pro133 и Apollo Pro133A, в которых используется упомянутый южный мост, были обмануты и не получили полноценной поддержки UltraDMA/66. Ведь не секрет, что для многих людей именно эта поддержка была важным фактором, склонившим их к приобретению продукции VIA. В более позднем мосте VT82C686A (и, соответственно, в его модификации 686B) таких проблем больше не замечалось.

Что дальше?


Как мы видим, без применения DMA современные диски работают от силы на 1/3 от своих возможностей (а при копировании больших файлов, загрузке паков в играх и т.п. даже на 1/7). Если на вашей плате установлен bus-master ATA контроллёр, то, даже при отсутствии поддержки UltraDMA, включив работу с диском через DMA, вы можете получить двукратный рост скоростей чтения и записи, однако диск по-прежнему будет работать не в полную силу. Даже самая небольшая нехватка пропускной способности интерфейса способна значительно снизить эффективную скорость в самых быстрых зонах поверхности, поэтому для полной утилизации потенциала жёсткого диска необходим некоторый запас по скорости передачи данных. Если в качестве ориентира выбрать пиковую скорость чтения из буфера диска, то она должна процентов на 20-30, в зависимости от модели диска, превышать максимальную физическую скорость чтения этого диска. Даже для самого дешёвого современного жёсткого диска со скоростью вращения 5400 об/мин DMA/33 уже совершенно не достаточно. Протокол DMA/66 (режим UDMA4) пока удовлетворяет запросам, однако его ресурсы уже исчерпаны и DMA/100 необходим уже не только для галочки в спеках. Например, Seagate Barracuda ATA 4 на тестировании показал явную нелюбовь как к DMA/33, так и к DMA/66. Рискну высказаться, что век UltraATA/100 тоже будет не долгим – диск Maxtor D540X уже достиг ёмкости 160 Гигабайт и превысил предел адресуемого объёма 128 Гигабайт, унаследованный этой спецификацией. И сегодня, как во времена расцвета UltraATA/66, при выборе материнской платы следует серьёзно задуматься о том, какой контроллёр ATA должен быть в вашем компьютере.