Смекни!
smekni.com

С лета 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: