ARM-режим микропроцессора ARM7TDMI

Страницы работы

Содержание работы

ARM режим микропроцессора ARM7TDMI

Введение

ARM7TDMI - член RISC (ARM) семейства универсальных 32-разрядных микропроцессоров, которые предлагают высокую эффективность при очень низкой потребляемой мощности и цене.

Архитектура ARM основана на Reduced Instruction Set Computer (RISC) принципе. Система команд и декодирующий механизм, намного более просты чем микропроцессоры с расширенной системой команд. Эта простота приводит к высокой производительности выполнения команд и минимальному времени ответа прерывания в реальном масштабе времени.

Конвейерная обработка используется так, чтобы все части обработки и систем памяти могли работать непрерывно. Как правило, в то время как одна команда выполняется, ее преемник декодируется, и третья команда выбирается от памяти.

Архитектура ARM7TDMI

ARM7TDMI - конвейерный, 32-разрядный процессор RISC с 3 уровнями конвейера. Архитектура процессора - Фон Neumann,  которая характеризуется единственной шиной данных и адреса для команд и данных. Центральный процессор имеет две системы команд: ARM и THUMB. Система команд ARM имеет 32-разрядные команды и обеспечивает максимальную производительность. Команды оперируют с  8-, 16-, и 32-разрядными типами данных.

Центральный процессор имеет семь операционных режимов. Каждый операционный режим имеет свои banked регистры для быстрой обработки особых ситуаций. Процессор имеет 37 32-разрядных регистров, включая 6 регистраторов состояния.

Режимы процессора

С точки зрения программиста, ARM7TDMI может быть в одном из двух состояний:

·  Состояние ARM, в котором выполняются 32-разрядные команды.

·  Состояние THUMB, который работает с 16-разрядными командами. В этом состоянии, PC использует 1-ый бит, чтобы выбрать между состояниями.

Обратите внимание: Переход между этими двумя состояниями не затрагивает режим процессора или содержание регистров.

Переключение Состояний

Переключение в состояние THUMB

Вход в состояние THUMB может быть выполнено, при помощи команды BX с битом состояния (бит 0) в  регистре операнда.

Переход в состояние THUMB также произойдет автоматически по возвращению из исключений (IRQ, FIQ, UNDEF, ABORT, SWI и т.д.), если исключение произошло с процессором в состоянии THUMB.

Переключение в состояние ARM

Вход в состояние ARM происходит:

1. При выполнении команды BX со сброшенным битом состояния, в регистре операнда.

2. Когда процессор выполняет исключения (IRQ, FIQ, UNDEF, ABORT, SWI и т.д.).

В этом случае, в регистре PC помещается значение регистра ссылки режима исключения, и выполнение начинается с векторного адреса исключения.

Режимы процессора.

ARM7TDMI поддерживает семь режимов работы:

User (usr): Нормальное состояние выполнения программы ARM

FIQ (fiq): Предназначенны, чтобы поддержать передачу данных

IRQ (irq): Используемый для универсальной обработки прерывания

Supervisor (svc): Защищенный режим для операционной системы

Abort mode (abt): Аварийное завершение работы

System (sys): Привилегированный режим для операционной системы

Undefined (und): Происходит когда пытается выполниться неопределенная команда.

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

Регистры

ARM7TDMI имеет общее количество 37 регистров - 31 универсального 32-разрядных регистров и шести регистров состояния - но они не могут все быть видимы сразу. Состояние процессора и операционный режим диктуют, какие регистры являются доступными программисту.

Набор регистров в  состоянии ARM

В состоянии ARM, 16 общих регистров и один или два регистратора состояния видны в любой момент. В привилегированном (не - Пользовательском) режимы, определенные режимом регистры banked переключены см.рис, какие регистраторы являются доступными в каждом режим: регистры banked отмечены теневым треугольником. Набор регистров состояния ARM содержит 16 непосредственно доступных регистраторов: R0 к R15. Все они кроме R15 общего назначения (РОН), и могут использоваться, чтобы содержать значения адреса или данные. В дополнение к ним, есть семнадцатый регистр – регистр состояния.

Регистр 14 используется как регистр ссылки подпрограммы. Он получает копию R15, когда выполняется Переход в подпрограмму или команда (BL). Во все другие случаи он может использоваться как универсальный регистр.

Регистр 15 содержит Счетчик Программы (PC). В состоянии ARM, биты [1:0] R15 являются нулевыми, и биты [31:2] содержат PC. В состоянии THUMB, бит [0] является нулевым, и биты [31:1] содержат PC.

Регистр 16 - CPSR (Текущий Регистров Состояния Программы). Он содержит флаги кода условия и текущие биты режима.

FIQ режим имеет семь banked Регистров, отображенных в R8-14 (R8_fiq-R14_fiq). В состоянии ARM, много FIQ обработчики не требуют сохранения любых регистров. User, IRQ, Supervisor, Abort and Undefined  каждый имеет двух banked регистров, отображенных в R13 и R14, позволяя каждый из этих режимов иметь частный указатель вершины стека и регистр ссылки.

Регистры состояния программы

Похожие материалы

Информация о работе