ARM Cortex-M

ARM Cortex-M é uma família de núcleos de processador RISC de 32-bit licenciados pela ARM Holdings, principalmente usados em microcontroladores. Os núcleos que compõem a família são Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4.[1][2][3][4]

Circuitos integrados ARM Cortex-M0 / Cortex-M3 da NXP e Energy Micro

Cortex-M0

Características

As principais características do núcleo Cortex-M0 são:[1]

  • Arquitetura ARMv6-M[5]
  • Conjunto de Instruções
    • Thumb (maioria), sem CBZ, CBNZ, IT.
    • Thumb-2 (subconjunto), apenas BL, DMB, DSB, ISB, MRS, MSR.
    • Multiplicação de hardware (32-bit), 3 ciclos ou 32 ciclos (silicon option)
  • Pipeline de 3 estágios

Implementação

Os seguintes fornecedores desenvolvem microcontroladores baseados no núcleo Cortex-M0:

  • Energy Micro EFM32 família Zero Gecko
  • NXP família LPC11xx, LPC12xx
  • nuvoTon família NuMicro
  • STMicroelectronics STM32 família F0
  • Cypress Semiconductor PSoC 4
  • Freescale família Kinetis L (Cortex M0+)

Cortex-M1

Características

As principais características do núcleo Cortex-M1 são:[2]

  • Arquitetura ARMv6-M[5]
  • Conjunto de Instruções
    • Thumb (maioria), sem CBZ, CBNZ, IT.
    • Thumb-2 (subconjunto), apenas BL, DMB, DSB, ISB, MRS, MSR.
    • Multiplicação de hardware (32-bit), 3 ciclos ou 33 ciclos (silicon option)

Implementações

Os seguintes fornecedores de FPGAs dão suporte ao Cortex-M1:

  • Actel FPGAs
  • Altera FPGAs
  • Xilinx FPGAs

Cortex-M3

mbed com microcontrolador NXP LPC1768

Características

As principais características do núcleo Cortex-M3 são:[3][6]

  • Arquitetura ARMv7-M[7]
  • Suporte a instruções Thumb e Thumb-2
  • Pipeline de 3 estágios com branch predictor
  • 1 a 240 interrupções de hardware, mais NMI
  • Latência de interrupções de 12 ciclos
  • Modos sleep integrados
  • MPU com 8 regiões
  • 1.25 DMIPS/MHz
  • 0,19 mW/MHz
  • 0,86 mm2 (núcleo + periféricos)

Implementações

Vários modelos de PCB com sistema SoCs são implementados com o núcleo Cortex-M3, incluindo:

  • Actel família SmartFusion
  • Atmel família SAM3S, SAM3U, e SAM3N.
  • NXP famílias 17xx e 13xx;
  • STMicroelectronics família STM32;
  • Texas Instruments família Stellaris e também incluído em alguns SoCs OMAPs 4;
  • Toshiba Série TX03

Cortex-M4

Características

Conceitualmente, o Cortex-M4 é um Cortex-M3 com Instruções DSP, e uma Unidade de Ponto Flutuante opcional. Se o núcleo contém a unidade de ponto flutuante, é conhecido como Cortex-M4F. As principais características do núcleo Cortex-M4 são:[4]

  • Arquitetura ARMv7-ME[7]
  • Suporte a instruções:
    • Thumb (total)
    • Thumb-2 (total)
    • Multiplicador de hardware de 1 ciclo (32-bit), divisão de hardware de 2-12 ciclos (32-bit)
    • Extensão DSP: 16/32-bit MAC de único ciclo, 16-bit MAC duplo de único ciclo, aritmética 8/16-bit SIMD.
    • Extensão de ponto flutuante (silicon option): Unidade de ponto flutuante de precisão simples, chamada FPv4-SP.
  • Pipeline de 3 estágios com branch predictor
  • 1 a 240 interrupções de hardware, mais NMI
  • Latência de interrupções de 12 ciclos
  • Modos sleep integrados
  • MPU com 8 regiões (silicon option)
  • 1,25 DMIPS/MHz

Implementações

Os seguintes fornecedores desenvolvem microcontroladores baseados no núcleo Cortex-M4:

Referências

  1. a b Cortex-M0 r0p0 Technical Reference Manual; ARM Holdings.
  2. a b Cortex-M1 r1p0 Technical Reference Manual; ARM Holdings.
  3. a b Cortex-M3 r2p0 Technical Reference Manual; ARM Holdings.
  4. a b Cortex-M4 r0p1 Technical Reference Manual; ARM Holdings.
  5. a b ARMv6-M Architecture Reference Manual; ARM Holdings.
  6. Sadasivan, Shyam. «An Introduction to the ARM Cortex-M3 Processor» (PDF). ARM Holdings. Consultado em 5 de março de 2011. Arquivado do original (PDF) em 26 de julho de 2014 
  7. a b ARMv7-M Architecture Reference Manual; ARM Holdings.

Ver também

Ligações externas

O Commons possui uma categoria com imagens e outros ficheiros sobre ARM Cortex-M
  • ARM Cortex-M Website, arm.com
  • Cartões de Referência Rápida para Instruções "(em inglês)": Thumb, ARM and Thumb-2, Vector Floating Point
  • ARM Cortex-M3 - ARM Processor
  • RISC vs. CISC in the mobile era
  • Cortex-M3/STM32 JTAG Embedded Test