AC-DC и DC-DC преобразователи напряжения Top Power на складе ЭЛТЕХ
РадиоЛоцман - Все об электронике

Вопросы организации внутренней памяти высокоскоростных микроконтроллеров. Часть 2 - Микроконтроллеры Kinetis, STM32 и Stellaris

Журнал РАДИОЛОЦМАН, май 2012

Часть 1 - Микроконтроллеры NXP серии LPC4000 - средства обработки данных в реальном времени

STMicroelectronics STM32 – быстрая и гибкая память

STMicroelectronics была следующей компанией, быстро внедрившей ядро ARM Cortex-M3 в свои микроконтроллеры линейки STM32 после того, как разработала первые 32-разрядные изделия с архитектурой ARM7 и ARM9. Выполненные по 90-нм технологии последние модели микроконтроллеров серии STM32F4 работают на частоте до 168 МГц, имеют встроенную Flash-память объемом до 1 МБайт и SRAM до 192 КБайт (Рисунок 2).

 Архитектура микроконтроллеров серии STM32F4
Рисунок 2. Архитектура микроконтроллеров серии STM32F4.

Для достижения высокой производительности STMicroelectronics разработала и внедрила адаптивный ускоритель реального времени для Flash-памяти (ART Accelerator). Это своего рода контроллер КЭШа (применяемый в микропроцессорных системах), ориентированный на программы, исполняемые из Flash-памяти. Сама Flash-память имеет 128-битную организацию, поэтому одна операция чтения состоит из четырех 32-битных инструкций.

Для уменьшения задержек при изменениях в потоках инструкций, вызванных ветвлениями, вызовами подпрограмм, системными вызовами и прерываниями, ART Accelerator использует очередь предварительной выборки и КЭШ ветвления. Если программный счетчик перенаправления указывает на недавно использованный адрес, инструкции, по всей вероятности, находятся еще в КЭШе, и будут немедленно загружены в очередь предварительной выборки для исполнения, экономя при этом машинные циклы. Более интеллектуальное (адаптивное) управление КЭШ с помощью встроенной логики должно давать более положительные результаты (скорость работы), чем простые технологии.

Интегрированный модуль часов реального времени включает в себя 4 КБайт SRAM с возможностью резервного хранения данных в режиме экстремально низкого потребления. Дополнительно доступно однократно программируемое ПЗУ размером 528 Байт для хранения серийного номера, MAC адреса, криптографических ключей, калибровочных данных и другой уникальной для устройства информации.

Микроконтроллеры STM32 также содержат 7-уровневую высокоскоростную матричную шину AHB, обеспечивающую одновременную передачу данных между ведущими устройствами (ARM процессор, DMA, коммуникационные интерфейсы) и ведомыми (различная периферия и память).

В линейку микроконтроллеров с ядрами Cortex-M0 и Cortx-M3 входят устройства с самой различной конфигурацией – от дешевых «облегченных» до высокоскоростных и производительных устройств с развитой периферией, а также модели с ультранизким потреблением. В настоящее время STMicroelectronics занимает 45% рынка процессоров на основе Cortex-M.

Микроконтроллеры Freescale Kinetis – технология Flexible Memory

Freescale Semiconductor несколько задержалась с разработкой и выпуском первых ARM-микроконтроллеров, хотя до них на протяжении десятилетий компания продавала 32-разрядные устройства на базе Power Architecture и ColdFire. После быстрого скачка к архитектуре ARM Cortex-M4 с ее расширенными возможностями Freescale потребовалось совсем немного времени, чтобы наполнить семейство Kinetis разнообразными микросхемами (Рисунок 3).

Архитектура микроконтроллеров Freescale Kinetis
Рисунок 3. Архитектура микроконтроллеров Freescale Kinetis.

Номенклатура Kinetis, включающая устройства в диапазоне от простейшего K10 до недавно выпущенного K70, содержит встроенную Flash-память объемом от 32 КБайт до 1 МБайт с 32-128 разрядной организацией (в зависимости от типа микросхемы). Производящаяся по технологии 90 нм, Flash-память имеет время отклика порядка 30 нс, а тактовая частота процессорного ядра достигает 100 МГц, причем Freescale обещает в недалеком будущем эту частоту удвоить. Flash-память выполнена по технологии Thin Film Storage (TFS), позволяющей выполнять операции чтения, стирания и записи при напряжении 1.71 В, что очень удобно при питании от двух 1.5 В батареек AA, которые после напряжения 0.9 В начинают стремительно разряжаться.

Микроконтроллеры Kinetis имеют собственные КЭШи инструкций и данных, устраняющие задержки при операциях чтения, как из Flash-, так и из внешней памяти. Такой подход делает микроконтроллеры не менее эффективными, чем другие, даже если Kinetis уступают им в тактовой частоте. Интегрированный модуль защиты памяти помогает операционной системе удерживать выполняемую задачу от попадания в область памяти, занятой другой задачей.

Основная память микроконтроллеров дополнена памятью, получившей название FlexMemory. Это особая разновидность Flash, отдельные секции которой могут использоваться в качестве EEPROM. Программист сам решает, какую часть выделить под Flash-память программ, а какую под EEPROM, максимальный объем которой равен 16 КБайт. Область, используемая в качестве EEPROM, автоматически задействует специальную логику, выравнивающую количество обращений к каждой ячейке, что позволяет увеличить ресурс памяти вплоть до 10 млн. циклов.

Как и некоторые другие производители, Freescale внедрила в свои микроконтроллеры систему координатной коммутации (crossbar switch), оптимизирующую передачу данных за счет возможности предоставления задатчику шины одновременного доступа к основной Flash, FlexFlash, SRAM и различной периферии.

Texas Instruments Stellaris – программное обеспечение в составе микроконтроллера

Микроконтроллеры Texas Instruments семейства Stellaris были первыми устройствами на базе архитектуры ARM Cortex-M3, разработанными ведущим партнером, компанией Luminary Micro, теперь принадлежащей Texas Instruments. Это семейство имеет богатый ассортимент процессоров, переназначенных для широкого круга приложений, от систем управления электродвигателями до коммуникационных систем и пользовательских интерфейсов.

Архитектура микроконтроллеров Texas Instruments Stellaris
Рисунок 4. Архитектура микроконтроллеров Texas Instruments Stellaris.

Микроконтроллеры Texas Instruments имеют скромную рабочую частоту 80 МГц, встроенную Flash-память с коррекцией ошибок объемом до 512 КБайт, до 96 КБайт SRAM и, в некоторых моделях, 2 КБайта стандартной EEPROM. Встроенная Flash-память допускает выполнение операций чтения за один цикл на частоте до 50 МГц, выше которой подключается буфер предварительной выборки.

В то время как ПЗУ, на первый взгляд, исчезли из большинства современных микроконтроллеров, они имеются во многих процессорах на основе Stellaris LM3S и Cortex-M4 LM4F. В них хранится существенный и часто востребованный код, который может использоваться всеми основными приложениями (Рисунок 4). Эта библиотека, названная StellarisWare, состоит из драйверов периферии, загрузчиков и векторных таблиц, операционной системы реального времени SafeRTOS, подпрограмм проверки контрольных сумм и детектирования ошибок, а также криптографических таблиц для функций AES шифрования. Размещение часто используемого программного кода, функций и данных в быстром и дешевом ПЗУ освобождает существенную часть Flash для пользовательского приложения, позволяя расширить функциональность конечного продукта.

Заключение

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

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Memory Considerations for Faster MCUs. Part 2 - Kinetis, STM32 and Stellaris MCUs

ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя