stringtranslate.com

ARM Cortex-M

Микросхемы микроконтроллеров ARM Cortex-M0 и Cortex-M3 от NXP и Silicon Labs ( Energy Micro )
Кристалл от микросхемы STM32F100C4T6B. Микроконтроллер ARM Cortex-M3
24  МГц с  флэш-памятью 16 КБ , ОЗУ 4 КБ. Производитель STMicroelectronics .

ARM Cortex-M — это группа 32-битных ядер RISC- процессора ARM , лицензированных ARM Limited . Эти ядра оптимизированы для недорогих и энергоэффективных интегральных схем, которые были встроены в десятки миллиардов потребительских устройств. [1] Хотя они чаще всего являются основным компонентом микросхем микроконтроллеров , иногда их встраивают и в другие типы микросхем. Семейство Cortex-M состоит из Cortex-M0, [2] Cortex-M0+, [3] Cortex-M1, [4] Cortex-M3, [5] Cortex-M4, [6] Cortex-M7, [7 ] Cortex-M23, [8] Cortex-M33, [9] Cortex-M35P, [10] Cortex-M52, [11] Cortex-M55, [12] Cortex-M85. [13] Опция блока с плавающей точкой (FPU) доступна для ядер Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85, и когда эти ядра включены в кремний, они иногда называются «Cortex-MxF», где «x» — это вариант ядра.

Обзор

Семейство ARM Cortex-M — это ядра микропроцессоров ARM, которые предназначены для использования в микроконтроллерах , ASIC , ASSP , FPGA и SoC . Ядра Cortex-M обычно используются в качестве специализированных микроконтроллерных чипов, но также «скрыты» внутри чипов SoC в качестве контроллеров управления питанием, контроллеров ввода-вывода, системных контроллеров, контроллеров сенсорных экранов, контроллеров интеллектуальных батарей и контроллеров датчиков.

Главное отличие от ядер Cortex-A заключается в том, что ядра Cortex-M не имеют блока управления памятью (MMU) для виртуальной памяти , который считается необходимым для «полноценных» операционных систем . Программы Cortex-M вместо этого запускаются на «голом железе» или на одной из многочисленных операционных систем реального времени , которые поддерживают Cortex-M .

Хотя 8-битные микроконтроллеры были очень популярны в прошлом, Cortex-M медленно отвоевывает 8-битный рынок, поскольку цены на недорогие чипы Cortex-M снижаются. Cortex-M стали популярной заменой 8-битных чипов в приложениях, которые используют 32-битные математические операции, и заменяют старые ядра ARM, такие как ARM7 и ARM9 .

Лицензия

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

Изготовление на заказ из силикона

Производители интегрированных устройств (IDM) получают IP процессора ARM в виде синтезируемого RTL (написанного на Verilog ). В этой форме они имеют возможность выполнять оптимизации и расширения на уровне архитектуры. Это позволяет производителю достигать индивидуальных целей проектирования, таких как более высокая тактовая частота, очень низкое энергопотребление, расширения набора инструкций (включая плавающую точку), оптимизация размера, поддержка отладки и т. д. Чтобы определить, какие компоненты были включены в конкретный чип ЦП ARM, обратитесь к техническому описанию производителя и соответствующей документации.

Некоторые варианты кремния для ядер Cortex-M:

Дополнительные варианты кремния: [14] [15]

Наборы инструкций

Cortex-M0 / M0+ / M1 реализуют архитектуру ARMv6-M , [14] Cortex-M3 реализует архитектуру ARMv7-M , [15] Cortex-M4 / Cortex-M7 реализует архитектуру ARMv7E-M , [15] Cortex-M23 / M33 / M35P реализуют архитектуру ARMv8-M , [30] а Cortex-M52 / M55 / M85 реализует архитектуру ARMv8.1-M . [30] Архитектуры имеют двоичную совместимость инструкций от ARMv6-M до ARMv7-M и до ARMv7E-M. Двоичные инструкции, доступные для Cortex-M0 / Cortex-M0+ / Cortex-M1, могут выполняться без изменений на Cortex-M3 / Cortex-M4 / Cortex-M7. Двоичные инструкции, доступные для Cortex-M3, могут выполняться без изменений на Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P. [14] [15] В архитектурах Cortex-M поддерживаются только наборы инструкций Thumb-1 и Thumb-2; устаревший 32-битный набор инструкций ARM не поддерживается.

Все ядра Cortex-M реализуют общее подмножество инструкций, которое состоит из большинства Thumb-1, некоторых Thumb-2, включая 32-битный результат умножения. Cortex-M0 / Cortex-M0+ / Cortex-M1 / Cortex-M23 были разработаны для создания наименьшего кремниевого кристалла, таким образом, имеющего наименьшее количество инструкций семейства Cortex-M.

Cortex-M0 / M0+ / M1 включают инструкции Thumb-1, за исключением новых инструкций (CBZ, CBNZ, IT), которые были добавлены в архитектуре ARMv7-M. Cortex-M0 / M0+ / M1 включают небольшое подмножество инструкций Thumb-2 (BL, DMB, DSB, ISB, MRS, MSR). [14] Cortex-M3 / M4 / M7 / M33 / M35P имеют все базовые инструкции Thumb-1 и Thumb-2. Cortex-M3 добавляет три инструкции Thumb-1, все инструкции Thumb-2, аппаратное целочисленное деление и инструкции арифметики насыщения . Cortex-M4 добавляет инструкции DSP и дополнительный блок с плавающей точкой одинарной точности (VFPv4-SP). Cortex-M7 добавляет дополнительный блок FPU двойной точности (VFPv5). [22] [15] Cortex-M23 / M33 / M35P / M52 / M55 / M85 добавляют инструкции TrustZone .

Устаревания

Архитектура ARM для серии ARM Cortex-M удалила некоторые функции старых ядер: [14] [15]

Возможности 32-битного набора инструкций ARM во многом дублируются наборами инструкций Thumb-1 и Thumb-2, но некоторые функции ARM не имеют аналогичной функции:

Набор 16-битных инструкций Thumb-1 со временем эволюционировал с момента его первого выпуска в устаревших ядрах ARM7T с архитектурой ARMv4T. Новые инструкции Thumb-1 добавлялись по мере выпуска каждой устаревшей архитектуры ARMv5 / ARMv6 / ARMv6T2. Некоторые 16-битные инструкции Thumb-1 были удалены из ядер Cortex-M:

Кортекс-М0

Ядро Cortex-M0 оптимизировано для небольших размеров кремниевых кристаллов и использования в самых недорогих чипах. [2]

Ключевые особенности ядра Cortex-M0: [17]

Варианты кремния:

Чипсы

nRF51822

На базе ядра Cortex-M0 построены следующие микроконтроллеры:

Следующие чипы имеют Cortex-M0 в качестве вторичного ядра:

Кортекс-М0+

Плата NXP ( Freescale ) FRDM-KL25Z с KL25Z128VLK (Kinetis L)

Cortex-M0+ — это оптимизированный надмножество Cortex-M0. Cortex-M0+ имеет полную совместимость набора инструкций с Cortex-M0, что позволяет использовать тот же компилятор и отладочные инструменты. Конвейер Cortex-M0+ был сокращен с 3 до 2 этапов, что снижает энергопотребление и увеличивает производительность (более высокий средний IPC из-за ветвлений, занимающих на один цикл меньше). В дополнение к функциям отладки в существующем Cortex-M0, к Cortex-M0+ может быть добавлена ​​кремниевая опция, называемая буфером микротрассировки (MTB), которая обеспечивает простой буфер трассировки инструкций. Cortex-M0+ также получил функции Cortex-M3 и Cortex-M4, которые могут быть добавлены как кремниевые опции, такие как блок защиты памяти (MPU) и перемещение векторной таблицы. [18]

Ключевые особенности ядра Cortex-M0+: [18]

Варианты кремния:

Чипсы

На базе ядра Cortex-M0+ построены следующие микроконтроллеры:

Следующие чипы имеют Cortex-M0+ в качестве вторичного ядра:

