Реле Tianbo - ресурс 10 млн переключений
РадиоЛоцман - Все об электронике

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

Cortex-M3

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

Поскольку стоимость памяти, реализованной на кристалле, составляет очень существенную часть стоимости всего микроконтроллера (по некоторым данным до 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), имеющие разные разрядности. На рис. 1 визуально показана разница между традиционным способом хранения данных с разными разрядностями и способом, используемым в архитектуре Cortex-M3.

Cortex-M3
Рис.1 Иллюстрация эффективности способов хранения выровненных и невыровненных данных

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

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

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

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

Параметр CM3Core Cortex-M3 ARM7TDMI-S (ARM) ARM7TDMI-S (Thumb)
мВт/МГц 0.19 0.24 0.28 0.28
DMIPS/МГц 1.25 1.25 0.93 0.74
DMIPS/мВт 6.57 5.21 3.32 2.64

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

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

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

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

Таблица 2. Некоторые производители программных продуктов для ARM MCU Cortex-M3

Производитель Продукты
Keil Software Полный комплекс разработки и отладки программного кода, а также аппаратные средства программирования и отладки
IAR Systems Полный программный комплекс разработки и отладки программного кода
CodeSousery Полнофункциональный комплекс разработки и отладки GNU G++
Rowley Associates Полнофункциональный пакет разработки и отладки CrossWorks
FreeRTOS.org Встраиваемые операционные системы реального времени RTOS
Pumpkin RTOS
Express Logic RTOS, TCP/IP стеки, файловые системы, USB стеки
Micrium RTOS, TCP/IP стеки, файловые системы, USB стеки, библиотеки для работы с протоколами CAN и Modbus
CMX Systems RTOS, TCP/IP стеки, файловые системы, USB стеки
SEGGER Microcontroller Systeme RTOS, GUI, файловые системы, USB стеки, JTAG эмуляторы
Interniche Technogies RTOS, сетевые стеки и файловые системы

Фактическим и единоличным лидером в производстве микроконтроллеров на базе архитектуры Cortex-M3 на сегодня является компания Luminary Micro Inc., выпустившая уже более 100 типов микроконтроллеров на базе архитектуры Cortex-M3. Среди них есть как простейшие, с минимальным объемом флэш-памяти и ОЗУ, с тактовой частотой 20 МГц, с минимальным набором периферии, в корпусе SOIC28 и с минимальной ценой, так и сложные, с максимальным объемом флэш-памяти 256 кбайт и ОЗУ 64 кбайт, со встроенными контроллерами Ethernet+PHY, CAN (в том числе и микроконтроллеры, содержащие оба эти контроллера на кристалле), декодерами сигналов квадратурных энкодеров, многоканальных ШИМ и прочими «вкусностями».

Chipnews.ru

15 предложений от 11 поставщиков
Плата разработки проектов и приложений STM32L100C-DISCO. Построена на микроконтроллере STM32L100RCT6 Cortex-M3 32МГц с 256 Кб Флеш и 16 Кб оперативной памяти,...
STM32F100C4T6B, микроконтр. ARM Cortex-M3 32бит LQFP-48
STMicroelectronics
58 ₽
AliExpress
Весь мир
Новые оригинальные микроконтроллеры STM32F103VCT6 256 Кб 2 В ~ 3,6 В ARM Cortex-M3 48 КБ 72 МГц FLASH 80 LQFP-100(14x14)
138 ₽
PL-1
Россия
STM32F103C8T6 (микроконтроллер на базе ядра ARM 32 Cortex-M3)
от 162 ₽
Триема
Россия
STM32F103C8T6 (микроконтроллер на базе ядра ARM 32 Cortex-M3)
303 ₽
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя