Введение в архитектуру Cortex-M3.


Односкристалльные решения, выполненные на основе встроенных ARM-процессоров находят свое применение в самых различных областях рынка, включая такие ресурсоемкие сегменты как корпоративные приложения, автомобильные системы, домашние и беспроводные сетевые технологии и многие прочие.

Семейство процессоров на базе архитектуры ARM Cortex обеспечивают необходимые ресурсы для решения такого широкого круга задач.

Семейство процессоров Cortex включает в себя три основных подсемейства архитектуры ARMv7: подсемейство А для очень ресурсоемких приложений, выполняемых под управлением сложных операционных систем; подсемейство R для применения в системах реального времени; и подсемейство М, оптимизированного для применения в недорогих встроенных приложений. Процессоры семейства Cortex-M3 — первые ARM процессоры, базирующейся на архитектуре ARMv7-М, которые были специально спроектированы для достижения высокой производительности всей системы в недорогих высокоэкономичных встроенных приложениях,таких как, например, системы промышленного контроля, автомобильная электроника, проводные и беспроводные телекоммуникационные системы, системы управления электроприводами и т.п. Для достижения этой цели было внесено множество изменений в базовую архитектуру, в частности, существенно упрощен процесс создания программного кода, что сделало рентабельным применение процессоров на базе архитектуры Cortex-M3 даже в самых простых приложениях. Для увеличения производительности системы, процессоры должны работать либо с более высокой тактовой частотой либо использовать более изощренные методы увеличения эффективности вычислений. Повышение тактовой частоты в принципе может увеличить производительность, но в то же время увеличивает энергопотребление и сложность применения. С другой стороны, повышение эффективности вычислений при более низкой тактовой частоте значительно более предпочтительно. В основе процессора на базе архитектуры Cortex-M3 лежит ядро, выполненное по Гарвардской технологии с 3-ступенчатым конвейером, что обеспечивает такие привлекательные возможности, как предсказание переходов, однотактное умножение и аппаратно реализованное деление, что обеспечивает производительность порядка 1.25 MIPS/МГц (в тесте Drystone).

В процессорах Cortex-M3 реализован новый набор команд Thumb -2, что позволяет достигнуть на 70 % большей производительности на мегагерц, чем классические ARM процессоры на базе ARM7TDMI-S, использующие классический набор команд Thumb, и на 35 % более производительности, чем те же процессоры, выполняющие базовый набор команд ARM (по данным того же теста Drystone).

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

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

Новой, ключевой особенностью системы команд Thumb-2 является более эффективная реализация компилятора языка С с возможностью операций с битами и битовыми полями, аппаратным делением и более эффективной реализацией конструкций условий типа if/then. С точки зрения разработчика программного кода, процессоры с набором команд Thumb-2 позволяют создавать код намного быстрее, проще и эффективнее. Более того, при использовании набора команд Thumb-2 и соответствующего компилятора, больше не придется делать мучительный выбор между оптимизацией кода по скорости или по объему — в новых компиляторах возможна оптимизация как по объему, так и по скорости. Это еще более ускоряет процесс разработки программного кода, так как теперь программистам нет нужды заранее компилировать критические участки кода и прилинковывать их к основной программе в виде библиотек.

Постоянным ограничением в применении более производительных процессоров является их стоимость. Современные технологии производства являются дорогостоящими и поэтому решающим моментом в уменьшении стоимости процессора является площадь его кристалла. Процессоры, выполненные по технологии Cortex-M3 используют самое маленькое ядро ARM на сегодняшний день, содержащее всего 33 тысячи вентилей, выполненные по 0.18 мкм технологии, и уменьшенные до разумных размеров периферийные модули. Требования ядра к объему памяти также минимизированы за счет внедрения технологий хранения невыровненных данных, битовых операций и системы команд Thumb-2.

Эффект от этих нововведений выражается в более чем 25 % снижении требований к памяти по сравнению с классическими ARM процессорами. Сравнительные графики производительности и объема кода в различных областях применения приведены соответственно на рис. 1 и 2.
1.jpg
Рис.1 Сравнение производительности процессоров ARM7DTMI и Cortex-M3 в различных приложениях
2.jpg
Рис. 2. Сравнение требуемого объема кода для процессоров ARM7DTMI и Cortex-M3 в различных приложениях

В последнее время процессоры на основе технологии ARM нашли широчайшее применение во множестве встраиваемых приложений. Процессоры на основе архитектуры CortexM3 являются дальнейшим и наиболее прогрессивным развитием классической архитектуры ARM и, по всей видимости, станут наиболее популярными в самое ближайшее время за счет более высокой производительности, менее сложной модели программирования, прекрасной системы обработки прерываний и низкой цены. Некоторые преимущества процессоров на базе архитектуры Cortex-M3 перед процессорами на базе классической архитектуры приведены в табл. 1.
Таблица 1. Сравнение ядер ARM7TDMI-S и Cortex-M3
Параметр
Ядро
ARM7TDMI-SCortex-M3
Ядро ARMv4TARMv7-M
Архитектура фон НейманаГарвардская
Поддерживаемые системы командThumb Thumb / Thumb-2
Прерывания FIQ/IRQNMI + от 1 до 240 физических прерываний
Время обработки прерывания24..42 тактов12 тактов
Пошаговый режимНет Интегрирован
Защита памятиНет8 региональных устройств защиты памяти
Производительность 0.95 DMIPS/МГц (в режиме ARM)1.25 DMIPS/МГц
Потребляемая мощность0.28 мВт/МГц 0.19 мВт/МГц
Площадь кристалла, мм²0.62 (только ядро)0.86 (ядро и стандартная периферия)

Заявления, подобные приведенным выше, могут на первый взгляд показаться голословными и необоснованными. В этом случае есть смысл ближе познакомиться с архитектурой Cortex-M3.

Процессор на базе архитектуры Cortex-M3 в своей основе имеет иерархическую структуру. Она включает в себя ядро CM3Core с развитой периферией, включающей в себя механизмы управления прерываниями, защиты памяти и внутрисхемной отладки и другие. Этот набор обладает прекрасной конфигурируемостью, что позволяет применять этот процессор для решения широкого спектра задач и наиболее полно отвечать требованиям, выдвигаемым к нему. Ядро Cortex-M3 и интегрированные в него компоненты (рис. 3) созданы с учетом требований к минимизации требуемого объема памяти и потребления энергии.
3.gif
Рис. 3. Блок-схема ядра Cortex-M3

Ядро Cortex-M3 базируется на Гарвардской архитектуре и имеет раздельные шины для команд и для данных в отличие от стандартных ARM процессоров, использующих фон Неймановскую архитектуру и совмещенные шину и память как для данных, так и для команд.

Поскольку процессоры Cortex-M3 считывают данные и команды одновременно, это позволяет производить некоторые операции одновременно и таким образом существенно повысить производительность системы.

Встроенный в ядро конвейер имеет три стадии работы: выборка команды, декодирование команды, выполнение команды. Для случаев, когда в конвейере декодируется команда перехода, на стадии декодирования также производится выборка инструкции предсказания перехода, что также приводит к ускорению выполнения программы. Процессор выбирает команду назначения перехода во время собственно стадии декодирования. Позже, на стадии выполнения команд, переход разрешается и к этому моменту уже известно, какая команда будет следующей. В случае, если переход не производится, следующая последовательность команд и так уже доступна. В случае же, если переход производится, команда перехода становится доступной в то же время, когда собственно переход и разрешается, таким образом сводя время простоя к единственному такту.

Ядро процессора Cortex-M3 содержит декодер для традиционной системы команд Thumb и для новой системы Thumb-2, усовершенствованное АЛУ с поддержкой аппаратного умножения и деления, управляющей логикой и интерфейсами к другим компонентам системы.

