Введение	Описание команд
Описание сигналов	Типы ПУ
Описание сообщений	Конфигурирование устройств SCSI

Введение

Шина SCSI
От SCSI-2 к SCSI-3
Краткий обзор многочисленных разновидностей SCSI
Основные отличия SCSI-2 от SCSI-1
Быстрее, выше, сильнее
ULTRA, ULTRA2 и ULTRA3
Характеристики стандартных разновидностей SCSI
Совместимость устройств SCSI

ШИНА SCSI

Системный интерфейс малых компьютеров SCSI (Small Computer System Interface, произносится "скази") был стандартизован ANSI в 1986 году (Х3.131-1986). Интерфейс предназначен для соединения устройств различных классов - памяти прямого (жесткие диски) и последовательного (стриммеры) доступа, CD-ROM, оптических дисков однократной и многократной записи, устройств автоматической смены носителей информации, принтеров, сканеров, коммуникационных устройств и процессоров. Устройством SCSI - SCSI Device - называется как хост-адаптер, связывающий шину SCSI с какой-либо внутренней шиной компьютера, так и контроллер целевого устройства - target controller, с помощью которого оно подключается к шине SCSI. С точки зрения шины все устройства могут быть равноправными и являться как инициаторами обмена (инициализирующими устройствами, ИУ), так и целевыми устройствами (ЦУ), однако чаще всего в роли ИУ выступает хост-адаптер. К одному контроллеру может подключаться несколько ПУ, по отношению к которым контроллер может быть как внутренним, так и внешним. Широкое распространение получили ПУ со встроенным контроллером SCSI (embeded SCSI controller), к которым относятся накопители на жестких магнитных дисках, CD-ROM, стриммеры. Каждое ЦУ может содержать до 8 независимо адресуемых логических устройств (ЛУ) со своими номерами LUN (Logical Unit Number),представляющими ПУ или их части.

По физической реализации интерфейс является 8-битной параллельной шиной с тактовой частотой 5 МГц. Скорость передачи данных достигает 5 Мбайт/с. Впоследствии появилась спецификация - SCSI-2 (Х3.131-1994), расширяющая возможности шины. Тактовая частота шины Fast (быстрый) SCSI-2 достигает 10 МГц, a Ultra SCSI-2 - 20 МГц. Разрядность данных может быть увеличена до 16 бит - эта версия называется Wide (широкий) SCSI-2, а 8-битную версию стали называть Narrow (узкий), 16-битная шина допускает 16 устройств. Стандарт SCSI-2 определяет 32-битную версию интерфейса, но такие устройства обладают неоправданно высокой стоимостью интерфейса. Спецификация SCSI-2 определяет систему команд, которая включает набор базовых команд CCS (Common Command Set), обязательных для всех ПУ, и специфических команд для периферии различных классов. Стандарт полностью описывает протокол взаимодействия устройств, включая структуры передаваемой информации. Поддержка устройствами исполнения цепочек команд (до 256 команд) и независимость их работы друг от друга обусловливают высокую эффективность применения SCSI в многозадачных системах. Возможность присутствия на шине более одного контроллера (инициатора обмена) позволяет обеспечить разделяемое использование периферии несколькими компьютерами, подключенными к одной шине.

SCSI-3 - дальнейшее развитие стандарта, направленное на увеличение количества подключаемых устройств, расширение системы команд и поддержку Plug and Play. В качестве альтернативы параллельному интерфейсу SPI (SCSI-3 Parallel Interface) появляется возможность применения последовательного, в том числе волоконно-оптического, интерфейса со скоростью 100 Мбайт/с. SCSI-3 существует в виде широкого спектра документов, определяющих отдельные аспекты интерфейса. Архитектурная модель SAM (SCSI-3 Architecture Model): Первичный набор общих команд SCP (SCSI-3 Primary Commands) для устройств различных классов дополняется набором команд соответствующего класса устройств:

•	SBC (SCSI-3 Block Commands) - для устройств памяти прямого доступа,

•	SSC (SCSI-3 Stream Commands) - для устройств памяти последовательного доступа,

•	SGC (SCSI-3 Graphic Commands) - для принтеров и сканеров,

•	SMC (SCSI-3 Medium Changer Commands) - для устройств смены носителей,

