Ultra DMA

Ultra DMA



С лета 1997 года в компьютерных фирмах постоянно звучит вопрос "А эта системная плата (или винчестер) поддерживает Ultra DMA?" Массированная реклама сделала свое дело - не только покупатели новых, но и владельцы существующих компьютеров озабочены переходом на этот новый тип EIDE-интерфейса. Многие идут даже на то, чтобы обменять еще гарантийное оборудование с обычным EIDE на плату и винчестер с Ultra DMA. Действительно, удвоенная скорость передачи и аппаратный контроль целостности - весьма привлекательные свойства нового интерфейса. Однако при ближайшем рассмотрении красиво и сочно нарисованная картина выглядит далеко не так привлекательно и гармонично. 

Для начала - небольшой технический обзор. Ultra DMA - это не сам интерфейс, а лишь один из его режимов работы, а сам он называется Ultra ATA, или ATA-33. Предыдущая модель интерфейса - ATA-2 - обеспечивает скорость передачи до 16.6 Мб/с; такая скорость может реализовываться либо в режиме PIO 4 (Programmable Input/Output Mode 4 - программный ввод/вывод типа 4), либо в режиме Multiword DMA 2 (Multiword Direct Memory Access Mode 2 - многословный прямой доступ к памяти типа 2). Режимы PIO проще в управлении - их используют DOS и Windows при отсутствии специальных драйверов конкретной модели контроллера, однако требуют заметных затрат процессорного времени и затрудняют параллельное выполнение задач. Режимы DMA сложнее в использовании, зато позволяют исключить центральный процессор из переноса данных, оставив ему только роль инициатора и диспетчера обмена с устройством. 

Ultra ATA удваивает скорость передачи - его предел равен 33.3 Мб/с в режиме Ultra DMA; таким образом, эта скорость недоступна в режимах PIO. Собственно, это не так важно, ибо все популярные операционные системы сейчас поддерживают работу в DMA - драйверы есть даже для DOS, хотя не совсем понятно, какой там от этого толк. 

Однако указанные скорости - ни что иное, как максимально возможные скорости передачи. Для того, чтобы передавать по интерфейсу данные с такой скоростью, винчестер должен успевать их считывать с дисков, а принимая - записывать на диски. Скорость же вращения большинства современных винчестеров составляет 5400 об/мин, при которой скорость считывания данных с дисков получается максимум около 10 Мб/с, да и то лишь на внешних участках дисков, которые движутся с наибольшей линейной скоростью. Скорость записи обычно оказывается ниже, причем нередко - весьма существенно. Таким образом, даже старый интерфейс ATA-2 имеет полуторный запас по скорости обмена с поверхностями дисков, а максимальная скорость обоих интерфейсов реализуется лишь при обмене с буфером винчестера, который имеет небольшой размер - 100..256 кб, и к тому же является именно буфером, а не кэшем. Отличие буфера от кэша заключается в том, что буфером называется промежуточная память, предназначенная для сглаживания различий скорости чтения/записи и передачи по интерфейсу, а кэшем - память, сохраняющая наиболее часто читаемые блоки. Разумеется, буфер винчестера может работать и в качестве кэша, но эффективность его в этом смысле крайне низка - размер и скорость обмена очень малы по сравнению с программным кэшем операционной системы. 

Чтобы примерно оценить преимущество Ultra ATA перед ATA-2, можно проделать несложные выкладки. Алгоритм обмена процессора с винчестером таков: процессор инициирует операцию чтения; винчестер считывает первый сектор в буфер и выдает прерывание, продолжая читать следующие секторы; процессор либо забирает данные из буфера по протоколу PIO, либо это делает сам контроллер винчестера по протоколу DMA; процесс повторяется до передачи последнего сектора. Возьмем винчестер из лучших, обеспечивающий чтение с поверхности со скоростью 10 Мб/с, и рассмотрим его работу с каждым из двух типов интерфейсов. Поскольку скорость чтения с поверхности неизменна и меняется только скорость передачи буфера по интерфейсу, общее время считывания с диска нужного объема информации в обоих случаях будет одинаковым - изменится лишь время передачи буфера в память и интервал между этими операциями. Для передачи одного сектора (0.5 кб) со скоростью 16.6 Мб/с требуется около 30 мкс; для скорости 33.3 Мб/с это время составит около 15 мкс. При считывании 10 Мб на весь процесс уйдет одна секунда, из которой около 6/10 или 3/10 уйдет на собственно перекачку данных по интерфейсу. Однако, в отличие от режимов PIO, это время не будет потеряно на ожидание - в течение него процессор будет успешно выполнять другие задачи. 

