Центральный процессор с Аккумулятором
Профессор, д.т.н., проф. А.В. Никонов
Студент Я.Ю.Тюленёв
Сургут 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, вполне работоспособна (она была реализована в ряде процессоров), но она не является оптимальной с точки зрения длины команд и количества тактов машинного времени, требуемых для их выполнения.
![](https://konspekta.net/stydopediaru/baza1/3690766520126.files/image002.jpg)
Рис.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).
![](https://konspekta.net/stydopediaru/baza1/3690766520126.files/image004.jpg)
Рис.2. Архитектура процессора 68НС05 с аккумулятором.
![](https://konspekta.net/stydopediaru/baza1/3690766520126.files/image006.jpg)
Рис.3. Перемещение данных при выполнении команды LDA.
В качестве примера одной из арифметических операций можно привести инструкцию ADD, которая выполняет суммирование содержимого аккумулятора с содержимым одной из ячеек памяти, а затем сохраняет результат операции в аккумуляторе (рис.4). По завершении выполнения всех действий результат из аккумулятора может быть сохранен в памяти командой' STA — «store accumulator» (рис.5).
![](https://konspekta.net/stydopediaru/baza1/3690766520126.files/image008.jpg)
Рис. 4. Перемещение данных при выполнении команды ADD.
![](https://konspekta.net/stydopediaru/baza1/3690766520126.files/image010.jpg)
Рис.5. Перемещение данных при выполнении команды STA.
При рассмотрении этих вариантов может показаться, что использование аккумулятора требует, значительно гораздо большего числа тактов и ячеек памяти, чем в первоначальном примере. На самом деле, разница между выполнением операции одной командой или последовательностью из трех команд незначительна -9 байт кода для хранения трех команд против 4-7 байт для хранения одной команды. При этом число тактов, необходимых для выполнения операции, оказывается одинаковым и равным 10. Но, как отмечалось выше, выполнение операции за три команды делает архитектуру процессора более простой и гибкой.
СТЕК
Процессор 68НС05, как и процессоры других микроконтроллеров сохраняет программный счетчик и контекстные регистры в стеке, чтобы легко и быстро вернуться из полпрограммы или обработчика прерываний. Архитектура фон-Неймана предполагает, что доступ к стеку можно получить с помощью процессора (вследствие единого адресного пространства). Хотя в 68НС05 существуют некоторые ограничения по сравнению с другими процессорами, имеющими архитектуру фон-Неймана, доступный указатель стека является гибким инструментом, позволяющим выполнять сложные приложения, которые часто невозможно реализовать с помощью других микроконтроллеров.
![](https://konspekta.net/stydopediaru/baza1/3690766520126.files/image012.jpg)
Рис.6. Область памяти, адресуемая указателем стека в микроконтроллере 68НС05
Стек процессоров 68НС05 не может быть использован для хранения данных, как это обычно бывает в большинстве других процессоров с архитектурой фон Неймана. Содержимое контекстных регистров сохраняется при вызове обработчика прерывания, а при вызове подпрограммы содержимое регистров, которое может измениться в процессе ее выполнения, должно быть полностью сохранено в памяти данных в начале выполнения подпрограммы и восстановлено перед возвратом к основной программе.
Заключение
Для семейств MC68HC05/08/11 предлагается большое количество ПО, включающее интегрированные отладочные среды, ассемблеры, Си-компиляторы, отладчики, программные симуляторы от множества третьих поставщиков (правда, в большинстве своём, ПО платное).На сегодняшний день, в ряде крупных городов России сформировано более десяти учебно-методических и консультационных центров MOTOROLA, где можно получить исчерпывающую техническую информацию относительно продукции компании.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|