Синхронизация схемы шинного интерфейса и микропроцессора
Представим себе теперь следующую ситуацию. Микропроцессор начинает цикл обмена по системной шине. Дешифратор формирует сигнал AEN, но подключение к шине невозможно — она занята. Устройство, отмеченное на рис. 8 знаком вопроса, не открывает СШИ, обмен начаться не может. Но ведь микропроцессор не знает об этом! Возникает необходимость синхронизации шинного интерфейса с микропроцессором. В случае, когда доступ к запрашиваемому устройству по системной шине не может быть получен, микропроцессор должен быть извещен об этом для того, чтобы приостановить цикл обмена до того момента, когда системная шина станет доступна. Как это можно сделать? Для воздействия на цикл асинхронного обмена микропроцессора есть только один способ — использование сигнала готовности READY, который проверяется в конце второго такта обмена. Как мы помним, если сигнал READY к этому моменту неактивен, микропроцессор не приступает собственно к обмену, переходя к выполнению холостых тактов до перехода READY в активное состояние. Следовательно, в нашем случае сигнал READY должен быть неактивен, если доступ к системной шине невозможен. Реализовать этот принцип можно, например, с помощью следующей схемы (рис. 9):
Рис. 9.
Использование логической микросхемы "ИЛИ" с инверсными входами (на ее выходе будет "1" только если на одном или на обоих входах "0") позволяет формировать активное значение сигнала READY только в том случае, если хотя бы один из сигналов AEN (для системной или резидентной шины) активен (на нем присутствует сигнал логического "0").
Арбитр шины
Вернемся к рис. 9. Устройство, обозначенное на этом рисунке знаком вопроса и определяющее возможность подключения к системной шине, называется арбитром шины (АШ). Каждая МПС, подключенная к системной шине имеет в своем составе арбитр шин. Таким образом, количество арбитров шин (АШ) равно количеству МПС (микропроцессоров) в многопроцессорной системе. Образно выражаясь, АШ является "представителем" МПС по вопросам доступа к системной шине. Получив от микропроцессора информацию о желании использовать системную шину (СШ), АШ "вступает в переговоры" с другими АШ и в результате определяет момент времени, когда ему (его микропроцессору) будет разрешено использование СШ. (рис. 10)
Рис. 10.
Все АШ соединены между собой посредством специальных линий связи, по которым осуществляется взаимодействие между ними в процессе решения вопросов о возможности и порядке доступа к СШ.
Рассмотрим АШ более подробно (рис. 11):
Рис. 11.
От микропроцессора к АШ по специальным линиям приходит информация о состоянии микропроцессора (аналогично КШ, рассмотренному ранее). От дешифратора адреса поступает сигнал о том, что в данном цикле обмен будет вестись по СШ (сигнал SYSB). Когда разрешение на занятие шины получено, АШ "открывает" СШИ уже известным нам сигналом AEN. Общая схема соединения АШ с микропроцессором и СШИ приведена на рис. 12.
Рис. 12.
В общем случае АШ решает следующие задачи:
· Проверка занятости СШ. Так как обмен по СШ в каждый конкретный момент времени может вести только один микропроцессор, подключение микропроцессора к СШ возможно только в том случае, если она в данный момент не используется другим микропроцессором. Таким образом, АШ должен проверить свободность СШ, если она свободна – разрешить "своему" микропроцессору ее использовать, если занята – дождаться ее освобождения.
· Задача разрешения конфликтов (задача арбитража). В случае, если одновременно два или более АШ претендуют на занятие СШ, среди них должен быть выбран какой-то один и ему предоставлено право работы с СШ, а остальные переведены в режим ожидания освобождения шины
Рассмотрим первую задачу. Для определения занятости СШ используется специальная сигнальная линия BUSY, к которой параллельно подключаются все АШ (рис. 13):
Рис. 13.
Получив от микропроцессора и дешифратора адреса информацию о необходимости использования СШ, АШ проверяет ее занятость, анализируя состояние линии BUSY. Наличие логической "1" говорит о том, что СШ свободна, наличие "0" — о том, что СШ занята. Если СШ занята, АШ ожидает ее освобождения, "прослушивая" линию BUSY. Если СШ свободна, АШ сам выдает на линию BUSY сигнал логического "0", сообщая таким образом остальным АШ о том, что шина им занята. По окончании использования шины АШ, "захвативший" шину, переводит сигнал BUSY в неактивное состояние (логической "1"), сообщая другим АШ об освобождении СШ.
Решение второй задачи основано на использовании понятия "приоритет". Каждому АШ назначается некий приоритет и при одновременном запросе СШ доступ получает АШ с более высоким приоритетом. Рассмотрим две основные схемы, используемые для решения этой задачи: схему последовательного и параллельного арбитража.
Дата добавления: 2019-02-08; просмотров: 635;