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

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

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

Краткое содержание главы

223

сигнал CS только в том случае, если на адресной шине появляется адрес данного типа, показан на рис. 3.53. Здесь используются два восьмивходовых вентиля НЕ-И, которые соединяются с вентилем ИЛИ. Чтобы сконструировать схему декодирования адреса, изображенную на рис. 3.53, а, требуется шесть микросхем МИС: четыре восьмивходовые микросхемы, вентиль ИЛИ и микросхема с тремя инверторами.

Если компьютер состоит только из центрального процессора, двух микросхем памяти и PIO, мы можем сильно упростить процесс декодирования адреса. Дело в том, что у всех адресов стираемого ПЗУ и только у адресов стираемого ПЗУ старший разряд А15 всегда равен 0. Следовательно, мы можем просто связать сигнал С5 с линией А15, как показано на рис. 3.53, б.

Теперь решение поместить ОЗУ в адрес 8000Н кажется не таким уж произвольным. Отметим, что в ОЗУ попадают адреса типа Юхххххххххххххх, поэтому для декодирования достаточно двух битов. Точно так же, любой адрес, начинающийся с 11, является адресом PIO. Полная логика декодирования состоит из двух вентилей НЕ-И и инвертора. Поскольку инвертор можно сделать из вентиля НЕ-И, связав два входа вместе, одного счетверенного вентиля НЕ-И более чем достаточно.

Логика декодирования адреса, показанная на рис. 3.53, б, называется частичным декодированием адреса, поскольку в данном случае полные адреса не используются. При таком декодировании считывание из адресов 0001000000000000, 0001100000000000 и 0010000000000000 будет давать один и тот же результат. В действительности любой адрес в нижней половине адресного пространства будет выбирать стираемое ПЗУ. Поскольку дополнительные адреса не используются, в этом нет ничего ужасного, но при разработке компьютера, который будет расширяться в будущем (в случае с игрушками это маловероятно), следует избегать частичного декодирования, поскольку оно сильно ограничивает адресное пространство.

Можно применять и другую технологию декодирования адреса — технологию с использованием декодера (см. рис. 3.12). Связав три входа с тремя адресными линиями самых старших разрядов, мы получаем восемь выходов, которые соответствуют адресам в первом отрезке 8 К, втором отрезке 8 К и т. д. В компьютере, содержащем 8 микросхем ОЗУ по 8 Кх8 байт, полное декодирование осуществляет одна такая микросхема. Если компьютер содержит 8 микросхем памяти по 2 Кх8 байт, для декодирования также достаточно одного декодера, при условии что каждая микросхема памяти занимает отдельный участок адресного пространства в 8 К. (Вспомните наше замечание о том, что расположение микросхем памяти и устройств ввода-вывода внутри адресного пространства имеет значение.)

Краткое содержание главы

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

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

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

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

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

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

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

Pentium II представляет собой пример современного процессора. Системы с таким процессором включают в себя шину памяти, шину PCI, шину ISA и шину USB. Шина PCI может передавать за один раз 64 бита информации с частотой 66 МГц. Этого вполнедостаточно практическидля всехпериферическихустройств, но не для памяти.

Переключатели, индикаторы, принтеры и многие другие устройства ввода-вы- вода можно связать с компьютером, используя микросхемы ввода-вывода (например, 8255А). Эти микросхемы по желанию можно сделать частью пространства ввода-вывода или частью пространства памяти. Выбор микросхемы может происходить с помощью полного или частичного декодирования адреса в зависимости от того, какие задачи выполняет компьютер.

Вопросы и задания

1.Логик заезжает в закусочную и говорит: «Дайте мне, пожалуйста, гамбургер или хот-дог и картофельфри». К несчастью, повар не закончил и шести классов и не знает (да и не хочет знать), какая из двух логических операций, «и» или «или», имеет приоритет над другой. Он считает, что в данном случае допустима любая интерпретация. А какие из нижеперечисленных интерпретаций этого высказывания действительно допустимы? (Отметим, что «или» означает «исключающее ИЛИ»).

Вопросы и задания

225

1.Толькогамбургер.

2.Толькохот-дог.

3.Только картофель фри.

4.Хот-дог и картофель фри.

5.Гамбургер и картофель фри.

6.Хот-дог и гамбургер.

7.Все три.

8.Ничего — логик голодает, потому что он слишком умный.

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

3.Существует 4 булевы функции от одной переменной и 16 функций от двух переменных. Сколько существует функций от трех переменных? А от и переменных?

4.Используя таблицу истинности, покажите, что Р=(Р И £))ИЛИ(РИ НЕ Q).

5.Покажите, как можно воплотить функцию И, используя два вентиля НЕ-И.

6.Используя закон Де Моргана, найдите дополнение от АБ.

7.Используя мультиплексор с тремя переменными, изображенный нарис. 3.11, реализуйте функцию, значение которой равно 1 тогда и только тогда, когда нечетное число входных сигналов равно 1.

8.Мультиплексор с тремя переменными, изображенный нарис. 3.11, вдействительности способен вычислять произвольную функцию от четырех логических переменных. Опишите, как это происходит, и нарисуйте логическую схему для функции, которая принимает значение 0, если слово, соответствующее строке таблицы истинности, содержит четное число букв, и 1, если оно содержит нечетное число букв (например, 0000 = нуль = четыре буквы > 0; 0010 - два - три буквы —> 1; 0111 = семь = четыре буквы -» 0; 1101 = тринадцать = десять букв —> 0). Подсказка: назовем четвертую вход-

ную переменную D. Тогда восемь входных линий можно связать с Vcc, «землей», D или D.

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

10 Нарисуйте логическую схему 2-разрядного кодера, который содержит 4 входные и 2 выходные линии. Ровно одна из входных линий всегда равна 1. Двухразрядное двоичное число на 2 выходных линиях показывает, какая именно входная линия равна 1.

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

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

12. Что делает данная схема?

13.Обычная схема СИС представляет собой 4-разрядный сумматор. Четыре такие микросхемы можно связать вместе и получить 16-разрядный сумматор. Как вы думаете, сколько выводов должен содержать каждый 4-разряд- ный сумматор? Почему?

14.п-разрядный сумматор можно получить путем каскадирования п полных сумматоров, причем перенос в стадию i, который мы будем обозначать Ci, получается из результата вычислений на стадии i-i. Перенос в стадию 0 (Со) равен 0. Если вычисление суммы и переноса составляет на каждой стадии Т не, то перенос в стадию i будет вычислен только через iT не после начала суммирования. При большом п до вычисления переноса в последнюю стадию может пройти очень много времени. Разработайте сумматор, который работает быстрее. Подсказка: каждый перенос С, можно выразить через операнды (биты) A,-i и В,.ь так же как и перенос C,_i. Используя это соответствие, можно выразить С, как функцию от входов на стадии от 0 до i-1, так что все переносы можно будет генерировать одновременно.

15.Если все вентили нарис. 3.18имеютзадержку на прохождение сигнала 10 не, а все прочие задержки не учитываются, сколько потребуется времени (минимум) для получения достоверного выходного сигнала?

16.АЛУ, изображенное на рис. 3.19, способно выполнять сложение 8-разряд- ных двоичных чисел. Может ли оно выполнять вычитание двоичных чисел? Если да, то объясните, как. Если нет, преобразуйте схему таким образом, чтобы она могла вычитать.

17.Иногда бывает нужно, чтобы 8-разрядное АЛУ (см., например, рис. 3.19) выдавало на выходе константу - 1 . Предложите два различных способа того, как это можно сделать. Для каждого способа определите значения шести сигналов управления.

18.16-разрядное АЛУ конструируется из 16 одноразрядных АЛУ, каждое из которых тратит на суммирование 10 не. Если задержка на прохождение сигнала от одного АЛУ к другому составляет 1 не, сколько времени потребуется для получения конечного результата?

19.Каково состояние покоя входов S и R SR-защелки, построенной из двух вентилей НЕ-И?

20.Схема на рис. 3.25 представляет собой триггер, который запускается на нарастающем фронте синхронизирующего сигнала. Преобразуйте эту схему

Вопросы и задания

227

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

21.Вы консультируете неопытных производителей микросхем МИС. Один из ваших клиентов предложил выпустить микросхему, содержащую четыре D- триггера, каждый из которых имеет выходы Q и Q по требованию потенциального важного покупателя. В данном проекте все 4 синхронизирующих сигнала объединены (также по требованию). Входов предварительной установки и очистки у схемы нет. Ваша задача — дать профессиональную оценку этой разработки.

22.В памяти 4x3, изображенной на рис. 3.28, используется 22 вентиля И и три вентиля ИЛИ Сколько потребуется вентилей каждого из двух типов, если схему расширить до размеров 256x8?

23.С увеличением объема памяти, помещаемой на одну микросхему, число выводов, необходимых для обращения к этой памяти, также увеличивается. Иметь большое количество адресных выводов на микросхеме довольно неудобно. Придумайте способ обращения к 2" словам памяти при наличии меньшего количества выводов, чем п.

24.В компьютере с 32-битной шиной данных используются динамические ОЗУ размером 1 Mxl. Каков минимальный объем памяти (в байтах), который может содержаться в этом компьютере?

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

случае будет у памяти на то, чтобы передать данные па шину во время Т3 после того, как был установлен сигнал MREQ?

26.Снова посмотрите на рис. 3 34. Предположим, что тактовый генератор рабо-

тает с частотой 40 МГц, a TAD возросло до 16 не. Можно ли при этом продолжать использовать микросхемы памяти на 40 не?

27.В табл. 3.4 показано, что TM L ДОЛЖНО быть по крайней мере 6 не. Можете ли вы представить микросхему, у которой этот показатель отрицательный? Другими словами, может ли процессор устанавливать сигнал MREQ до того, как адрес стал стабильным? Объясните почему.

28.Предположим, что передача блока, показанная на рис. 3.38, была произведена на шине с рисунка 3.34. Насколько больше получается пропускная способность при передаче блока по сравнению с отдельными передачами (для длинных блоков)? А теперь предположите, что ширина шины составляет 32 бита вместо 8 битов. Каков будет ваш ответ теперь?

29.Посмотрите на рис. 3.35. Обозначьте время перехода адресных линий как

Тд[ и ТА2> время перехода линии MREQ как TMREQI И TMREO.2 И Т. Д. Напишите все неравенства, подразумеваемые при полном квитировании

30.Большинство 32-битных шин допускают считывание и запись по 16 битов. Существуют ли какие-нибудь варианты, где именно поместить данные? Аргументируйте.

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

31.Многие процессоры содержат особый тип цикла шины для подтверждения прерывания. Зачем это нужно?

32.Компьютеру PC/AT, работающему с частотой 10 МГц, требуется 4 цикла, чтобы считать слово. Какую часть пропускной способности шины потребляет процессор?

33.32-битный процессор с адресными линиями А2-А31 требует, чтобы все ссылки к ячейкам памяти были выровнены. Это значит, что центральный процессор должен обращаться только к словам, состоящим из 4, 8,12 и т. д. байтов (число байтов кратно 4), и к полусловам, состоящим из четного числа байтов. Байты могут располагаться где угодно. Сколько существует допустимых комбинаций считываний из памяти и сколько требуется выводов, чтобы их выразить? Дайте два ответа.

34.Почему процессор Pentium II не может работать с 32-битной шиной PCI без потери функциональных возможностей? Ведь другие компьютеры с 64-бит- ной шиной могут осуществлять передачи по 32,16 и даже 8 битов.

35.Предположим, что центральный процессор содержит кэш-память первого и второго уровня со временем доступа 5 не и 10 не соответственно. Время доступа к основной памяти составляет 50 не. Если 20% от всех обращений к памяти приходится на долю кэш-памяти первого уровня, а 60% — на долю кэш-памяти второго уровня, то каково среднее время доступа?

36.Возможно ли, чтобы небольшая встроенная система picojava II содержала микросхему 8255А?

37.Вычислите пропускную способность шины, необходимую для отображения на мониторе VGA (640x480) цветного фильма (30 кадров/с), Предполагается, что данные должны проходить по шине дважды: один раз от компактдиска к памяти, а второй раз от памяти к монитору.

38.Как вы думаете, какой сигнал процессора Pentium II запускает линию FRAME#HaimmePCI?

39.Какие из сигналов, показанных на рис. 3.49, не являются обязательными для протокола шины?

40.Компьютеру на выполнение каждой команды требуется два цикла шины: один для вызова команды, а второй для вызова данных. Каждый цикл шины занимает 250 не, а выполнение каждой команды занимает 500 не (время обработки не принимается в расчет). В компьютере имеется диск. Каждая дорожка этого диска состоит из 16 секторов по 512 байтов. Время обращения диска составляет 8,192 миллисекунд. На сколько процентов снижается скорость работы компьютера во время передачи ПДП (прямой доступ к памяти), если каждая передача ПДП занимает один цикл шины? Рассмотрите два случая: для 8-битных передач и для 16-битных передач по шине.

41.Максимальная полезная нагрузка пакета данных, передаваемого по шине USB, составляет 1023 байта. Если предположить, что устройство может посылать только один пакет данных за кадр, какова максимальная пропускная способность для одного изохронного устройства?

Вопросы и задания

229

42.Посмотрите на рис. 3.53, б. Что получится, если к вентилю НЕ-И, который выбирает микросхему PIO, добавить третью входную линию, связанную сА13?

43.Напишите программу, которая имитирует работу матрицы размером mxn, состоящей из двухвходовых вентилей НЕ-И. Эта схема (она помещается на микросхему) содержит] входных выводов и к выходных выводов. Значения j, к, m и п обрабатываются в процессе компиляции. Программа считывает таблицу монтажных соединений, каждое из соединений определяет вход и выход. Входом может быть либо один из j входных выводов, либо выход ка- кого-нибудь вентиля НЕ-И. Выходом может быть либо один из к выходных выводов, либо вход в какой-нибудь вентиль НЕ-И. Неиспользованные входы принимают значение логической 1. После считывания таблицы соединений программа должна напечатать выход для каждого из 2J возможных входов. Подобные вентильные матрицы широко используются при нанесении на микросхему схем, разрабатываемых по техническим заданиям заказчика, поскольку большая часть этой работы (имеется в виду нанесение вентильной матрицы на микросхему) не зависит от того, какая это будет схема. Для каждой разработки имеет значение только выбор монтажных соединений.

АА.Напишите программу, которая на входе получает два произвольных логических выражения и проверяет, представляют ли они одну и ту же функцию. Входной язык должен включать отдельные буквы (логические переменные), операнды И, ИЛИ и НЕ и скобки Каждое выражение должно помещаться на одну входную линию. Программа вычисляет таблицы истинности для обеих функций и сравнивает их.

45. Напишите программу, которая получает на входе ряд логических выражений и строит матрицы 24x50 и 50x6, которые нужны для реализации этих выражений в программируемой логической матрице, изображенной на рис. 3.14. Входной язык такой же, как в предыдущем задании. Распечатайте эти матрицы на строчном печатающем устройстве.

Глава 4

Микроархитектурный

уровень

Над цифровым логическим уровнем находится микроархитектурный уровень. Его задача — интерпретация команд уровня 2 (уровня архитектуры команд), как показано на рис. 1.2. Строение микроархитектурного уровня зависит от того, каков уровень архитектуры команд, а также от стоимости и предназначения компьютера.

Внастоящее время уровень архитектуры команд часто содержит простые команды, которые выполняются за один цикл (таковы, в частности, системы RISC).

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

