6. ЦПУ AVR
6.1. Отличительные особенности
- 8/16-битная высокоэффективная RISC-архитектура AVR
- 138 инструкций
- Аппаратное умножающее устройство
- 32 8-битных регистра, напрямую подключенных к ALU
- Стек в RAM
- Указатель стека доступен в пространстве памяти ввода-вывода
- Прямая адресация до 16 Мбайт памяти программ и памяти данных
- Возможность 16/24-битного доступа к 16/24-битным регистрам ввода-вывода
- Поддержка 8-, 16- и 32-битной арифметики
- Возможность защиты от изменения критических настроек системы
6.2. Обзор
Микроконтроллеры XMEGA A3 выполнены на основе 8/16-битного ЦПУ AVR. Основным назначением ЦПУ AVR является гарантирование корректности выполнения программы. Таким образом, ЦПУ должно быть способно осуществлять доступ к запоминающим устройствам, выполнять вычисления и управлять УВВ. Механизм обработки прерываний описывается в отдельном разделе. Функциональная схема ЦПУ показана на рисунке 6.1.
Рисунок 6.1. Функциональная схема ЦПУ
Микроконтроллер AVR выполнен по Гарвардской архитектуре, т.е. с отдельными памятью и шинами программ и данных. Инструкции, хранящиеся в памяти программ, выполняются с использованием одноуровневого конвейера. Это означает, что одновременно с выполнением текущей инструкции будет осуществляться выборка следующей инструкции.
Такой механизм позволяет выполнять по одной инструкции за каждый цикл синхронизации. В качестве памяти программ выступает внутрисистемно-перепрограммируемая Flash-память.
6.3. Файл регистров
Файл регистров состоит из 32-х 8-битных рабочих регистров общего назначения, отличающихся быстродействующим циклом доступа (1 цикл синхронизации). Благодаря этому, арифметико-логическое устройство выполняет операцию также за один цикл синхронизации. Типичная операция ALU, выполняемая за один цикл синхронизации, состоит из считывания двух операндов из файла регистров, выполнения операции и записи результата обратно в файл регистров.
Шесть из 32 регистров можно использовать как три 16-битных регистра-указателя для косвенной адресации в пространстве памяти данных. Один из этих трех регистров-указателей также может использоваться в качестве указателя на таблицу констант во Flash-памяти.
6.4. ALU - арифметико-логическое устройство
Высокоэффективное арифметико-логическое устройство (ALU) предназначено для выполнения арифметических и логических операций над двумя регистрами, или над константой и регистром. Им также поддерживаются операции над одним регистром. Арифметические операции над регистрами общего назначения или над регистром и константой выполняются за один цикл синхронизации. По завершении арифметической или логической операции обновляется содержимое регистра статуса, сигнализируя о результате завершения операции.
Операции ALU разделяются на три основных категории: арифметические, логические и битовые функции. Поддерживаются, как 8-, так и 16-битные арифметические операции. Кроме того, набор инструкций позволяет легко реализовать 32-битные арифметические операции. Блок ALU также оснащен мощным умножающим устройством, поддерживающее знаковое и беззнаковое умножение, а также дробный формат.
6.5. Поток программы
Сразу после подачи питания ЦПУ начинает выполнять инструкции по наименьшему адресу Flash-памяти программ - '0'. Счетчик программы (PC) указывает на адрес следующей подлежащей выборке инструкции. После сброса, PC адресует на ячейку с адресом '0'.
Поток программы управляется инструкциями условного и безусловного переходов и вызовов подпрограмм, способные напрямую адресоваться к любой части адресного пространства. Большинство инструкций AVR являются 16-битными, но имеется и несколько 32-битных инструкций.
Во время обработки прерываний и выполнения подпрограмм адрес возврата PC хранится в стеке. Поскольку стек являются частью общего SRAM, то его возможный размер ограничивается с одной стороны общим размером SRAM, а, с другой стороны, размером части SRAM, которая используется для хранения данных. После сброса указатель стека (SP) указывает на наибольший адрес во внутреннем SRAM. Регистр SP расположен в пространстве памяти ввода-вывода и поддерживает возможность, как чтения, так и записи, что облегчает реализацию нескольких стеков или областей стеков. Доступ к данным в SRAM можно легко осуществить с помощью пяти поддерживаемых ЦПУ AVR режимов адресации.
|