Процессор на базе архитектуры Cortex-M3 представляет собой 32-разрядный процессор с 32-разрядными шиной данных, банком регистров и интерфейсом с памятью. Он содержит 13 регистров общего назначения, два указателя стека, регистр связей, счетчик команд, регистр статуса и множество специальных регистров.

Процессор на базе архитектуры Cortex-M3 поддерживает два режима работы, Thread и Handler, а также два уровня доступа к коду (привилегированный и непривилегированный), позволяющие создавать сложные открытые и при этом не жертвовать безопасностью. Непривилегированный уровень доступа ограничивает или полностью запрещает доступ и использование некоторых ресурсов типа определенных команд или областей памяти. Режим Thread является стандартным режимом работы и поддерживает распределение уровней доступа, тогда как режим Handler включается лишь в некоторых случаях и весь код получает привилегированный уровень доступа.

Так уже упоминалось ранее, ядро Cortex-М3 содержит декодер команд как для традиционной Thumb, так и для новой системы команд Thumb-2. Также расширенное АЛУ поддерживает аппаратные умножение и деление, содержит блок управляющей логики и интерфейсы к остальным компонентам процессора. Процессоры на базе ядра Cortex-М3 имеют простую, фиксированную карту памяти с максимальным адресуемым пространством вплоть до 4 гигабайт, с предопределенными, заранее выделенными адресными массивами для памяти программ, ОЗУ, устройствами внешней памяти или периферийными устройствами, а также встроенной периферией (рис. 4). Также имеется специальная область памяти, которая содержит адреса, зарезервированные производителем.
4.gif
Рис. 4 Карта памяти процессоров с архитектурой Cortex-M3

Процессоры на базе ядра CortexМ3 обеспечивают прямой доступ к битам данных при помощи довольно простого механизма (рис. 5). Заметим, что операции с битами являются элементарными и не могут быть прерванными другими операциями, в том числе и прерываниями.
5.gif
Рис. 5. Сравнение механизма битовых операций в традиционной архитектуре ARM7 (а) и Cortex-M3 (б)

Традиционные процессоры на базе архитектуры ARM7 поддерживают только доступ к выровненным данным, что подразумевает, что сохраняемые и вычитываемые данные должны быть выровнены по границе слова. Процессоры же на базе архитектуры Cortex-М3 позволяют обращаться к невыровненным данным и сводят к минимуму временные задержки, связанные с доступом к данным. В случае, если происходит обращение к невыровненным данным, это обращение разбивается на несколько параллельных обращений к выровненным данным, но этот процесс является прозрачным для программы пользователя, поскольку происходит автоматически внутри ядра.

Вдобавок процессоры с архитектурой Cortex-М3 поддерживают операции 32-разрядного умножения за 1 такт, а также знаковое и беззнаковое деление, которое требует от 2 до 12 тактов в зависимости от размера операндов. Операция деления происходит быстрее, в случае, если делимое и делитель имеют небольшой размер. Такие улучшения в реализации математических операций дают процессорам с архитектурой CortexМ3 значительное преимущество перед процессорами на базе стандартной архитектуры ARM7 при решении задач, требующих интенсивных математических вычислений.

