Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
29
Добавлен:
16.04.2013
Размер:
290.82 Кб
Скачать

Арбитраж шины

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

Прежде всего, ПК или, точнее, адаптер шины на ПК проверяет статус шины — «занята» или «свободна». Если шина свободна, то ПК передает по информационным линиям (data lines) свой идентификационный код. (При арбитраже шины каждое устройство передает бит по соответствующей его идентификатору линии, отсюда ограничение на число подключаемых устройств — оно не может превышать ширину шины; в случае SCSI-1 это восемь бит.)

Если одновременно с ПК еще какое-либо устройство стремится получить контроль над шиной, то приоритет получает устройство с наибольшим идентификатором. (В случае, если ширина шины больше 8 бит, в частности 16, как в SCSI-2, то устройства с идентификаторами от 0 до 7 имеют более высокий приоритет, чем устройства с номерами от 8 до 15. Это сделано для того, чтобы 8-битные устройства можно было подключать к широкой шине.) Таким образом, механизм арбитража не обеспечивает «честного» доступа к шине и не позволяет предотвратить занятие шины одним устройством. Поэтому адаптеру SCSI на главном ПК присваивается ID=7, чтобы хост всегда мог получить контроль над шиной, когда это ему необходимо; а периферийным устройствам идентификаторы присваиваются, начиная с нуля, при этом более медленным устройствам, таким, как ленточные накопители, рекомендуется предоставлять более высокий приоритет, нежели более быстрым устройствам, например жестким дискам, чтобы последние не захватывали шину.

SCSI ID

Устройство

7

Хост-адаптер

6

Накопитель на магнитных дисках

5

4

Ленточный или R/W-оптический накопитель

3

CD-ROM

2

Сканер, принтер

1

НЖМД поддерживаемый BIOS хост-адаптера

0

НЖМД поддерживаемый BIOS хост-адаптера

Таблица. Заводская установка идентификаторов устройств

После получения контроля над шиной инициатор (initiator) выбирает целевое устройство (target) посредством активизации одной из восьми линий. Выбранное устройство берет на себя контроль за обменом данными до его завершения. Для начала оно запрашивает у инициатора, какую команду следует выполнить. В ответ, в нашем примере, ПК просит прочитать логические блоки в указанном интервале. Хост ничего не знает и не обязан знать о физической организации диска — числе поверхностей, цилиндров и секторов. С помощью SCSI-команды для дисков Read Capacity («Узнать емкость») он может запросить диск об его емкости, выраженной в количестве логических блоков, и о размере блока, например 512 байт на блок.

Диск подтверждает получение команды и преобразует номера логических блоков в номера секторов, находит и считывает эти сектора, осуществляет исправление ошибок и передает данные байт за байтом, при этом в случае асинхронной передачи он ожидает подтверждения приема каждого байта, в результате, как уже упоминалось, реальная скорость обмена данными для SCSI-1 не превышает 2 Мбайт/с. При синхронной же передаче стороны обмениваются данными с заранее заданной скоростью, например 3,33; 4 или 5 Мбит/с, при этом вовсе не обязательно, чтобы все устройства на шине могли осуществлять синхронную передачу — достаточно, чтобы она поддерживалась двумя взаимодействующими устройствами.

После завершения передачи диск просит сообщить о статусе. Если все нормально и данные не надо передавать повторно, то диск отправляет сообщение о завершении выполнения команды. Таким образом, шина может находиться в одном из следующих состояний (фаз):

BUS FREE (шина свободна)

SELECTION (выбор)

COMMAND (передача команд)

DATA (передача данных)

STATUS (передача статуса)

MESSAGE (передача сообщения)

ARBITRATION (арбитраж)

RESELECTION (повторный выбор).

Группа состояний с COMMAND по MESSAGE соответствует процедуре передачи информации. Арбитраж и повторный выбор осуществляются только в случае конкуренции за шину одновременно нескольких устройств.

Соседние файлы в папке OUT