Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4,a._Konspekt_1.doc
Скачиваний:
137
Добавлен:
22.08.2013
Размер:
2.97 Mб
Скачать

3.3.2.2. Фазы шины

в начало

Шина может находиться в одной из перечисленных фаз. Роли источников сигналов между ИУ и ЦУ описаны в таблице 3.10.

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

Фаза шины

Сигнал

 

BSY#

SEL#

REQ#, C/D#, I/O#, MSG#

ACK# ATN#

DBx#, DBPx#

Bus Free

-

-

-

-

-

Arbitration

AA

WA

-

-

SID

Selection

I, T

I

-

I

I

Reselection

I, T

T

T

I

T

Command

T

-

T

I

I

Data IN

T

-

T

I

T

Data OUT

T

-

T

I

I

Status

T

-

T

I

T

Message IN

T

-

T

I

T

Message OUT

T

-

T

I

I

· I - источник сигнала - ИУ;

· Т - источник сигнала - ЦУ;

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

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

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

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

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

Сигнал

Фаза

Направление

MSG#

C/D#

I/O#

0

0

О

Data OUT

I =>T

0

0

1

Data IN

I<=Т

0

1

О

Command

I=>T

0

1

1

Status

I<=Т

1

0

О

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

 

1

0

1

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

 

1

1

О

Message OUT

I=>Т

1

1

1

Message IN

I<=Т

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

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

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

Обмен при разрядности 16 и 32 бит происходит аналогично, но при использовании двух кабелей (В и Q) передачи по ним управляются сигналами REQB#/ACKB# и REQQ#/ACKQ# соответственно. По обоим кабелям передачи выполняются в одинаковых режимах. Если в последней фазе данных используются не все байты, передатчик обязан снабдить их корректным битом паритета.

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

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

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

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

Соседние файлы в предмете Системы ввода и вывода данных