Микроконтроллеры с архитектурой ARMv7-M является продолжением архитектуры ARM7 и отличается от более ранних ARM архитектур поддержкой системы команд Thumb-2. Технология Thumb-2 является развитием 16- и 32-битных систем команд и обладает производительностью 32-битных команд ARM и беспрецедентно малым объемом результирующего кода. Следует отметить, что система команд Thumb-2 имеет обратную совместимость с 16-разрядной системой команд Thumb. На рис. 3 показан результат теста Drystone, который иллюстрирует производительность системы команд Thumb-2 по сравнению с другими системами команд. В предыдущих версиях процессоров с архитектурой ARM7 для получения эффективного кода, производительного с одной стороны и компактного с другой, требовалось разные участки программы создавать с использованием либо ARM-системы команд, либо Thumb. В то же время процессоры с архитектурой CortexМ3 не требуют таких сложных манипуляций, поскольку вполне толерантно относятся как к 16-разрядным, так и к 32-разрядным командам в одном и том же режиме. Поскольку система команд Thumb-2 является развитием 16-разрядной системы команд Thumb, процессоры с архитектурой Cortex-М3 могут выполнять программы, написанные с использованием системы команд Thumb для более ранних версий процессоров, и, таким образом, процессоры Cortex-М3 являются совместимыми по коду с более ранними версиями процессоров серии ARM7.
6.gif
Рис. 6. Карта памяти процессоров с архитектурой Cortex-M3

Система команд Thumb-2 включает в себя команды, которые позволяют упростить и уменьшить объем кода для многих приложений. Так, команды BFA и BFC являются командами для работы с битовыми полями, которые часто используются при решении задач обработки, например, сетевых пакетов данных в телекоммуникационных приложениях. Команды SBFX и UBFX облегчают работу с битами внутри регистров, что очень полезно в автомобильных приложениях. Команда RBIT переставляет биты в слове и, в следствие этого, часто используется при реализации DSP алгоритмов, таких, как преобразование Фурье. Команды табличных переходов TBB и TBH позволяют добиться баланса между компактностью кода и высокой производительностью. В систему команд Thumb-2 также входит новая реализация конструкции if/then, которая предсказывает последовательность исполнения вплоть до четырех последующих команд.

Конфигурируемый контроллер NVIC является существенной частью архитектуры Cortex-М3 и обеспечивает процессору прекрасные возможности по обработке прерываний. По умолчанию он генерирует немаскируемое прерывание и 32 физических прерывания общего назначения с 8 уровнями приоритета. В то же время он может быть сконфигурирован для генерации любого количества от 1 до 240 физических прерываний с вплоть до 256 уровней приоритета при помощи простого метода конфигурирования.

Процессоры с архитектурой CortexМ3 используют перемещаемую таблицу векторов-обработчиков прерывания, которые содержат адреса функций, выполняемых каждым отдельно взятым обработчиком. При возникновении прерывания процессор использует адреса из таблицы векторов-обработчиков прерывания, используя интерфейс шины команд. Таблица векторов прерывания по умолчанию расположена по нулевому адресу, но может быть перемещена перепрограммированием соответствующего управляющего регистра. В случае возникновения ситуаций, когда прерывания следуют одно за другим, процессоры с традиционной архитектурой будут повторять полный цикл сохранения и восстановления данных дважды, при выходе из обработанного прерывания и при входе в следующее, что приводит к значительным задержкам и, как следствие, существенному падению производительности системы. Процессоры с архитектурой CortexМ3 упрощают переход от активного к следующему прерыванию благодаря применению новейшей технологии стыковки прерываний в аппаратной реализации контроллера NVIC. Технология стыковки прерываний позволяет получить значительно меньшие времена задержки благодаря замене последовательного восстановления и сохранения данных, которое обычно занимает около 30 тактов, простым механизмом, который требует всего 6 тактов (рис. 7). Регистры состояния процессоры автоматически сохраняются при входе в прерывание и восстанавливаются при выходе из него в течение всего нескольких тактов, что значительно быстрее, чем при полностью программной реализации обработчика прерываний. Это улучшение позволяет получить очень высокую производительность, что особенно важно при выполнении задач, связанных с обработкой большого количества прерываний.
7.gif
Рис. 7. Механизм обработки прерываний в процессорах с архитектурой Cortex-M3

В контроллере NVIC также реализованы схема управления питанием процессора и поддержка нескольких режимов энергосбережения.

