2.3.4. Набор инструкций Thumb-2
ЦПУ ARM7 и ARM9 поддерживают два набора инструкций: 32-битный ARM и 16-битный Thumb. Благодаря этому, разработчик имеет возможность оптимизировать свою программу путем использования более оптимального набора инструкций для каждой конкретной процедуры: 32-битные инструкции, где более важно быстродействие, и 16-битные, где более важна плотность кода. ЦПУ Cortex поддерживает набор инструкций Thumb-2, который являются смесью 16- и 32-битных инструкций. Инструкции thumb-2 дают улучшение плотности кода на 26% по сравнению с 32-битными инструкциями ARM и производительности на 25% по сравнению с 16-битными инструкциями Thumb. В наборе инструкций Thumb-2 предусмотрено несколько улучшенных инструкций умножения, исполняющихся за один цикл, и аппаратный делитель, требующий 2…7 циклов.
По итогам тестирования процессор Cortex демонстрирует уровень производительности 1.2 DMIPS/МГц, что эквивалентно 1.2 циклам синхронизации на инструкцию
Источник |
Назначение |
Циклы |
16 бит х 16 бит |
32 бит |
1 |
32 бит х 16 бит |
32 бит |
1 |
32 бит х 32 бит |
32 бит |
1 |
32 бит х 32 бит |
64 бит |
3…7* |
В наборе инструкций Thumb-2 также предусмотрены улучшенные инструкции переходов, в т.ч. с проверкой и сравнением; блоки условного выполнения типа if/then и упорядочивание байт для обработки данных; а также инструкции извлечения байт или полуслов. Будучи RISC-процессором, ЦПУ Cortex обладает обширным набором инструкций, который специально разработан с учетом его использования Си-компилятором. Типичная программа для Cortex-M3 может быть полностью написана на ANSI Си с минимальным числом несовместимых с ANSI ключевых слов, за исключением таблицы векторов исключительных ситуаций, которую необходимо написать на Ассемблере.
|