Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура компьютера - Таненбаум Э

..pdf
Скачиваний:
485
Добавлен:
24.05.2014
Размер:
5.67 Mб
Скачать

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

183

чить ширину шины данных (то есть увеличить количество битов за одну передачу). Можно повысить скорость работы шины, но сделать это довольно сложно, поскольку сигналы на разных линиях передаются с разной скоростью (это явление называется перекосом шины). Чем быстрее работает шина, тем больше перекос.

При увеличении скорости работы шины возникает еще одна проблема: в этом случае она не будет совместимой с более старыми версиями. Старые платы, разработанные для более медленной шины, не могут работать с новой. Такая ситуация невыгодна для владельцев и производителей старых плат. Поэтому обычно для увеличения производительности просто добавляются новые линии, как показано на рис. 3.33. Как вы понимаете, в этом тоже есть свои недостатки. IBM PC и его последователи, например, начали с 8 информационных линий, затем перешли к 16, а затем к 32, и все это в одной и той же шине.

Чтобы обойти эту проблему, разработчики иногда отдают предпочтение мультиплексной шине. В этой шине нет разделения на адресные и информационные линии. В ней может быть, например, 32 линии и для адресов, и для данных. Сначала эти линии используются для адресов. Затем они используются для данных. Чтобы записать информацию в память, нужно сначала передавать в память адрес, а затем данные. В случае с отдельными линиями адреса и данные могут передаваться вместе. Объединение линий сокращает ширину и стоимость шины, но система работает при этом медленнее. Поэтому разработчикам приходится взвешивать все за и против, прежде чем сделать выбор.

Синхронизация шины

Шины можно разделить на две категории в зависимости от их синхронизации. Синхронная шина содержитлинию, которая запускается кварцевым генератором. Сигнал на этой линии представляет собой меандр с частотой обычно от 5 до 100 МГц. Любое действие шины занимает целое число так называемых циклов шины. Асинхронная шина не содержит задающего генератора. Циклы шины могут быть любой требуемой длины и необязательно одинаковы по отношению ко всем парам устройств. Ниже мы рассмотрим каждый тип шины отдельно.

Синхронные шины

В качестве примера того, как работает асинхронная шина, рассмотрим временную диаграмму на рис. 3.34. В этом примере мы будем использовать задающий генератор на 40 МГц, который дает цикл шины в 25 не. Хотя может показаться, что шина работает медленно по сравнению с процессорами на 500 МГц и выше, не многие современные шины работают быстрее. Например, шина ISA (она встроена во все персональные компьютеры с процессором Intel) работаетс частотой 8,33 МГц, идаже популярная шина PCI — с частотой 33 МГц или 66 МГц. Причины такой низкой скорости современных шин были даны выше: такие технические проблемы, как перекос шины и требование совместимости.

В нашем примере мы предполагаем, что считывание информации из памяти занимает 40 не с того момента, как адрес стал постоянным. Как мы скоро увидим, понадобится три цикла шины, чтобы считать одно слово. Первый цикл начинается

184

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

на нарастающем фронте отрезка Ть а третий заканчивается на нарастающем фронте отрезка Т3, как показано на рис. 3.34. Отметим, что ни один из нарастающих и задних фронтов не нарисован вертикально, потому что ни один электрический сигнал не может изменять свое значение за нулевое время. В нашем примере мы предполагаем, что для изменения сигнала требуется 1 не. Генератор и линии ADDRESS, DATA, MREQ, RD, WAIT показаны в том же масштабе времени.

Циклчтенияс 1 периодоможидания

Т 2

Г г

Адрес памяти для считывания

X

 

 

ns

 

, Данные Y

 

'мн

 

'RH

 

'DH

Время —*- Рис. 3.34. Временная диаграмма процесса считывания на синхронной шине