Эти расчеты приведены только для идеального случая - большинство современных EIDE-винчестеров имеют среднюю скорость чтения в районе 6-8 Мб/с и еще более низкую скорость записи, процесс чтения/записи очень редко имеет дело с большим количеством последовательных секторов - чаще всего винчестер гораздо больше занимается перемещением головок, чем собственно чтением или записью данных. Кроме этого, в большинстве бытовых и офисных систем процессору нечем заняться до завершения передачи данных, и он попросту простаивает. Достаточную загрузку процессора в состоянии обеспечить либо параллельные приложения, занятые интенсивной обработкой данных, либо мощные системы - издательские, звуко- и видеомонтажные. 

Однако многие владельцы винчестеров с Ultra DMA совершенно справедливо могут возразить, что после замены им "обычного" винчестера они почувствовали заметный прирост скорости. Так оно и есть - после принятия стандарта Ultra ATA несколько фирм анонсировали новые модели винчестеров с этим интерфейсом. Первым и наиболее популярным был Quantum Fireball ST, существенно опередивший другие популярные модели с интерфейсом ATA-2. Однако этот отрыв был обусловлен не новым интерфейсом, а повышенной плотностью записи на дисках и увеличением эффективности внутреннего контроллера. В этом смысле ситуация с UDMA повторяет ситуацию со SCSI: многие пользователи выбирают винчестеры SCSI за их высокую скорость работы, ошибочно приписывая ее преимуществам SCSI перед EIDE. На самом же деле многие модели винчестеров, выпускаемые в вариантах и EIDE, и SCSI, имеют один и тот же гермоблок, те же технические характеристики, однако скоростные, а значит, и дорогие, модели винчестеров не являются массовыми, и их гораздо более выгодно выпускать только в SCSI-варианте. Поэтому по-настоящему чистым будет эксперимент с заменой системной платы с обычным EIDE-контроллером на плату с поддержкой Ultra DMA при одном и том же скоростном винчестере с Ultra DMA. А такие эксперименты показывают, что на обычной пользовательской системе с Windows 95 прироста эффективности либо нет вообще, либо он составляет единицы процентов. Более заметный прирост могут дать только системы со сбалансированной ОС и высокой загрузкой. 

Другая полезная особенность Ultra ATA - наличие контроля передаваемых данных при помощи CRC (Cyclic Redundancy Check - избыточный циклический контроль) - кода, вычисляемого для каждого передаваемого блока на передающем конце и проверяемого на приемном. Эта функция интерфейса позволяет вовремя обнаружить "плавающие" ошибки, порожденные чрезмерно длинными кабелями, плохими контактами в разъемах, несоответствием скоростей передачи, которые в ATA-2 и более ранних интерфейсах приводили к считыванию или записи неверных данных, что через некоторое время неизбежно вызывает порчу структуры диска и полный выход из строя файловой системы. CRC-контроль в Ultra ATA служит для обнаружения ошибок передачи уже в момент передачи ошибочного блока, что предотвращает скрытое распространение ошибок. Однако оказалось, что на самом деле не все новые винчестеры с Ultra ATA поддерживают CRC-контроль - например, винчестеры Fujitsu ATU этого не делают, и ошибки передачи по-прежнему могут оставаться незамеченными долгое время. 

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



Что такое Ultra-DMA, и зачем мне это надо?



Вот краткий обзор технологий IDE дисков: 

IDE, EIDE и ATAPI

Это старые технологии. Большинство жестких дисков и не-SCSI интерфейсов, которые вы можете купить сегодня или уже используете - EIDE, хотя множество винчестеров большой емкости - UDMA. 

Bus Master DMA

Bus Master DMA - это технология, повышающая скорость обмена с жестким диском, требующая поддержки материнской платы, BIOS и, по крайней мере, какой-то поддержки от самого жесткого диска.

Ultra-DMA он же Ultra-ATA он же Ultra33 он же...

Ultra-DMA может называться по-разному, но мы его будем называть просто UDMA. 

UDMA - это более продвинутая технология, обеспечивающая передачу данных жесткого диска со скоростью до 33.3 Мб/сек в UDMA режиме 2 и 66.7 Мб/сек в режиме 4, что от двух до четырех раз быстрее, чем EIDE, и дешевле, чем SCSI. Много новых компьютеров уже поставляется с UDMA-дисками большого размера и UDMA-интерфейсами, однако возможна установка дополнительной карты UDMA-интерфейса (такой как Promise Ultra33 или Ultra66), чтобы увеличить скорость даже на старых не-UDMA дисках. 

Замечу, что длина кабеля UDMA, по сравнению с простым DMA, желательно должна быть менее 30см, и не более 18 дюймов. Для скорости 66Мб/сек требуется специальный 80-жильный кабель не большей длины. Если у вас появляется большое количество CRC-ошибок, то попробуйте использовать кабель покороче.



По крайней мере "Ultra"?



Прежде, чем пойдем дальше, давайте проясним заблуждение. Эти 33 и 66 MB/сек - максимальная скорость передачи (burst transfer rate), а это встречается не очень часто. Вот кусок из UDMA.txt:



																Быстрый (burst) (немедленный) режим передачи предполагает от 16.6МБ/сек

																(PIO режим 4) до 16.6МБ/сек (DMA режим 2) и до 33МБ/сек (UDMA).

																Kim-Hoe Pang в своем патче ядра 2.1.55 логически проверил скорость передачи

																в максимальном режиме UDMA: 60 нс/слово, что означает 33МБ/сек.

																

																Замечу, что скоростной (burst) режим передачи влияет только на данные,

																передаваемые из кэша EIDE винчестера (476Кб на IBM 6.4Гб),

																а это IMHO не особенно актуально для большинства пользователей Linux.

																

																Ядро Linux использует для кэширования доступа к винчестеру столько

																оперативной памяти, насколько это возможно, и если данные не находятся в

																кэше ядра, то мало шансов, что они будут в меньшем по размеру кэше

																винчестера.



Намного большее значение имеет устойчивая скорость передачи (sustained transfer rate) - скорость, на которой данные передаются с винчестера в память. Проще всего использовать hdparm, чтобы измерить устойчивую скорость передачи, например "hdparm -t /dev/hda", для измерения скорости первого IDE диска.



																Вот некоторые данные, собранные после большого количества испытаний, с

																использованием утилиты hdparm (Mark Lord):

																

																PIO в режиме 4 под Linux дает скорость передачи:   +/- 5.2MB/s

																

																DMA в режиме 2 под Linux дает скорость передачи:   +/- 7.2MB/s

																

																UDMA в режиме 2 под Linux дает скорость передачи:  +/- 9.8MB/s



Как вы можете видеть, UDMA все еще в два раза быстрей обычного EIDE, и все еще значительно быстрей Bus Master DMA. Большинство современных UDMA-дисков дают от 10 до 15 МБ/сек с использованием UDMA в режиме 2 (33 MB/s) или 4 (66 МБ/сек). 

Кроме того, использование DMA, в отличии от PIO, значительно сокращает использование процессора во время обмена с диском.



UDMA или SCSI?



Я не могу дать вам точные цифры, но, по общему мнению, SCSI может дать лучшую производительность, чем UDMA. Тем не менее, если вы посмотрите на цены винчестеров, то заметите, что UDMA значительно дешевле. В большинстве случаев, коэффициент цена/производительность говорит в пользу UDMA.



Ultra DMA/66



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

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

Перед разработчиками стандарта стояла задача - увеличить вдвое скорость передачи данных, не потеряв в надежности и, самое главное, не вызвав повышения стоимости реализации интерфейса как на самом IDE устройстве, так и в контроллере IDE. Кроме этого, необходимо сохранить совместимость сверху вниз, так как низкоскоростные IDE устройства, такие как магнитооптические накопители, CD-ROM приводы и жесткие диски, выпущенные ранее, должны работать с контроллерами UDMA/66 без каких-либо проблем.

