Микроконтроллеры

Микроконтроллеры Cortex-M0/M3/M4

cortex-logoМикроконтроллеры Cortex-M стали сегодня одними из самых популярных процессоров, применяемых при разработке и изготовлении электронной техники. Высокая вычислительная мощность, широкий набор периферии и низкая стоимость делают эти устройства привлекательными для самого широкого круга разработчиков. При этом каждый желающий может выбрать наиболее подходящий вариант для решения конкретной задачи. Производители предлагают огромное количество разнообразных микросхем, общим для которых остается только процессорное ядро. На сегодняшний день распространение получили 3 варианта ядер: Cortex-M0, Cortex-M3, Cortex-M4. Отличия этих моделей не всегда явно прослеживаются, поэтому данная статья делает попытку разобраться в особенностях этих вариантов.

Микроконтроллеры Cortex-M представляют собой одно из направлений развития микропроцессорных ядер, предлагаемых фирмой ARM. Фактически, под общей торговой маркой Cortex можно увидеть три типа процессоров (профилей), обозначаемых буквами A, R, M. Задачей профиля A стало достижение большой вычислительной мощности. Изделия с этой маркировкой - Cortex-A, представляют собой классические микропроцессоры, являющиеся дальнейшей эволюцией разработок ARM. Профиль R нацелен на использование во встраиваемых системах, поэтому эти процессоры модернизированы для исполнения задач в реальном времени. Основной задачей профиля M заявлена простота и низкая стоимость. Технически Cortex-M представляют сильно упрощенные варианты старших моделей. Тем не менее, даже такие «урезанные» контроллеры обладают вычислительной мощностью, значительно превышающей многие аналоги. Также отличием от «больших» ARM стала поддержка битовых операций, необходимая в микроконтроллерах для работы с периферией.

Cortex-M0

Микроконтроллеры, использующие ядро Cortex-M0, позиционируются производителями в качестве замены 8-ми разрядных моделей. Их отличительной особенностью стала предельно низкая стоимость и малое энергопотребление, при сохранении многих возможностей архитектуры ARM.

По своей структуре ядро Cortex-M0 - это конфигурируемый мультистадийный 32-разрядный RISC процессор. В его основе лежит архитектура ARMv6-M. Основное отличие от классической «большой» ARMv6 заключается в использовании только набора 16-разрядных инструкций, под общим названием Thumb. Дополнительно поддерживаются некоторые команды более нового набора Thumb2. Такое решение, при незначительном падении вычислительной мощности, максимально упростило процессор относительно старших моделей и позволило использовать дешевую 16-ти разрядную память. Благодаря использованию современных технологий проектирования, количество транзисторов, из которых построено данное ядро, составляет примерно 12 тысяч. Такое количество обеспечило низкое энергопотребление и невысокую стоимость. Для сравнения процессор i8086 имел 32 тысячи транзисторов при намного меньших возможностях. Энергопотребление процессора M0, в зависимости от исполнения и решаемых задач, колеблется от 73 до 4мкВт/МГц.

Быстродействие ядра Cortex-M0 составляет 0.84 DMIPS / МГц. Это значит, что на максимальной частоте работы ядра в 50Мгц, достигается производительность 45 DMIPS. Данное значение превышает возможности 8-ми разрядных систем в несколько десятков раз, и на порядок выше, чем у 16-разрядных моделей.

Разработчики, в архитектуре Cortex, попытались получить законченное процессорное ядро. Поэтому в его состав включены: контроллер прерываний на 32 вектора, интерфейс для периферийных устройств в виде 32-разрядной шиной ASB-Lite, отладчик. При необходимости процессор может оснащаться контроллером «спящего» режима.

Процессорное ядро Cortex-M3

Процессорное ядро Cortex-M3 стало наиболее популярным вариантом архитектуры ARM у производителей и разработчиков микроконтроллеров. Структурно, это также мультистадийный RISC процессор. Но в отличие от M0, данное ядро основано на архитектуре ARMv7-M и полностью реализует наборы команд Thumb и Thumb2. Из особенностей следует упомянуть аппаратное умножение 32-разрядных чисел за 1 цикл, а также деление чисел подобной разрядности (от 2 до 12 циклов). Производительность процессора составляет 1.25DMIPS/МГц. Энергопотребление примерно в два раза выше, чем у варианта M0. Количество физических прерываний увеличено до 240. В ядре предусмотрен механизм защиты памяти.

Cortex-M3, в отличие от классической ARMv7, выполнен по Гарвардской архитектуре и поддерживает несколько периферийных шин. Следует отметить, что ARMv7 является основой только процессоров под обозначением Cortex и имеет мало общего с некогда сверхпопулярной ARM7 и ее вариантами. Хотя именно с ARM7 часто сравнивают возможности Cortex-M3.

Cortex-M4

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

Возможности DSP, входящего в состав M4, позволяют параллельно выполнять четыре операции сложения/вычитания для 8-ми разрядных чисел или две операции сложения/вычитания с16-ти разрядными операндами. Также реализовано умножение за один цикл, при этом для 16-ти разрядных чисел возможно параллельное исполнение двух операций.

В серии M4 есть еще один вариант, под обозначением Cortex-M4F. В нем, дополнительно к DSP, установлен блок операций для чисел с плавающей точкой – FPU.

Кроме вышеназванных, существуют и другие варианты процессоров. Большинство из них представляют модернизированные варианты основных ядер. Несколько особняком стоит малоизвестный Cortex-M1, предназначенный для использования в программируемых логических матрицах. Основные характеристики этого процессора практически совпадают с вариантом M0, но при этом он реализован только в виде программной модели.

В отличие от профиля А, Cortex-M развивается не столь бурно. Когда и какими будут будущие микроконтроллеры неизвестно. Можно только предположить, что развитие пойдет по пути «больших» систем и в скором времени привычными станут двух-, трех или четырехядерные контроллеры.

You have no rights to post comments