Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТСИ _ Курс лекций _ УМК.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
1.58 Mб
Скачать

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

Мы неявно предполагали, что существует только одно задающее устройство шины – центральный процессор. В действительности микросхемы вво­да / вывода могут становиться задающим устройством при считывании информа­ции из памяти и записи информации в память. Кроме того, они могут вызывать прерывания. Сопроцессоры также могут становиться задающим устройством шины. Чтобы предотвратить сбой работы компьютера, вероятный в случае, когда одновременно несколько устройств могут быть задающими для шины, используют специальный механизм, т.н. арбитраж шины. Механизм арбитража может быть централизованным или децентрализован­ным.

В случае, когда имеет место централизованный арбитраж (рис.15), один «арбитр» шины определяет, чья очередь следующая. Шина содер­жит одну линию запроса (вентиль ИЛИ), которая может запускаться одним или несколькими устройствами в любое время. «Арбитр» не может определить, сколь­ко устройств запрашивают шину. Он может определять только наличие или отсут­ствие запросов.

Когда «арбитр» видит запрос шины, он запускает линию предоставления шины (рис.15 а). Эта линия последовательно связывает устройство-арбитр со всеми устройствами ввода / вывода. Когда устройство, ближайшее к «арбитру», воспринимает сигнал предоставления шины, оно проверяет, нет ли запроса шины. Если запрос есть, устройство пользуется шиной, но не распространяет сигнал предоставления дальше по линии. Если запроса нет, устройство передает сигнал предоставления шины следующему устройству.

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

При этом приоритеты устройств зависят от того, насколько близко они находятся к «арбитру». Ближайшее (физически) к арбитру устройство обладает главным приоритетом. Это не всегда удобно.

Чтобы исключить это, в некоторых системах организации работы шин устраивают (рис.15 б) несколько уровней приоритета. На каж­дом уровне приоритета есть линия запроса шины и линия предоставления шины. Шины обычно содержат 4, 8 или 16 уровней. Каждое устройство связано с одним из уровней запроса шины. Причем, чем выше уровень приоритета, тем больше устройств привязано к этому уровню.

Среди устройств одинакового при­оритета используется система последовательного опроса.

Некоторые «арбитры» содержат третью линию, которая запускается, как только устройство принимает сигнал предоставления шины, и берет шину в свое распо­ряжение. Как только запускается эта линия подтверждения приема, линии запроса и предоставления шины могут быть отключены. В результате другие устройства могут запрашивать шину, пока первое устройство ее использует. К тому моменту, когда закончится текущая передача, следующее задающее устройство уже будет выбрано. Оно может начать работу, как только отключается линия подтверждения приема. С этого момента начинается следующий арбитраж. Такая структура требует наличия дополнительной линии и большего количества логи­ческих схем в каждом устройстве, но при этом циклы шины используются рациональнее.

В системах, где память связана с Главной шиной, центральный процессор дол­жен завершать работу со всеми устройствами ввода / вывода практически на каждом цикле шины. Чтобы решить эту проблему, можно предоставить центральному про­цессору самый низкий приоритет. При этом шина будет предоставляться процессо­ру только в том случае, если она не нужна ни одному другому устройству. Централь­ный процессор всегда может подождать, а устройства ввода / вывода должны получать доступ к шине как можно быстрее, чтобы не потерять данные.

В озможен также децентрализованный арбитраж шины. Например, компьютер может содержать 16 приоритетных линий запроса шины. Когда устройству нужна шина, оно запускает свою линию запроса. Все устройства контролируют все линии запроса, поэтому в конце каждого цикла шины каждое устройство может определить, обладает ли оно в данный момент высшим приоритетом и, следова­тельно, разрешено ли линии пользоваться шиной в следующем цикле. Такой метод требует наличия большего количества линий, но зато не требует затрат на «арбитра». Он также ограничивает число устройств числом линий запроса.

При другом подходе для децентрализованного арбитража используется только три линии независимо от того, сколько устройств имеется в наличии (рис.16). Первая линия – вентиль ИЛИ. Она используется для запроса шины. Вторая линия называется BUSY. Она запускается текущим задающим устройством шины. Третья линия используется для арбитража шины. Она последовательно соединяет все устройства. Начало цепи связано с источником питания (3 – 5 В).

Когда шина не требуется ни одному из устройств, линия «арбитра» передает сиг­нал всем устройствам. Чтобы получить доступ к шине, устройство сначала прове­ряет, свободна ли шина, и установлен ли сигнал «арбитра» IN. Если сигнал IN не установлен, устройство не может стать задающим устройством шины. В этом слу­чае оно сбрасывает сигнал OUT. Если сигнал IN установлен, устройство также сбрасывает сигнал OUT, в результате чего следующее устройство не получает сиг­нал IN и, в свою очередь, также сбрасывает сигнал OUT. Следовательно, все следующие по цепи устройства не получают сигнал IN и сбрасывают сигнал OUT.

В результате остается только одно устройство, у которого сигнал IN установлен. Оно становится задающим устройством шины, запускает линию BUSY и сигнал OUT и начинает передачу данных.