Основное преимущество работы IDE устройств с поддержкой нового стандарта явствует из названия Ultra DMA/66 - скорость обмена по новому интерфейсу равна 66 MB/c.



 

Скорость обмена
(max.)

Тип разъма

Количество проводников в кабеле

CRC контроль

DMA Mode 1

11.1 MBytes/s

40-выводов IDE

40

Нет

Multi-word DMA Mode 1

13.3 MBytes/s

40-выводов IDE

40

Нет

Multi-word DMA Mode 2

16.6 MBytes/s

40-выводов IDE

40

Нет

Ultra ATA Mode 2

33.3 MBytes/s

40-выводов IDE

40

Да

Ultra ATA Mode 4

66.6 MBytes/s

40-выводов IDE

80

Да

Главное отличие нового стандарта - увеличенная в два раза скорость обмена. Поскольку длительность каждого сигнала на IDE соответственно также уменьшается в два раза, то резко возрастает угроза влияния помех на сигналы интерфейса. Уже при разработке стандарта UltraDMA/33 был применен метод CRC (Cyclical Redundancy Check - циклический контроль с избыточным кодом) и данные тем самым контролировались на всей цепи их прохождения. 

CRC сохранился в качестве метода контроля целостности данных, но, кроме этого, пришлось впервые (с момента появления IDE интерфейса) изменить кабель, показанный на рисунке ниже.







Теперь кабель имеет 80 проводников при тех же 40 контактах. Во всем остальном стандарт полностью совместим со своими предшественниками. Любой жесткий диск с интерфейсом UltraDMA/66 будет работать с любым контроллером IDE и наооборот. Единственное жесткое условие - жесткий диск стандарта UltraDMA/66 будет работать с соответствующим контроллером только через специальный кабель. Как видно на фотографии ниже, внешне кабель для UltraDMA/66 отличается только более тонкими проводниками и разница эта не очевидна (если только рядом не лежит обычный IDE кабель). Проще всего отличить один кабель от другого по цвету разъемов. На кабелях для UltraATA/66 голубой разъем ВСЕГДА подключается к контроллеру, а черные разъемы - к периферийным устройствам.



На фотографии верхний кабель - обычный IDE кабель, ниже - кабель для UltraDMA/66.



Первые жесткие диски с поддержкой нового стандарта были выпущены фирмой Western Digital в декабре 1998 года.

В заключении хотелось бы предостеречь от больших надежд на качественный скачок в производительности дисковой подсистемы компьютера после появления и внедрения UltraDMA/66. Реально скорость работы в 66 MBytes/sec будет достигаться только при работе с буфером на жестком диске. Поэтому при работе с жестким диском, имеющим размер буфера до 512 kBytes, можно ручаться за то, что никакого реального прироста производительности дисковой подсистемы при замене диска и контроллера с UltraDMA/33 на UltraDMA/66 не произойдет. Какое-то повышение производительности будет заметно на жестких дисках с буфером 2 MBytes и больше. Скорее всего, размер буфера и дальше будет расти, так как только в этом случае рост скорости интерфейса будет заметен.

Многие проводят параллели между SCSI и IDE, так как скорость SCSI интерфейса также постоянно растет. Но эти сопоставления неправомерны - на одной SCSI шине может быть до 15 устройств и при размере буфера на каждом, например, 2 MBytes, контроллер должен иметь возможность непрерывно оперировать с 30 MBytes данных и для этого просто необходимо иметь высокие скорости на SCSI интерфейсе. На IDE шине в принципе возможно подключение только двух устройств и поэтому скорость интерфейса такого существенного значения не имеет



Скорость жесткого диска с контроллером Ultra DMA/66 по сравнению с контроллером Ultra DMA/33







Сравнение проводилось на следующем оборудовании: 

материнская плата ASUSTeK P3B-F 

процессор Pentium II 475 MHz (шина 105 MHz) 

128 MBytes RAM 

