SCSI: история, реальность и здравый смысл

Наверное, для подавляющего большинства людей, имеющих отношение к компьютерной технике, вопросы о соотношении преимуществ и недостатков "каких-то там" интерфейсов не являются сколько-нибудь актуальными. В немалой степени этому способствует кочующая из публикации в публикацию мысль о том, что если ваши компьютерные потребности ограничиваются незабвенным "офисом" и играми, если у вас всего один жесткий диск и вы не озабочены проблемой производительности системы, включающей хотя бы два IDE винчестера (например, от разных производителей или поддерживающие разные режимы передачи данных), если у вас скромные аппетиты в отношении многозадачности и т.п., то все разговоры о преимуществах SCSI вы вправе пропускать мимо своих ушей: сделав ставку на SCSI, вы просто много переплатите и удовлетворите лишь свое тщеславие. С другой стороны, многие ли из нас в действительности готовы признать в себе столь ограниченных особей, которые до конца своих дней готовы смирно жевать регулярно подкидываемую "жвачку" и не выходить за кем-то другим очерченные рамки? Как показывает практика, у каждого человека, не мыслящего себя без компьютера, рано или поздно возникает желание раз и навсегда решить для себя проблемы производительности, совместимости, избавить себя от необходимости постоянно тратить деньги на очередную модернизацию и пр. Одним из возможных решений, хотя и не универсальным, и не самым дешевым, может быть поворот в сторону SCSI. Отсюда не следует, что все сказанное ниже будет представлять собой очередную апологию SCSI: как известно, панацеи от всех компьютерных болезней не существует. Скорее, будет сделана попытка трезво и непредвзято взглянуть на проблему выбора того или иного интерфейса, а окончательное решение каждый сможет принять самостоятельно, исходя из своих собственных соображений и пристрастий.

Исторически возникновение SCSI относится к концу 70-х, когда Shugart Associates предложила собственный вариант интерфейса, получивший название Shugart Associates System Interface или SASI. По прошествии нескольких лет, потребовавшихся на детальную проработку и общественное признание, новый интерфейс был стандартизирован американским национальным институтом стандартов (ANSI) как Small Computer System Interface (он же SCSI). Идеология SCSI достаточно проста и может быть именно поэтому сохранила свою актуальность и поныне. Главной целью при утверждении нового стандарта было обеспечение независимого устойчивого функционирования различных устройств. Проще говоря, устройства, поддерживающие SCSI, должны были подсоединяться к компьютеру и работать без дополнительных модификаций аппаратуры и программного обеспечения (впоследствии идею, как водится, украли, извратили и присвоили новое название - Plug'n'Play, а что конкретно из этого получилось, многие из вас знают не понаслышке). Для реализации указанной цели каждое отдельное SCSI-устройство получило свой собственный адрес-идентификатор: так называемый "SCSI ID", соответствующий каждому биту шины данных. Поскольку шина использовалась 8-битная, то максимальное количество идентификаторов равнялось восьми (0-7). В соответствии с этим SCSI обеспечивал работу до восьми различных устройств, одним из которых в обязательном порядке был хост-контроллер (рис.1).

Рис. 1

Наивысший приоритет имел идентификатор под номером 7, соответственно наименьшим приоритетом пользовался идентификатор 0. Для обеспечения бесконфликтной работы и достижения максимальной скорости передачи данных хост-контроллер, обычно, имел ID 7. Впрочем, это не догма, хотя и по сей день подавляющее большинство SCSI-контроллеров по умолчанию имеет 7-й идентификатор. Чуть забегая вперед, скажу, что такое положение дел сохраняется и в так называемых "широких" модификациях SCSI, поддерживающих работу 15 устройств помимо контроллера. В этом случае приоритеты распределяются в убывающем порядке от 6 до 0, а также от 15 до 8. Говоря об идентификаторах, следует иметь в виду, что номер ID и порядок физической очередности подключения SCSI-устройств к хост-контроллеру при помощи кабеля вовсе не одно и то же. Это означает, в частности, что более удаленное от хост-контроллера SCSI-устройство может пользоваться большим приоритетом в цепи, чем менее удаленное устройство.

Присвоение каждому SCSI-устройству своего идентификатора первоначально осуществлялось при помощи имевшихся на нем перемычек. Такой достаточно логичный, но, возможно, не самый удобный подход в течение долгого времени создавал вокруг SCSI ореол пугающе сложного и чрезвычайно запутанного компьютерного явления. В немалой степени этому способствовала и необходимость терминирования SCSI-цепи. Поскольку соединение SCSI-устройств имело "строчную" архитектуру, то для обеспечения правильного функционирования всех устройств "строки" последняя должна была быть терминирована с обоих концов. Делалось это при помощи так называемых терминаторов, представлявших собой набор резисторов. Все SCSI-устройства, расположенные между концами строки, не должны были иметь терминаторы, либо могли иметь их в неактивном состоянии (Disabled) (рис.2а).

 
Рис. 2а

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

Рис. 2б

Спецификация SCSI предусматривала общую длину цепи, равную 6 метрам (19,7 футам). В общем-то, это хорошо известный факт. Однако следует помнить, что указанная длина включает и длину всех внутренних соединений SCSI-подсистем. Особенно хорошо это заметно при наличии цепи, включающей все 7 устройств. Если принять среднюю длину внутренних соединений одного устройства, равную 9 дюймам, то на все внешние кабельные соединения останется всего-навсего 15 футов. Кроме того, важно помнить, что если в цепи находится хотя бы одно Fast SCSI-устройство, то общая длина всех соединений (и внешних, и внутренних) не может превысить 3 метров (9,8 футов).

Для лучшего понимания принципов функционирования SCSI-устройств уместно будет рассмотреть структуру операций ввода-вывода. Условно данные операции осуществляются в три приема: 1) Фаза запроса - главный процессор в качестве инициатора формирует запрос на разрешение обмена данными и выдает его конкретному устройству, используя для этого уникальный идентификатор последнего; 2) Фаза обмена - устройство, принявшее команду, передает данные главному процессору при чтении или принимает их при записи; 3) Фаза подтверждения - после окончания приема/передачи SCSI-устройство формирует подтверждение окончания обмена данными и посылает его инициатору, возвращая тем самым шину в исходное состояние и освобождая ее для последующих циклов.

Первоначальная спецификация SCSI предусматривала возможность соединения вышеназванных семи устройств (восьмым был контроллер) при помощи 50-контактных разъемов и соответствующих кабелей (тип А). Для обмена данными использовалась параллельная 8-разрядная шина с тактовой частотой 5МГц. С учетом того, что в каждом такте передавался один байт данных, при работе в самом быстром - синхронном - режиме фаза передачи данных могла проистекать с впечатляющей на тот момент скоростью 5Мб/с. Описываемые события происходили в далеком 1986 году, и тогда еще никому не приходило в голову добавлять к трудно произносимой абревиатуре SCSI цифру 1. Однако темпы развития компьютерных технологий оказались столь высоки, что очень скоро скорость 5Мб/с стала недостаточной, к тому же в ряде случаев возникала потребность в обеспечении одновременного функционирования более чем семи периферийных устройств.

Первую часть имевшейся проблемы удалось решить довольно просто: тактовая частота шины была увеличена с 5МГц до 10МГц. Соответственно скорость передачи данных повысилась до 10Мб/с. Такая модификация интерфейса получили название Fast SCSI-2. Отдельные производители используют также термин "узкий SCSI" (Narrow), обозначая его буквой "N" в маркировке своих изделий. Вторую часть указанной проблемы удалось решить только при помощи Wide SCSI-2. Здесь был применен более изощренный подход. К узкой 8-разрядной шине было добавлено еще 8 разрядов, сделав ее тем самым 16-битной или "широкой" (по аналогии - буква "W" в маркировке). С другой стороны, определенным неудобством явилась необходимость использования 68-проводного кабеля (тип В) и таких же разъемов. Расширение шины данных позволило ввести дополнительные идентификаторы и довести число присоединяемых устройств до 15 (не считая контроллер).

