7 Comentários

Lançamento do núcleo ARM Cortex-M7!

arm cortex-m7

Estamos num mundo em constante evolução na área da eletrônica, o que proporciona ao idealizador de um produto diversas e distintas alternativas. No campo de microcontroladores/microprocessadores a evolução é impressionante e nos deixa preocupados com relação ao que já produzimos ou estamos desenvolvendo tornar-se obsoleto. É a evolução natural das coisas, assim elas ficam melhores. E a ARM nos aprontou mais uma, crescendo a família de IPs ARM Cortex-M e oferecendo mais uma opção de alta performance com uma preocupação em economia de energia, o núcleo ARM Cortex-M7, com o código Pelican.

Por que o ARM Cortex-M7?

Estamos vivendo a era da Internet das Coisas (IoT), e cada vez mais estamos rodeados por equipamentos conectados à internet, transmitindo dados sincronamente ou assincronamente, ou até mesmo os processando e tomando decisões importantes, localmente. Com o tempo a quantidade de informações tratadas gera um trabalho árduo de processamento por parte do coração do equipamento, o microprocessador/microcontrolador. A execução de um stream de vídeo ou descompressão de uma mídia são necessidades recorrentes nos projetos atuais e, por conta disso, microprocessadores de alta capacidade de processamento, baseados nos núcleos ARM Cortex-A, acabam sendo escolhidos. Levando-se em conta o portfolio de IPs oferecidos pela ARM, percebía-se um gap relativamente grande entre um núcleo ARM Cortex-M4 e ARM Cortex-A5, que roda a partir de 530 MHz. O núcleo ARM Cortex-M7 vem para preencher esse mercado.

Há uma competição muito grande no mercado de microcontroladores de 32 bits, principalmente entre os seus fabricantes. Mas quem está contente com isso é a própria ARM, que desde que lançou o núcleo ARM Cortex-M3 em 2004, já foram vendidos mais de 8 bilhões de microcontroladores pelo mundo, com pelo menos um núcleo ARM Cortex-M, e só neste ano já foram vendidos 1,7 bilhões de unidades.

O que é o ARM Cortex-M7?

Estávamos acostumados com microcontroladores baseados no núcleo ARM Cortex-M4, e agora com esse novo membro da família ARM teremos à disposição o dobro do poder de computação e processamento digital de sinais. O core ARM Cortex-M7 atinge a marca impressionante de 5 CoreMark/MHz* , contra 3,40 CoreMark/MHz do seu antecessor[6]. Mas o que causa esse excelente desempenho?

Primeiramente, podemos considerar o seu pipeline de 6 estágios, ao passo que o núcleo ARM Cortex-M4 processa suas instruções por meio de um pipeline de 3 estágios. Além disso, ele oferece uma unidade de ponto-flutuante de precisão simples e dupla, e instruções de DSP (MAC, SIMD e divisão por hardware).

Os núcleos ARM Cortex-M0+, M3 e M4 oferecem, opcionalmente, 8 regiões de memória protegida (MPU, não presente no núcleo M0) com sub-regiões. Nesse novo membro da família foi extendido esse número para 16.

Uma das grandes contribuições para o aumento de desempenho vem das modificações no sistema de memória, responsável por acessar memória de programa, memória de dados e periféricos por meio do mapeamento linear de memória. Os núcleos ARM Cortex-M fazem uso do padrão ARM® AMBA®, que contém uma coleção de especificações de protocolos de barramento. Em específico os microcontroladores baseados no ARM Cortex-M3/4 fazem uso dos protocolos AHB Lite (Advanced High-performance Bus) e do APB (Advanced Peripheral Bus). O primeiro é usado para memória de programa e barramento de sistema, ao passo que o segundo é usado para interface com periféricos. Para melhorar o desempenho do núcleo ARM Cortex-M7, a ARM implementou nele alguns protocolos de outra especificação dentro da AMBA, chamada AMBA 4. Dentre esses protocolos pode-se citar o AXI4 (com melhorias de interconexão, suportando trasferências de 64 bits e cache de memória de programa e dados) e AHB. Veja o diagrama do núcleo na Figura 1.

Cortex-M7-chip-diagramLG

Figura 1 - Diagrama no núcleo ARM Cortex-M7

Foram adicionados dois módulos ao núcleo capaz de gerenciar memória do tipo TCM (Tightly-Coupled Memory), que não faz uso de cache e possui acesso muito rápido. Um dos módulos é para controle da memória de dados e o outro é para gerenciamento da memória de programa. Além de ter acesso de alto desempenho, é opcional o uso do módulo ECC, para detecção e correção de dados nessas memórias. Com isso produtos fabricados com microcontroladores baseados nesse núcleo podem ser certificados com os níveis de segurança ASIL D e SIL 3.

