9zip.ru - технологии для людей
9zip.ru Инструкции Архитектура ARM

Это скорее архитектура, по типу х86, но если Интел наращивал возможности своих процессоров, оставляя совместимость по бинарному коду со всеми процеесорами начиная с 16-ти разрядных, то фирма Advanced RISC Machines (ARM) сразу сделала 32-x битное RISC ядро где-то в 1985-ом (все команды длиной 4 байта, выровненные по границе 32-х битного слова). При этом у этой Английской фирмы получилось на удивление экономичное ядро и, не смотря на RISC ядро, программы для этого процессора получались достаточно компактными. В 90-х фирма ARM расширила архитектуру так называемым Thumb режимом.
Фирма ARM не производит кристаллы как таковые. Она начинала совместно с фирмой VLSI, а сейчас продала лицензии на ядра ~20 фирмам: Sharp, Sony, Sumsung, Texas Instarument, DEC, Cirrus Logic, VLSI, Atmel, AKM и пр. Ориентируется в первую очередь на использование во встроенных приложениях. Самый быстрый процессор с ядром ARM: Digital SA-110 на 230 Мгц, на исполнении Java тестов вставляет Pentium-233, потребляя <1Вт. Сколько при этом потребляет Pentium? В раз десять более...

Процессор имеет 16 видимых 32-х битных регистров R0..R15 (всего 31 регистр), R15-счетчик команд, а R14 обычно линк регистр, R13 обычно указатель стека программ. Процессор может находиться в 5 режимах: привелигерованном, пользовательском, прерывания, быстрого прерывания и обратотке исключения. При входе в режим быстрого прерывания регистры R8-R14 замещаются теневыми, поэтому нет необходимости их сохранять и можно сразу обрабатывать прерывание. При переходе из пользовательского режима в любой другой также замещаются регистры R13-R14. Доступ к регистрам R8-R14, при замещении их теневыми, также возможен.
Особенности системы команд: каждая команда занимает в памяти 32 бита, выполняется за один такт процессора, если нет обращения к памяти и эт не команда умножения и команда уже выбрана из памяти в конвеер. Для предотвращения потерь при переходах все(!!!) команды сделаны условными - порой выгоднее не делать сложение или пересылку, чем делать развилку в программе и вставлять переходы. Команды деления нет. Под поле условий отведено 4 бита. В любой арифметической команде или команде-пересылке можно сделать сдвиг одного операнда на фиксированое число бит или по значению регистра (последнее требует 1 дополнительный так для выполнения):

CMP R7,#80000000
MOVNE R1,#1E8000,

сравнить R7 c 0x80000000 и если не равно, то записать в R1 число 0x1e8000. Обе команды кодируются в 8 байтах, при этом число 0x80000000 представляется как 0x80 << 24, а 0x1e800 как 0x7a<<14.

В команде явно указывается (1 бит), должна ли она модифицировать арифметические флажки. Имеются команды груповой пересылки, когда можно пересылать и восстанавливать любой набор регистров R0-R15 (за это отвечают поле из 16 бит в кодировке команды). При этом можно указать, как должен модифицироватся указатель (порядок сохранения +/-) и должен ли адрес последнего операнда быть сохранен в указателе или указатель не должен меняться. Указателем может быть любой регистр.

Имеются команды обращения к сопроцессору. Причем сопроцессор (далеко не во все микросхемы ставится) для работы с числами с плавающей запятой выполняет только основные операции +,-,/,* и кв. корень. Остальное делается программно, как и целочисленное деление - зачем тратить транзисторы и драгоценное питание на всякие там тригометрические операции. Менеджер памяти выполнен как сопроцессор.
Программы на языке "C" легко приводятся к ассемблеру ARM.

Расширение Thumb - это удачная попытка втиснуть команды процессора в 16-ти битную длину команды, за счет отказа от условий в каждом типе команд, адресации меньшего количества регистров и др.. Hо при этом можно в любой момент переключиться в 32-х битный режим. Переход в 16-ти разрядный режим осуществляется путем перехода на невыровненый адрес. Короче говоря, осуществляется своеобразная распаковка 16-ти разрядных команд в 32-х разрядные. Экономия по объему кода порядка 30-40%, ну и несколько медленнее получается выполнение. Очень выгодно для программ, размещаемых в ROM.

ARM7TDMI - значит архитектура ARM7 с расширением Thumb, функциями отладки и ICE портом (буквы DI), улучшенный умножитель (M). ICE порт (JTAG) позволяет управлять всеми возможностями процессора по 5 проводам: гонять на полной скоросте а потом остановить, посмотреть все регистры, что-то модифицировать как в памяти, так и в регистрах, установить точки останова и пр.

Кстати, ARM сделал DSP сопроцессор, Picollo называется.


10 нравится? 8


01.02.2015 © 9zip.ru
Авторские права охраняет Роскомнадзор

Понравилась статья?
Мышь говорит:
поделись с друзьями!

Хочешь почитать ещё про инструкции? Вот что наиболее популярно на этой неделе:
Лампы против транзисторов или предрассудки против качества и красоты?
Согласование усилителя с аккустической системой
Простой генератор звуковой частоты



Есть вопросы, комментарии? Напиши:

Имя
Комментарий
Длина текста:
число с картинки
Правила прочитал(а)
Как вставить картинку в свой комментарий?

Пользовательские теги: целочисленное деление на arm процессоре как прочитать бит из регистра arm на языке c [ Что это? ]

Дальше в разделе Инструкции: Описание работы схемы центрифуги, Электродвигатель питается от сети переменного тока напряжением 220 В частотой 50 Гц. Под крышкой центрифуги установлен выключатель, блокирующий включение двигателя при открытой крышке. Установкой требуемой выдержки времени подготавливают цепи включения реле и нагревателя.

Главная 9zip.ru База знаний радиолюбителя Контакты
Девять кучек хлама:

Радиотехника, электроника и схемы своими руками Ремонт домашней электроники Виртуальный музей старых радиодеталей XX века Ламповый звук hi-end и ретро электроника Катушки Теслы Радиодетали и модули с Aliexpress Интернет и сети, компьютеры и программы Категория свободна Инструкции


Дайджест
радиосхем

Новые схемы интернета - в одном месте!

 15.11 Терморегулятор с двумя каналами на ATtiny13
 15.11 Часы на ESP32 и светодиодах WS2812b
 15.11 Акустическая система с открытым верхом

Задай вопрос радиолюбителям!


2.11 Есть проект, где к МК через транзистор подключен ...
1
28.10 Здравия Всем. Нужна помочь, чтоб после запуска ...
18.10 Ребята помогите сделать схему простенькую для ...
2