•	SCC (SCSI-3 Controller Commands) - для хост-контроллеров.

Транспортный уровень может использовать различные протоколы с соответствующей поддержкой физических соединений:

•	SIP (SCSI-3 Interlocked Protocol) - протокол обмена традиционного интерфейса, физически реализуемый интерфейсом SPI.

•	FCP (Fibre Channel Protocol) - протокол оптоволоконного канала с соответствующим физическим уровнем FC-PH.

•	SBP (Serial Bus Protocol) - протокол последовательной шины, реализуемый интерфейсом 1394 (FireWire).

•	GPP (Generic Packetized Protocol) - обобщенный пакетный протокол, реализуемый любым пакетным интерфейсом.

•	SSP (Serial Storage Protocol) - последовательный протокол памяти, реализованный на архитектуре последовательной памяти SSA (Serial Storage Architecture).

К примеру, дисковый накопитель SCSI-3 с параллельным интерфейсом описывает набор стандартов SPI+SIP+SAM+SPC+SBC, а для того же устройства, но с последовательным интерфейсом вместо SPC+SBC будет связка FCP+FC-PH.

Заявка о поддержке устройством стандарта SCSI-3 непосредственно на повышение производительности по сравнению со SCSI-2 не указывает. Однако устройства SCSI-3 в большинстве случаев показывают более высокую производительность.

Для параллельных шин скорость передачи данных определяется частотой передач, измеряемой в миллионах передач в секунду - МТ/s (Mega Transfer/sec), и разрядностью. Комбинации частоты и разрядности обеспечивают широкий диапазон пропускной способности (табл. 1.), достигающей 80 Мбайт/с для версии Ultra2 Wide SCSI. SCSI Fast означает частоту передач 10 МТ/с, временные диаграммы для такого режима определены в SCSI-2. Название SCSI Fast-20 указывает на частоту передач 20 МТ/с. Этот режим, более известный как SCSI Ultra, определен для параллельного интерфейса в SCSI-3. SCSI Fast-40 указывает на частоту передач 40 МТ/с. Этот режим, определенный в SCSI-3 и называемый Ultra2 SCSI, в настоящее время является самым быстрым для параллельной шины. Он реализован только в низковольтной дифференциальной версии интерфейса - LVD. В SCSI-3 предусмотрен режим SCSI Fast-80.

Последовательный интерфейс FCAL (Fibre Channel Arbitrated Loop - кольцо волоконного канала с арбитражем) по реализации ближе к интерфейсам локальных сетей. Этот интерфейс, известный также как Fibre Channel SCSI, может иметь как электрическую (коаксиальный кабель), так и оптоволоконную реализацию. В обоих случаях частота 1 ГГц обеспечивает скорость передачи данных 100 Мбайт/с. Медный кабель допускает длину шины до 30 м, оптический - до 10 км. Здесь используются иные протокольный и физический уровни интерфейса и имеется возможность подключения 126 устройств.

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

От SCSI-2 к SCSI-3

Краткий обзор многочисленных разновидностей SCSI.

Работа над новым стандартом SCSI-2 началась в том же 1986-м году, когда был принят стандарт на SCSI-1. Первоначальная его цель состояла в объединении SCSI-1 со стандартным набором команд (Standard Command Set, SCS) и внесении некоторых улучшений. Однако в итоге этим дело не ограничилось, и принятый в 1993 году документ значительно превосходил по объему первую свою версию, а кроме того, имел несколько существенных отличий и усовершенствований по сравнению с предыдущим. Так, он определял интерфейс с более высокими частотами (например, 10 МГц для быстрых разновидностей Fast SCSI вместо 5 МГц для SCSI-1 и стандартного SCSI-2 «без приставок») и более широкой шиной (в частности, 16 бит для «широких» разновидностей Wide SCSI), а также иную, дифференциальную сигнализацию.

ОСНОВНЫЕ ОТЛИЧИЯ SCSI-2 ОТ SCSI-1

Помимо чисто технических отличий, таких, как увеличение частоты и ширины шины, и введения дифференциального интерфейса, SCSI-2 имеет и множество других функциональных отличий от SCSI-1. Ниже мы постараемся кратко перечислить основные.

Благодаря командам Disconnect и Reconnect периферийное устройство может освободить шину на время выполнения им полученной команды, например поиска данных на диске. Как следствие, главный адаптер получает возможность в это время обратиться к другому устройству на шине. Таким образом, адаптер может передавать (или принимать) данные с одного диска, пока другие осуществляют поиск. В результате это позволяет повысить эффективность использования шины, когда к ней подключено несколько устройств. За счет этого и других усовершенствований накладные расходы удалось в результате снизить до уровня менее 30%.

Благодаря возможности постановки команд в очередь хост может передать периферийному устройству сразу несколько команд, а оно уже перегруппирует их по своему усмотрению с целью оптимизации своей работы, например выполнит второй по очередности запрос вместо первого для повышения общей пропускной способности. Вообще говоря, стандарт не определяет способы оптимизации выполнения команд, и каждый производитель делает это по-своему. Например, в случае дисков это может быть «конвейерный алгоритм» (elevator algorithm), когда диск обслуживает только те запросы из очереди, выполнение которых не требует возвратного движения головки чтения/записи. Отложенные же запросы диск выполняет после достижения головкой конца диска. Различия в алгоритмах оптимизации не влияют на совместимость устройств. Однако при этом постановка команд в очередь должна поддерживаться обоими устройствами (поддержка этой функции является, вообще говоря, необязательной).

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

Список поддерживаемых шиной типов устройств SCSI расширился в два раза. Теперь шина может поддерживать до 10 разных типов устройств.

БЫСТРЕЕ, ВЫШЕ, СИЛЬНЕЕ

Именно этот лозунг советских физкультурников как нельзя лучше подходит, причем практически дословно, для характеристики многочисленных разновидностей SCSI — Fast, Fast Wide, Ultra, Wide Ultra, Ultra2, Wide Ultra2. Каждая из них имеет лучшие характеристики, чем ее предшественница.

«Быстрые» версии Fast Narrow SCSI появились еще в конце 80-х, и в самом начале 90-х уже практически все жесткие диски SCSI имели именно этот интерфейс. Fast SCSI (определение Narrow, т. е. «узкий», обычно опускают) часто считают собственно стандартом SCSI-2, однако в действительности он представляет собой одну из его версий с быстрой узкой шиной с тактовой частотой 10 МГц — «SCSI-2 на 10 Мбайт/с». Сам же стандарт SCSI-2, так сказать, в его «чистом» виде, не предполагает использования ни быстрой, ни широкой шины, и, как и SCSI-1, он имеет предельную скорость в 5 Мбайт/с.

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

В случае несимметричного интерфейса вследствие двукратного увеличения скорости максимальная протяженность шины ограничена 3 м. Вообще же, чем меньше длина кабеля, тем лучше. Все устройства на шине Fast SCSI должны иметь соединители Micro-D (использование Centronics не рекомендуется). Иногда Micro-D называют также соединителем SCSI-2. Терминирование должно производиться по методу Forced Perfect Termination (FPT). При наличии хотя бы одного устройства Fast SCSI вся шина должна соответствовать приведенным ограничениям.

Fast Wide SCSI предусматривает расширение шины с тактовой частотой 10 МГц до 2 байт (16 бит) или 4 байт (32 бита). В случае 16-битной шины пиковая скорость увеличивается, таким образом, еще в два раза и составляет 20 Мбайт/с. Первые реализации этого интерфейса появились в начале 90-х. Шины шириной четыре байта так и не получили распространения, в частности, из-за отсутствия соединителя подходящих размеров для 3,5-дюймового диска. Широкая шина способна поддерживать до 16 устройств.

В принципе, устройства Fast Wide SCSI могут помещаться на ту же шину, что и их «узкие» собратья, однако такое смешение не рекомендуется ввиду применения других кабелей и соединителей. Fast Wide SCSI предусматривает использование 68-контактного P-соединителя и соответствующего кабеля. Иногда его еще называют соединителем SCSI-3, потому что, как ожидалось, он должен был стать основным соединителем в следующем, третьем варианте стандарта.

ULTRA, ULTRA2 И ULTRA3