Контроллер NVIC также содержит интегрированный 24-разрядный декрементирующий системный таймер, который используется для генерирования прерываний при отсчете временных интервалов и является незаменимым блоком при реализации операционных систем реального времени.

MPU (модуль защиты памяти) – опциональный компонент процессоров архитектуры Cortex-М3, который позволяет существенно улучшить надежность всей системы при помощи защиты критических участков кода, используемого операционной системой при помощи разделения обрабатываемых задач путем запрета доступа к определенным данным, областям памяти, определением некоторых областей памяти как «только для чтения» и детектированием нежелательных событий доступа к памяти, которые потенциально могут нарушить работу системы.

MPU позволяет приложению быть разбитым на набор процессов. Каждому процессу выделяется собственная область памяти (включающая выделенные память программ, память данных, стек и т.п.) и периферия, и в то же время он может обращаться к общей памяти и общим модулям периферии. Таким образом, в MPU реализованы привилегированные уровни доступа. Они включают в себя как выполнение кода с соответствующим привилегированным уровнем, так и работу с выделенной памятью и периферией. MPU может разделять память на независимые области и реализовывать их защиту для предупреждения нежелательного доступа. MPU поддерживает вплоть до 8 таких областей, каждая из которых может быть разделена на 8 субобластей. Минимальный поддерживаемый размер области — 32 байта и увеличивается с шагом, кратным двум, вплоть до максимального адресуемого объема памяти 4 Гб. Доступ к памяти, не включенной в области, выделенные MPU, или запрещенные свойствами области памяти, будет приводить к генерированию соответствующей ошибки.

Защита областей памяти от несанкционированного доступа реализована при помощи правил, которые, в свою очередь, базируются на типах транзакций (чтение, запись, выполнение процесса) и степени приоритета участка кода программы, выполняющей доступ. Каждая область имеет набор битов, отвечающих за типы разрешенных действий в памяти и битов, отвечающих за типы действий при помощи шины.

MPU также поддерживает перекрытие областей памяти и эта особенность дает весьма существенные преимущества для защиты информации. Поскольку размер областей кратен двум, то это дает возможность полностью заключать одну или несколько областей внутри другой области памяти, реализовывая ступенчатую, многоуровневую структуру защиты и разграничения доступа, а также реализовывать вложенные перекрытия областей памяти.

Поскольку стоимость памяти, реализованной на кристалле, составляет очень существенную часть стоимости всего микроконтроллера (по некоторым данным до 30—40 %), то вполне естественно было бы обратить самое пристальное внимание на способы ее экономичного использования. Именно эту цель преследовали разработчики компании ARM, когда внедряли систему команд Thumb-2 в архитектуру CortexM3 совместно с оригинальной шиной для повышения гибкости использования памяти путем повышения плотности кода и введением команд для работы с битами и битовыми полями.

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

Встроенная флэш-память программ уже давно стала стандартом де-факто в микроконтроллерах. Однако, с ростом максимальных тактовых частот ядра, наблюдается диссонанс между ядром и флэш-памятью именно в области максимальных тактовых частот. Дело в том, что физические свойства технологий производства флэш-памяти не позволяют ей оперировать на частотах более 30..40 МГц и поэтому производители микроконтроллеров идут на некоторые ухищрения, которые позволяют пусть не полностью, но хотя бы частично снизить потери производительности системы изза несовпадения максимальных тактовых частот ядра и флэш-памяти.

Такую задачу перед собой ставили и разработчики архитектуры Cortex-M3. Для этого они разработали как новый интерфейс с памятью, так и новую систему команд, позволяющие вычитывать более чем одно 16-разрядное значение из памяти за один такт. Например, команды MOVW и MOVT работают с 16-разрядными константами более эффективно, так как данные доступны одновременно с командой, а не вычитываются последовательно, как в случае с традиционным пулом литералов.