Самые маленькие микроконтроллеры ARM относятся к типу Cortex-M0+ (по состоянию на 2014 год наименьшим размером 1,6 мм на 2 мм в корпусе размером с чип является Kinetis KL03). [32]

21 июня 2018 года был анонсирован « самый маленький в мире компьютер » или компьютерное устройство на базе ARM Cortex-M0+ (включая оперативную память и беспроводные передатчики и приемники на основе фотоэлектрических элементов ) исследователями из Мичиганского университета на симпозиуме по технологиям и схемам СБИС 2018 года с докладом «Беспроводная и безбатарейная сенсорная система размером 0,04 мм 3 16 нВт со встроенным процессором Cortex-M0+ и оптической связью для измерения температуры в сотовой сети». Устройство составляет одну десятую размера компьютера IBM, который ранее был объявлен мировым рекордом по размеру, выпущенного несколько месяцев назад в марте 2018 года, что меньше крупинки соли.

Кортекс-М1

Cortex-M1 — это оптимизированное ядро, специально разработанное для загрузки в микросхемы FPGA . [4]

Ключевые особенности ядра Cortex-M1: [19]

Варианты кремния:

Чипсы

Следующие поставщики поддерживают Cortex-M1 в качестве программных ядер на своих чипах FPGA:

Кортекс-М3

Плата Arduino Due с микроконтроллером Atmel ATSAM3X8E ( ядро ARM Cortex-M3 )
Плата разработки NXP LPCXpresso с LPC1343

Ключевые особенности ядра Cortex-M3: [20] [35]

Варианты кремния:

Чипсы

На базе ядра Cortex-M3 построены следующие микроконтроллеры:

Следующие чипы имеют Cortex-M3 в качестве вторичного ядра:

Следующие ПЛИС включают в себя ядро ​​Cortex-M3:

Следующие поставщики поддерживают Cortex-M3 в качестве программных ядер на своих чипах FPGA:

Кортекс-М4

Silicon Labs ( Energy Micro ) Wonder Gecko STK плата с EFM32 WG990
Плата TI Stellaris Launchpad с LM4F120

Концептуально Cortex-M4 — это Cortex-M3 плюс инструкции DSP и опциональный блок с плавающей точкой (FPU). Ядро с FPU известно как Cortex-M4F.

Ключевые особенности ядра Cortex-M4: [21]

Варианты кремния:

Чипсы

nRF52833 на микробите v2
STM32F407IGH6

На базе ядра Cortex-M4 построены следующие микроконтроллеры:

На базе ядра Cortex-M4F (M4 + FPU ) построены следующие микроконтроллеры :

Следующие чипы имеют Cortex-M4 или M4F в качестве вторичного ядра:

Кортекс-М7

Плата Arduino GIGA R1 WiFi с (двухъядерным ARM Cortex-M7 + ARM Cortex-M4) микроконтроллером STM32H747XIH6

Cortex-M7 — это высокопроизводительное ядро ​​с почти вдвое большей энергоэффективностью, чем у старого Cortex-M4. [7] Он оснащен 6-ступенчатым суперскалярным конвейером с предсказанием ветвлений и дополнительным блоком с плавающей точкой, способным выполнять операции с одинарной точностью и, опционально, с двойной точностью . [7] [38] Шины инструкций и данных были увеличены до 64 бит по сравнению с предыдущими 32-битными шинами. Если ядро ​​содержит FPU, оно известно как Cortex-M7F, в противном случае это Cortex-M7.

Ключевые особенности ядра Cortex-M7: [22]

Варианты кремния:

Чипсы

На базе ядра Cortex-M7 построены следующие микроконтроллеры:

Кортекс-М23

Ядро Cortex-M23 было анонсировано в октябре 2016 года [39] и основано на архитектуре ARMv8-M , которая была анонсирована ранее в ноябре 2015 года. [40] Концептуально Cortex-M23 похож на Cortex-M0+, плюс инструкции целочисленного деления и функции безопасности TrustZone, а также имеет двухступенчатый конвейер инструкций . [8]

Ключевые особенности ядра Cortex-M23: [23] [39]

Варианты кремния:

