Последовательный арбитраж

Рис. 13.

Рис. 12.

Рис. 11.

Рис. 10.

Арбитр шины

Рис. 9.

Использование логической микросхемы "ИЛИ" с инверсными входами (на ее выходе будет "1" только если на одном или на обоих входах "0") позволяет формировать активное значение сигнала READY только в том случае, если хотя бы один из сигналов AEN (для системной или резидентной шины) активен (на нем присутствует сигнал логического "0").

Вернемся к рис. 9. Устройство, обозначенное на этом рисунке знаком вопроса и определяющее возможность подключения к системной шине, называется арбитром шины (АШ). Каждая МПС, подключенная к системной шине имеет в своем составе арбитр шин. Таким образом, количество арбитров шин (АШ) равно количеству МПС (микропроцессоров) в многопроцессорной системе. Образно выражаясь, АШ является "представителем" МПС по вопросам доступа к системной шине. Получив от микропроцессора информацию о желании использовать системную шину (СШ), АШ "вступает в переговоры" с другими АШ и в результате определяет момент времени, когда ему (его микропроцессору) будет разрешено использование СШ. (рис. 10)

Все АШ соединены между собой посредством специальных линий связи, по которым осуществляется взаимодействие между ними в процессе решения вопросов о возможности и порядке доступа к СШ.

Рассмотрим АШ более подробно (рис. 11):

От микропроцессора к АШ по специальным линиям приходит информация о состоянии микропроцессора (аналогично КШ, рассмотренному ранее). От дешифратора адреса поступает сигнал о том, что в данном цикле обмен будет вестись по СШ (сигнал SYSB). Когда разрешение на занятие шины получено, АШ "открывает" СШИ уже известным нам сигналом AEN. Общая схема соединения АШ с микропроцессором и СШИ приведена на рис. 12.

В общем случае АШ решает следующие задачи:

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

· Задача разрешения конфликтов (задача арбитража). В случае, если одновременно два или более АШ претендуют на занятие СШ, среди них должен быть выбран какой-то один и ему предоставлено право работы с СШ, а остальные переведены в режим ожидания освобождения шины

Рассмотрим первую задачу. Для определения занятости СШ используется специальная сигнальная линия BUSY, к которой параллельно подключаются все АШ (рис. 13):

Получив от микропроцессора и дешифратора адреса информацию о необходимости использования СШ, АШ проверяет ее занятость, анализируя состояние линии BUSY. Наличие логической "1" говорит о том, что СШ свободна, наличие "0" — о том, что СШ занята. Если СШ занята, АШ ожидает ее освобождения, "прослушивая" линию BUSY. Если СШ свободна, АШ сам выдает на линию BUSY сигнал логического "0", сообщая таким образом остальным АШ о том, что шина им занята. По окончании использования шины АШ, "захвативший" шину, переводит сигнал BUSY в неактивное состояние (логической "1"), сообщая другим АШ об освобождении СШ.

Решение второй задачи основано на использовании понятия "приоритет". Каждому АШ назначается некий приоритет и при одновременном запросе СШ доступ получает АШ с более высоким приоритетом. Рассмотрим две основные схемы, используемые для решения этой задачи: схему последовательного и параллельного арбитража.

Схема включения АШ при использовании последовательного арбитража приведена на рис. 14.