Э. Таненбаум - Архитектура компьютера (1127755), страница 53
Текст из файла (страница 53)
Набор таких взаимообусловленных сигналов называется полным квитированием. Здесь, в сущности, наблюдается 4 события: 1. Установка сигнала ММУХ. 2. Установка сигнала ЯЯУХ в ответ на сигнал ММУХ. 3. Сброс сигнала ММУХ в ответ на сигнал 33УХ.
4. Сброс сигнала ЯЯУХ в ответ на сброс сигнала ММУХ. Следует уяснить, что взаимообусловленность сигналов не является синхронной. Каждое событие вызывается предыдущим событием, а не импульсами генератора. Если какая-то пара устройств (задающее и подчиненное) работает медленно, зто никак не влияет на другую пару устройств, которая может работать гораздо быстрее. Преимущества асинхронной шины очевидны, хотя на самом деле большинство шин являются синхронными. Дело в том, что синхронную систему построить проще, чем асинхронную. Центральный процессор просто выдает сигналы, а память просто реагирует на них. Здесь нет никакой причинно-следственной связи, а если компоненты выбраны удачно, все работает и без квитирования.
Кроме того, в разработку синхронных шин очень много вложено. 212 Глава 3. Цифровой логический уровень Арбитраж шины Запрос шины шины может передаваться илн не передаваться далее по цепи Устройства ввода-вывода Запрос шины первого уровня Рис. З.ЗУ. Одноуровневый централизованный арбитраж шины с последовательным опросом (ай двухуровневый централизованный арбитраж (б] Когда арбитр обнаруживает запрос шины, он устанавливает линию предоставления шины. Эта линия последовательно связывает все устройства ввода-вы- До этого момента мы неявно предполагали, что существует только одно задающее устройство шины — центральный процессор.
В действительности микросхемы ввода-вывода могут становиться задающими устройствами при считывании информации из памяти и записи информации в память. Кроме того, они могут вызывать прерывания. Сопроцессоры также могут становиться задающими устройствами шины. Возникает вопрос: «Что происходит, когда задающим устройством шины становятся два или более устройства одновременно?» Чтобы предотвратить хаос, который может при этом возникнуть, нужен специальный механизм, называемый арбитражем шины. Арбитраж может быть централизованным или децентрализованным. Рассмотрим сначала централизованный арбитраж. Простой пример централизованного арбитража показан на рис.
3.37, а. В данном примере один арбитр шины определяет, чья очередь следующая. Часто механизм арбитража встраивается в микросхему процессора,но иногда используется отдельная микросхема. Шина содержит одну линию запроса (монтажное ИЛИ), которая может запускаться одним или несколькими устройствами в любое время. Арбитр не может определить, сколько устройств запрашивают шину. Он может определить только факт наличия или отсутствия запросов. Микросхемы процессоров и шины 213 вода (как в елочной гирлянде). Когда физически ближайшее к арбитру устройство получает сигнал предоставления шины, это устройство проверяет, нет ли запроса шины. Если запрос есть, устройство пользуется шиной, но не распространяет сигнал предоставления дальше по линии. Если запроса нет, устройство передает сигнал предоставления шины следующему устройству.
Это устройство тоже проверяет, есть ли запрос, и действует соответствующим образом в зависимости от наличия или отсутствия запроса. Передача сигнала предоставления шины продолжается до тех пор, пока какое-нибудь устройство не воспользуется предоставленной шиной. Такая система называется системой последовательного опроса. При этом приоритеты устройств зависят от того, насколько близко они находятся к арбитру. Ближайшее к арбитру устройство обладает наивысшим приоритетом.
Чтобы приоритеты устройств не зависели от расстояния до арбитра, в некоторых шинах поддерживается несколько уровней приоритета. На каждом уровне приоритета есть линия запроса шины и линия предоставления шины. На рис. 3.37, б изображено 2 уровня (хотя в действительности шины обычно поддерживают 4, 8 или 16 уровней). Каждое устройство связано с одним из уровней запроса шины, причем, чем выше уровень приоритета, тем больше устройств привязано к этому уровню. На рис. 3.37, б можно видеть, что устройства 1, 2 и 4 обладают приоритетом уровня 1, а устройства 3 и 5 — приоритетом уровня 2. Если одновременно запрашивается несколько уровней приоритета, арбитр предоставляет шину самому высокому уровню.
Среди устройств одинакового приоритета реализуется система последовательного опроса. На рис. 3.37, б видно, что в случае конфликта устройство 2 «побеждает» устройство 4, а устройство 4 «побеждаеть устройство 3. Устройство 5 имеет низший приоритет, поскольку оно находится в самом конце самого нижнего уровня. Линия предоставления шины уровня 2 не обязательно должна последовательно связывать устройства 1 и 2,поскольку они не могут посылать на нее запросы. Однако гораздо проще провести все линии предоставления шины через все устройства, чем соединять устройства особым образом в зависимости от их приоритетов. Некоторые арбитры содержат третью линию, которая устанавливается, как только устройство принимает сигнал предоставления шины, и получает шину в свое распоряжение.
Как только эта линия подтверждения приема устанавливается, линии запроса и предоставления шины могут быть сброшены. В результате другие устройства могут запрашивать шину, пока первое устройство ее использует. К тому моменту, когда закончится текущая передача, следующее задающее устройство уже будет выбрано. Это устройство может начать работу, как только будет сброшена линия подтверждения приема.
С этого момента начинается следующий цикл арбитража. Такая структура требует дополнительной линии и большего количества логических схем в каждом устройстве, но зато при этом циклы шины используются рациональнее. В системах, где память связана с главной шиной, центральный процессор должен завершать работу со всеми устройствами ввода-вывода практически на каждом цикле шины. Чтобы решить эту проблему, можно предоставить центральному процессору самый низкий приоритет. При этом шина будет предос- 214 Глава 3. Цифровой логический уровень тавляться процессору только в том случае, если она не нужна другому устройству.
Центральный процессор всегда может подождать, а устройства ввода-вывода должны получить доступ к шине как можно быстрее, чтобы не потерять данные. Например, диски, вращаклциеся с высокой скоростью, не могут ждать. Во многих современных компьютерах память помещается на одну шину, а устройства ввода-вывода — на другую, поэтому им не приходится завершать работу, чтобы предоставить доступ к шине. Возможен также децентрализованный арбитраж шины.
Например, компьютер может содержать 16 приоритетных линий запроса шины. Когда устройству нужна шина, оно устанавливает свою линию запроса. Все устройства контролируют все линии запроса, поэтому в конце каждого цикла шины каждое устройство может определить, обладает ли оно в данный момент наивысшим приоритетом и, следовательно, разрешено ли ему пользоваться шиной в следующем цикле.
Такой метод требует большего количества линий, но зато исключается арбитр. В этом случае число устройств ограничивается числом линий запроса. При другом типе децентрализованного арбитража используются только три линии независимо от того, сколько устройств имеется в наличии (рис. 3.38). Первая линия — монтажное ИЛИ. Она требуется для запроса шины. Вторая линия называется ВНЕ и означает занятость. Она запускается текущим задающим устройством шины.
Третья линия служит для арбитража шины. Она последовательно соединяет все устройства. Начало цепи связано с источником питания с напряжением 5 В. алрос шины азу Рис. З.ЗВ. Децентрализованный арбитраж шины Когда шина не требуется ни одному из устройств, линия арбитража передает сигнал всем устройствам. Чтобы получить доступ к шине, устройство сначала проверяет, свободна ли шина, и установлен ли сигнал арбитража 1Х.
Если сигнал 1Х не установлен, устройство не может стать задающим устройством шины. В этом случае оно сбрасывает сигнал 011Т. Если сигнал 1Х установлен, устройство также сбрасывает сигнал ОПТ, в результате чего следующее устройство не получает сигнала 1Х и, в свою очередь, сбрасывает сигнал 01)Т. Следовательно, все следующие по цепи устройства не получают сигнал 1Х и сбрасывают сигнал 01)Т. В результате остается только одно устройство, у которого сигнал 11ч установлен, а сигнал 01)Т сброшен. Оно становится задающим устройством шины, устанавливает линию ВПТУ и сигнал ОПТ, после чего начинает передачу данных. Немного поразмыслив, можно обнаружить, что из всех устройств, которым нужна шина, доступ к шине получает самое левое.
Такая система напоминает систему последовательного опроса, только в данном случае нет арбитра, поэтому она стоит дешевле и работает быстрее. К тому же не возникает проблем со сбоями арбитра. Микросхемы процессоров и шины 215 Принципы работы шины До этого момента мы обсуждали только обычные циклы шины, когда задающее устройство (обычно центральный процессор) считывает информацию из подчиненного устройства (обычно из памяти) или записывает в него информацию.
Однако существуют еще несколько типов циклов шины. Давайте рассмотрим некоторые из них. Обычно за раз передается одно слово. При использовании кэш-памяти желательно сразу вызывать всю строку кэш-памяти (то есть 16 последовательных 32-разрядных слов). Однако часто передача блоками может быть более эффективна, чем такая последовательная передача информации. Когда начинается чтение блока, задающее устройство сообщает подчиненному устройству, сколько слов нужно передать (например, помещая общее число слов на информационные линии в период Т,). Вместо того чтобы выдать в ответ одно слово, задающее устройство выдает одно слово в течение каждого цикла до тех пор, пока не будет передано требуемое количество слов. На рис.