Архитектура ARM
Архитектура ARM (Advanced RISC Machine - усовершенствованная RISC машина) - это 32-битный RISC-процессор, разрабатываемый ARM Limited. Эта архитектура широко используется в разработке встраиваемых систем. Это связанно с тем, что данные процессоры используют технологии энергосбережения. Процессоры ARM доминируют в мобильных устройствах, для которых важным качеством является их низкое энергопотребление.
На сегодняшней день семейство ARM по подсчётам достигает 75 % от всех «встроенных» 32-битных RISC процессоров, сделав тем самым его одной из самых широко распространённых 32-битных архитектур. Процессоры ARM нашли себе место во множестве электронных устройств — КПК (PDA), сотовые телефоны, медиа-плееры, карманные игровые устройства, калькуляторы, компьютерная периферия, сетевое оборудование и т. д.
По лицензии британской корпорации ARM микропроцессоры производят Atmel, Cirrus Logic , Intel (до 27 июня 2006 года), Marvell , xScale , NXP , Samsung, Qualcomm, Sony Ericsson, Texas Instruments, nVidia.
Режимы процессора
Процессор может находиться в одном из следующих операционных режимов:
- User mode — «обычный» режим выполнения программ. В этом режиме выполняется большинство программ.
- Fast Interrupt (FIQ) — режим, оптимизированный для передачи данных.
- Interrupt (IRQ) — основной режим для управления прерываниями.
- Supervisor mode — защищённый режим для использования операционной системой.
- Abort mode — режим, в который процессор переходит при возникновении ошибки доступа к памяти (доступ к данным или к инструкции на этапе prefetch конвейера).
- System mode — привилегированный пользовательский режим.
- Undefined mode — режим, в который процессор входит при попытке выполнить неизвестную ему инструкцию. Переключение режима процессора происходит при возникновении соответствующего исключения или модификацией регистра статуса.
Регистры
ARM предоставляет 31 регистр общего назначения разрядностью 32 бит. В зависимости от режима и состояния процессора пользователь имеет доступ только к строго определенному набору регистров. В ARM state разработчику постоянно доступны 17 регистров:
- 13 регистров общего назначения (r0..r12).
- Stack Pointer (r13) — содержит указатель стека выполняемой программы.
- Link register (r14) — содержит адрес возврата в инструкциях ветвления.
- Program Counter (r15) — биты [31:1] содержат адрес выполняемой инструкции.
- Current Program Status Register (CPSR) — содержит флаги, описывающие текущее состояние процессора. Модифицируется при выполнении многих инструкций: логических, арифметических, и др.
Во всех режимах кроме User mode и System mode доступен также Saved Program Status Register (SPSR). После возникновения исключения регистр CPSR сохраняется в SPSR. Тем самым фиксируется состояние процессора (режим, состояние; флаги арифметических, логических операций, разрешения прерываний) на момент непосредственно перед прерыванием
Источник: Свободная Энциклопедия