Главная > Компьютеры > Накопители >
Передача потоков данных: SCSI против EIDE

Передача потоков данных: SCSI против EIDE

Борьба интерфейсов подключения периферийных устройств ввода/вывода и хранения информации началась, когда перед компьютером замаячила перспектива стать персональным, т. е. доступным и ориентированным на приложения, невзыскательные к ресурсам и скорости исполнения. SCSI всегда был более дорогой альтернативой IDE хотя бы в силу своей декларируемой производительности. Благодаря то ли цене, то ли действиям производителей готовых систем, то ли общественному мнению или всему сразу областью применения SCSI постепенно стали считаться исключительно серверы высокого уровня и специализированные рабочие станции. Более того, громкие анонсы новых протоколов передачи данных создали представление, что EIDE является не только более дешевым, но и не уступающим SCSI по скорости решением. Ниже пойдет речь о родовых различиях двух интерфейсов и их "профессиональной" пригодности в современных задачах широкого спектра.

Выписка из "истории болезни"

Термин Integrated Device Electronics, или IDE, стал синонимом недорогой дисковой подсистемы. Массовое распространение интерфейса, несколько поколений ценовых войн и история развития аппаратных и программных средств привели к тому, что сейчас около 90% всех PC стандартно снабжены контроллером жесткого диска IDE и используют накопители EIDE. Процессоры стали в сотни раз быстрее, емкость жестких дисков увеличилась в той же пропорции, а вот скорость передачи данных между диском и PC через контроллер IDE возросла примерно раз в десять, и сам контроллер в общих чертах остался тем же.

На заре развития интерфейса для ускорения передачи данных IBM применила режим программируемого ввода/вывода (PIO), подразумевающий участие центрального процессора в транзакциях между системой и накопителем. Все остальные функции процессора на это время приостанавливаются. PIO -- это однозадачный подход. IDE -- это тоже однозадачный подход, в него с самого начала заложен принцип: один интерфейс -- одна инструкция. Гармонично довершала картину актуальная тогда операционная система DOS, также являвшаяся однозадачной. Напротив, SCSI (Small Computer System Interface) изначально был построен по "интеллектуальному" принципу. Адаптеры выполняют передачу данных, управляя шиной в режиме прямого доступа к системной памяти (Bus Master), а устройства активизируются "по необходимости". Это освобождает ресурсы процессора для выполнения других задач и позволяет осуществлять доступ к нескольким дискам одновременно.

Предпринятое Western Digital со товарищи введение в начале 90-х стандарта Enhanced IDE расширило спектр совместимых устройств, привнесло двухканальную схему работы и способность к управлению шиной. Родовая травма "однозадачности" не помешала массовому распространению действительно быстрых и дешевых EIDE-устройств, а также мифа об их самодостаточности и адекватности современным задачам. Разработка новых протоколов передачи данных продолжает время от времени увеличивать предельные значения скоростей, теоретически доступных по интерфейсу EIDE. К несчастью, скорость передачи данных отдельным устройством ввода/вывода -- не единственный фактор, имеющий значение для производительности системы в целом, а часто -- и не определяющий. Стандарту Enhanced IDE по-прежнему не хватает оснований считаться интерфейсом, удовлетворяющим требованиям современного скоростного PC. Пресловутое десятикратное отставание в прогрессе скорости контроллеров IDE от CPU, известное как I/O Gap, привело к тому, что процессоры большинства PC часто расходуют время на холостые циклы ожидания данных от подсистем ввода/вывода. Зато компьютеры получаются действительно дешевые.

PIO и Bus Master

Существует два механизма передачи данных адаптером от устройства хранения информации в системную шину: процессорный, или программируемый ввод/вывод (PIO) и ввод/вывод с использованием способности самого устройства захватывать шину, управлять ею и загружать данные непосредственно в системную память (Bus Master DMA).

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

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

В стандарт интерфейса ввода/вывода Enhanced IDE, помимо расширения класса обслуживаемых устройств (жесткие диски, CD-ROM, магнитооптические и ZIP-накопители и т. д.) и увеличения их количества до четырех -- по два на каждом из двух возможных каналов, была внесена функция управления системной шиной. Процессор программирует контроллер EIDE, указывая ему, откуда он должен взять данные и куда в память их положить. Затем контроллер захватывает управление шинами PCI и памяти и выполняет операции по считыванию данных с жесткого диска или CD-ROM непосредственно в память в режиме прямого доступа (DMA -- Direct Memory Access). При таком способе обмена данными процессор свободен после выдачи команд контроллеру EIDE и занимается другими задачами.

Тем не менее даже наделенный свойством управления шиной интерфейс EIDE сохранил свой главный недостаток, будучи по своей природе однозадачным. EIDE хорош для операционных систем, таких, как DOS и ранняя Windows, которые сами являются однозадачными, так как он в состоянии выставить в определенный момент времени ровно один запрос ввода/вывода. Многозадачные среды, такие, как OS/2, NT, Windows 95 или NetWare, не только упростили работу с приложениями, но и сделали очевидным преимущество применения контроллеров, обслуживающих множественные запросы к данным. А это под силу только SCSI.

Что же касается EIDE, то, недорогой и ограниченный в применении, он только некоторыми чертами отдаленно напоминает своего более развитого соперника. Функция Bus Master наделяет интерфейс EIDE SCSI-подобными свойствами. Само расширение интерфейса IDE до двух независимых (что тоже неочевидно) каналов, обслуживающих одновременно выполнение двух запросов к двум из четырех устройств, вносит некоторый параллелизм и дает определенный выигрыш в производительности. Однако это далеко не то же самое, что запустить семь параллельных запросов к устройствам на одном контроллере SCSI!

Характерно, что реализация одновременного обслуживания двух запросов к устройствам на двух независимых каналах EIDE, заложенная в основу интерфейса, до недавнего времени имела некоторую поддержку под Windows 95 только для контроллеров Intel PIIX. В других случаях операционная система не могла обращаться более чем к одному устройству EIDE в каждый момент времени, что, конечно же, сказывалось на производительности системы в целом, особенно при наличии медленных (по сравнению с жесткими дисками) устройств вроде приводов CD-ROM или стримеров. Можно надеяться, что со стандартизацией интерфейсных чипов и улучшением программной поддержки со стороны операционных систем EIDE сможет обеспечивать и одновременный поканальный доступ к устройствам, и эффективное управление системной шиной, но ему все равно будет далеко до возможностей SCSI.

Многозадачность

Важнейшей характеристикой производительности используемых в PC контроллеров ввода/вывода является способность к одновременной обработке данных нескольких приложений. В компьютере много устройств, несоответствие скоростей которых составляет несколько порядков. Процессор мощностью в сотни MIPS, в течение десятков миллисекунд ожидающий отработки запроса ввода/вывода, подобен Ferrari, вздумавшему полетать по проселкам Фастовского района. Десять лет назад процессору нужно было 100 мс для формирования запроса ввода/вывода к одному диску, отработка запроса занимала также около 100 мс. Сегодня на запрос требуется 1 мс, на отработку же инструкции уходит порядка 10 мс. В однозадачной среде 9 мс, или 90% времени, составляет время ожидания. В многозадачной среде вместо ожидания отработки инструкции процессор переключается на другую задачу, генерирует новый запрос и т. д. Одновременная обработка различных инструкций многократно повышает производительность дисковой подсистемы.

Контроллер Enhanced IDE по-прежнему работает только с одним устройством ввода/вывода в каждый момент времени. Отсутствие механизма параллельной обработки нескольких потоков данных и реальной поддержки операций ввода/вывода в режиме DMA без участия центрального процессора -- основной бич дисковой EIDE-подсистемы и ее "черная метка".

В действительности не подвергается сомнению преимущество SCSI перед EIDE -- иначе почему в высокоуровневых системах и серверах баз данных сплошь используется только SCSI? Вопрос состоит в том, имеет ли смысл применение SCSI-устройств в настольных компьютерах, типичным приложением для которых является работа в Internet. Ответ -- однозначно. Причин несколько, но самыми весомыми являются две. Во-первых, SCSI -- это интерфейс, реализующий множественные одновременные запросы к устройствам на одной шине. Во-вторых, SCSI реально обеспечивает управление шиной в режиме Bus Master с минимальной нагрузкой на центральный процессор. Когда жесткий диск и CD-ROM подсоединены к одному интерфейсу SCSI, медленное позиционирование головок привода компакт-дисков не сказывается на быстродействии операций с жестким диском, поскольку устройство SCSI отключается от шины, пока не наступает готовность к передаче данных. Сколько бы ни было на шине SCSI-устройств, активизация, или подсоединение к шине каждого из них, производится самим устройством только при передаче данных. Поскольку поток информации с жесткого диска измеряется несколькими мегабайтами в секунду (и для отдельно взятых дисков EIDE и SCSI с одинаковыми механическими характеристиками идентичен), то даже относительно недорогого контроллера Ultra SCSI с пропускной способностью до 20 MBps достаточно для обеспечения полноценной параллельной работы двух-трех накопителей SCSI на одной шине. Необходимость в более дорогом контроллере Ultra/Ultra2 Wide SCSI с его запасом производительности в 40/80 MBps может возникнуть разве что при интенсивной обработке мультимедийной информации.

