e
quer mais?
Me paga um café! :) PIX consultoria@carlosdelfino.eti.br
Curta o post no final da página, use o Disqus, compartilhe em sua rede social. Isso me ajuda e motiva
Obrigado.
Esta semana do dia 26 de outubro de 2016 foi lançado dois novos microcontroladores ARM da Família Cortex-M com foco exclusivo em IoT.
o Lançamento da Família Cortex-M
A família cortex-M nasceu em 19 de outubro de 2004, quando a ARM revolucionou o mercado trazendo um conceito de chips 32bit para o nicho de microcontroladores, até então todos se gabavam, e até hoje alguns ainda insistem em viver no passado com o argumento que não precisam mais de 8 bits para desenvolver suas soluções. Sem dúvida muitas soluções se resolvem com menos de 8 bits, porém não é só de bits que se trata este novo conceito de processadores para microcontroladores.
A adoção dos microcontroladores ARM desde então foi rápida e sem traumas, já que a ARM manteve compátibilidade entre as familias usando subconjuntos de instruções, facilitando assim a migração dos programadores ARM de outros nichos sem traumas para o nicho de microcontroladores.
Desde então a família de microcontroladores tem crescido, sendo composta hoje pelos microcontroladores Cortex-M0, CortexM0+, Cortex-M1, Cortex-M23, Cortex-M33, Cortex-M3, Cortex-M4 e Cortex-M7.
Cada um destes microcontroladores busca atender um nicho dentro do mercado de microcontroladores, trazendo sempre a arquiteutra Risc de 32 bits como sendo sua base, e o conjunto de instruções ARM Thumb de 16bits, porém capaz de tratar dados e transferi-los em blocos de 32 bits, com exceção dos novos Cortex-M33 e Cortex-M23 que são também com instruções de 32bits.
Em novembro de 2010 a ARM lançou mais um perfil arquitetural para sua família de microcontroladores chamado ARMv8-M, que traz novos recursos para uso em IoT fundamentados na segurança através da tecnologia TrustZone, entre outros recursos.
Já em 25 de outubro de 2016, nesta semana a arm lança os dois primeiros chips que usam a arquitetura ARMv8-M especifica para microcontroladores, vejamos um pouco mais desta arquitetura para entendermos o que ela nos trás de tão importante.
A arquitetura ARMv8-M
O perfil ARMv8 está presente nas três familias de processadores ARM, sendo ARMv8-A, ARMv8-R e ARMv8-M com destaque nos recursos apresentados na figura abaixo.
Como pode ser visto, todos possuem instruções 32bits, sendo o Cortex-M provido apenas com o conjunto de instruções T32/Thumb™
Abaixo está o video de Mike Muller, CTO da ARM, anunciando esta semana o lançamento de dois novos processadores Cortex-M baseados na arquitetura ARMv8-M.
A arquitetura ARMv8-M
ARMv8-M é uma arquitetura para esta nova geração da família de microcontroladores Cortex-M que tem como caracteristica serem deterministicos em tempo real e para uso embarcado, sendo a base para soluções embarcadas de alta produtividade e segurança.
A Arquitetura ARMv8-M é focada na produtividade e segurança facilitando o desenvolvimento de aplicações para o mercado IoT e Embarcados. Reduzindo a complexidade de desenvolvimento de soluções embarcadas seguras em SoCs complexos.
ARMv8-M além de adicionar baixo overhead com sua extenção de segurança baseada no ARM TrustZone®, também aperfeiçoa o mecanismo de Depuração e Rastreio de instruções com mais breakpoints e watchpoints flexíveis que melhoram a produtividade. Traz também uma unidade de proteção de mémoria MPU mais simples de programar. E dois sub-perfis para atender projetos mid-range e high end.
ARMv8-M tem como baseline extendendo o ARMv6-M com:
- Hardware para divisão para operações mais rápidas com Inteiros.
- Instruções de comparação e ramificação para controle de código rápido.
- Ramificação longa para optimizar linkagem, incluindo longas chamadas cruzadas.
- Semaforos comuns para uso por multíplos processadores.
- Bits ativos para repriorização dinamica de interrupções.
- Sporte avançado para sistemas multiprocessador com adição de instruções para tipos de dados atômicos do C11 (instruções load-acquire e store-release)
Na linha principal de recurso o ARMv8-M tem total capacidade para aplicações embarcadas:
- Altamente escalavel e configurável.
- Adicionada extenso conjunto de instruções 32bit para uma performance significantemente acima do ARMv6-M
- Possui um DSP para inteiros e extenção de ponto flutuante opcional para processamento de sinais mais eficiente.
- Coprocesador opcional para suporte a aceleração por hardware.
Para melhorar a produtividade de software ARMv8-M também adiciona:
Um modelo de programação simplificado para a unidade de proteção de mémoria. Permitindo definir a região apenas definindo o inicio e fim do endereçamento. Encoragando os desenvolvedores a ativar a proteção de memoria resultando no almento da reliabilidade do software.
Aperfeiçoamento na depuração com melhoria no rastreamento e breackpoints taais como suporte suspensão em faixas de endereços de 32bit.
Adiciona um rastreamento mais amplo e extensão de depuração self-hosted para tornar a depuração e rastreamento mais fácil em sistemas embarcados, reduzindo dramaticamente o esforço de projeto e liberação de ciclos.
O TrustZone para ARMv8-M é conceitualmene similar à tecnologia TrustZone usado em processadores Cortex-, mas é otimizado para aplicações embarcadas que demandam um consumo de energia ultra baixo.
O TrustZone para ARMv8-M é projetado para:
- Segurança acessível para processadores pequenos e de baixo consumo de energia.
- Habilitar multiplos domínios de segurança para software.
- Simplificação da segurança de dispositivos embarcados através da separação do código seguro.
- Restrição de acesso para garantir a memória e I/O apenas para para softwares confiáveis.
- Baixo overhead para chamadas cross-domain.
- Preservação da baixa latencia de interrupções para ambos domínios, seguros e não seguros
- compatiblidade de barramento com sistemas Cortex-A, habilitando estados de segurança TrustZone extenderem através de sistemas Cortex-A e Cortex-M.
Exemplos de uso:
- Nós IoT seguros.
- Simplific o deploy de softwares de multiplas origens.
- Armazenamento e processamento seguro de informações confidênciais.
- Proteção de propriedade intelectual do Firmware.
- Restrição de acesso a software convidado, através de sandboxing.
- Restrição de acesso a periféricos e I/O para softwares confiáveis
Para complementar a arquitetura ARMv8-M, a especificação AMBA® 5 AHB5 foi desenvolvida para extender a segurança do TrustZone para todo o projeto do embarcado além do processador. Este padrão de interconexão adiciona controles de segurança como também extende os tipos de mémoria requeridos para embarcados de alta performance e suporte.
A Família ARM então recebe agora os dois novos microcontroladorres empoderados com a arquitetura ARMv8-M, sendo o Cortex-M23 para dispositívos de menor tamanho e restrições de energia, e o Cortex-M33 para uso em dispositivos mais complexos.
Ambos os microcontroladores já tem fornecedores trabalhando para sua produção e em breve veremos no mercado os novos chips.
Tais chips não nascerão sem um ecosistema capaz de desenvolver código específico e otimizado para seus novos recursos, além de permitir rodar naturalmente os códigos escritos para seus irmãos da Família Cortex-M, sem os recursos de segurança. As grandes ferramentas de desenvolvimento do mercado já estão se preparando para gerar códigos natívos para os novos microcontroladores, veja na figura:
Continua, clique aqui para segunda parte
Não deixe de me pagar um café, faz um PIX: consultoria@carlosdelfino.eti.br de qualquer valor.