Сделай Сам Свою Работу на 5

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

Профессор, д.т.н., проф. А.В. Никонов

Студент Я.Ю.Тюленёв

Сургут 2012

Содержание

Введение……………………..…………………………………………………3

Микроконтроллер MC68HC05…..…………………………………………4

Центральный процессор……...……………………………………………...4

ЦП с аккумулятором………..…………………………………………..……4

Стек………..…………………………………………..………………………..8

Заключение……………………………………………………………….……9

Список использованных источников……………………………………...10

 

 

 

Введение

Компания Motorola производит более 300 типов различных микроконтроллеров и интегрированных процессоров, от простейших 8-ми разрядных микро-ЭВМ семейства MC68HC05, до мощных интегрированных процессоров семейства MPC800 на базе ядра Power PC и цифровых процессоров сигналов. Микроконтроллеры фирмы Motorola составляют несколько семейств, различающихся вычислительной мощностью и ориентированных на различные области применения. В первую очередь это 8-ми разрядные семейства: HC05, HC11. Семейство MC68HC05 содержит наибольшее число микроконтроллеров (более 180 модификаций). Это семейство формировалось крупносерийными потребителями, заказывающими проблемно-ориентированные конфигурации микроконтроллеров, поэтому семейство MC68HC05 нередко называют семейством "заказанных" микроконтроллеров. История развития семейств MC68HC05/08/11 начинается с базового микропроцессора MC6800, выпущенного ещё в 1974 году. Первые микроконтроллеры HC05 представляли собой типичные микропроцессоры 6800 с модифицированной архитектурой, пересаженные на "микроконтроллерную" почву.

Последующее продвижение MOTOROLA происходило в направлении совершенствования процессорного ядра "дедушки" (семейство HC11, основанное на микропроцессорной архитектуре II поколения MC6809, и семейство HC08 с усовершенствованным процессорным ядром МС6800) и ускорения работы самого процессора (семейство HC11 и, особенно, HC08).

 

 

Микроконтроллер MC68HC05

 

Основанный на Неймановской архитектуре, простой, по сегодняшним понятиям, процессор с классической аккумуляторной архитектурой и индексным регистром адресует до 64 Кбайт памяти и имеет укороченную систему команд микропроцессора 6800, состоящую в общей сложности из 65 инструкций. Определенным минусом, безусловно, является отсутствие регистров общего назначения для быстрых регистровых операций и соответственно работающих с ними команд.

Длительность исполнения большинства команд составляет от 2 до 6 машинных циклов или от 1 до 3 мкс при внутренней тактовой частоте 2 МГц. Исключением являются несколько команд, таких как, к примеру, команда умножения 8х8, занимающая 11 машинных циклов, и команды, связанные с обработкой прерываний.

Центральный процессор

Основой для создания процессорного ядра микроконтроллеров Motorola се­мейства 68НС05 (и 68НС08) послужил микропроцессор 6800, имеющий архитектуру фон-Неймана или Принстонскую архитектуру. Это означает, что память программ, память данных и регистры ввода/вывода располагаются в едином адресном пространстве (рис 1).

Данная архитектура предоставля­ет ряд преимуществ, благодаря большей гибкости программирования. Наряду с возможностью использования операционных систем реального времени (ОСРВ) и отладчиков/мониторов, программы могут быть загружены в опе­ративную память RAM с целью их тестирования и отладки без выполнения этапов программирования/стирания EPROM.

МП фирмы Motorola имел ряд существенных преимуществ. Прежде всего, кристалл МС6800 требовал для работы одного номинала питания , а система команд оказалась весьма прозрачной для программиста. Архитектура МП также имела ряд особенностей. Микропроцессор МС 6800 содержал два аккумулятора, и результат операции АЛУ мог быть помещен в любой из них. Но самым ценным качеством структуры МС 6800 было автоматическое сохранение в стеке содержимого всех регистров процессора при обработке прерываний (Z80 требовалось для этого несколько команд PUSH). Процедура восстановления РОН из стека тоже выполнялась аппаратно.

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

Архитектура, показанная на рис.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 не может быть использован для хранения дан­ных, как это обычно бывает в большинстве других процессоров с архитекту­рой фон Неймана. Содержимое контекстных регистров сохраняется при вы­зове обработчика прерывания, а при вызове подпрограммы содержимое регистров, которое может измениться в процессе ее выполнения, должно быть полностью сохранено в памяти данных в начале выполнения подпрог­раммы и восстановлено перед возвратом к основной программе.

 

 

Заключение

Для семейств MC68HC05/08/11 предлагается большое количество ПО, включающее интегрированные отладочные среды, ассемблеры, Си-компиляторы, отладчики, программные симуляторы от множества третьих поставщиков (правда, в большинстве своём, ПО платное).На сегодняшний день, в ряде крупных городов России сформировано более десяти учебно-методических и консультационных центров MOTOROLA, где можно получить исчерпывающую техническую информацию относительно продукции компании.

 

 



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.