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]
![](https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/ARM_Cortex-M0_and_M3_ICs_in_SMD_Packages.jpg/360px-ARM_Cortex-M0_and_M3_ICs_in_SMD_Packages.jpg)
Cortex-M0
[editar | editar código-fonte]Características
[editar | editar código-fonte]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
[editar | editar código-fonte]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
[editar | editar código-fonte]Características
[editar | editar código-fonte]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
[editar | editar código-fonte]Os seguintes fornecedores de FPGAs dão suporte ao Cortex-M1:
Cortex-M3
[editar | editar código-fonte]![](https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Mbed_RapidPrototypingBoard_with_NXP_LPC1768%28ARM_Cortex-M3%29_MCU.jpg/220px-Mbed_RapidPrototypingBoard_with_NXP_LPC1768%28ARM_Cortex-M3%29_MCU.jpg)
Características
[editar | editar código-fonte]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
[editar | editar código-fonte]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
[editar | editar código-fonte]Características
[editar | editar código-fonte]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
[editar | editar código-fonte]Os seguintes fornecedores desenvolvem microcontroladores baseados no núcleo Cortex-M4:
- Atmel família SAM4 (Cortex-M4)
- Freescale famílias Kinetis (Cortex-M4 and Cortex-M4F)
- STMicroelectronics STM32 família F4 (Cortex-M4F)
- Texas Instruments família Stellaris LM4F (Cortex-M4F)
Referências
- ↑ a b Cortex-M0 r0p0 Technical Reference Manual; ARM Holdings.
- ↑ a b Cortex-M1 r1p0 Technical Reference Manual; ARM Holdings.
- ↑ a b Cortex-M3 r2p0 Technical Reference Manual; ARM Holdings.
- ↑ a b Cortex-M4 r0p1 Technical Reference Manual; ARM Holdings.
- ↑ a b ARMv6-M Architecture Reference Manual; ARM Holdings.
- ↑ 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
- ↑ a b ARMv7-M Architecture Reference Manual; ARM Holdings.
Ver também
[editar | editar código-fonte]Ligações externas
[editar | editar código-fonte]- 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