Материал: Tannenbaum

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
background image

188 Глава 3. Цифровой логический уровень

Преимущества асинхронной шины очевидны, но в действительности большин-

ство шин являются синхронными. Дело в том, что синхронную систему построить
проще, чем асинхронную. Центральный процессор просто выдает сигналы, а па-

мять просто реагирует на них. Здесь нет никакой причинно-следственной связи,

но если компоненты выбраны удачно, все будет работать и без квитирования. Кро-

ме того, в разработку синхронных шин сделано очень много вложений.

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

До этого момента мы неявно предполагали, что существует только одно задающее

устройство шины — центральный процессор, В действительности микросхемы вво-

да-вывода могут становиться задающим устройством при считывании информа-
ции из памяти и записи информации в память. Кроме того, они могут вызывать

прерывания. Сопроцессоры также могут становиться задающим устройством шины.

Возникает вопрос: «Что происходит, когда задающим устройством шины могут

стать два или несколько устройств одновременно?** Чтобы предотвратить хаос,

который может при этом возникнуть, нужен специальный механизм — так назы-

ваемый

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

Механизмы арбитража могут быть централизованными или децентрализован-

ными. Рассмотрим сначала централизованный арбитраж. Простой пример цент-

рализованного арбитража показан на рис. 3.36,

 а.

 В данном примере один арбитр

шины определяет, чья очередь следующая. Часто бывает, что арбитр встроен в

микросхему процессора, но иногда требуется отдельная микросхема. Шина содер-
жит одну линию запроса (монтажное ИЛИ), которая может запускаться одним

или несколькими устройствами в любое время. Арбитр не может определить, сколь-

ко устройств запрашивают шину. Он может определять только наличие или отсут-
ствие запросов.

Когда арбитр видит запрос шины, он запускает линию предоставления шины.

Эта линия последовательно связывает все устройства ввода-вывода (как в елоч-

ной гирлянде). Когда физически ближайшее к арбитру устройство воспринимает

сигнал предоставления шины, оно проверяет, нет ли запроса шины. Если запрос

есть, устройство пользуется шиной, но не распространяет сигнал предоставления

дальше по линии. Если запроса нет, устройство передает сигнал предоставления

шины следующему устройству. Это устройство тоже проверяет, есть ли запрос,

и действует соответствующим образом в зависимости от наличия или отсутствия

запроса. Передача сигнала предоставления шины продолжается до тех пор, пока

какое-нибудь устройство не воспользуется предоставленной шиной. Такая система

называется

 системой последовательного опроса.

 При этом приоритеты устройств

зависят от того, насколько близко они находятся к арбитру. Ближайшее к арбитру

устройство обладает главным приоритетом.

Чтобы обойти такую систему, в которой приоритеты зависят от расстояния от

арбитра, в некоторых шинах устраивается несколько уровней приоритета. На каж-

дом уровне приоритета есть линия запроса шины и линия предоставления шины.

На рис. 3.36,

 6

 изображено 2 уровня (хотя в действительности шины обычно

содержат 4, 8 или 16 уровней). Каждое устройство связано с одним из уровней

background image

Микросхемы процессоров и шины

189

запроса шины, причем, чем выше уровень приоритета, тем больше устройств
привязано к этому уровню. На рис. 3.36,

 б

 можно видеть, что устройства 1, 2 и 4

используют приоритет 1, а устройства 3 и 5 — приоритет 2,

Арбитр

Сигн

Предоставление шины

1

ал предоставления

Запрос шины

I

1

2

1

3

4

5

шины может передаваться

или не передаваться далее

по цепи

Устройства ввода-вывода

Запрос шины первого уровня

Запрос шины второго уровня

Арбитр

Предоставление шины первого уровня

_ 1 I .

Предоставление шины второго уровня

Рис. 3.36. Одноуровневый централизованный арбитраж шины с использованием системы

последовательного опроса (а); двухуровневый централизованный арбитраж (б)

Если одновременно запрашивается несколько уровней приоритета, арбитр

предоставляет шину самому высокому уровню. Среди устройств одинакового при-

оритета используется система последовательного опроса. На рис. 3.36,

 ОБИДНО, ЧТО

в случае конфликта устройство 2 «побеждает» устройство 4, а устройство 4 «побеж-

дает» устройство 3. Устройство 5 имеет низший приоритет, поскольку оно нахо-
дится в самом конце самого нижнего уровня.

Линия предоставления шины второго уровня необязательно должна последо-

вательно связывать устройства 1 и 2, поскольку они не могут посылать на нее за-

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

Некоторые арбитры содержат третью линию, которая запускается, как только

устройство принимает сигнал предоставления шины, и берет шину в свое распо-
ряжение. Как только запускается эта линия подтверждения приема, линии запроса

и предоставления шины могут быть отключены. В результате другие устройства
могут запрашивать шину, пока первое устройство использует ее. К тому моменту,
когда закончится текущая передача, следующее задающее устройство уже будет
выбрано. Это устройство может начать работу, как только отключается линия

background image

1 9 0

Глава 3. Цифровой логический уровень

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

В системах, где память связана с главной шиной, центральный процессор дол-

жен завершать работу со всеми устройствами ввода-вывода практически на каждом

цикле шины. Чтобы решить эту проблему, можно предоставить центральному про-
цессору самый низкий приоритет. При этом шина будет предоставляться процессо-