Спецификация Ultra SCSI предусматривает еще большее увеличение частоты шины — до 20 МГц. Вследствие того, что Ultra SCSI позволяет передавать 20 млн блоков данных в секунду, ее иногда называют Fast-20. Ultra SCSI имеет пиковую скорость 20 Мбайт/с, а ее широкая разновидность Ultra Wide SCSI — 40 Мбайт/с. Первые реализации Ultra SCSI появились в 1995 году.

Спецификация Ultra2 SCSI предусматривает дальнейшее увеличение частоты шины до 40 МГц. Вследствие того, что Ultra2 SCSI позволяет передавать 40 млн блоков данных в секунду, ее иногда называют Fast-40. Первые ее реализации появились в начале 1997 года.

Ultra-2 SCSI имеет одно серьезное отличие от своих предшественниц — в ней первой стала применяться дифференциальная сигнализация низкого напряжения (Low-Voltage Differential, LVD). Используемая до того дифференциальная сигнализация высокого напряжения (High-Voltage Differential, HVD) предусматривала весьма значительную разницу в уровне напряжения — 20 В. В результате дифференциальное терминирование требовало значительной мощности и порождало значительное тепло, которое требовалось каким-то образом удалять. Кроме того, из-за высокого напряжения дифференциальные трансиверы нельзя было интегрировать в микросхемы SCSI и приходилось выполнять в виде дополнительных внешних компонентов.

LVD имеет те же преимущества, что и HVD, а именно — нечувствительность к шумам и удлиненную шину (до 12 м). Однако благодаря тому, что размах напряжения гораздо меньше, всего 1,1 В (используемые уровни напряжения — 0,7 и 1,8 В), этот интерфейс не подвержен проблемам, проистекающим от высокого энергопотребления. Как следствие, трансиверы могут быть реализованы в CMOS и интегрированы в микросхему SCSI.

Как и все предыдущие спецификации SCSI, Ultra2 разрабатывалась таким образом, чтобы пользователи могли эксплуатировать те же самые кабели, соединители и программное обеспечение. Однако из-за различий в уровнях напряжения LVD-устройства не могут работать на той же шине, что и несимметричные или HVD-устройства. Ultra3 SCSI еще больше увеличивает частоту шины — до 80 МГц, как следствие, она называется также Fast-80DT. Последние две буквы расшифровываются как двойной переход — Double Transition, DT. Это означает, что приемник производит синхронизацию информационных сигналов как по переднему, так и по заднему фронту сигналов REQ или ACK . Для широкой шины пиковая скорость составляет 160 Мбайт/с!

Ряд производителей предложил свой вариант Ultra3 SCSI — Ultra 160/m. Она сохраняет ряд особенностей Ultra3, в том числе Fast-80DT, контроль ошибок с помощью циклического избыточного кода (Cyclic Redundancy Code, CRC) и проверку доменов (Domain Validation). Последняя функция позволяет осуществлять проверку конфигурации шины. Характеристики всех стандартных, признаваемых SCSI Trade Association разновидностей SCSI и их официальные названия представлены в Таблице 1. Приведенные предельные значения протяженности шины могут быть превзойдены в случае прямых соединений и специальных приложений. Несимметричный интерфейс не определен для спецификаций после Ultra, а дифференциальный интерфейс с высоким напряжением — для скоростей выше Ultra2. Начиная с Ultra3 узкие шины не используются.

СОВМЕСТИМОСТЬ УСТРОЙСТВ SCSI

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

Для упрощения взаимодействия с устройствами предыдущего поколения производители предложили, в частности, использовать в устройствах Ultra2 так называемую «универсальную ячейку ввода/вывода» (Universal I/O cell). Универсальная ячейка определяет, в каком режиме работает шина, и автоматически настраивается надлежащим образом. В случае несимметричного режима устройства будут работать со скоростями Ultra, при этом шина должна удовлетворять соответствующим ограничениям. В случае режима LVD, а он возможен, только когда все устройства на шине имеют соответствующий интерфейс, скорости будут максимальными — Ultra2.

Другой способ поддерживать одновременно старые и новые устройства (или низкоскоростные и высокоскоростные) — использовать многоканальные главные адаптеры. В этом случае один канал обслуживал бы устройства Ultra2, такие, как жесткие диски, а другой канал — устройства Fast/Ultra, такие, как CD-ROM или ленточный накопитель.