Arquitetura ARM
ARM, originalmente Acorn RISC Machine, e depois Advanced RISC Machine, é uma família de arquiteturas RISC desenvolvida pela empresa britânica ARM Holdings. Tais arquiteturas são licenciadas pela ARM para outras empresas, que implementam-nas em seus próprios produtos. A ARM também desenvolve chips que utilizam tal arquitetura e que são licenciados para uso exclusivo de outras empresas em seus produtos.
Resultado do projeto inovador de um bem sucedido fabricante britânico de computadores chamado Acorn Computer Group. Inicialmente desenvolvido pela Acorn Computers Limited de Cambridge, Inglaterra, entre outubro de 1983 e abril de 1985, foi o primeiro processador RISC desenvolvido para uso comercial. Projeto baseado no processador Berkeley RISC I. O Núcleo ARM se manteve basicamente com o mesmo tamanho durante sua evolução. ARM2 tinha 30,000 transistores, enquanto o ARM6 evoluiu para apenas 35,000. Em 2009 alguns fabricantes de netbooks utilizaram processadores Arm em seus produtos para concorrer com o Atom da Intel. Em 1985 surgiram os primeiros exemplares do microprocessador ARM1 (Acorn RISC Machine 1) e, no ano seguinte, a versão comercial ARM2. Esses microprocessadores possuíam um barramento de dados de 32 bits e outro de endereços de 26 bits (que permitiam endereçar até 64MB de memória). Incluíam também um conjunto de 16 registradores de 32 bits, sendo um deles destinado ao contador de programa e bits de estado do processador. As versões iniciais dos microprocessadores ARM (ARM2 e ARM3) foram utilizadas nos primeiros computadores RISC pessoais (Archimedes 300, 400 e 500) fabricados pela Acorn.
Imagem: seier+seier · BY · Openverse
A arquitetura ARM 32-bits, como a ARMv7-A, foi a arquitetura mais amplamente utilizada em dispositivos móveis em 2011 Desde 1995, o ARM Architecture Reference Manual tem sido a principal fonte de documentação sobre a arquitetura de processador ARM e conjunto de instruções, distinguindo interfaces que todos os processadores ARM são necessários para suportar (como semântica de instruções) de detalhes de implementação que podem variar. A arquitetura evoluiu ao longo do tempo, e a versão sete da arquitetura, ARMv7, define três "perfis" de arquitetura: Embora os perfis de arquitetura tenham sido definidos pela primeira vez para o ARMv7, o ARM definiu posteriormente a arquitetura ARMv6-M (usada pelo Cortex M0 / M0 + / M1) como um subconjunto do perfil do ARMv7-M com menos instruções.
Modos do CPU
Exceto no perfil-M, a arquitetura ARM de 32 bits especifica vários modos de CPU, dependendo dos recursos de arquitetura implementados. A qualquer momento, a CPU pode estar em apenas um modo, mas pode alternar modos devido a eventos externos (interrupções) ou programaticamente.
Conjunto de Instruções
A implementação original (e subsequente) do ARM foi programada sem microcódigo, como o muito mais simples processador de 8 bits 6502 usado nos microcomputadores Acorn anteriores. A arquitetura ARM de 32 bits (e a arquitetura de 64 bits em sua maior parte) inclui os seguintes recursos do RISC: Para compensar o design mais simples, comparado com processadores como o Intel 80286 e o Motorola 68020, alguns recursos de design adicionais foram usados: O ARM inclui operações aritméticas inteiras para adicionar, subtrair e multiplicar; Algumas versões da arquitetura também suportam operações de divisão. O ARM suporta multiplicações de 32 bits × 32 bits com resultado de 32 bits ou resultado de 64 bits, embora os núcleos Cortex-M0 / M0 + / M1 não suportem resultados de 64 bits. Alguns núcleos ARM também suportam multiplicações de 16 bits × 16 bits e 32 bits × 16 bits.
Imagem: seier+seier · BY · Openverse
O padrão RISC do processador permite que estes processadores tenham menos transístores que processadores CISC (x86). Essa abordagem reduz custos, liberação de calor e consumo de energia. Essas são características desejáveis para dispositivos portáteis, como smartphones, laptops, tablets e outros dispositivos embarcados. Uma estrutura mais simples facilita a criação de multi-core CPUs, o que impacta na redução de custos de produção. Os processadores ARM são 90% dos processadores embarcados RISC de 32 bits. O processador ARM possui sete modos de operação que podem ser intercambiados através do software, interrupções externas e processamento de execuções. Normalmente as aplicações são executadas a nível de usuário. Enquanto o processador esta no modo usuário o programa sendo executado é incapaz de acessar alguns recursos protegidos do sistema ou mudar de modo. Os outros modos além do modo usuário são denominados modos privilegiados. Eles tem acesso completo aos recursos do sistema e podem mudar de modo livremente.
Principais Características
Interrupções são definidas por configurações programáveis. FIQ: Fast Interrupt Request, maior prioridade. IRQ: Vectorred Interupt Request, intermediária (0 à 15). Não - Vectored Interupt Request, menor prioridade. As prioridades das interrupções dos diversos dispositivos são ajustadas dinamicamente Bloco de conexão de pinos, este bloco permite selecionar pinos do microcontrolador que possuem mais que uma função. registros de configuração controlam os multiplexadores para permitir a conexão entre os pinos e os periféricos no chip. Periféricos devem ser conectados a pinos apropriados antes de serem habilitados e antes de qualquer interrupção relacionada seja ativada. Ativação de qualquer função periférica que não é mapeada para um pino relacionado devem ser consideradas indefinidas.
Organização da Arquitetura ARM
Os processadores e microcontroladores construídos com a arquitetura ARM são identificados conforme a versão da arquitetura adotada, o perfil e suas variantes. Até o momento já foram definidas 9 versões de arquitetura ARM, sendo atualmente em uso apenas 4, identificadas pelo Prefixo ARMv, sendo elas ARMv6, ARMv7, ARMv8 e ARMv9. Considerando a mais atual a ARMv9, temos 3 perfis de uso definidos, ARMv9-A, ARMv9-R e ARMv9-M sendo respectivamente usadas para, processadores de aplicação geral, processadores e microcontroladores para aplicações de uso critico e resposta em tempo real, e finalmente o perfil para uso em microcontroladores de uso geral.