Если способность к отключению от шины заметно повышает эффективность SCSI-систем с несколькими устройствами хранения данных, то другая особенность относится к оптимизации запросов к информации, расположенной на одном накопителе. Электроника передовых жестких дисков SCSI, как, например, технология Serpentine в дисках Western Digital Enterprise, реализует так называемую управляемую очередь команд, когда порядок выполнения инструкций и последовательность перемещения головок оптимизируются самим накопителем.

Многозадачность в настольных системах

Если аргументы в пользу SCSI в противовес EIDE в многопользовательских средах обычно не вызывают возражений, то в отношении "одноместных" настольных PC обсуждение многозадачности и смысла применения SCSI обычно прекращается под натиском ценовых аргументов сторонников "экономичных" решений.

Рассмотрим типичный набор действий владельца PC при работе с современными приложениями. Пользователи настольных систем под управлением Windows 9х попадают в многозадачную среду сразу после нажатия кнопки Power. За то время, пока система приходит в готовность, успевают стартовать несколько системных приложений, открываются окна и т.д.

Далее просвещенный пользователь начинает свою работу с сеанса посещения Сети. Как правило, устанавливается коммутируемое соединение по модему с Internet-провайдером запуском программы удаленного доступа. После этого проверяется почта и загружается броузер. Для просмотра файлов, подшитых к сообщениям, запускаются: Word для чтения пресс-релиза, Adobe Acrobat для знакомства с эскизом рекламы, WinZip для распаковки чужих прайс-листов и Excel для их прочтения, при этом что-то сохраняется на диск.

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

Апологеты истинной многозадачности считают подобный расклад примером "псевдомногозадачной" последовательной работы с приложениями в многооконном интерфейсе -- с одним приложением в одном окне в один момент времени. В качестве контрпримера достаточно вспомнить, сколько времени скачивались очередной Service Pack или драйверы к видеокарте. При этом вы, наверняка, делали что-то еще, пребывая в ясном и активном уме. Обилие интересной и, что характерно, объемной информации в Сети (графика, видео, аудио) позволяет с толком заполнить любой промежуток времени, запустив несколько копий броузера. Это ли не многозадачность? Такие условия работы типичны сегодня для многих настольных PC, подавляющее большинство которых оснащены накопителями EIDE, плохо пригодными к одновременной работе с приложениями различной природы, в отличие от SCSI-систем.

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

Анатомия заблуждения

Вообще говоря, главной задачей PC является обработка данных. Применение в качестве хранилища информации жесткого диска -- механического в своей основе устройства -- является сильным тормозящим фактором. Поэтому во всех ОС часть системной памяти резервируется под кэш, в котором располагаются "наиболее часто используемые" данные, что позволяет обойтись без повторного обращения за ними к жесткому диску. Потому инвестиции в системную память благотворно сказываются на ускорении работы компьютера. Больше памяти -- больше кэш -- реже приходится обращаться к диску. Тем не менее невозможно разместить в оперативной памяти всю необходимую информацию, поэтому в дополнение к кэшу в операционных системах организуется файл подкачки (swap file) на жестком диске, куда сбрасываются данные неактивных приложений. Нетрудно догадаться, что swap file -- одно из самых посещаемых мест на диске. Чем быстрее при этом работает жесткий диск, тем меньше времени уходит на приведение компьютера в полностью боеспособное состояние. Так что скоростной диск -- еще одна хорошая инвестиция в PC. А лучше -- два скоростных диска, отдельно для приложений и часто изменяемых данных.

