- •Глава 1 Обзор компьютерных систем
- •1.1. Основные элементы
- •1.2. Регистры процессора
- •Управляющие регистры и регистры состояния
- •1.3. Исполнение команд
- •Выборка и исполнение команды
- •Функции ввода-вывода
- •Множественные прерывания
- •Многозадачность
- •1.5. Иерархия запоминающих устройств
- •1.6. Кэш
- •Обоснование
- •Принципы работы кэша
- •Внутреннее устройство кэша
- •1.7. Технологии ввода-вывода
- •Программируемый ввод-вывод
- •Ввод-вывод с использованием прерываний
- •Прямой доступ к памяти
- •1.8. Рекомендуемая литература
- •1.9. Задачи
- •Приложение а. Характеристики производительности двухуровневой памяти
- •Функционирование двухуровневой памяти
- •Производительность
- •Приложение б. Управление процедурами
- •Реализация стека
- •Вызов процедуры и возврат из нее
- •Реентерабельные процедуры
1.9. Задачи
1.1. В гипотетический машине, изображенной на рис. 1.3, кроме указанных имеются команды:
0011— загрузить в аккумулятор данные, поступившие от устройства ввода-вывода;
0111 — вывести содержимое аккумулятора на устройство ввода-вывода. При использовании этих команд устройство идентифицируется с помощью 12-битового адреса. Изобразите схему исполнения (по аналогии со схемой, представленной на рис. 1.4) следующей программы.
1. Загрузить аккумулятор данными из устройства номер 5.
2. Добавить к аккумулятору содержимое ячейки памяти 940.
3. Вывести содержимое аккумулятора на устройство номер 6.
Решите задачу при условии, что из устройства номер 5 поступит число 3, а в ячейке 940 находится число 2.
1.3. На рис. 1.4 исполнение программы разбито на шесть этапов. Расширьте это описание, добавив шаги с использованием регистров MAR и MBR.
1.3. Рассмотрим гипотетический 32-битовый микропроцессор, 32-битовые команды которого состоят из двух полей. В первом байте содержится код команды, а в остальной части команды — непосредственно операнд или его адрес.
а. Какова максимально возможная емкость адресуемой памяти (в байтах)?
б. Рассмотрите факторы, влияющие на скорость системы, если шина микропроцессора имеет (1) 32-битовую локальную адресную шину и 16-битовую локальную шину данных или (2) 16-битовую локальную адресную шину и 16-битовую локальную шину данных.
в. Сколько битов требуется для программного счетчика и регистра команд?
1.4. Рассмотрим гипотетический 32-битовый микропроцессор, генерирующий 16-битовые адреса (предположим, например, что программный счетчик и адресные регистры имеют размер 16 бит) и обладающий 16-битовой шиной данных.
а. Какое максимальное адресное пространство может быть непосредственно доступно этому процессору, если он соединен с "16-битовой памятью"?
б. Какое максимальное адресное пространство может быть непосредственно доступно этому процессору, если он соединен с "8-битовой памятью"?
в. Какие особенности архитектуры позволят этому микропроцессору получить доступ к отдельному "пространству ввода-вывода"?
г. Сколько портов ввода-вывода способен поддерживать этот микропроцессор, если в командах ввода и вывода задаются 8-битовые номера портов? Сколько портов ввода-вывода он может поддерживать с 16-битовыми адресами? Поясните свой ответ.
1.5. Рассмотрим 32-битовый микропроцессор с 16-битовой внешней шиной данных, которая управляется синхронизатором с тактовой частотой 8 МГц. Пусть цикл шины этого микропроцессора по длительности равен четырем циклам синхронизатора. Какую максимальную скорость передачи данных может поддерживать этот процессор? Что будет лучше для повышения производительности: сменить его внешнюю шину данных на 32-битовую или удвоить частоту сигнала синхронизатора, поступающего на микропроцессор? Внесите свое предложение и обоснуйте его.
1.6. Рассмотрим компьютерную систему, в которой содержится контроллер ввода-вывода, управляющий простейшим интерфейсом пользователя, представляющим собой телетайп клавиатура/принтер. В процессоре находятся следующие регистры, непосредственно связанные с системной шиной:
INPR — регистр входных данных, 8 бит;
OUTR — регистр выходных данных, 8 бит;
FGI — флаг входа, 1 бит;
FGO — флаг выхода, 1 бит;
IEN — регистр разрешения прерываний, 1 бит.
Входной поток данных, поступающий от клавиатуры, и выходной, выводимый на принтер, контролируются модулем ввода-вывода. Телетайп кодирует алфавитно-цифровые символы в 8-битовые слова и декодирует 8-битовые слова в алфавитно-цифровые символы. Флаг входа устанавливается при вводе 8-битового слова с телетайпа во входной регистр; флаг выхода устанавливается при выводе слова на принтер.
а. Опишите, как процессор может осуществлять ввод-вывод с телетайпа, используя первые четыре перечисленных регистра.
б. Опишите, как это можно сделать более эффективно, используя регистр IEN.
1.7. Практически во всех системах, в которые входят контроллеры DMA, доступ DMA к основной памяти выполняется с более высоким приоритетом, чем доступ процессора. Почему?
1.8. Контроллер DMA передает символы из внешнего устройства в основную память со скоростью 9600 бит в секунду- Процессор может выбирать команды со скоростью 1млн команд в секунду. Насколько процессор замедлит свою работу из-за работы DMA?
1.9. Компьютер состоит из процессора и устройства ввода-вывода Л, подсоединенного к основной памяти М через совместно используемую шину, которая используется как шина данных и имеет ширину, равную одному слову. Максимальная производительность процессора — 106 команд в секунду. Команда включает в себя в среднем пять машинных циклов, для трех из которых используется шина памяти. Операции чтения-записи в памяти включают в себя один машинный цикл. Предположим, что процессор все время выполняет программы в фоновом режиме, что требует 95% его производительности, а в самих программах не содержится ни одной команды ввода-вывода. Пусть длительность цикла процессора равна длительности цикла шины. Теперь представим, что между М и Л следует переслать очень большой блок данных.
а. Оцените максимальную скорость передачи данных при выполнении операций ввода-вывода, которые могут пройти через D, при использовании программируемого ввода-вывода, если для операции передачи одного слова требуется выполнение двух команд. б. Оцените ту же скорость при передаче данных с использованием DMA.
1.10. Рассмотрим последовательность инструкций.
for (i = 0; i < 20; i++)
for (j = 0;-j < .10; j++)
a[i] = a[i] * j
а. Приведите пример пространственной локализации этой последовательности.
б. Приведите пример временной локализации этой последовательности.
1.11. Обобщите уравнения (1.1) и (1.2) из приложения А к данной главе для n-уровневой иерархической структуры памяти.
1.12. Рассмотрим основную память (т) и кэш (с), характеризующиеся следующими параметрами:
Тс=100ns Cc=0.01 цент/бит
Тm=1200ns Cm=0.001 цент/бит
а. Сколько стоит 1 Мбайт основной памяти?
б. Сколько стоит 1 Мбайт основной памяти, выполненной по технологии кэша?
в. Какова результативность поиска Н, если эффективное время доступа на 10% больше, чем время доступа к кэшу?
1.13. В компьютере есть кэш, основная память и диск, выступающие в роли виртуальной памяти. Если запрашиваемое слово находится не в кэше, а в основной памяти для его загрузки в кэш требуется 60 ns (сюда входит время, которое требуется для первоначальной проверки кэша). После этого происходит новый запрос. Если нет в оперативной памяти, чтобы получить его с диска, необходимо затратить 12 ms, а затем еще 60 ns, чтобы скопировать его в кэш; после этого происходит новый запрос. Результативность поиска в кэше равна 0.9, а результативность поиска в основной памяти — 0.6. Найти среднее время, которое требуется для получения доступа к слову в данной системе.
1.14. Предположим, что при вызове процедур и возврате из них процессор использует стек. Можно ли в такой схеме обойтись без программного счетчика, используя вместо него вершину стека?