Arquitetura ARM

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book-4.svg
Esta página ou secção cita fontes fiáveis e independentes, mas que não cobrem todo o conteúdo, o que compromete a verificabilidade (desde novembro de 2014). Por favor, insira mais referências no texto. Material sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)
Arquitetura ARM
Logótipo
Captura de tela
DEC StrongARM
Produção ARM Holdings
Modelo ARMv7
Lançamento 1983
Arquitetura(s) 32 e 64 Bits
Página oficial 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.

Microprocessadores com uma arquitetura RISC em geral necessitam de menos transistores do que microprocessadores CISC, como os da arquitetura x86, comumente encontrada em computadores pessoais. Essa característica permite um consumo menor, custo menor, e dissipação de calor menor, o que faz dessa arquitetura algo desejado por fabricantes de dispositivios pequenos, portáteis, e movidos a bateria, como smartphones, laptops, e outros sistemas embarcados.[1][2][3] Supercomputadores também podem se beneficiar dessas características, e alguns utilizam arquitetura ARM.[4]

A ARM Holdings publica periodicamente atualizações para suas arquiteturas, todas elas com espaço de endereçamento de 32 bits (apenas chips pré-ARMv3, feitos antes da ARM Holdings ser formada, como no Acorn Archimedes, tinham espaços de endereçamento menores) e aritmética de 32 bits; instruções para chips da ARM possui tamanho fixo de 32 bits, mas versões mais recentes também suportam instruções de tamanho variável para melhorar a densidade de código. Alguns cores também providenciam a execução em hardware de bytecode Java. A arquitetura ARMv8-A, anunciada em Outubro de 2011,[5] suporta ainda endereçamento de 64 bits e aritmética de 64 bits, com instruções de tamanho fixo de 32 bits.

Com 100 bilhões de cores produzidos até 2017, ARM é a arquitetura mais popular em termos de quantidade.[6][7][8][9][10]

Histórico[editar | editar código-fonte]

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é 64MiB 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.

Em 1990, a Acorn Computer Group, a Apple Computer e a VLSI Technology uniram-se para formar a ARM Limited (Advanced RISC Machines), e em 1991 foi lançada a primeira versão comercial, o ARM6, juntamente com o primeiro microprocessador da ARM, o ARM610. Os principais conceitos por trás da arquitetura ARM são a simplicidade, baixo custo e baixo consumo.

Atualmente, a ARM Limited não fabrica chips, apenas desenvolve o projeto e licencia o uso de suas CPUs (a sua propriedade intelectual) para que outros fabricantes (como Cirrus Logic, STMicroelectronics, NXP, Texas Instruments, Atmel, Samsung, Sharp, Qualcomm, Nvidia, etc) possam produzir ou alterar as CPUs.

  • Outubro/1983, a Acorn Computers LTDA desenvolve o primeiro processador ARM.
  • 26 de abril de 1985 protótipos do ARM são fabricados pela VLSI Technilogy e são utilizados pela primeira vez em BBC Micros: primeiro processador RISC a ser comercializado.
  • 80's, os ARMs são utilizados nos desktops da Acorn (BBC MAster e Acorn Archimedes).
  • 80's, é criada uma versão estática, o ARM2aS.
  • Fim 80's, visando uma versão totalmente estática, a Apple junta-se a Acorn para desenvolver novas versões do ARM.
  • Novembro/1990, a AdvancedRM LTDA é fundada resultante de uma junção da Acorn com a Apple Computer e a VLSI Technology.
  • 1991, são lançados os primeiros do ARM6.
  • 1995, DEC e ARM lançam o StrongARM. (Intel compra DEC e ganha o StrongARM de "presente").
  • 1998, ARM LTDA é introduzida nas bolsas de Londres e DASDAQ.
  • Ao longo dos anos 90, ARM torna-se líder no mercado de processadores embarcados de alto desempenho e baixo consumo de energia.

Características da arquitetura[editar | editar código-fonte]

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[editar | editar código-fonte]

  • Arquitetura Load-Store: as instruções somente processarão (soma, subtração, etc) valores que estiverem nos registradores e sempre armazenarão os resultados em algum registrador.
  • Instruções fixas de 32 bits de largura (com exceção das instruções Thumb compactas de 16 bits) alinhadas em 4 bytes consecutivos da memória, com execução condicional, com poderosas instruções de carga e armazenamento de múltiplos registradores, capacidade de executar operações de deslocamento e na ULA com uma única instrução executada em um ciclo de clock.
  • Formato de instruções de 3 endereços (isto é, os dois registradores operandos e o registrador de resultado são independentemente especificados)
  • 16 registradores de 32 bits para uso geral
  • Manipulação de periféricos de I/O como dispositivos mapeados na memória com suporte à interrupções.
  • Conjunto de instruções aberto a extensões através de coprocessador, incluindo a adição de novos registradores e tipos de dados ao mInodelo do programador.
  • Pipelines de 3 a 15[11] estágios.
  • Baixo Consumo de energia;
  • Tamanho do núcleo reduzido;

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.

Propósitos gerais Paralell I/O e Fast I/O: pinos que não são conectados a específicas funções periféricas são controlados pelos registros do GPIO. Pinos podem ser configurados dinamicamente como entrada ou saída. Separar os registros permite configurar ou limpar qualquer número de saídas simultaneamente, o valor do registro de saída pode ser lido novamente, bem como os estados atuais das portas. No paralell e Fast I/O há controle de direção individual dos bits e todas as I/O viram input no reset.

