Физический интерфейс
Физически SCSI представляет собой шину, состоящую из 25 сигнальных цепей. Для защиты от помех каждая сигнальная цепь имеет свой отдельный обратный провод. На применяемых двухрядных разъемах контакты сигнальных и обратных цепей располагаются друг против друга. Это позволяет применять в качестве кабелей как витые пары проводов, так и плоские шлейфы, где сигнальные и обратные По типу сигналов различают линейные (Single Ended) и дифференциальные (Differential) версии SCSI. Их кабели и разъемы идентичны, но электрической совместимости устройств нет. Дифференциальная версия для каждой цепи задействует пару проводников, по которым передается парафазный сигнал. Здесь используются специальные дифференциальные приемопередатчики, применяемые и в интерфейсе RS-485, что позволяет значительно увеличить длину кабеля, сохраняя частоту обмена (табл. 5.2). Дифференциальный интерфейс применяется в дисковых системах серверов. Традиционный дифференциальный интерфейс получил название "высоковольтный" - High Voltage Differential (HVD), поскольку в SCSI-3 ему появилась низковольтная альтернатива – Low Voltage Differential (LVD). Низковольтный вариант достигает частоты 40 МТ/с в устройствах Ultra2 SCSI при длине шины В широко используемой линейной версии каждый сигнал передается потенциалом с ТТЛ-уровнями относительно общего провода. Здесь общий (обратный) провод для каждого сигнала тоже должен быть отдельным. В дальнейшем речь пойдет об этой версии. Новые устройства с интерфейсом LVD могут работать на шине вместе с устройствами с линейным интерфейсом – для этого их буферные схемы содержат автоматический определитель типа интерфейса. Однако совместимость относится только к LVD - традиционные устройства с HVD могут работать только с себе подобными. Плоский кабель используется для соединения устройств, расположенных в одном корпусе. На нем может быть наколото несколько разъемов. При необходимости кабели могут сращиваться через специальные переходные разъемы. Кабели сращиваются только через концевые разъемы, Т-образные ответвления недопустимы. Круглый кабель, состоящий из витых пар, используется для соединения вне корпусов устройств. ПУ внешнего исполнения обычно имеют два разъема, что позволяет соединить их в цепочку. Длина кабеля зависит от версии интерфейса и частоты (см. табл. 5.2). При подсчете суммарной длины кабеля следует учитывать возможность использования одного порта хост-адаптера одновременно для внешних и внутренних подключений и суммировать длины внутренних и внешних кабелей.
Ассортимент кабелей SCSI довольно широк: ш А-кабель: стандартный для 8-битного интерфейса, 25 пар проводов. Для внутренних устройств используется плоский шлейф с разъемами IDC-50, для внешних - экранированный круглый кабель с разъемами CENTRONICS-50. ^ В-кабель: малораспространенный 16/32-битный расширитель SCSI-2. ш Р-кабель: 8/16-битный кабель с 34 парами проводов, снабжен улучшенными миниатюрными экранированными разъемами. Применяется в интерфейсах SCSI-2/3, в 8-битном варианте контакты 1-5, 31-39, 65-68 не используются. Разъемы для внешнего подключения выглядят как миниатюрный вариант Centronics с плоскими контактами, внутренние имеют штырьковые контакты. ^ Q-кабель: 68-проводное расширение до 32 бит, используется в паре с Р-кабелем и имеет аналогичную конструкцию. ж Кабель с разъемами DB-25P - 8-битный, стандартный для Macintosh (см. табл. 5.5), используется на некоторых внешних устройствах (lomega ZIP Drive). Встречается иная раскладка цепей, если 25-контактный разъем установлен на хост-адаптере. Возможны также различные варианты кабелей-переходников. Назначение контактов разъемов кабелей приведено в табл. 5.3-5.6. Неудобство вызывает система нумерации контактов, которая различна для внешних и внутренних разъемов. Однако физическая раскладка проводов на разъеме и в плоском кабеле одинакова.
Назначение сигналов раскрывает табл. 5.7. Все сигналы шины являются L-активными: активному состоянию и логической единице соответствует низкий потенциал. На концах кабельных шлейфов обязательно устанавливаются терминаторы, согласованные по импедансу с кабелем. Они предназначены ^ Пассивные (SCSI-1) с импедансом 132 Ом, представляющие собой обычные резисторы. Не пригодны для режимов SCSI-2 с частотой выше 5 МГц. т Активные с импедансом 110 Ом - специальные терминаторы для работы на частоте 10 МГц. ^ FPT (Forced Perfect Terminator) - улучшенный вариант активных терминаторов с ограничителями выбросов. Активные терминаторы требуют питания, для чего в интерфейсе имеются специальные линии TERMPWR. Питание поступает от ИУ.
Каждое устройство SCSI, подключенное к шине, должно иметь свой уникальный адрес, назначаемый при конфигурировании. Для 8-битной шины диапазон значений адреса 0-7, для 16-битной - 0-15. Адрес задается предварительной установкой переключателей или джамперов. Для хост-адаптера возможно программное конфигурирование. Адресация устройств на шине в фазах выборки осуществляется через идентификатор SCSI ID, представляющий адрес в позиционном коде. Адрес определяет номер линии шины данных, которой осуществляется выборка данного устройства. Устройство с нулевым адресом выбирается низким уровнем на В любой момент обмен информацией по шине может происходить только между парой устройств. Операцию начинает И У, а ЦУ ее исполняет. И У выбирает ЦУ по его идентификатору. Чаще всего роли устройств фиксированы: хост-адаптер является инициатором (ИУ), а ПУ - целевым (ЦУ). Возможны комбинированные устройства, выступающие в роли и И У, и ЦУ. В ряде случаев роли устройств меняются: ЦУ может, пройдя фазу арбитража, выполнить обратную выборку (Reselect) ИУ для продолжения прерванной операции. При выполнении команды копирования (Copy) ИУ дает указание ведущему устройству копирована (Copy Master) на обмен данными, который может производиться и с другим ЦУ (для которых ведущее устройство копирования выступит в роли И У). Информация по шине данных передается побайтно асинхронно, используя механизмы запросов (REQuest) и подтверждений (ACKnowledge). Каждый байт контролируется на нечетность (кроме фазы арбитража), но контроль может быть отключен. Интерфейс имеет возможность синхронной передачи данных, ускоряющей обмен. 5.2. Фазы шины Шина может находиться в одной из перечисленных фаз. Роли источников сигналов между ИУ и ЦУ описаны в табл. 5.8.
I - источник сигнала - И У; Т - источник сигнала - ЦУ; АА - источник сигнала - устройство, активное в арбитраже; WA - источник сигнала - устройство-победитель в арбитраже; SID - каждое устройство управляет только битом данных, соответству- В фазе Bus Free шина находится в состоянии покоя – нет никаких процессов обмена; она готова к арбитражу. Признаком является пассивное состояние линий BSY# и SEL#. В фазе Arbitration устройство может получить право на управление шиной. Дождавшись покоя шины (Вш Free), устройство вводит сигнал BSY# и свой идентификатор SCSI ID. Если идентификаторы выставили несколько устройств одновременно, то право на управление шиной получает устройство с наибольшим адресом, а остальные устройства отключаются до следующего освобождения шины. Устройство, выигравшее арбитраж, вводит сигнал SEL# и переходит в фазу Selection или Reselection. В фазе Selection ИУ, выигравшее арбитраж, вводит на шину данных результат логической функции ИЛИ от пары идентификаторов - своего и ЦУ, - сопровождая его битом паритета. Установкой сигнала ATN# И У указывает, что следующей фазой будет Message OUT. ИУ снимает сигнал BSY#. Фаза Reselection аналогична предыдущей, но ее вводит ЦУ. Фаза появляется в том случае, когда ЦУ на время исполнения команды отключалось от шины. По завершении внутренней операции это устройство, выиграв арбитраж, будет вызывать ИУ, которое ранее породило исполнение операции. ЦУ снимает сигнал BSY#, активность сигнала 1/0# отличает данную фазу от фазы Selection. Адресованное ИУ отвечает сигналом BSY#, условия ответа и тайм-аут аналогичны предыдущей фазе. В фазах Command, Data, Status и Message по шине данных передается информация, фазы идентифицируются сигналами MSG#, C/D# и \/0# (табл. 5.9), которыми управляет ЦУ. ИУ может потребовать посылки сообщения (фаза Message OUT) введением сигнала ATN#, a ЦУ может освободить шину, сняв сигналы MSG#, C/D#, 1/0# и BSY#.
Временные диаграммы асинхронного обмена приведены на рис. 5.6. Здесь передача каждого байта сопровождается взаимосвязанной парой сигналов REQ#/ACK#. ИУ фиксирует принимаемые данные, получив сигнал REQ# (по отрицательному перепаду). ЦУ считает принимаемые данные действительными по отрицательному перепаду сигнала АСК#. Асинхронный обмен поддерживается всеми устройствами для всех фаз передачи информации. Рис. 5.6. Временные диаграммы асинхронного обмена (Dl - Фазы передачи данных Data OUT и Data IN no предварительной "договоренности" устройств могут выполняться и в синхронном режиме обмена, диаграммы которого приведены на рис. 5.7. При согласовании синхронного режима определяются минимальные длительности и периоды управляющих импульсов АСК# и REQ#, а также допустимое отставание подтверждений от запросов (REQ/ACK offset agreement). ЦУ передает серию данных, сопровождаемых стробами REQ# (рис. 5.7а) в темпе, ограниченном установленными временными параметрами. ИУ фиксирует принимаемые данные по отрицательному перепаду сигнала REQ#, но отвечать на них сигналом АСК# может с некоторым опозданием. Как только В спецификации SCSI-1 момент возобновления передачи по устранении отставания описан нечетко, в результате чего разработчики могли считать, что очередной запрос (и данные) может последовать лишь после окончания (положительного перепада) сигнала АСК#. Устройство, на это рассчитанное, может терять данные: для него последний ситал REQ# (и данные) будет неожиданным и выглядеть как превышение согласованного смещения. Рис. 5.7. Временные диаграммы синхронного обмена: а - передача, б - прием. Обмен при разрядности 16 и 32 бит происходит аналогично, но при использовании двух кабелей (В и Q) передачи по ним управляются сигналами REQB#/ACKB# и REQQ#/ACKQ# соответственно. По обоим кабелям передачи выполняются в одинаковых режимах. Если в последней фазе данных используются не все байты, передатчик обязан снабдить их корректным битом паритета. При описании фаз шины не говорилось о временных задержках. Они определяются спецификацией так, чтобы возможный "перекос" - неодновременный приход сигналов, вызванный задержкой как в электронных схемах, так и в разных проводах кабеля, - не влиял на устойчивость протокола. В асинхронном режиме обмена на скорость передачи информации влияет и длина кабеля, поскольку изменения состояний участников обмена привязываются к сигналам, распространяющимся по кабелю с ограниченной скоростью. Из-за необходимости учета задержек в случае применения пары кабелей в каждом из них используется своя пара REQ#/ACK#. В фазе Command ЦУ запрашивает от ИУ команду. В фазе Status ЦУ делает запрос на передачу ИУ информации о своем состоянии. В фазах Data IN и Data OUT ЦУ делает запросы на передачу данных к И У и от него соответственно. Фазы Message IN и Message О UT служат для передачи сообщений. Фазу Message OUT ЦУ вводит в ответ на условие Attention, порождаемое ИУ сигналом ATN#, когда оно нуждается в посылке сообщения ЦУ. Фазу Message IN ЦУ вводит при необходимости посылки сообщения ИУ. Между фазами передачи информации сигналы BSY#, SEL#, REQ# и АСК# должны оставаться в неизменном состоянии, меняться могут только значения сигналов C/D#, 1/0#, MSG# и шины данных. Сигналы ATN# и RST# могут порождать условия Attention и Reset соответственно, причем асинхронно по отношению к фазам шины. Эти условия могут привести к изменению предопределенного порядка фаз. Сигнал ATN# вводится ИУ во время любой фазы, кроме арбитража и состояния покоя шины. Сигнал RST# вводится в любой момент любым устройством, и по условию Reset все устройства должны немедленно освободить шину. В зависимости от настройки, принятой для всех устройств конкретной системы, возможно выполнение одного из двух вариантов сброса. "Жесткий" сброс переводит устройства в состояние, принятое по включению питания, сбрасывая все текущие процессы, очереди и т. п. В случае "мягкого" сброса после освобождения шины устройства пытаются завершить начатые операции, сохраняя текущие назначения настроек. Каждый процесс ввода/вывода состоит из следующей последовательности фаз шины: из состояния Bus Free через фазу Arbitration переход к фазе Selection или Reselection. Далее следуют фазы передачи информации (Command, Data, Status, Message). Завершающей фазой является Message In, в которой передается сообщение Disconnect или Command Complete, после чего шина переходит в состояние покоя Bus Free. Архитектура SCSI обеспечивает для каждого процесса ввода/вывода сохранение набора из трех указателей – Saved SCSI Pointers, для команды, состояния и данных. ИУ имеет текущий набор указателей (только один), в который копируется сохраненный набор для текущего процесса. Текущие указатели указывают на очередной байт команды, состояния и данных, которые будут передаваться между памятью ИУ и ЦУ. Сохраненные указатели команды и состояния всегда указывают на начала блоков дескрипторов команд и состояния. Сохраненный указатель данных указывает на начало блока данных до тех пор, пока ЦУ не пришлет сообщение Save Data Pointer. По его приему будет сохранен текущий указатель данных. Когда ЦУ отключается от шины, информация о текущем процессе ввода/вывода содержится в сохраненном наборе указателей. При возобновлении процесса ЦУ сообщением Restore Pointers может потребовать у И У скопировать сохраненный набор в текущий и продолжить выполнение команд данного процесса ввода/вывода. Поскольку указатель данных может быть модифицирован ЦУ до завершения ввода/ вывода, использование указателя для определения реального количества переданн ых данных дает ненадежные результаты. 5.3. Управление интерфейсом Для управления интерфейсом служит система сообщений Message System, которыми обмениваются ИУ и ЦУ. Обмен происходит в фазах Message IN/OUT (см. выше), в одной фазе может передаваться несколько сообщений. Одно сообщение не может расщепляться на несколько фаз. Форматы сообщений стандартизованы; каждое сообщение начинается с кода. Существуют однобайтные (коды OOh, 02h-lFh, SOh-FFh), двухбайтные (коды 20h-2Fh) и расширенные сообщения (код Olh). В двухбайтном сообщении второй байт является аргументом сообщения. В расширенных сообщениях второй байт задает длину, а последующие байты несут код и аргументы сообщения. Коды сообщений приведены в табл. 5.10.
В SCSI-2 для установления связи процесса с конкретным логическим устройством I_T_L (lnitiator_Target_LUN) или с конкретной целевой программой I_T_R (lnitiator_Target_TRN), а также предоставления права разрыва соединения служат сообщения Identify. В байте их кодов биты [2:0] в зависимости от бита 5 LUNTAR задают номер LUN (LUNTAR=0) или TRN (LUNTAR=i). Каждый процесс может быть адресован только одному LUN или TRN. Если ЦУ во время выполнения процесса обнаружит сообщение с иным адресом связи, оно обязано освободить шину (ситуация неожиданного разрыва). Единичным значением бита 6 DiscPriv при передаче сообщения ИУ наделяет ЦУ правом разрыва соединения. ИУ может проинструктировать ЦУ на разрыв соединения, послав ему сообщение Disconnect. Получив сообщение, ЦУ посылает одноименное сообщение (предварительно ЦУ может потребовать сохранения указателя данных, послав сообщение Save Dat Pointer) и освобождает шину. Если ЦУ не поддерживает эту возможность, оно отвечает сообщением Message Reject. Когда процесс, продолжающийся в устройстве, потребует передачи данных, через фазу арбитража ЦУ обратится к ИУ за продолжением обмена. С помощью сообщений согласуются параметры синхронного режима и разрядность данных. Процесс согласования синхронного обмена называется Synchronous Negotiation. Устройство, запрашивающее синхронный обмен, посылает сообщение Synchronous Data Transfer Request с указанием допустимого периода цикла и отставания REQ/ACK. Если другой участник обмена поддерживает синхронный режим, он предложит свои параметры. Согласованными параметрами будут максимальный период и минимальное отставание (нулевое отставание эквивалентно асинхронному режиму). Выбранный режим будет относиться только к фазам передачи между данной парой устройств. Отвергнутое сообщение является требованием асинхронного режима. Поскольку старые хост-адаптеры не поддерживали согласование синхронного режима, на ЦУ запрос синхронного режима может быть заблокирован. О возможности работы в синхронном режиме хост может узнать, послав команды Request Sense и Inquiry. Разрядность передач согласуется аналогично посредством сообщений Wide Data Transfer Request. Согласованные режимы будут действовать до сброса устройств по сообщению Bus Device Reset или "жесткого" сброса, что приведет к установке предопределенных режимов по включению. Согласование режимов не должно инициироваться в каждом процессе, поскольку затраты времени на эту процедуру сведут на нет выигрыш в производительности.
|