Э. Таненбаум - Архитектура компьютера (1127755), страница 91
Текст из файла (страница 91)
Регистры ТМР1 и ТМР2 — это защелки, обслуживающие АЛУ. Перед выполнением операций в АЛУ соответствующие операнды копируются в эти защелки. Результаты вычислений в АЛУ записываются в любой регистр записи, доступ к которому обеспечивает основная шина. Коды состояний, обозначающие нулевые, отрицательные и тому подобные результаты, записываются в регистр РЯЖ (Ргойгаш 51а1пз Жогп — слово состояния программы). В 8051 предусмотрены независимые модули памяти для размещения данных и кода. Емкость ОЗУ для размещения данных составляет 128 (модель 8051) или 256 (модель 8052) байт; соответственно, 8-разрядного регистра КАМ АППК вполне достаточно для полной адресации этой памяти.
В процессе адресации ОЗУ адрес целевого байта размещается в регистре КАМ АППК, после чего производится обращение к памяти. Емкость памяти кода может достигать 64 Кбайт (при условии размещения модуля памяти вне микросхемы), поэтому разрядность регистра КОМ АППК составляет 16 бит. Схема адресации к программному коду в ПЗУ с помощью регистра КОМ АППК аналогична вышеописанной схеме для памяти данных.
Регистр ПРТК (ПопЫе Ро1пТеК вЂ” двойной указатель) — это 16-разрядный временный регистр, предназначеннгяй для управления и сборки 16-разрядных адресов. Регистр РС представляет собой 16-разрядный счетчик команд; иными словами, он определяет адрес следующей команды, которую требуется вызвать и выполнить. Регистр РС 1псгешепгег — это специальный аппаратный модуль, выполняющий роль псевдорегистра. Когда в него копируется, а затем считывается содерхсимое регистра РС, его значение автоматически увеличивается на единицу. Ни к РС, ни к РС!псгегпеп1ег нельзя обратиться через основную шину. Наконец, В()ГРЕК вЂ” это еще один 16-разрядный временный регистр.
На самом деле каждый 16-разрядный регистр процессора 8051 состоит из пары 8-разрядных регистров, с каждым из которых можно выполнять разные операции. В дополнение ко всему, на микросхеме 8051 устанавливаются три 16-разрядных таймера, необходимых для выполнения приложений в реальном времени. Также предусмотрено четыре 8-разрядных порта ввода-вывода, через которые процессор 8051 может управлять 32 внешними кнопками, световыми индикаторами, датчиками, выключателями и т. д.
Именно наличие таймеров и портов ввода-вывода делает возможным применение 8051 в качестве встроенного процессора без установки дополнительных микросхем. Процессор 8051 относится к категории синхронных — большинство команд, которые он обрабатывает, завершаются за один цикл. Каждый цикл делится на шесть частей, называемых состояниями. В первом состоянии следующая команда вызывается из ПЗУ, и по основной шине отправляется в ре- 366 Глава 4. Уровень микроархитектуры гистр 1К. Во втором состоянии проводится декодирование этой команды, а значение в регистре РС увеличивается на единицу.
В третьем состоянии подготавливаются операнды; в четвертом один из них передается основной шине, после чего, как правило, размещается в регистре ТМР1 и выполняет роль операнда АЛУ. В этом же состоянии возможно копирование содержимого АСС в регистр ТМР2, после чего оба АЛУ становятся готовы к дальнейшей обработке. В пятом состоянии происходит выполнение команд АЛУ. Наконец, в шестом состоянии результаты выполнения команд АЛУ передаются обратно основной шине.
Одновременно в регистре КОМ АП1Ж проводится подготовка к вызову следующей команды. Об устройстве 8051 можно было бы рассказать подробнее, однако имеющегося описания и схемы, изображенной на рис. 4.35, вполне достаточно для того, чтобы получить общее представление. Резюмируя вышеизложенное, отметим, что 8051 состоит из одной основной шины (что позволяет уменьшить размер микросхемы), гетерогенного набора регистров, трех таймеров и четырех портов, подключенных к основной шине, а также нескольких дополнительных регистров, соединенных с локальной шиной. В течение каждого цикла тракта данных два АЛУ получают на входе по одному операнду, после чего, как и в более современных системах, результаты сохраняются в регистре.
Сравнение процессоров Репарат, 0йгаЗРАВС и 8051 Приведенные три процессора во многом отличаются друг от друга, однако у них есть удивительная общность, которая может помочь в разработке компьютера. Репйнш 4 поддерживает унаследованный набор С15С-команд, который инженеры компании 1пье1 рады бы слить в ближайший водоем, но этим бы они безусловно нарушили природоохранное законодательство.
П1ггаБРАКС П1 — классическая К1ЯС-система с эффективным набором команд. 8051 — простой 8-разрядный процессор, применяемый в качестве встроенного компьютера. В основе всех представленных примеров — набор регистров и один или несколько АЛУ, выполняющих простые арифметические и булевы операции с операндами из регистров. Несмотря на различия, все три машины имеют сходные функциональные блоки.
Все функциональные блоки получают микрооперации, в которых содержится код операции, а также указаны два входных и один выходной регистр. Все они могут выполнять микрооперацию за один цикл. Все они конвейеризированы и поддерживают прогнозирование ветвлений. Наконец, все содержат разделенную кэш-память для команд и для данных.
Такое внутреннее сходство не случайно, причиной его являются вовсе не постоянные переходы инженеров из одной компании Кремниевой долины в другую. Когда мы рассматривали микроархитектуры М1с-3 и М1с-4, мы видели, что достаточно просто построить конвейеризированный тракт данных с двумя регистрами в качестве источников, в котором значения этих регистров проходят через АЛУ, а результат сохраняется в регистре. На рис.
4.22 представлено графиче- Краткое содержание главы 367 ское изображение такого конвейера. Для современной технологии это наиболее эффективная система. Главное различие между Репг1цщ 4 и ИтгаЯРАКС П1 состоит в том, как передаются 18А-команды функциональному блоку. Компьютеру Репг1цш 4 приходится разбивать С18С-команды, чтобы преобразовать их в 3-регистровый формат, необходимый для функционального блока. Именно этот процесс показан на рис. 4.32 — разбиение больших команд на маленькие микрооперации.
Машине П1ггаЯРАКС П1 не нужно ничего делать, поскольку ее исходные команды уже представляют собой удобные и компактные микрооперации. Вот почему большинство новых архитектур 18А относятся к типу К1БС, который обеспечивает оптимальное сочетание набора команд и внутреннего механизма их выполнения. Полезно сравнить нашу последнюю разработку, микроархитектуру М1с-4, с этими тремя реальными машинами. М1с-4 больше всего напоминает Репйцш 4.
Обе системы интерпретируют команды, не являющиеся К15С-командами. Для этого обе системы разбивают команды на микрооперации, в которых указаны код операции, два входных и один выходном регистр. В обоих случаях микро- операции помещаются в очередь для дальнейшего выполнения. В М1с-4 микро- операции запускаются строго по порядку, выполняются строго по порядку и завершаются тоже строго по порядку. В Рептгпш 4 микрооперации запускаются по порядку, выполняются в произвольном порядке, а завершаются опять-таки по порядку. Сравнивать Мкн4 и ПггаБРАКС П1 некорректно, поскольку команды системы П1Фга5РАКС 1П вЂ” это К15С-команды (то есть 3-регистровые микрооперации).
Их не нужно ни разбивать, ни объединять. Их можно выполнять в том виде, в котором они есть, каждую за один цикл тракта данных. По сравнению с Реп~1цш 4 и П11гаБРАКС Ш, микросхема 8051 очень проста. Ее микроархитектура болыпе напоминает К1ЯС, чем С1ЯС, поскольку простые команды выполняются в ней за один цикл без разбивки на составные части. Ни конвейеризация, ни кэширование в 8051 не предусмотрены. Команды запускаются, выполняются и возвращают результаты по порядку.
По своей простоте процессор 8051 напоминает М1с-1. Краткое содержание главы Основным компонентом любого компьютера является тракт данных. Он содержит несколько регистров, одну, две или три шины, а также один или несколько функциональных блоков, например АЛУ и схему сдвига. В основном цикле вызываются несколько операндов из регистров и передаются по шинам к АЛУ и другому функциональному блоку на выполнение. После завершения операции результаты вновь сохраняются в регистрах. Тракт данных может управляться контроллером последовательности, который вызывает микрокоманды из управляющей памяти. Каждая микрокоманда содержит биты, управляющие трактом данных в течение одного цикла. Эти биты определяют, какие операнды нужно выбрать, какую операцию выполнить и что делать с результатами.
Кроме того, каждая микрокоманда указывает на следующую 368 Глава 4. Уровень микроархитектуры микрокоманду (обычно в ней содержится ее адрес). Некоторые микрокоманды изменяют этот базовый адрес с помощью операции ИЛИ. 1)УМ вЂ” это машина со стековой организацией и с однобайтными кодами операций, которые помещают слова в стек, выталкивают слова из стека и выполняют различные операции над словами из стека (например, складывают их).
В данной главе описывается микропрограмма для микроархитектуры М1с-1. Если добавить блок выборки команд для загрузки команд из потока байтов, то можно устранить большое количество обращений к счетчику команд, и тогда скорость работы машины значительно возрастет. Существует множество подходов к организации уровня микроархитектуры, в том числе 2- или 3-шинная структура, кодированные или декодированные поля микрокоманд, наличие или отсутствие вызова с упреждением, конвейер с большим или небольшим количеством ступеней, и т.