Ядро Сortex-M3

Ядро Сortex-M3 было представлено в 2004 году. При создании ядра Сortex-M3 ставилась задача замены ядра процессора ARM7TDMI, которое использовалось во множестве высокопроизводительных микроконтроллеров.

32-разрядное ядро Сortex-M3 имеет (рис. 32.5):

Гарвардскую структуру с раздельными памятями команд и данных;

трехступенчатый конвейер;

предсказание переходов;

однотактное умножение и аппаратно реализуемое деление;

блок вложенных прерываний;

предопределенную организацию памяти.

 

 

 

Рис. 32.5. Блок-схема Cortex-M3 процессора

 

При создании ядра Сortex-M3 в базовую ARM-архитектуру было внесено множество изменений. Так, отказались от ARM-режима, тогда как все предыдущие ядра имели два режима работы – ARM и Thumb, каждый с набором 32- и 16-разрядных команд, соответственно.

В ядре Сortex-M3 предусмотрена поддержка набора команд Thumb-2.При этом в набор Thumb-2 внесено 130 дополнительных команд. Thumb-2 позволяет добиться размеров программ, свойственных 16-разрядному набору команд Thumb, т.е. получить в среднем выигрыш в 20–30% по сравнению с 32-разрядным ARM-набором при снижении производительности всего на единицы процентов. Исключается необходимость переключения между режимами ARM и Thumb, что позволяет обойтись без блока переключения. Процессоры с набором команд Thumb-2 способны создавать программы намного быстрее, проще и эффективнее, чем при работе с ARM-набором команд.

Важное нововведение в ядре Cortex-M3 – возможность аппаратного выполнения операции деления. И хотя операция деления занимает немало тактов процессорных ядер, она выполняется быстрее, чем отдельная подпрограмма. Кроме того, ядро Cortex-М3 может оперировать с не выровненными данными (unaligned data), что также отличает его от предшествующих структур фирмы ARM и поддерживает операции с отдельными разрядами.

Еще один ключевой компонент ядра Cortex-M3 – контроллер векторизованных вложенных прерываний (КВВП), предоставляющий для всех Cortex-микроконтроллеров стандартную структуру прерываний и способы их обработки.

Конфигурируемое ядро Cortex-M3 соединяется с периферией посредством шины Advanced High-PerformanceBus (AHB), что позволяет разработчику с легкостью подключать к нему собственные подсистемы.

Благодаря этим нововведениям применение процессорных ядер Cortex-М3 стало рентабельным даже в самых простых приложениях.