Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РефератОднокристальные микропроцессоры.docx
Скачиваний:
11
Добавлен:
26.08.2019
Размер:
270.61 Кб
Скачать

Центральный процессор с Аккумулятором

Архитектура, показанная на рис.1, вполне работоспособна (она была реализована в ряде процессоров), но она не является оптимальной с точки зре­ния длины команд и количества тактов машинного времени, требуемых для их выполнения.

Рис.1 Базовая архитектура процессора 68НС05.

Например, сложение содержимого двух ячеек памяти с сохранением ре­зультата в третьей ячейке будет иметь следующий вид

addReg1, Reg2, Result , Result = Reg1 + Reg2

Для хранения данной инструкции потребуются от 4 до 7 байт памяти про­грамм по 1 или 2 байта для адресации данных в каждой из трех ячеек памяти и 1 байт для кода операции, а ее выполнение займет, по меньшей мере, 10 машинных циклов. Возможно, это не сразу понятно, поэтому ниже дается вся последова­тельность действий при выполнении данной команды

  1. Загрузка команды в дешифратор команд - 7 циклов

  2. Загрузка содержимого ячейки Reg1 в АЛУ — 1 цикл

  3. Загрузка содержимого ячейки Reg2 в АЛУ и выполнение команды ADD — 1 цикл

  4. Сохранение результата выполнения команды ADD в ячейке Result — 1 цикл

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

С целью устранения возникших сложностей в процессор введен допол­нительный регистр, предназначенный для сохранения результата операции и использования его в качестве одного из операндов АЛУ (рис.2). При этом результат выполнения арифметических операций сохраняется в акку­муляторе (Асс) и может быть в дальнейшем использован при выполнении последующих операций либо записан в память данных RAM. Для загрузки из памяти в аккумулятор операнда, который будет участвовать в арифметических действиях, используется команда LDA — «lоad accumulator» (рис. 3).

Рис.2. Архитектура процессора 68НС05 с аккумулятором.

Рис.3. Перемещение данных при выполнении команды LDA.

В качестве примера одной из арифметических операций можно привести инструкцию ADD, которая выполняет суммирование содержимого аккуму­лятора с содержимым одной из ячеек памяти, а затем сохраняет результат операции в аккумуляторе (рис.4). По завершении выполнения всех дей­ствий результат из аккумулятора может быть сохранен в памяти командой' STA — «store accumulator» (рис.5).

Рис. 4. Перемещение данных при выполнении команды ADD.

Рис.5. Перемещение данных при выполнении команды STA.

При рассмотрении этих вариантов может показаться, что использование аккумулятора требует, значительно гораздо большего числа тактов и ячеек па­мяти, чем в первоначальном примере. На самом деле, разница между выпол­нением операции одной командой или последовательностью из трех команд незначительна -9 байт кода для хранения трех команд против 4-7 байт для хранения одной команды. При этом число тактов, необходимых для выполне­ния операции, оказывается одинаковым и равным 10. Но, как отмечалось выше, выполнение операции за три команды делает архитектуру процессора более простой и гибкой.

СТЕК

Процессор 68НС05, как и процессоры других микроконтроллеров сохраняет программный счетчик и контекстные регистры в стеке, чтобы легко и быст­ро вернуться из полпрограммы или обработчика прерываний. Архитектура фон-Неймана предполагает, что доступ к стеку можно получить с помощью процессора (вследствие единого адресного пространства). Хотя в 68НС05 су­ществуют некоторые ограничения по сравнению с другими процессорами, имеющими архитектуру фон-Неймана, доступный указатель стека является гибким инструментом, позволяющим выполнять сложные приложения, ко­торые часто невозможно реализовать с помощью других микроконтроллеров.

Рис.6. Область памяти, адресуемая указателем стека в микроконтролле­ре 68НС05

Стек процессоров 68НС05 не может быть использован для хранения дан­ных, как это обычно бывает в большинстве других процессоров с архитекту­рой фон Неймана. Содержимое контекстных регистров сохраняется при вы­зове обработчика прерывания, а при вызове подпрограммы содержимое регистров, которое может измениться в процессе ее выполнения, должно быть полностью сохранено в памяти данных в начале выполнения подпрог­раммы и восстановлено перед возвратом к основной программе.