Registradores: Os registradores podem ser utilizados para manipular dados de um byte, de meia palavra (16 bits) ou de uma palavra completa (32 bits). Quando instruções de um byte são utilizadas somente o byte menos significativo é utilizado. Quando instruções de meia palavra são utilizadas somente a palavra menos significativa é utilizada. Ao fazer referência a algum destes registros de propósito específico deve-se sempre levar em consideração qual o modo de operação corrente. Um outro registrador importante é o CPSR (Current Processor Status Register), que carrega informações sobre o estado corrente do processador, inclusive o modo de execução atual.

Organização da Arquitetura ARM[12][editar | editar código-fonte]

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 7 versões de arquitetura ARM, sendo atualmente em uso apenas 4, identificadas pelo Prefixo ARMv, sendo elas ARMv4, ARMv5, ARMv6 e ARMv7.

Considerando a mais atual a ARMv7, temos 3 perfis de uso definidos, ARMv7-A, ARMv7-R e ARMv7-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.

As variantes são identificadas por letras adicionados as versões. No momento existem as seguintes:

  • ARMv4,

uma variante que inclui apenas o conjunto padrão de instruções ARM.

  • ARMv4T,

nesta variante é adicionado o conjunto de instruções Thumb.

  • ARMv5T
melhorias em relação a interworking e instruções ARM. adicionado "Count Leading Zeros" (CLZ) e instruções para "Software Breakpoint"(BKPT).
  • ARMv5TE
Melhorias no suporte aritmético relativo a algoritmos de processamento de sinal (DSP), adicionado "Preload Data" (PLD), "Load Register Dual" (LDRD), Store Register Dual (STRD), e adicionado instruçòes para transferencias de 64-bits para registradores de coprocessador (MCRR, MRRC).
  • ARMv5TEJ

Adicionado a instrução BXJ e outros suportes para extensão arquitetural Jazelle®.

  • ARMv6

Adicionado novas instruções para o conjunto padrão ARM, formalizado e revisado o modelo de memória, e a arquitetura de Depuração.

  • ARMv6K

Adicionado instruções para suporte a multiprocessamento ao conjunto padrão de instruções e alguns recursos extras para o modelo de memória.

  • ARMv6T2

Introduz a tecnologia Thumb-2, que dá suporte a um maior desenvolvimento de instruções fornecendo um nível de funcionalidade similar ao conjunto de instruções padrão ARM.  Há também as extensões que são opcionais que podem ser adicionadas conforme o fabricante, as extensões são dividas em grupos, algumas delas estão listadas abaixo:

  • Extensões relativas ao conjunto de Instruções
    • Jazelle, é uma extensão que dá poder a variante arquitetural ARMv5TE como ARMv5TEJ.
    • Extensão para Virtualização.
    • ThumbEE é uma extensão que fornece um conjunto de instruções ampliado do conjunto Thumb padrão e que permite código dinamicamente gerado, sendo obrigatório no perfil ARMv7-A e é opcional no perfil ARMv7-R, para a versão arquitetural ARMv7.
    • Extensões de ponto flutuante é uma extensão para comprocessador de ponto flutuante. Esta extensão é historicamente chamada de Extensão VFP.
    • Advanced SIMD, é uma extensão do conjunto de instruções que adiciona instruções do tipo "Simgle Instruction Multiple Data" (SIND), para operação com vetores com os tipos de dados Inteiros e ponto flutuante de precisão simples, sobre registradores doubleword e quadword.
  • Extensões arquiteturais
    • Extensões de segurança.
    • Extensões para Multiprocessamento.
    • Extensões para Endereçamento Físico de Maior Largura.
    • Extensões para Virtualização.

Tipos de Núcleos[editar | editar código-fonte]

  • Processadores para aplicativos;
  • Processadores para sistemas embarcados;
  • Processadores SecurCore;

Família[editar | editar código-fonte]

Sistemas Operacionais Embarcados[editar | editar código-fonte]

Unix-Like[editar | editar código-fonte]

Linux[editar | editar código-fonte]

BSD[editar | editar código-fonte]

Solaris[editar | editar código-fonte]

Sistemas Operacionais[editar | editar código-fonte]

Sistemas Acorn[editar | editar código-fonte]

  • Arthur- Primeiro Sistema Operacional ARM;

Microsoft Windows[editar | editar código-fonte]

Ver também[editar | editar código-fonte]

Referências

  1. "Some facts about the Acorn RISC Machine" Roger Wilson posting to comp.arch, 2 November 1988. Retrieved 25 May 2007.
  2. "ARM Cores Climb Into 3G Territory" by Mark Hachman, 2002.
  3. "The Two Percent Solution" by Jim Turley 2002.
  4. «Fujitsu drops SPARC, turns to ARM for Post-K supercomputer». Consultado em 18 de dezembro de 2016 
  5. «ARM Discloses Technical Details Of The Next Version Of The ARM Architecture» (Nota de imprensa). ARM Holdings. 27 de outubro de 2011. Consultado em 20 de setembro de 2013 
  6. «MCU Market on Migration Path to 32-bit and ARM-based Devices: 32-bit tops in sales; 16-bit leads in unit shipments». IC Insights. 25 de abril de 2013. Consultado em 1 de julho de 2014 
  7. Hachman, Mark (2002). «ARM Cores Climb into 3G Territory». ExtremeTech 
  8. Turley, Jim (2002). «The Two Percent Solution». www.embedded.com 
  9. ARM Holdings eager for PC and server expansion, 1 de fevereiro de 2011 
  10. Kerry McGuire Balanza (11 de maio de 2010), ARM from zero to billions in 25 short years, ARM Holdings, consultado em 8 de novembro de 2012 
  11. «Cortex-A15 Processor». Consultado em 8 de dezembro de 2013 
  12. «ARM® Architecture Reference Manual - ARMv7-A and ARMv7-R edition». ARM - Info Center. 2014. Consultado em 26 de Agosto de 2014