Com todos esse benefícios, o núcleo ARM Cortex-M7 ainda oferece o mesmo modelo do programador C-friendly, ou seja, não é necessária uma linha de código em Assembly para o funcionamento do microcontrolador. E além disso, os binários gerados para a série ARM Cortex-M é compatível com o novo membro da família e existe um vasto ecossistema para desenvolvimento de firmware e software, também compatível, o que facilita a migração das versões anteriores de microcontroladores.

E tem mais uma melhoria com relação ao seu antecessor. É oferecido, opcionalmente, trace tanto de instruções quanto de dados via o módulo Embedded Trace Macrocell. Isso oferece visibilidade total do fluxo de execução do programa e da memória de dados, armazendo essas informações para depuração, profiling e análise de cobertura de código.

Para maiores informações desse núcleo, consulte o site da ARM.

* CoreMark 1.0 : IAR Embedded Workbench v7.30.1 --endian=little --cpu=Cortex-M7 -e -Ohs --use_c++_inline --no_size_constraints / Code in TCM - Data in TCM 

Conclusões/Cosiderações Finais

Muito bem, mas com relação a fabricantes, quais possuem microcontroladores com esse núcleo? De acordo com essa notícia da ARM, os primeiros licenciados serão Atmel, Freescale e ST Microelectronics. O que acharam dessa novidade? Particularmente não vejo a hora de ter uma evaluation board!

 

Para saber mais (opcional)

Existe uma literatura disponível no site da ARM muito interessante para quem quiser entrar no mundo dos ARM's. Bom divertimento!

Referências

http://www.arm.com/

ARM Cortex-M Series: http://www.arm.com/products/processors/cortex-m/

http://www.arm.com/products/processors/cortex-m/cortex-m7-processor.php
http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php
http://www.arm.com/products/processors/cortex-a/cortex-a5.php
http://www.eembc.org/benchmark/reports/benchreport.php?benchmark_seq=1448&suite=CORE
http://www.arm.com/products/system-ip/debug-trace/trace-macrocells-etm/index.php
http://www.arm.com/about/newsroom/arm-supercharges-mcu-market-with-high-performance-cortex-m7-processor.php
http://www.businesswire.com/news/home/20140923006764/en/Freescale-Plans-Extreme-Performance-Kinetis-MCUs-ARM#.VCLKXPldXX4
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1858

Livros sobre ARM: http://www.arm.com/support/resources/arm-books/index.php

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Hardware » Lançamento do núcleo ARM Cortex-M7!
Comentários:
Notificações
Notificar
guest
7 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Rogerio Machado
Rogerio
02/10/2014 18:16

STMicro STM32F4 (Cortex M4) vs STM32F7 (Cortex M7) Graphics Demo (ingles com sotaque frances)

http://www.cnx-software.com/2014/10/02/stmicro-stm32f4-cortex-m4-vs-stm32f7-cortex-m7-graphics-demo/

Rogerio Machado
Rogerio
24/09/2014 16:17

Eu fiz um projeto de uma placa PCI com uma FPGA e o Cortex M4 STM 32F429. Agora eh soh esperar o Cortex M7 STM32F7 que eh compativel pino a pino com o STM32F4. Como a FPGA tem uma memoria externa de 32MB e o ARM tem acesso a essa memoria atraves do FSMC o cache de 4KBx2 interno do STM32F7 vai melhorar em muito o acesso da memoria externa em relacao ao STM32F4 que nao tem cache!!! Conheco ha pouco tempo os ST mas tambem sou fã!

Rafael Dias
Rafael Dias
24/09/2014 08:17
Henrique Rossi
Reply to  Rafael Dias
24/09/2014 10:49

Muito obrigado pela dica Rafael...aproveitei e adicionei no post!

Abraços,
Henrique

Rafael Dias
Rafael Dias
24/09/2014 08:07

ai meu Deus!
Agora que me acabo.

Bom, é impressionante.

Ah, tem um errinho no post: os links [8] e [9] apontam para o mesmo item.

trackback
02/10/2014 22:06

[…] de microcontroladores com core ARM Cortex-M7. A ideia da ARM, conforme podem conferir no artigo [4] de Henrique Rossi [5] sobre esse assunto, foi posicionar esse dispositivo entre os processadores […]

Talvez você goste:

Séries

Menu

WEBINAR
 
Redes Mesh para Monitoramento
e Controle de Sensores

Data: 15/07 às 14:00h Apoio: Artimar| Microchip| Tecsus
 
INSCREVA-SE AGORA »



 
close-link