Начало Ti определяется нарастающим фронтом генератора. За часть времени Ti центральный процессор помещает адрес нужного слово на адресные линии. Поскольку адрес представляет собой не одно значение (в отличие от генератора), мы не можем показать его в виде одной линии на схеме. Вместо этого мы показали его в виде двух линий с пересечениями там, где этот адрес меняется. Серый цвет на схеме показывает, что в этот момент не важно, какое значение принял сигнал. Используя то же соглашение, мы видим, что содержание линий данных не имеет значения до отрезка Т3.

После того как у адресных линий появляется возможность приобрести новое значение, устанавливаются сигналы MREQ и RD. Первый указывает, что осуществляется доступ к памяти, а не к устройству ввода-вывода, а второй — что осуществляется чтение, а не запись. Поскольку считывание информации из памяти занимает 40 не после того, как адрес стал постоянным (часть первого цикла), память не может передать требуемые данные за период Т2. Чтобы центральный процессор не ожидал поступления данных, память устанавливает линию WAIT в начале отрезка Та. Это действие вводит периоды ожидания (дополнительные циклы шины), до тех пор пока память не сбросит сигнал WAIT. В нашем примере вводится один период ожидания (Т2), поскольку память работает слишком медленно. В начале

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

185

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

Во время первой половины Т3 память помещает данные на информационные линии. На заднем фронте Т3 центральный процессор стробирует (то есть считывает) информационные линии, сохраняя их значения во внутреннем регистре. Считав данные, центральный процессорсбрасываетсигналы MREQ.и RD. Вслучаенеобходимости на следующем нарастающем фронте может начаться еще один цикл памяти.

Далее проясняется значение восьми символов на временной диаграмме (см. рис. 3.34 и табл. 3.4). TAD, например, — это временной интервал между нарастающим фронтом Т( и установкой адресных линий. В соответствии с требованиями синхронизации TAD < 11 не. Значит, производитель процессора 1арантирует, что во время любого цикла считывания центральный процессор будет выдавать требуемый адрес в пределах 11 не от середины нарастающего фронта TV

Таблица 3.4. Некоторые временные характеристики процесса считывания на синхронной шине

Символ

Значение

 

Минимум, не М а к с и м у м , не

TAD

Задержка выдачи

адреса

11

T M L

Промежуток между стабилизацией

6

 

адреса и установкой сигнала MREQ

 

 

Тм

Промежуток между задним фронтом

8

 

синхронизирующего сигнала в цикле Ti

 

 

и установкой сигнала MREQ

 

 

TRL

Промежуток между задним фронтом

8

 

синхронизирующего сигнала в цикле Tt

 

 

и установкой сигнала RD

 

 

Tos

Тм н

Тдн

Период передачи данных до заднего

5

фронта синхронизирующего сигнала

 

Промежуток между задним фронтом

8

синхронизирующего сигнала в цикле Тз

 

и сбросом сигнала MREQ

 

Промежуток между задним фронтом

8

синхронизирующего сигнала в цикле Тэ

 

и сбросом сигнала RD

 

Тон

Период продолжения передачи данных

О

 

с момента сброса сигнала RD

 

Условия синхронизации также требуют, чтобы данные поступали на информационные линии по крайней мере за 5 не (TDs) до заднего фронта Т3, чтобы дать данным время установиться до того, как процессор стробирует их. Сочетание ограничений на TAD И TDS означает, что в худшем случае в распоряжении памяти будет только 62,5-11-5=46,5 не с момента появления адреса и до момента, когда нужно выдавать данные. Поскольку достаточно 40 не, память даже в самом худшем случае может всегда ответить за период Т3. Если памяти для считывания требуется 50 не, то необходимо ввести второй период ожидания, и тогда память ответит в течение Т3.

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

Требования синхронизации гарантируют, что адрес будет установлен по крайней мере за 6 не до того, как появится сигнал MREQ. Это время может быть важно в том случае, если MREQ запускает выбор элемента памяти, поскольку некоторые типы памяти требуют некоторого времени на установку адреса до выбора элемента памяти. Ясно, что разработчику системы не следует выбирать микросхему памяти, на установку которой нужно 10 не.

Ограничения на Тм и TR[. означают, что WREQ и RD будут установлены в пределах 8 не от заднего фронта Ть В худшем случае у микросхемы памяти после установки MREQ и RD останется всего 25+25-8-5=37 не на передачу данных по шине. Это ограничение дополнительно по отношению к интервалу в 40 не и не зависит от него.

Тмн и TRH определяют, сколько времени требуется наотмену сигналов MREQи R~D после того, как данные стробированы. Наконец, ТОн определяет, сколько времени память должна держать данные на шине после снятия сигнала КП. В нашем примере при данном процессоре память может удалить данные с шины, как только сбрасывается сигнал RT); при других процессорах, однако, данные могут сохраняться еще некоторое время.

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

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

Асинхронные шины

Хотя достаточно удобно использовать синхронные шины благодаря дискретным временным интервалам, здесь все же есть некоторые проблемы. Например, если процессор и память способны закончить передачу за 3,1 цикла, они вынуждены продлить ее до 4,0 циклов, поскольку неполные циклы запрещены.

Еще хуже то, что если однажды был выбран определенный цикл шины и в соответствии с ним были разработаны память и карты ввода-вывода, то в будущем трудно делать технологические усовершенствования. Например, предположим, что через несколько лет после выпуска системы, изображенной на рис. 3.34, появилась новая память с временем доступа не 40, а 20 не. Это избавило бы нас от периода ожидания и увеличило скорость работы машины. Теперь представим, что появилась память с временем доступа 10 не. При этом улучшения производительности уже не будет, поскольку в данной разработке минимальное время для чтения — 2 цикла.

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

По этой причине были разработаны асинхронные шины, то есть шины без задающего генератора, как показано на рис. 3.35. Здесь ничего не привязывается к генератору. Когда задающее устройство устанавливает адрес, MREQ, RD и любой

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

187

другой требуемый сигнал, он выдает специальный сигнал, который мы будем называть MSYN (Master SYNchronization). Когда подчиненное устройство получает этот сигнал, оно начинает выполнять свою работу настолько быстро, насколькс это возможно. Когда работа закончена, устройство выдает сигнал SSYN (Slavf SYNchronization).

Адрес

У

Адрес памяти для считывания

JC

 

MREQ

 

 

 

 

 

\

 

RD

 

V

 

 

 

 

MSYN

 

 

 

Данные

 

 

 

SSYN

 

 

 

Рис. 3.35. Работа асинхронной шины

Сигнал SSYN означает для задающего устройства, что данные доступны. Oi фиксирует их, а затем отключает адресные линии вместе с MREQ, RD и M$YN Отмена сигнала MSYN означает для подчиненного устройства, что цикл закончен поэтому устройство отменяет сигнал SSYN, и все возвращается к первоначальному состоянию, когда все сигналы отменены.

Стрелочки на временных диаграммах асинхронных шин (а иногда и синхронных шин) показывают причину и следствие какого-либо действия (рис. 3.35) Установка сигнала MSYN приводит к запуску информационных линий, а также ь установке сигнала SSYN. Установка сигнала SSYN, в свою очередь, вызывает отключение адресных линий, MREQ, RD и MSYN. Наконец, отключение MSYNвызывает отключение SSYN, и на этом процесс считывания заканчивается.

Набор таких взаимообусловленных сигналов называется полным квитированием. Здесь, в сущности, наблюдается 4 события:

1.Установка сигнала MSYN.

2.Установка сигнала SSVN в ответ на сигнал

3.Отмена сигнала MSYN в ответ на сигнал

4.Отмена сигнала SSYN в ответ на отмену сигнала MSYN.

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

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

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

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

До этого момента мы неявно предполагали, что существует только одно задающее устройство шины — центральный процессор, В действительности микросхемы вво- да-вывода могут становиться задающим устройством при считывании информации из памяти и записи информации в память. Кроме того, они могут вызывать прерывания. Сопроцессоры также могут становиться задающим устройством шины. Возникает вопрос: «Что происходит, когда задающим устройством шины могут стать два или несколько устройств одновременно?** Чтобы предотвратить хаос, который может при этом возникнуть, нужен специальный механизм — так назы-

ваемый арбитраж шины.

Механизмы арбитража могут быть централизованными или децентрализованными. Рассмотрим сначала централизованный арбитраж. Простой пример централизованного арбитража показан на рис. 3.36, а. В данном примере один арбитр шины определяет, чья очередь следующая. Часто бывает, что арбитр встроен в микросхему процессора, но иногда требуется отдельная микросхема. Шина содержит одну линию запроса (монтажное ИЛИ), которая может запускаться одним или несколькими устройствами в любое время. Арбитр не может определить, сколько устройств запрашивают шину. Он может определять только наличие или отсутствие запросов.

Когда арбитр видит запрос шины, он запускает линию предоставления шины. Эта линия последовательно связывает все устройства ввода-вывода (как в елочной гирлянде). Когда физически ближайшее к арбитру устройство воспринимает сигнал предоставления шины, оно проверяет, нет ли запроса шины. Если запрос есть, устройство пользуется шиной, но не распространяет сигнал предоставления дальше по линии. Если запроса нет, устройство передает сигнал предоставления шины следующему устройству. Это устройство тоже проверяет, есть ли запрос, и действует соответствующим образом в зависимости от наличия или отсутствия запроса. Передача сигнала предоставления шины продолжается до тех пор, пока какое-нибудь устройство не воспользуется предоставленной шиной. Такая система называется системой последовательного опроса. При этом приоритеты устройств зависят от того, насколько близко они находятся к арбитру. Ближайшее к арбитру устройство обладает главным приоритетом.

Чтобы обойти такую систему, в которой приоритеты зависят от расстояния от арбитра, в некоторых шинах устраивается несколько уровней приоритета. На каждом уровне приоритета есть линия запроса шины и линия предоставления шины. На рис. 3.36, 6 изображено 2 уровня (хотя в действительности шины обычно содержат 4, 8 или 16 уровней). Каждое устройство связано с одним из уровней

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

189

запроса шины, причем, чем выше уровень приоритета, тем больше устройств привязано к этому уровню. На рис. 3.36, б можно видеть, что устройства 1, 2 и 4 используют приоритет 1, а устройства 3 и 5 — приоритет 2,

 

 

Запрос шины

 

 

 

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

I

 

 

 

Арбитр

1

 

 

 

 

 

 

 

 

 

 

 

1

• •

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

1

2

3

4

5

 

 

 

 

 

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

 

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

 

 

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

 

 

 

 

 

 

 

 

по цепи

 

 

 

 

 

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

 

 

 

 

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

 

 

 

 

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

 

 

 

_

1 I .

 

 

 

 

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

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

Если одновременно запрашивается несколько уровней приоритета, арбитр предоставляет шину самому высокому уровню. Среди устройств одинакового приоритета используется система последовательного опроса. На рис. 3.36, ОБИДНО, ЧТО в случае конфликта устройство 2 «побеждает» устройство 4, а устройство 4 «побеждает» устройство 3. Устройство 5 имеет низший приоритет, поскольку оно находится в самом конце самого нижнего уровня.

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

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

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

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

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

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

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

 

 

 

 

 

Запрос шины

 

 

 

 

 

Busy

+5v

 

 

 

 

 

Линия

 

 

 

 

 

арбитра

In Out

In Out

In Out

In Out

In Out

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

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

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

191

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

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

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

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

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

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

Данные•,-

MREQ

RD

WAIT

BLOCK

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

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

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

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

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

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

-4

 

 

INT

 

Таймер

 

 

 

 

 

 

INTA

 

 

 

 

 

RD

Контроллер

Клавиатура

Процессор

 

WR

 

прерывании

 

 

АО

 

 

 

 

8259А

 

 

 

 

CS

 

 

 

 

 

 

 

 

D0-D7

 

 

Принтер

 

+5v

 

Рис.3.39.Контроллерпрерывания8259А