Э. Таненбаум - Архитектура компьютера (1127755), страница 51
Текст из файла (страница 51)
Современные персональные компьютеры обычно содержат специальную шину между центральным процессором и памятью и по крайней мере еще одну шину для устройств ввода-вывода. На рис. 3.33 изображена система с одной шиной памяти и одной шиной ввода-вывода. Микросхема процессора Рис. З.ЗЗ.
Компьютерная система с несколькими шинами В литературе шины обычно изображаются в виде жирных стрелок, как показано на этом рисунке. Разница между жирной стрелкой и нежирной стрелкой, 204 Глава 3. Цифровой логический уровень Таблица 3.3. Примеры задающих и подчиненных устройств Задающее устройство Подчиненное устройство Пример Центральный процессор Центральный процессор Память Устройство ввода-вывода Вызов команд и данных Инициализация передачи данных Центральный процессор Сопроцессор Передача команды от процессора к сопроцессору Устройство ввода-вывода Память Прямой доступ к памяти Сопроцессор Центральный процессор Вызов сопроцессором операндов из центрального процессора через которую проходит короткая диагональная линия с указанием числа битов, небольшая.
Когда тип всех битов одинаков, например, все адресные или все информационные, рисуется обычная стрелка. Когда включаются адресные линии, линии данных и управления, используется жирная стрелка. Хотя разработчики процессоров могут использовать любой тип шины для микросхемы, должны быть введены четкие правила о том, как работает шина; и все устройства, связанные с шиной, должны подчиняться этим правилам, чтобы платы, которые выпускаются сторонними производителями, подходили к системной шине.
Эти правила называются протоколом шины. Кроме того, должны существовать определенные технические требования, чтобы платы от сторонних производителей подходили к направляющим для печатных плат и имели разъемы, соответствующие материнской плате механически, с точки зрения напряжений, синхронизации и т. д. Существует ряд широко используемых в компьютерном мире шин, например: ОпштЪпз (РОР-8), Пп(Ъцз (Р1)Р-11), Мп1ь1Ъцз (8086), 1ВМ РС (РС/ХТ), 1ЯА (РС/АТ), Е18А (80386), М(сгосЬаппе1 (РС/2), РС1 (различные персональные компьютеры), БС81 (различные персональные компьютеры и рабочие станции), 1ч(цЪпз (Мас(пьозЪ), ()шуегза1 Бейа1 Впз (современные персональные компьютеры), Р(ге 1чг1ге (бытовая электроника), тгМЕ (оборудование в кабинетах физики) и Сашас (физика высоких энергий).
Может быть, все стало бы намного проще, если бы все шины, кроме одной или двух, исчезли с поверхности земли. К сожалению, стандартизация в этой области кажется очень маловероятной, поскольку во все эти несовместимые системы уже вложено слишком много средств. Давайте начнем с того, как работают шины. Некоторые устройства, соединенные с шиной, являются активными и могут инициировать передачу информации по шине, тогда как другие являются пассивными и ждут запросов. Активное устройство называется задающим, пассивное — подчиненным.
Когда центральный процессор требует от контроллера диска считать или записать блок информации, центральный процессор действует как задающее устройство, а контроллер диска — как подчиненное. Контроллер диска может действовать как задающее устройство, когда он командует памяти принять слова, которые считал с диска. Несколько типичных комбинаций задающего и подчиненного устройств перечислены в табл.
З.З. Память ни при каких обстоятельствах не может быть задающим устройством. Микросхемы процессоров и шины 205 Двоичные сигналы, которые выдают устройства компьютера, часто недостаточно интенсивны, чтобы активизировать шину, особенно если она достаточно длинная и если к ней подсоединено много устройств. По этой причине большинство задающих устройств шины обычно связаны с ней через микросхему, которая называется драйвером шины и, по существу, является двоичным усилителем. Сходным образом большинство подчиненных устройств связаны с шиной приемником шины.
Для устройств, которые могут быть и задающим, и подчиненным устройством, используется приемопередатчик, или трансивер, шины. Эти микросхемы, предназначенные для взаимодействия с шиной, часто являются устройствами с тремя состояниями, что дает им возможность отсоединяться, когда они не нужны. Иногда они подключаются через открытый коллектор, что дает сходный эффект. Когда одно или несколько устройств на открытом коллекторе требуют доступа к шине в одно и то же время, результатом является булеза операция ИЛИ над всеми этими сигналами. Такое соглашение называется монтажным ИЛИ.
В большинстве шин одни линии являются устройствами с тремя состояниями, а другие, которым требуется свойство монтажного ИЛИ, — открытым коллектором. Как и процессор, шина имеет адресные, информационные линии и управляющие линии. Тем не менее между выводами процессора и сигналами шины может и не быть взаимно однозначного соответствия. Например, некоторые процессоры содержат три вывода, которые выдают сигнал чтения из памяти или записи в память, чтения с устройства ввода-вывода, записи на устройство ввода-вывода или выполнения какой-либо другой операции. Обычная шина может содержать одну линию для чтения из памяти, вторую — для записи в память, третью — для чтения с устройства ввода-вывода, четвертую — для записи на устройство ввода-вывода и т. д.
Тогда связывать процессор с такой шиной должна микросхема- декодер, призванная преобразовывать 3-разрядный кодированный сигнал в отдельные сигналы, которые могут управлять линиями шины. Разработка шин и принципы действия шин — это достаточно сложные вопросы, и по этому поводу написан ряд книг 111, 1931. Принципиальными вопросами в разработке являются ширина шины, синхронизация шины, арбитраж шины и функционирование шины. Все эти параметры существенно влияют на пропускную способность шины. В следующих четырех подразделах мы рассмотрим каждый из них. Ширина шины Ширина шины (количество адресных линий) — самый очевидный параметр при разработке. Чем больше адресных линий содержит шина, тем к большему объему памяти может обращаться процессор.
Если шина содержит и адресных линий, то процессор может использовать ее для обращения к 2" различным ячейкам памяти. Для памяти большой емкости необходимо много адресных линий. Это звучит достаточно просто. Проблема заключается в том, что для широких шин требуется больше проводов, чем для узких. Они занимают больше физического пространства (например, на материнской плате), и для них нужны разъемы большего размера.
Все эти 206 Глава 3. Цифровой логический уровень факторы делают шину дорогостоящей. Следовательно, необходим компромисс между максимальным объемом доступной памяти и стоимостью системы. Система с шиной, содержащей 64 адресные линии, и памятью в 2зз байт будет стоить дороже, чем система с шиной, содержащей 32 адресные линии, и такой же памятью в 2зз байт. Дальнейшее расширение не бесплатное. Многие разработчики систем оказались недальновидными, что привело к неприятным последствиям. Первая модель 1ВМ РС содержала процессор 8088 и 20-разрядную адресную шину (рис.
3.34, а). Шина позволяла обращаться к 1 Мбайт памяти. 20-разрядный адрес ый адрес ый адрес й адрес й адрес й адрес правление Рио. 3.34. Расширение адресной шины с течением времени Когда появился следующий процессор (80286), компания 1псе1 решила увеличить адресное пространство до 16 Мбайт, поэтому пришлось добавить еще 4 линии (не нарушая изначальные 20 по причинам совместимости с предыдущими версиями), как показано на рис.
3.34, б. К сожалению, пришлось также добавить управляющие линии для новых адресных линий. Когда появился процессор 80386, было добавлено еще 8 адресных линий и, естественно, несколько управляющих линий, как показано на рис. 3.34, в. В результате получилась шина Е1БА. Однако было бы лучше, если бы с самого начала имелось 32 линии. С течением времени увеличивается не только число адресных линий, но и число информационных линий, хотя это происходит по другой причине. Можно увеличить пропускную способность шины двумя способами: сократить время цикла шины (сделать большее количество передач в секунду) или увеличить ширину шины данных (то есть увеличить количество битов, передаваемых за цикл).
Можно повысить скорость работы шины, но сделать это довольно сложно, поскольку сигналы на разных линиях передаются с разной скоростью (это явление называется перекосом шины). Чем быстрее работает шина, тем больше перекос. При увеличении скорости работы шины возникает еще одна проблема: в этом случае она становится несовместимой с предыдущими версиями. Старые платы, разработанные для более медленной шины, не могут работать с новой.
Такая си- Микросхемы процессоров и шины 207 туация невыгодна для владельцев и производителей старых плат. Поэтому обычно для увеличения производительности просто добавляются новые линии, как показано на рис. 3.34. Как вы понимаете, в этом тоже есть свои недостатки. Компьютер 1ВМ РС и его последователи, например, начали с 8 информационных линий, затем перешли к 16, потом — к 32 линиям, и все это в одной и той же шине. Чтобы обойти эту проблему, разработчики иногда отдают предпочтение мультиплексной шине.
В этой шине нет разделения на адресные и информационные линии. В ней может быть, например, 32 ливии и для адресов, и для данных. Сначала эти линии используются для адресов, затем — для данных. Чтобы записать информацию в память, нужно сначала передавать в память адрес, а потом — данные. В случае с отдельными линиями адреса и данные могут передаваться вместе. Объединение линий сокращает ширину и стоимость шины, но система работает при этом медленнее. Поэтому разработчикам приходится взвешивать все за и против, прежде чем сделать выбор. Синхронизация шины Шины можно разделить на две категории в зависимости от их синхронизации.
Синхронная шина содержит линию, которая запускается кварцевым генератором. Сигнал на этой линии представляет собой меандр с частотой обычно от 5 до 100 МГц. Любое действие шины занимает целое число так называемых циклов шины. Асинхронная шина не содержит задающего генератора. Циклы шины могут быть произвольными и не обязательно одинаковыми для всех пар устройств.
Далее мы рассмотрим каждый тип шины отдельно. Синхронные шины В качестве примера того, как работает асинхронная гпина, рассмотрим временную диаграмму на рис. 3.35. В этом примере мы будем использовать задающий генератор на 100 МГц, который дает цикл шины в 10 нс. Хотя может показаться, что шина работает медленно по сравнению с процессорами на 3 ГГц и выше, не многие современные шины работают быстрее.