ру только в том случае, если она не нужна ни одному другому устройству. Централь-

ный процессор всегда может подождать, а устройства ввода-вывода должны получить

доступ к шине как можно быстрее, чтобы не потерять данные. Диски, вращающие-

ся с высокой скоростью, тоже не могут ждать. Во многих современных компьюте-
рах память помещается на одну шину, а устройства ввода-вывода — на другую,
поэтому им не приходится завершать работу, чтобы предоставить доступ к шине.

Возможен также децентрализованный арбитраж шины. Например, компьютер

может содержать 16 приоритетных линий запроса шины. Когда устройству нужна
шина, оно запускает свою линию запроса. Все устройства контролируют все

линии запроса, поэтому в конце каждого цикла шины каждое устройство может
определить, обладает ли оно в данный момент высшим приоритетом и, следова-

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

арбитра. Он также ограничивает число устройств числом линий запроса.

При другом типе децентрализованного арбитража используется только три

линии независимо от того, сколько устройств имеется в наличии (рис. 3.37). Первая
линия — монтажное ИЛИ. Она используется для запроса шины. Вторая линия
называется BUSY. Она запускается текущим задающим устройством шины. Третья

линия используется для арбитража шины. Она последовательно соединяет все

устройства. Начало цепи связано с источником питания с напряжением 5 В.

+5v

Линия

арбитра

In Out

In Out

In Out

In Out

Запрос шины
Busy

In Out

Рис. 3.37. Децентрализованный арбитраж шины

Когда шина не требуется ни одному из устройств, линия арбитра передает сиг-

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

по цепи устройства не получают сигнал IN и сбрасывают сигнал OUT. В результа-

background image

Микросхемы процессоров и шины

1 9 1

те остается только одно устройство, у которого сигнал IN установлен, а сигнал OUT

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

Немного поразмыслив, можно обнаружить, что из всех устройств, которым нуж-

на шина, доступ к шине получает самое левое. Такая система сходна с системой
последовательного опроса, только в данном случае нет арбитра, поэтому она стоит

дешевле и работает быстрее. К тому же не возникает проблем со сбоями арбитра.

Принципы работы шины

До этого момента мы обсуждали только обычные циклы шины, когда задающее

устройство (обычно центральный процессор) считывает информацию из подчи-

ненного устройства (обычно из памяти) или записывает в него информацию. Од-
нако существует еще несколько типов циклов шины. Давайте рассмотрим некото-

рые из них.

Обычно за раз передается одно слово. При использовании кэш-памяти жела-

тельно сразу вызывать всю строку кэш-памяти (то есть 16 последовательных 32-
битных слов). Часто передача блоками может быть более эффективна, чем такая
последовательная передача информации. Когда начинается чтение блока, задаю-
щее устройство сообщает подчиненному устройству, сколько слов нужно передать
(например, помещая общее число слов на информационные линии в период Ti).

Вместо того чтобы выдать в ответ одно слово, задающее устройство выдает одно

слово в течение каждого цикла до тех пор, пока не будет передано требуемое
количество слов. На рис. 3.38 изображена такая же схема, как и на рис. 3.34, только
здесь появился дополнительный сигнал BLOCK, который указывает, что запра-

шивается передача блока. В данном примере считывание блока из 4 слов занимает

6 циклов вместо 12.

Адрес ; ' Усчитываемый адрес памяти

Данные

 •,-

MREQ

RD

WAIT

BLOCK

Рис. 3.38. Передача блока данных

background image

192

Глава 3. Цифровой логический уровень

Существуют также другие типы циклов шины. Например, если речь идет о сис-

темах с двумя или несколькими центральными процессорами на одной шине, нужно
быть уверенным, что в конкретный момент только один центральный процессор
может использовать определенную структуру данных в памяти. Чтобы упорядо-
чить этот процесс, в памяти должна содержаться переменная, которая принимает
значение 0, когда центральный процессор использует структуру данных, и 1, когда
структура данных не используется. Если центральному процессору нужно полу-
чить доступ к структуре данных, он должен считать переменную, и если она равна О,
придать ей значение 1. Проблема заключается в том, что два центральных процес-
сора могут считать переменную на последовательных циклах шины. Если каждый
процессор видит, что переменная равна 0, а затем каждый процессор меняет значе-
ние переменной на 1, как будто только он один использует эту структуру данных,

то такая последовательность событий ведет к хаосу.

Чтобы предотвратить такую ситуацию, в многопроцессорных системах предус-

мотрен специальный цикл шины, который дает возможность любому процессору

считать слово из памяти, проверить и изменить его, а затем записать обратно в

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

Еще один важный цикл шины — цикл для осуществления прерываний. Когда

центральный процессор командует устройству ввода-вывода произвести какое-то

действие, он ожидает прерывания после завершения работы. Для сигнала преры-

вания нужна шина.

Поскольку может сложиться ситуация, когда несколько устройств одновремен-

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

стандартный контроллер прерываний, который широко используется. В компью-
терах IBM PC и последующих моделях применяется микросхема Intel 8259А. Она
изображена на рис. 3.39.

Процессор

-4

INT

INTA

RD

WR

АО

CS

D0-D7

Контроллер

прерывании

8259А

Таймер

Клавиатура

Принтер

+5v

Рис. 3.39.

 Контроллер прерывания 8259А

Источник: https://files.student-it.ru/previewfile/18474