Аналогичная задача стоит и перед оптимизацией работы с ОЗУ. Многие архитектуры используют массивы флагов в ОЗУ, организованные в байты или слова флагов. Классический способ работы с ними — вычитывание байта флагов, сложение этого байта с маской или изменение состояния одного из битов, запись байта по его адресу. В архитектуре Cortex-M3 работа с ОЗУ организована несколько проще и быстрее. Адресное пространство вплоть до 1 Мбайт отображается в 32 Мбайт адресов битов. В случае, если изменяется бит в области с битовой адресацией, это изменение автоматически отображается по соответствующему адресу в области с байтовой адресацией. Такая схема работы существенно упрощает и ускоряет работу в случае многочисленных операций с битами.

Также применена новая технология расположения данных в ОЗУ, которая базируется на принципе хранения невыровненных данных, что очень существенно уменьшает требуемый объем ОЗУ для работы приложения. Проблема с неэффективным использованием ОЗУ связана с тем, что в программе пользователя часто используются разные типы данных (например long, integer, char), имеющие разные разрядности. На рис. 8 визуально показана разница между традиционным способом хранения данных с разными разрядностями и способом, используемым в архитектуре Cortex-M3.
8.gif
Рис.8 Иллюстрация эффективности способов хранения выровненных и невыровненных данных

Отдельно стоит, хотя бы кратко, упомянуть еще раз о полностью переработанной системе обработки прерываний. В обычных микроконтроллерах ядро, в ущерб производительности всей системы, вынуждено самостоятельно поддерживать обработку прерываний и выполнять все функции, связанные с этим процессом. В микроконтроллерах с архитектурой Cortex-M3 ситуация совершенно иная: контроллер прерываний выделен в отдельный аппаратно реализованный узел, который обрабатывает прерывания с исключительно малыми и при этом фиксированными временами задержки, снимая максимум нагрузки с ядра. За счет этого время входа в прерывание по сравнению с классическими ARM контроллерами уменьшилось на очень существенные и приятные 70% за счет независимого аппаратного сохранения и восстановления необходимых регистров и очень грамотной обработки ситуаций с последовательно сгенерированными прерываниями.

Очень важной темой с бурным развитием разработки и производства портативных устройств стала экономичность микроконтроллеров. Микроконтроллеры с архитектурой ARM всегда «славились» своей относительной «прожорливостью» и с этим до сих пор приходится мириться. Однако, поскольку законы физики никто не отменял, в частности пропорциональную зависимость потребляемой мощности от тактовой частоты, разработчикам микроконтроллеров пришлось потрудиться для создания развитой системы управления тактированием как ядра, так и периферии. В микроконтроллерах с архитектурой Cortex-M3 практически все периферийные модули, не принимающие участия в реализации конкретной программы, могут быть индивидуально отключены от источника тактирования. Кроме этого, в микроконтроллеры на базе архитектуры Cortex-M3 добавлено несколько дополнительных режимов «сна», например, WFI (Waut For Interrupt) или WFE (Wait For Event), которые переводят микроконтроллер в режим глубокого «сна» до возникновения прерывания или события соответственно.

Но не только благодаря множеству энергосберегающих режимов можно достичь экономии потребляемой мощности. Ведь кроме высокоэкономичного режима «сна» есть еще и активная фаза работы микроконтроллера, во время которой он потребляет максимум энергии в соответствии с вполне определенными законами физики. Здесь может помочь, как это парадоксально ни звучит, только повышение производительности микроконтроллера. Но ни в коем случае не за счет тактовой частоты. За счет применения новой системы команд и повышения эффективности работы памяти, микроконтроллеры на базе архитектуры Cortex-M3 показывают впечатляющий прирост производительности, равный 1.25 DMIPS/МГц (в табл. 2 приведены сравнительные данные по производительности, приведенной к потреблению энергии, для различных серий ARM микроконтроллеров).

Таблица 2. Сравнение производительности, приведенной к потреблению энергии, для различных серий ARM микроконтроллеров
ПараметрCM3CoreCortex-M3ARM7TDMI-S (ARM)ARM7TDMI-S (Thumb)
мВт/МГц0.190.240.280.28
DMIPS/МГц1.251.250.930.74
DMIPS/мВт6.575.213.322.64
И эта производительность позволяет либо быстрее выполнить поставленную задачу при той же тактовой частоте и таким образом уменьшить длительность активной фазы, либо выполнить ту же задачу за то же время, но с значительно меньшей тактовой частотой. Оба эти способа позволяют существенно уменьшить общее потребление энергии, а значит, улучшить эксплуатационные параметры конкретного устройства.

Микроконтроллеры с архитектурой Cortex-M3 стали значительным явлением на рынке ARM микроконтроллеров. Ядро микроконтроллера, построенное на базе Гарвардской архитектуры с использованием 3-уровневого конвейера, использует много новых решений, таких как предсказание переходов в командах ветвления, однотактное умножение и деление и многих других, показывает впечатляющий уровень производительности, равный 1.25 DMIPS/МГц. Комбинация системы команд Thumb-2 и уникальных возможностей по работе с невыровненными данными и битами позволяет смело говорить о том, что микроконтроллеры с архитектурой Cortex-M3 устанавливают стандарты производительности 32-разрядных архитектур наравне со стоимостью, сравнимой со стоимостью 8-разрядных микроконтроллеров.

Гибкое управление интегрированными периферийными компонентами, быстрый процесс создания и отладки кода позволяют свести время разработки нового устройства до минимума. Для ресурсоемких и высоконадежных приложений незаменимым будет аппаратный контроллер вложенных прерываний, который обеспечивает чрезвычайно малое, а, главное, фиксированное время входа в прерывание. При этом обеспечивается быстрая обработка последовательных и вложенных прерываний, которых может быть до 240. Для ответственных применений будет незаменим модуль распределения приоритетов и защиты памяти от несанкционированного доступа (MPU — Memory Protection Unit). И еще много приятных «мелочей», которые в совокупности дают совсем не мелочный результат, позволяют смело утверждать, что архитектуру Cortex-M3 в микроконтроллерах общего применения ждет очень большое и светлое будущее.

Немаловажной составляющей общей привлекательности архитектуры Cortex-M3 является широкая ее поддержка ведущими производителями программного обеспечения. В частности, поддержку этой архитектуры ввели в свои продукты многие всемирно известные производители. В табл. 3 перечислены основные производители программных и программно-аппаратных комплексов для создания и отладки программного кода для микроконтроллеров с архитектурой Cortex-M3.

Таблица 3. Некоторые производители программных продуктов для ARM MCU Cortex-M3
ПроизводительПродукты
Keil SoftwareПолный комплекс разработки и отладки программного кода, а также аппаратные средства программирования и отладки
IAR SystemsПолный программный комплекс разработки и отладки программного кода
CodeSouseryПолнофункциональный комплекс разработки и отладки GNU G++
Rowley AssociatesПолнофункциональный пакет разработки и отладки CrossWorks
FreeRTOS.orgВстраиваемые операционные системы реального времени RTOS
PumpkinRTOS
Express LogicRTOS, TCP/IP стеки, файловые системы, USB стеки
MicriumRTOS, TCP/IP стеки, файловые системы, USB стеки, библиотеки для работы с протоколами CAN и Modbus
CMX SystemsRTOS, TCP/IP стеки, файловые системы, USB стеки
SEGGER Microcontroller SystemeRTOS, GUI, файловые системы, USB стеки, JTAG эмуляторы
Interniche TechnogiesRTOS, сетевые стеки и файловые системы
  Павел Вовк
Статья напечатана в журнале "CHIP NEWS Украина" в номерах: 
№7, 2007г., стр. 72-74
№8, 2007г., стр. 58-60
№9, 2007г., стр. 59-61


Назад в раздел