Однако самым впечатляющим вариантом SCSI-2 явилась спецификация Fast Wide SCSI-2. Как явствует из названия, данная модификация SCSI объединила в себе оба вышеуказанных метода повышения скорости передачи данных. Fast Wide SCSI-2 имеет 16-битную шину данных с тактовой частотой 10МГц. Все вместе это обеспечило скорость потока данных в 20Мб/с.

Говоря о различных модификациях SCSI, не следует забывать о том, что декларируемая скорость передачи данных зачастую представляет собой так называемую пропускную способность, т.е. максимальное теоретически возможное значение скорости передачи данных. Реальность же зачастую напоминает холодный душ. Дело заключается в том, что величина пропускной способности соответствует только фазе обмена. Как уже было сказано, фаза запроса и фаза подтверждения используются для нужд управления и совместимости SCSI-устройств. Передача соответствующих сигналов за время длительности этих фаз осуществляется в асинхронном режиме с использованием исходной 8-битной параллельной шины со скоростью 2-4Мб/с. Таким образом, реальная скорость передачи данных составляет около 60% от величины пропускной способности. Это соответствует скорости 6Мб/с для Fast SCSI-2 и Wide SCSI-2 и 12Мб/с для Fast Wide SCSI-2. После всех этих цифр иной неискушенный человек может начать воспринимать слово SCSI как своего рода насмешку или даже ругательство, в особенности с учетом засилья лукавой пропаганды достоинств IDE. Здесь можно сказать только одно: достоинства у IDE есть, и главное из них - меньшая стоимость устройств, оснащенных этим интерфейсом. Однако, когда речь заходит о производительности, то у IDE обнаруживается куда больше недостатков, чем у SCSI. Для иллюстрации данного утверждения приведен рис.3, на котором изображена реальная скорость передачи данных у ряда популярных жестких дисков с интерфейсами как IDE, так и SCSI.

Рис. 3

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

Еще одним преимуществом SCSI является низкая загрузка центрального процессора. Регламентация операций ввода/вывода и главным образом наличие хост-контроллера, "снимающего" с центрального процессора большинство функций управления процессом обмена данными SCSI-устройств, позволяет говорить о гораздо более высокой эффективности SCSI, нежели IDE. Об этом же свидетельствует и рис.4, на котором отражено использование центрального процессора (в процентном соотношении) рядом жестких дисков с интерфейсами SCSI и IDE.

Рис. 4

Перечислив основные достоинства SCSI, стоит упомянуть и о его недостатках. Возможность передачи целых байтов информации при использовании параллельной шины обеспечивается применением кабелей с большим количеством проводов. В последних возникают сильные паразитные помехи, которые тем сильнее, чем выше тактовая частота и чем длиннее кабель. Необходимость избегать различных значений задержки сигнала в отдельных проводах (неизбежный бич всех дешевых проводных соединений) диктует применение дорогих материалов (золотые контакты - обычное дело в высококачественных SCSI-кабелях). Добавьте сюда сложность конструкции - и вы получите главное: дороговизну. Готовы ли вы заплатить эту цену - решать вам. Некоторым утешением может служить тот факт, что в последнее время SCSI-устройства с "узким" интерфейсом сильно подешевели, а с точки зрения реальной производительности, например, винчестер даже с интерфейсом Fast SCSI-2 все еще сохраняет свою актуальность. Подробнее об этом, а также о модификациях SCSI с приставкой Ultra будет рассказано в одном из следующих номеров газеты.

Виктор МОРОЗОВ

Версия для печатиВерсия для печати

Номер: 

38 за 1997 год

Рубрика: 

Hardware
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!