Пример микроархитектуры

В идеале мы должны были сначала описать общие принципы разработки микроархитектурного уровня. К сожалению, таких общих принципов не существует. Каждая разработка индивидуальна. По этой причине мы просто подробно рассмотрим конкретный пример. В качестве примера мы выбрали подмножество виртуальной машины Java, как мы и обещали в главе 1. Это подмножество содержит только команды с целыми числами, поэтому мы назвали ее IJVM (Integer JVM; integer — целое число). Полную структуру JVM мы рассмотрим в главе 5.

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

Наша микроархитектура содержит микропрограмму (в ПЗУ), которая должна вызывать, декодировать и выполнять команды IJVM. Мы не можем использовать для этой микропрограммы интерпретатор JVM, разработанный компанией Sun,

Пример микроархитектуры

231

поскольку нам нужна крошечная микропрограмма, которая запускает отдельные вентили аппаратного обеспечения. Интерпретатор JVM компании Sun был написан на языке С, чтобы обеспечить мобильность программного обеспечения. Этот интерпретатор не может управлять аппаратным обеспечением на таком детализированном уровне, который нам нужен. Поскольку реальное аппаратное обеспечение состоит только из компонентов, описанных в главе 3, то теоретически после изучения этой главы читатель сможет пойти в магазин, купить огромное количество транзисторов и сконструировать машину IJVM. Тому, кто успешно выполнит эту задачу, будет предоставлен дополнительный кредит (а также полное психиатрическое обследование).

Разработку данной микроархитектуры удобно считать проблемой программирования, при этом каждая команда уровня архитектуры команд — функция, вызываемая основной программой. В данном случае основная программа довольно проста. Она представляет собой бесконечный цикл. Сначала программа определяет, какую функциюнужно выполнить, затем вызываетэту функцию, азатем начинает всеснова.

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

Команды IJVM очень короткие. Каждая команда состоит из нескольких полей, обычно одного или двух, каждое из которых выполняет определенную функцию. Первое поле является кодом операции. Этот код определяет тип команды и сообщает, что это, например, команда сложения или команда ветвления, или еще какая-ни- будь команда. Многие команды содержат дополнительное поле, которое определяет тип операнда. Например, команды, которые имеют доступ к локальным переменным, должны иметь специальное поле, чтобы определить, какая это переменная.

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

Тракт данных

Трактданных —эточастьцентральногопроцессора,состоящаяизАЛУ(арифмети- ко-логического устройства) и его входов и выходов. Тракт данных нашей микроархитектуры показан на рис. 4.1. Хотя этот тракт данных и был оптимизирован для интерпретации программ IJVM, он схож с трактами данных большинства компьютеров. Он содержит ряд 32-разрядных регистров, которым мы приписали символические названия (например, PC, SP, MDR). Хотя некоторые из этих названий

232 Глава 4 Микроархитектурный уровень

нам знакомы, важно понимать, что эти регистры доступны только на микроархитектурном уровне (для микропрограммы). Им даны такие названия, поскольку они обычно содержат значения, соответствующие переменным с аналогичными названиями на уровне архитектуры команд Содержание большинства регистров передается на шину В. Выходной сигнал АЛУ запускает схему сдвига, а затем шину С Значение из шины С может записываться в один или несколько регистров одновременно Шину А мы введем позже, а пока представим, что ее нет

Г

MAR

 

 

Регистры

 

 

 

 

управления

 

 

памятью

В основную ,

ft

_

 

память и иэ нее

 

 

PC

 

С>;

MBR

 

 

SP

 

 

LV

Сигналы управления

 

 

 

CPP

Т Разрешающий сигнал на шину В

 

 

Т Запись сигнала с шины С в регистр

 

TOS

|==>

 

1

Г

OPC

f

f

Шина С

Шина В

Управление АЛУ

Управлениесхемойсдвига

Рис.4 . 1 .Трактданныхмикроархитектуры, рассматриваемойвэтойглаве