Чипсы

На базе ядра Cortex-M23 построены следующие микроконтроллеры:

Кортекс-М33

Ядро Cortex-M33 было анонсировано в октябре 2016 года [39] и основано на архитектуре ARMv8-M , которая была анонсирована ранее в ноябре 2015 года. [40] Концептуально Cortex-M33 похож на гибрид Cortex-M4 и Cortex-M23, а также имеет 3-ступенчатый конвейер инструкций . [9]

Ключевые особенности ядра Cortex-M33: [24] [39]

Варианты кремния:

Чипсы

На базе ядра Cortex-M33 построены следующие микроконтроллеры:

Следующие чипы имеют Cortex-M33 или M33F в качестве вторичного ядра:

Cortex-M35P

Ядро Cortex-M35P было анонсировано в мае 2018 года и основано на архитектуре Armv8-M . Концептуально это ядро ​​Cortex-M33 с новым кэшем инструкций, а также новыми концепциями аппаратной защиты от несанкционированного доступа, заимствованными из семейства ARM SecurCore, и настраиваемыми функциями четности и ECC. [10]

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

Чипсы

На базе ядра Cortex-M35P построены следующие микроконтроллеры:

Кортекс-М52

Ядро Cortex-M52 было анонсировано в ноябре 2023 года и основано на архитектуре Armv8.1-M . Концептуально его можно рассматривать как нечто среднее между Cortex-M33 и Cortex-M55. Основные отличия заключаются в том, что его сопроцессор Helium является однотактным (M55 — двухтактным), и он имеет 32-битную главную шину, аналогичную M33, для облегчения перехода приложений. Он имеет 4-ступенчатый конвейер инструкций. [11]

Ключевые особенности ядра Cortex-M52 включают в себя:

Варианты кремния:

Чипсы

Следующие микроконтроллеры основаны на ядре Cortex M52

Кортекс-М55

Ядро Cortex-M55 было анонсировано в феврале 2020 года и основано на архитектуре Armv8.1-M . Оно имеет 4- или 5-ступенчатый конвейер инструкций. [12]

Ключевые особенности ядра Cortex-M55 включают в себя:

Варианты кремния:

Чипсы

Кортекс-М85

Ядро Cortex-M85 было анонсировано в апреле 2022 года и основано на архитектуре Armv8.1-M . Оно имеет 7-ступенчатый конвейер инструкций. [13]

Варианты кремния:

Чипсы

Инструменты разработки

Документация

Документация для чипов ARM обширна. Раньше документация по 8-битным микроконтроллерам обычно умещалась в один документ, но по мере развития микроконтроллеров также развивалось и все необходимое для их поддержки. Пакет документации для чипов ARM обычно состоит из набора документов от производителя ИС, а также поставщика ядра ЦП ( ARM Limited ).

Типичное нисходящее дерево документации выглядит следующим образом:

Дерево документации (сверху вниз)
  1. Сайт производителя микросхем.
  2. Маркетинговые слайды производителя ИС.
  3. Технический паспорт производителя микросхемы для точного физического чипа.
  4. Справочное руководство производителя ИС, в котором описываются общие периферийные устройства и аспекты семейства физических микросхем.
  5. Основной веб-сайт ARM.
  6. Общее руководство пользователя ядра ARM.
  7. Техническое справочное руководство по ядру ARM.
  8. Справочное руководство по архитектуре ARM.

У производителей ИС есть дополнительные документы, такие как: руководства пользователя оценочной платы, примечания по применению, руководства по началу работы, документы библиотеки программного обеспечения, исправления и т. д. См. раздел Внешние ссылки для ссылок на официальные документы Arm.

Смотрите также

