Аппаратные интерфейсы ПК

         

Протокол шины


Назначение сигналов параллельной шины раскрывает табл. 5.8. Все сигналы явля­ются L-активными: активному состоянию и логической единице соответствует низкий потенциал, что в данной книге отмечено символом «#» после мнемоники цепи. Обратные (парафазные) цепи обозначаются знаком «+».

Таблица 5.8. Назначение сигналов шины SCSI Сигнал        Назначение

BSY#          Busy — шина занята

SEL#               Select — выбор ЦУ инициатором (Select) или инициатора целевым устройством

(Reselect)

C/D#               Control/Data — управление (низкий уровень)/данные (высокий уровень)

I/O»                 Input/Output — направление передачи относительно ИУ: вводу в ИУ соответствует

низкий уровень. Используется для различия прямой (Select) и обратной (Reselect) выборки: фазе Selection соответствует низкий уровень

5.1. Параллельные интерфейсы SCSI____________________________________ 129

Сигнал       Назначение

MSG#         Message — передача сообщения DB[0:31 ]#    Data Bus — инверсная шина данных

DP[0:3]#      Data Parity — инверсные биты паритета, дополняют количество единичных битов байта до нечетного. DPO# относится к DB[0:7],... DP3# — к DB[24:31]. В фазе арбитража не действуют

TERMPWR  Terminator Power — питание терминаторов



ATN#            Attention — внимание (намерение ИУ послать сообщение)

REQ#            Request — запрос от ЦУ на пересылку данных

ACK#            Acknowledge — подтверждение передачи (ответ на REQ#)

RST#             Reset —сброд

DIFFSENS    Признак дифференциального (LVD) интерфейса: ниже 0,7 В — линейный SE; 0,9-1,9 В— дифференциальный LVD; выше 2,4 В — дифференциальный HVD

Каждое устройство SCSI, подключенное к шине, должно иметь свой уникальный адрес, назначаемый при конфигурировании. Для 8-битной шины диапазон значе­ний адреса 0-7, для 16-битной — 0-15. Адрес задается предварительной установ­кой переключателей или джамперов. Для хост-адаптера возможно программное конфигурирование. Адресация устройств на шине в фазах выборки осуществля­ется через идентификатор SCSI ID, представляющий адрес в позиционном коде.
Адрес определяет номер той линии шины данных, которая осуществляет выбор­ку данного устройства. Устройство с нулевым адресом выбирается низким уров­нем на линии DBO# (SCSI ID-00000001), с адресом 7 - на линии DB7# (SCSI ID=10000000). Для ИУ значение идентификатора определяет приоритет устрой­ства при использовании шины; наибольший приоритет имеет устройство с боль­шим значением адреса. Понятия адрес и идентификатор часто путают, но это все­го лишь две различные формы представления одного и того же параметра. В любой момент обмен информацией по шине может происходить только между парой устройств. Операцию начинает инициатор обмена ИУ (initiator), а целевое устройство ЦУ (target) ее исполняет. ИУ выбирает ЦУ по его идентификатору. Чаще всего роли устройств фиксированы: хост-адаптер является инициатором (ИУ), а периферийное устройство — целевым (ЦУ). Возможны комбинированные устройства, выступающие в роли и ИУ, и ЦУ. В ряде случаев роли устройств меня­ются: ЦУ может, пройдя фазу арбитража, выполнить обратную выборку (Reseleci) ИУ для продолжения прерванной операции. При выполнении команды копиро­вания (Сору) ИУ дает указание ведущему устройству копирования (Copy Master) на обмен данными, который может производиться и с другим ЦУ (для которого ведущее устройство копирования выступит в роли ИУ).

Информация по шине данных передается побайтно (пословно) асинхронно, ис­пользуя механизм запросов (REQuest) и подтверждений (ACKnowledge). Каждый байт контролируется на нечетность (кроме фазы арбитража), но контроль может быть отключен. Интерфейс имеет возможность синхронной передачи данных, ускоряющей обмен (в SCSI-1 синхронного режима не было). Шина может находиться в одной из перечисленных ниже фаз. Роли источников сигналов между ИУ и ЦУ описаны в табл. 5.9.

5. Параллельные интерфейсы SCSI                                                                              130

Таблица 5.9 Источники сигналов SCSI



1   АА: источник сигнала — устройство, активное в арбитраже;



2   WA: источник сигнала — устройство — победитель в арбитраже;

3  SID: каждое устройство управляет только битом данных, соответствующим значению его SCSI ID;

* I: источник сигнала — ИУ;

5  Т: источник сигнала — ЦУ.

В фазе Bus Free шина находится в состоянии покоя — нет никаких процессов об­мена; она готова к арбитражу. Признаком является пассивное состояние линий BSY# и SEL#.

В фазе Arbitration устройство может получить право на управление шиной. Дождав­шись покоя шины (Bus Free), устройство вводит сигнал BSY# и свой идентификатор SCSI ID. Если идентификаторы выставили несколько устройств одновременно, то право на управление шиной получает устройство с наибольшим адресом, а осталь­ные устройства отключаются до следующего освобождения шины. Устройство, вы­игравшее арбитраж, вводит сигнал SEL* и переходит в фазу Selection или Reselection. В фазе Selection ИУ, выигравшее арбитраж, вводит на шину данных результат логической функции ИЛИ от пары идентификаторов — своего и ЦУ, — сопровож­дая его битом паритета. Установкой сигнала ATN# ИУ указывает, что следующей фазой будет Message OUT. ИУ снимает сигнал BSY#. Отсутствие сигнала I/O* от­личает данную фазу от Reselection. Адресованное ЦУ отвечает сигналом BSY#, если паритет корректный и на шине данных присутствует только пара идентификато­ров (его и ИУ). На некорректные значения данных устройства отвечать не долж­ны. Если за заданное время ЦУ не ответило, срабатывает тайм-аут, ИУ освобож­дает шину или вводит сигнал сброса RST#.

Фаза Reselection аналогична предыдущей, но ее вводит ЦУ. Фаза появляется в том случае, когда ЦУ на время исполнения команды отключалось от шины. По завер­шении внутренней операции это устройство, выиграв арбитраж, будет вызывать ИУ, которое ранее породило исполнение операции. ЦУ снимает сигнал BSY#, актив­ность сигнала I/O* отличает данную фазу от фазы Selection. Адресованное ИУ отве­чает сигналом BSY#, условия ответа и тайм-аут аналогичны предыдущей фазе.



5.1. Параллельные интерфейсы SCSI____________________________________ 131

В фазах Command, Data, Status и Message по шине данных передается информа­ция, фазы идентифицируются сигналами MSG#, C/D# и I/O* (табл. 5.10), которы­ми управляет ЦУ. ИУ может потребовать посылки сообщения (фаза Message OUT) введением сигнала ATN#, а ЦУ может освободить шину, сняв сигналы MSG#, C/D#, I/O* и BSY#.

Таблица 5.10. Информационные фазы SCSI

Сигнал                                       Фаза                              Направление

MSG#   C/D#     l/0#

0

0

0

Data OUT

0

0

1

Data IN

0

1

0

Command

0

1

1

Status

1

0

0

Зарезервировано

1

0

1

Зарезервировано

1

1

0

Message OUT

1

1

1

Message IN

Временные диаграммы асинхронного обмена приведены на рис. 5.5. Здесь переда­ча каждого байта сопровождается взаимосвязанной парой сигналов REQ#/ACK#. ИУ фиксирует принимаемые данные, получив сигнал REQ# (по отрицательному перепаду). ЦУ считает принимаемые данные действительными по отрицательно­му перепаду сигнала АСК#. Асинхронный обмен поддерживается всеми устрой­ствами для всех фаз передачи информации.



Рис. 5.5. Временные диаграммы асинхронного обмена (DI — данные от ИУ, DT — данные от ЦУ)

Фазы передачи данных Data OUT и Data IN по предварительной «договоренно­сти» устройств могут выполняться и в синхронном режиме обмена, диаграммы которого приведены на рис. 5.6. При согласовании синхронного режима опре­деляются минимальные длительности и периоды управляющих импульсов АСК# и REQ#, а также допустимое отставание подтверждений от запросов (REQ/ACK offset agreement). ЦУ передает серию данных, сопровождаемых стробами REQ# (рис. 5.6, а), в темпе, ограниченном установленными временными параметрами. ИУ фиксирует принимаемые данные по отрицательному перепаду сигнала REQ#,

132

Глава 5. Шина SCSI

но отвечать на них сигналом АСК# может с некоторым опозданием.


Как только отставание числа принятых сигналов АСК# от числа посланных REQ# достигнет оговоренного предельного значения (в данном примере — 2), ЦУ приостановит об­мен до прихода очередного подтверждения АСК#. Операция считается завершен­ной, когда число принятых подтверждений совпадет с числом посланных запро­сов. При приеме данных ЦУ механизм согласования остается тем же, но данные фиксируются по отрицательному перепаду сигнала АСК# (рис. 5.6, б).

ВНИМАНИЕ

В спецификации SCSI-1 момент возобновления передачи после устранения отставания опи­сан нечетко, в результате разработчики могли посчитать, что очередной запрос (и данные) может последовать лишь после окончания (положительного перепада) сигнала АСК#. Устрой­ство, на это рассчитанное, может терять данные: для него последний сигнал REQ# (и дан­ные) является неожиданным и выглядит как превышение согласованного смещения.



Рис. 5.6. Временные диаграммы синхронного обмена: а — передача; б— прием

Обмен при разрядности 16 бит происходит аналогично. Если в последней фазе данных используются не все байты, передатчик обязан снабдить корректным би­том паритета и неиспользуемые байты.

При описании фаз передачи данных не говорилось о временных задержках. Они определяются спецификацией так, чтобы возможный «перекос» — неодновременный приход сигналов, вызванный задержкой как в электронных схемах, так и в разных проводах кабеля, — не влиял на устойчивость протокола. В асинхронном режиме обмена на скорость передачи информации влияет и длина кабеля, поскольку изме­нения состояний участников обмена привязываются к сигналам, распространя-

5.1. Параллельные интерфейсы SCSI                                                                                    133

ющимся по кабелю с ограниченной скоростью. Если в широкой шине имеется пара кабелей (А и В, что на практике встречается редко), то в каждом из них использу­ется своя пара управляющих сигналов (REQ#/ACK# и REQB#/ACKB#), поскольку эти кабели могут иметь разную длину.



В фазе Command ЦУ запрашивает от ИУ команду. В фазе Status ЦУ делает запрос на передачу И У информации о своем состоянии. В фазах Data IN и Data OUT ЦУ делает запросы на передачу данных к ИУ и от него соответственно. Фазы Message IN и Message O UT служат для передачи сообщений. Фазу Message OUT'ЦУ вводит в ответ на условие Attention, порождаемое ИУ сигналом ATN#, когда оно нуждает­ся в посылке сообщения ЦУ. Фазу Message Ш ЦУ вводит при необходимости по­сылки сообщения ИУ.

Между фазами передачи информации сигналы BSY#, SEL#, REQ# и АСК# должны оставаться в неизменном состоянии, меняться могут только значения сигналов C/D#, I/O#, 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 может потребовать у ИУ скопировать сохраненный набор в текущий и продолжить выполнение команд данного процесса ввода-вывода.

134                                                                                                                       Глава 5. Шина SCSI

ВНИМАНИЕ-------------------------------------------------------------------------------------------------------

Поскольку указатель данных может быть модифицирован ЦУ до завершения ввода-вывода, определение реального количества переданных данных с помощью указателя дает ненадеж­ные результаты.


Содержание раздела