Архитектура микропроцессоров ARM

Автор: Пользователь скрыл имя, 10 Марта 2012 в 05:33, курсовая работа

Описание работы

Архитектура ARM (Advanced RISC Machine, Acorn RISC Machine, усовершенствованная RISC-машина) — семейство лицензируемых 32-битных и 64-битных микропроцессорных ядер разработки компании ARM Limited. Компания занимается исключительно разработкой ядер и инструментов для них (компиляторы, средства отладки и т. п.), зарабатывая на лицензировании архитектуры сторонним производителям.

Содержание

Вступление 2
1. Общие сведения об архитектуре ARM 3
1.1. Краткая история 3
1.2. Главные особенности 7
2. Архитектура ARM 11
2.1. Особенности архитектуры ARM 11
2.2. Набор инструкций Thumb 12
2.3. Технология SIMD 13
2.4. Набор инструкций DSP 13
2.5. Технология Jazelle 14
2.6. Технология интеллектуального управления энергопотреблением 15
3. Семейства ядер и процессоров ARM 16
4. Регистры общего назначения (ARM) 18
4.1. Регистры общего назначения на прикладном уровне 18
4.1.1. Счётчик команд PC (R15) 19
4.1.2. Считывание счётчика команд 19
4.1.3. Запись в счётчик команд 20
4.1.4. Указатель стека SP (R13) 21
4.1.5. Регистр связи LR (R14) 22
4.2. Регистры общего назначения на системном уровне 23
4.2.1. Архитектуры ARMv7-A, ARMv7-R и более ранние 23
4.2.2. Архитектуры ARMv6-M и ARMv7-M 23
4.3. Стандартные соглашения о связях 24
5. Логическая структура памяти (ARM) 26
5.1. Адресное пространство 26
5.2. Порядок следования байтов в многобайтовых величинах 26
5.2.1. Порядок LE 27
5.2.2. Порядок BE-32 27
5.2.3. Порядок BE-8 28
5.3. Доступы по невыровненным адресам 29
5.3.1. Архитектуры, предшествующие ARMv6 29
5.3.2. Архитектура ARMv6 30

Работа содержит 1 файл

ARM.docx

— 81.38 Кб (Скачать)

Если осуществляется доступ к нескольким словам подряд (например, выполняется считывание двойного слова), то адрес младшего слова будет равен A, следующего за ним — A+4 и так далее.

Возможность доступа по невыровненным адресам определяется версией архитектуры процессора и несколькими управляющими битами. Подробнее об этом будет сказано ниже в соответствующем подразделе.

      1. Порядок BE-32

При порядке BE-32 старший байт полуслова, выровненного по границе полуслова и расположенного по адресу A (он будет кратен 2), находится по адресу A, а младший байт — по адресу A+1. Старший байт слова, выровненного на границу слова и расположенного по адресу A (он будет кратен 4), находится по адресу A, следующий за ним байт — по адресу A+1, третий байт — по адресу A+2 и четвёртый, самый младший байт — по адресу A+3.

Если осуществляется доступ к нескольким словам подряд (например, выполняется считывание двойного слова), то адрес младшего слова будет равен A, следующего за ним — A+4 и так далее, т.е. слова идут в порядке «младший-старший», как и при порядке LE, хотя байты в них расположены в порядке «старший-младший». Именно это обстоятельство подчёркивается в названии данного порядка следования байтов: «старший-младший» с постоянным положением слов.

Возможность доступа по невыровненным адресам определяется версией архитектуры процессора и несколькими управляющими битами. Подробнее об этом будет сказано ниже в соответствующем подразделе.

      1. Порядок BE-8 

Как уже указывалось, порядок BE-8 появился в версии ARMv6 и распространяется только на доступы к данным; когда он активен, выборка инструкций производится в соответствии с порядком LE.

В отличие от порядка BE-32, порядок BE-8 не влияет на адреса байтов в памяти: они остаются одинаковыми в порядках LE и BE-8 (именно это подчёркивается названием: порядок «старший-младший» с постоянным положением байтов). Вместо этого при включении режима BE-8 информация, передаваемая между памятью и регистрами процессора, переворачивается «с ног на голову», что и создаёт эффект доступа с порядком следования байтов «старший-младший». Таким образом, младший байт полуслова, расположенного по адресу A, физически находится по адресу A, а старший байт — по адресу A+1, однако в регистре они будут расположены в разрядах 15:8 и 7:0 соответственно. Аналогичным образом, младший байт слова, расположенного по адресу A, физически находится по адресу A, следующий за ним байт — по адресу A+1, третий байт — по адресу A+2 и четвёртый, самый старший байт — по адресу A+3, однако в регистре они займут разряды соответственно 31:24, 23:16, 15:8 и 7:0.

Многословные доступы осуществляются как последовательность обращений к отдельным словам с последовательным увеличением адресов слов. Таким образом, положение слов при порядках BE-8 и LE тоже будет одинаковым.

Возможность доступов по невыровненным адресам зависит от режима работы процессора; подробнее это описывается в одном из следующих подразделов.

    1. Доступы по невыровненным адресам 

Архитектура ARM традиционно рассчитана на осуществление доступов к памяти по правильно выровненным адресам: это проще в реализации, а также обеспечивает наивысшую производительность. Тем не менее, в определённых ситуациях она позволяет осуществлять обращения к данным по невыровненным адресам. Инструкции всегда должны быть выровнены на правильную границу: команды набора ARM располагаются по границе слова, а команды набора Thumb — по границе полуслова.

      1. Архитектуры, предшествующие ARMv6 

Инструкции чтения и записи двойного слова (LDRD и STRD) при обращении по невыровненному адресу дают непредсказуемый результат.

Невыровненные доступы к словам и полусловам подчиняются следующим правилам:

  • если процессор оснащён сопроцессором управления системой CP15, то при установленном бите A его регистра управления при такой попытке возникает отказ данных;
  • если CP15 отсутствует или если бит A равен нулю, обращения к словам и полусловам выполняются по принудительно выровненным адресам: для доступа к слову два младших бита считаются равными нулю, а для доступа к полуслову — один бит;
  • в дополнение к предыдущему, если выполняется операция загрузки слова (команды LDR и LDRT набора ARM и LDR набора Thumb), после выборки из памяти по выровненному адресу осуществляется циклический сдвиг («вращение») считанного значения вправо на число байтов, равное значению двух младших битов адреса.
      1. Архитектура ARMv6 

Процессоры архитектуры ARMv6 всегда имеют в своём составе сопроцессор CP15, поэтому позволяют включать или отключать контроль выравнивания (бит A) по мере надобности. Кроме того, у них появился ещё один управляющий бит, U, который позволяет разрешить невыровненные доступы к словам и полусловам в командах LDRH, LDRSH, LDR, LDRT, STRH, STR и STRT набора ARM и их аналогов набора Thumb, а также ослабить контроль выравнивания для команд доступа к двойным словам LDRD и STRD (при установленном бите U задаваемый в них адрес должен быть кратен слову, а при сброшенном – двойному слову). Доступы к памяти в других инструкциях всегда должны быть выровненными независимо от состояния бита U.

Подробнее о выполнении различных видов доступов к памяти будет сказано в одном из следующих подразделов.


Информация о работе Архитектура микропроцессоров ARM