Центральный процессор с Аккумулятором
Профессор, д.т.н., проф. А.В. Никонов
Студент Я.Ю.Тюленёв
Сургут 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 - 2025 stydopedia.ru Все материалы защищены законодательством РФ.
|