Рассмотрим сначала централизованный арбитраж.
Простой пример централизованного арбитража показан на рис. 3.37, д.
В данном примере один арбитр шины определяет, чья очередь следующая.
Часто механизм арбитража встраивается в микросхему процессора, но иногда используется отдельная микросхема.
Шина содержит одну линию запроса (монтажное ИЛИ), которая может запускаться одним или несколькими устройствами в любое время.
Арбитр не может определить, сколько устройств запрашивают шину. Он может определить только факт наличия или отсутствия запросов.
Когда арбитр обнаруживает запрос шины, он устанавливает линию предоставления шины. Эта линия последовательно связывает все устройства ввода-вывода (как в елочной гирлянде). Когда физически ближайшее к арбитру устройство получает сигнал предоставления шины, это устройство проверяет, нет ли запроса шины.
Если запрос есть, устройство пользуется шиной, но не распространяет сигнал предоставления дальше по линии.
Если запроса нет, устройство передает сигнал предоставления шины следующему устройству.
Это устройство тоже проверяет, есть ли запрос, и действует соответствующим образом в зависимости от наличия или отсутствия запроса.
Передача сигнала предоставления шины продолжается до тех пор, пока какое-нибудь устройство не воспользуется предоставленной шиной.
Такая система называется системой последовательного опроса.
При этом приоритеты устройств зависят от того, насколько близко они находятся к арбитру. Ближайшее к арбитру устройство обладает наивысшим приоритетом.
Чтобы приоритеты устройств не зависели от расстояния до арбитра, в некоторых шинах поддерживается несколько уровней приоритета.
На каждом уровне приоритета есть линия запроса шины и линия предоставления шины.
На рис, 337, 6 изображено 2 уровня (хотя в действительности шины обычно поддерживают 4, 8 или 16 уровней).
Каждое устройство связано с одним из уровней запроса шины, причем, чем выше уровень приоритета, тем больше устройств привязано к этому уровню.
На рис. 3,37, б можно видеть, что устройства 1, 2 и 4 обладают приоритетом уровня 1, а устройства 3 и 5 — приоритетом уровня 2.
Если одновременно запрашивается несколько уровней приоритета, арбитр предоставляет шину самому высокому уровню.
Среди устройств одинакового приоритета реализуется система последовательного опроса.
На рис. 3.37, 6 видно, что в случае конфликта устройство 2 «побеждает» устройство 4, а устройство 4 «побеждает» устройство 3.
Устройство 5 имеет низший приоритет, поскольку оно находится в самом конце самого нижнего уровня.
Линия предоставления шины уровня 2 не обязательно должна последовательно связывать устройства 1 и 2, поскольку они не могут посылать на нее запросы.
Однако гораздо проще провести все линии предоставления шины через все устройства, чем соединять устройства особым образом в зависимости от их приоритетов.
Некоторые арбитры содержат третью линию, которая устанавливается, как только устройство принимает сигнал предоставления шины, и получает шину в свое распоряжение.
Как только эта линия подтверждения приема устанавливается, линии запроса и предоставления шины могут быть сброшены.
В результате другие устройства могут запрашивать шину, пока первое устройство ее использует.
К тому моменту, когда закончится текущая передача, следующее задающее устройство уже будет выбрано. Это устройство может начать работу, как только будет сброшена линия подтверждения приема.
С этого момента начинается следующий цикл арбитража. Такая структура требует дополнительной линии и большего количества логических схем в каждом устройстве, но зато при этом циклы шины используются рациональнее.
В системах, где память связана с главной шиной, центральный процессор должен завершать работу со всеми устройствами ввода-вывода практически на каждом цикле шины.
Чтобы решить эту проблему, можно предоставить центральному процессору самый низкий приоритет.
При этом шина будет предоставляться процессору только в том случае, если она не нужна другому устройству.
Центральный процессор всегда может подождать, а устройства ввода-вывода должны получить доступ к шине как можно быстрее, чтобы не потерять данные.
Например, диски, вращающиеся с высокой скоростью, не могут ждать.
Во многих современных компьютерах память помещается на одну шину, а устройства ввода-вывода - на другую, поэтому им не приходится завершать работу, чтобы предоставить доступ к шине.
Дата добавления: 2015-07-24; просмотров: 1144;