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 Авторские права охраняет Роскомнадзор
| Понравилась статья? Мышь говорит: поделись с друзьями! |
|
, Электродвигатель питается от сети переменного тока напряжением 220 В частотой 50 Гц. Под крышкой центрифуги установлен выключатель, блокирующий включение двигателя при открытой крышке. Установкой требуемой выдержки времени подготавливают цепи включения реле и нагревателя.