Броузеры также кэшируют информацию из Web и сохраняют ее на диске, благодаря чему ускоряется повторная загрузка страниц. Таким образом, кэш броузера -- еще одна "горячая точка". Да мало ли разных файлов формируется на диске при комплексной работе с PC во время просмотра, записи, печати, редактирования содержимого Web-страниц -- спул-файл печати, файл сканированного или захваченного образа и т. д. Все это в конечном счете -- операции ввода/вывода, замкнутые на одно из самых медленных устройств PC -- жесткий диск.

Большая часть современных PC снабжена одним жестким диском EIDE и одним накопителем CD-ROM, которые хорошо если подсоединены к разным каналам. Часто из копеечной экономии их подключают к разъемам одного и того же кабеля. Как было сказано, основная проблема интерфейса EIDE -- это возможность обработки ровно одного запроса ввода/вывода в каждый момент времени, и пока выполнение одной системной команды не закончится, любое устройство остается недосягаемым для остальных операций. Если учесть, что типичное время только позиционирования головок привода CD-ROM составляет сотни миллисекунд, то разнести два устройства по разным каналам IDE -- это уже большое благо.

Накопители EIDE, к сожалению, далеко не такие быстрые, как может показаться после чтения анонсов. Несмотря на примелькавшиеся цифры 33 MBps или 66 MBps, таких показателей не достигает даже внутренняя пиковая скорость работы жесткого диска. Что касается реалий, то хорошо, если при чтении непрерывно записанных файлов устойчивая скорость передачи составит около 10 MBps, а вообще говоря, с учетом времени позиционирования головок средняя скорость потока данных с диска обычно не превышает одного-двух мегабайт в секунду. При этом все обращения к диску производятся последовательно. Представьте, что вы надеялись совместить в системе с одним диском EIDE запись содержимого жесткого диска (поток чтения) на CD-R (поток записи) с блужданием по Сети (поток кэширования на диск) и редактированием текстового документа (поток записи в файл подкачки), используя два последних занятия для заполнения паузы. В условиях последовательного выполнения команд ввода/вывода в неконтролируемом порядке сохранить непрерывность потока записи на CD-R малореально, и быстро понять это помогут несколько испорченных заготовок.

Еще одним большим заблуждением в отношении EIDE является то, что наименование Ultra DMA свидетельствует о работе устройства в режиме управления шиной и прямого доступа к памяти (DMA), и ресурсы центрального процессора автоматически перераспределяются для работы с другими приложениями. В действительности в большинстве PC устройства Ultra DMA как работали много лет назад, так и продолжают работать в режиме программного ввода/вывода под управлением процессора (PIO), делая нереальным эффективное совмещение нескольких видов деятельности. Для реализации функции DMA производителям (сборщикам) компьютеров нужны особые драйверы устройств Bus Master, установка и наладка которых нередко оказывается непростым делом. Виноватыми могут быть и разработчики драйверов, и производители EIDE-устройств, но кому интересны отговорки?

Функция Bus Master, поддерживаемая контроллером SCSI, позволяет уменьшить нагрузку на центральный процессор и его участие в передаче данных, высвобождая вычислительные ресурсы для прочих ресурсоемких задач. Даже для простейших контроллеров SCSI типичная загрузка процессора при копировании большого файла будет ниже, чем при использовании жесткого диска EIDE.

В двух словах

Скорость передачи данных отдельно взятым устройством -- не единственный показатель, формирующий представления о современном PC. Реализация многозадачности -- гораздо более эффективный способ справиться с потоками данных, обрабатываемых современными приложениями, и ликвидировать разницу между производительностью быстрых процессоров и пропускной способностью периферии. Передача управления системной шиной самим устройствам ввода/вывода -- шаг к избавлению процессора от рутинных, пожирающих ресурсы операций пересылки данных. Enhanced IDE в роли заменителя SCSI смотрится сносно только с прикрепленным ценником. Время идет, адаптеры SCSI тоже дешевеют. Новое поколение высокоинтегрированных чипов и материнских плат со встроенной поддержкой SCSI предоставляет экономичную альтернативу дорогостоящим решениям SCSI.

Андрей Тищенко
Источник: www.entry.kiev.ua, Октябрь 1999 г.


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

© УкрFAQ 2011
Сайт создан в системе uCoz