первый жесткий диск с установленными программами - Western Digital AC29100 Expert, второй диск, скорость которого измерялась - Western Digital WD273BA 

контроллер ABIT Hot Rod Ultra DMA/66 

OS - Windows 98 Second Edition Russian 

Как мы тестировали: 

использовался тест ZD Winbench 99 1.1 

режим DMA разрешен 

режим Ultra DMA/66 разрешался соответствующей программой для диска WD273BA только при работе с контроллером Ultra DMA/66 

Диск WD273BA был выбран для измерения разницы в скорости как один из самых высокопроизводительных дисков на рынке, к тому же он имеет достаточно большую кэш-память на диске, 2 MBytes. Реально, по нашему мнению, влияние более производительного интерфейса будет увеличиваться практически прямо пропорционально объему кэш-памяти на диске, так как на практике диск не может в силу своих характеристик отдавать данные даже со скоростью в 4 раза меньше скорости самого интерфейса Ultra DMA/66.

Название опции:

Ultra DMA Mode

Возможные значения:

Auto, Disabled или Auto, Enabled, Disabled или Auto, Mode 0, Mode 1, Mode 2, Mode 3, Mode 4, Mode 5, Mode 6, Disabled или Auto, SWDMA 0, SWDMA 1, SWDMA 2, MWDMA 0, MWDMA 1, MWDMA 2, UDMA 0, UDMA 1, UDMA 2, UDMA 3, UDMA 4, UDMA 5, UDMA 6

Описание:

Опция позволяет указать режим прямого доступа к памяти (DMA — Direct Memory Access, UDMA — Ultra DMA), используемый при работе накопителя, подключенного к данному каналу стандартного IDE/SATA-контроллера чипсета. Как правило, можно использовать режим автоматического определения возможностей накопителя (Auto). В случае проблем с данным конкретным диском можно попытаться отключить режим DMA (Disabled). Только стоит иметь в виду, что это приведет к существенному падению производительности дисковой подсистемы, использовать эту меру можно только в крайнем случае.

Зачастую среди значений данной опции присутствуют не только варианты, дающие возможность включить или отключить режим прямого доступа к памяти, но и значения, позволяющие указать конкретный режим. Тогда, если накопитель работает нестабильно, можно попробовать вместо полного отключения DMA перейти на один из младших режимов. Возможно, это полностью решит проблему, при этом не столь пагубно сказавшись на производительности дисковой подсистемы.

Для справки приведем названия режимов и максимальную скорость обмена данными с накопителем интерфейса IDE или SATA для каждого из режимов (следует учитывать, что режимы DMA дополняют режимы PIO Mode, обеспечивая существенно большую скорость работы):



Single-Word DMA 0

2.1 Мбайт/сек

Single-Word DMA 1

4.2 Мбайт/сек

Single-Word DMA 2

8.3 Мбайт/сек

Multi-Word DMA 0

4.2 Мбайт/сек

Multi-Word DMA 1

13.3 Мбайт/сек

Multi-Word DMA 2

16.7 Мбайт/сек

Ultra DMA 0

16.7 Мбайт/сек

Ultra DMA 1

25.0 Мбайт/сек

Ultra DMA 2 или Ultra DMA 33

33.3 Мбайт/сек

Ultra DMA 3

44.4 Мбайт/сек

Ultra DMA 4 или Ultra DMA 66

66.7 Мбайт/сек

Ultra DMA 5 или Ultra DMA 100

100.0 Мбайт/сек

Ultra DMA 6 или Ultra DMA 133

133.0 Мбайт/сек



Все современные жесткие диски с интерфейсом IDE способны работать как минимум в режиме Ultra DMA 100. Приводы оптических дисков и им подобные устройства обычно используют режим Ultra DMA 33, есть модели, использующие Ultra DMA 66. Таким образом, для более или менее современных жестких дисков должна быть установлена комбинация PIO Mode 4 и Ultra DMA 100 (как вариант, Ultra DMA 133), но лучше установить значение Auto. Для приводов оптических дисков и им подобных устройств — PIO Mode 4 и Ultra DMA 33 (как вариант, Ultra DMA 66), но, опять же, лучше использовать Auto