ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6733
Скачиваний: 8
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. После считывания таблицы соедине-
ний программа должна напечатать выход для каждого из 2
J
возможных вхо-
дов. Подобные вентильные матрицы широко используются при нанесении
на микросхему схем, разрабатываемых по техническим заданиям заказчика,
поскольку большая часть этой работы (имеется в виду нанесение вентиль-
ной матрицы на микросхему) не зависит от того, какая это будет схема. Для
каждой разработки имеет значение только выбор монтажных соединений.
АА.
Напишите программу, которая на входе получает два произвольных логи-
ческих выражения и проверяет, представляют ли они одну и ту же функ-
цию. Входной язык должен включать отдельные буквы (логические пере-
менные), операнды И, ИЛИ и НЕ и скобки Каждое выражение должно
помещаться на одну входную линию. Программа вычисляет таблицы истин-
ности для обеих функций и сравнивает их.
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 . Тракт данных микроархитектуры, рассматриваемой в этой главе