Ссылки

  1. ^ Веб-сайт ARM Cortex-M; ARM Limited.
  2. ^ ab "Cortex-M0 Home". ARM Limited .
  3. ^ "Cortex-M0+ Home". ARM Limited .
  4. ^ ab "Cortex-M1 Home". ARM Limited .
  5. ^ "Cortex-M3 Home". ARM Limited .
  6. ^ "Cortex-M4 Home". ARM Limited .
  7. ^ abc "Cortex-M7 Home". ARM Limited .
  8. ^ ab "Cortex-M23 Home". ARM Limited .
  9. ^ ab "Cortex-M33 Home". ARM Limited .
  10. ^ abc "Cortex-M35P Home". ARM Limited .
  11. ^ abc "Cortex-M52 Home". ARM Limited .
  12. ^ abc "Cortex-M55 Home". ARM Limited .
  13. ^ ab "Cortex-M85 Home". ARM Limited .
  14. ^ abcdefghijklmnopqr "Справочное руководство по архитектуре ARMv6-M". ARM Limited .
  15. ^ abcdefghijklmnopqr "Справочное руководство по архитектуре ARMv7-M". ARM Limited .
  16. ^ abcd Разработка встроенного программного обеспечения Cortex-M3; Примечание к приложению 179; ARM Limited.
  17. ^ abc "Техническое справочное руководство Cortex-M0". ARM Limited .
  18. ^ abcd "Техническое справочное руководство по Cortex-M0+". ARM Limited .
  19. ^ abc "Техническое справочное руководство по Cortex-M1". ARM Limited .
  20. ^ abc "Техническое справочное руководство по Cortex-M3". ARM Limited .
  21. ^ abc "Техническое справочное руководство по Cortex-M4". ARM Limited .
  22. ^ abcd "Техническое справочное руководство по Cortex-M7". ARM Limited .
  23. ^ abc "Техническое справочное руководство по Cortex-M23". ARM Limited .
  24. ^ abc "Техническое справочное руководство по Cortex-M33". ARM Limited .
  25. ^ ab "Техническое справочное руководство Cortex-M52". ARM Limited .
  26. ^ ab "Техническое справочное руководство Cortex-M55". ARM Limited .
  27. ^ ab "Техническое справочное руководство Cortex-M85". ARM Limited .
  28. ^ abc "Cortex-M System Design Kit (CMSDK)". Arm Holdings . Архивировано из оригинала 4 марта 2016 г.
  29. ^ abcdefghij Руководство по программированию ARM Cortex-M для инструкций барьера памяти; Раздел 3.6 Требования к реализации системы; AppNote 321; ARM Limited.
  30. ^ abcdefghijkl "Справочное руководство по архитектуре ARMv8-M". ARM Limited .
  31. ^ 32-битные микроконтроллеры PIC и SAM; Microchip.
  32. ^ Fingas, Jon (25 февраля 2014 г.). «Freescale делает самый маленький в мире чип контроллера ARM еще меньше» . Получено 2 октября 2014 г.
  33. ^ GOWIN Semiconductor присоединяется к ARM DesignStart, предлагая бесплатные процессоры ARM Cortex-M1 для своих семейств продуктов FPGA
  34. ^ Cortex-M1 DesignStart FPGA XilinxEdition; ARM Limited.
  35. ^ Садасиван, Шьям. "Введение в процессор ARM Cortex-M3" (PDF) . ARM Limited. Архивировано из оригинала (PDF) 26 июля 2014 г.
  36. ^ "Samsung Exynos 7420 Deep Dive - Inside a Modern 14nm SoC". AnandTech . Получено 2015-06-15 .
  37. ^ Cortex-M3 DesignStart FPGA XilinxEdition
  38. ^ "ARM выводит рынок микроконтроллеров на новый уровень с помощью высокопроизводительного процессора Cortex-M7". ARM Limited (пресс-релиз). 24 сентября 2014 г.
  39. ^ abcd Новые процессоры ARM Cortex-M предлагают следующий отраслевой стандарт для безопасного Интернета вещей; ARM Limited; 25 октября 2016 г.
  40. ^ Архитектура ARMv8-M упрощает безопасность интеллектуальных встраиваемых устройств; ARM Limited; 10 ноября 2015 г.
  41. ^ «Первый в мире двухъядерный микроконтроллер реального времени с процессором Cortex-M52 представлен на выставке Electronica China 2024».

Дальнейшее чтение

Внешние ссылки

Официальные документы ARM Cortex-M
Краткие справочные карты
Миграция
Другой