В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная>Обзоры по типам>Микроконтроллеры>ARM>Архитектура
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Аспекты программного обеспечения

36 команд

Система команд Thumb содержит 16-разрядные эквиваленты 36 команд, находящихся в стандартной 32-разрядной системе команд ARM. Для системы команд Thumb выбраны те команды ARM, которые, в среднем, не обеспечивают преимуществ полноформатных стандартных 32-разрядных операционных кодов ARM, или те, в отношении которых опыт показал, что они используются наиболее часто и, следовательно, являются наиболее важными, или те которые необходимы компилятору, для того чтобы обеспечить наилучшую возможную плотность кода.

Компромисс производительность/плотность кода

Процесс формирования команд Thumb заключался в сокращении полей всех наиболее часто используемых команд ARM до тех пор, пока они не стали 16-разрядными. Полученная в результате система команд затем обрабатывалась последовательностью итераций, обеспечивавшей наибольшее количество битов опкодам наиболее употребительных команд (например, вызовам подпрограмм, которые составляют 1/16 системы команд) и удаление битов из менее критических команд до тех пор, пока не было получено наилучшее соотношение производительность/плотность кода. Система команд была ориентирована и на перспективу, в операционных кодах оставлено пространство для новых команд, которые будут вводиться разработчиками программного обеспечения и которые должны будут поддерживаться новыми версиями компилятора.

При создании 16-разрядных операционных кодов, в систему команд Thumb были введены некоторые ограничения . Наиболее очевидные: уменьшенное число регистров, доступных при выполнении кода Thumb. Вместо пятнадцати 32-разрядных регистров общего назначения (GPR) плюс PC процессора ARM, программист имеет доступ к восьми GPR регистрам, указателю стека, регистру связей (Link Register) и PC. В системе команд Thumb, восемь GPR регистров (R0-R7) называются Lo набором регистров. Другие регистры ARM (R8-R15) обозначаются как Hi регистры. Программист в Thumb режиме ограничен доступом к Hi регистрам через команды перемещения, сравнения и команду ADD , предоставляющие ему некоторую локальную быструю временную среду хранения. Переключения между ARM и Thumb кодами не влияют на содержимое GPR регистров.

Рисунок 13: Отображение Thumb регистров состояния на регистры состояния ARM

Бит состояния Thumb/ARM

Переключения между системами команд выполняются командой BX, которая изменяет логическое состояние бита Thumb/ARM в регистре состояния программы (PSR) Thumb-ориентированного ядра. Этот бит и команда и обеспечивают то, что подпрограммы в Thumb и ARM кодах могут находиться вместе в одном и том же пространстве памяти:

Новая мнемоника включает команды ASR, LSL, LSR, ROR, LDRH, LDSB, LDSH, PUSH, POP и STRH. Это не новые команды, но они действительно соответствуют полным 32-разрядным командам ARM, поскольку виртуально каждой команде Thumb соответствует эквивалентная команда ARM.

Возможность работы с памятью большой емкости

Потребность встраиваемых применений в памяти большой емкости продолжает расти. Следовательно, для обеспечения длительного использования приборов они должны быть способны обрабатывать память большой емкости. В ARM состоянии с его 4 Гбайтами адресного пространства это - не проблема. Нет проблем и в режиме Thumb, так как Thumb-ориентированные ядра - такие же полные 32-разрядные процессоры с 32-разрядным адресным пространством. В принципе, 16-разрядные коды операций ограничивают максимальное адресуемое пространство 64 Кбайтами, но система команд Thumb обеспечивает выполнение и длинной команды перехода в адресном пространстве до 4 Мбайтов и полные переходы в пределах 4 Гбайтового пространства посредством двух команд.


<-- Предыдущая страница Оглавление Следующая страница -->