Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de processadores ARM Diogo Tavares da Silva1 1Grupo de Sistemas Paralelos e Distribuídos (GSPD) – Departamento de Ciência da Computação e Estatística (DCCE) – Instituto de Biociências, Letras e Ciências Exatas (IBILCE) – Universidade Estadual Paulista “Júlio de Mesquita Filho” (UNESP) – São José do Rio Preto – São Paulo - Brasil tavareko@gmail.com Abstract. This paper presents a study about ARM processors, discussing the ARM architecture and its development historical. Additionally, this work makes a survey of the main families of ARM processors manufactured. Resumo. Este artigo apresenta um estudo sobre processadores ARM, discutindo sua arquitetura e histórico de desenvolvimento. Este trabalho também faz um levantamento sobre as principais famílias de processadores ARM produzidas comercialmente. 1. Introdução Este trabalho tem por intuito apresentar uma visão geral da arquitetura ARM (Advanced RISC Machine), apresentando suas principais características, além de um breve histórico de seu desenvolvimento e evolução. Este trabalho também apresenta evoluções recentes dos principais processadores (cores) desenvolvidos sob esta arquitetura. Atualmente, a tecnologia ARM é desenvolvida pela ARM Ltd. que é parte da ARM Holdings PLC, sendo que a última versão disponível de seus processadores é a ARMv8. É importante ressaltar que a ARM produz apenas o projeto lógico de seus processadores, vendendo-os para produção em empresas produtoras de semicondutores sob licenças de produção, onde as mesmas podem realizar modificações para inserir seus próprios componentes (como, por exemplo, coprocessadores). Segundo [ARM 2012] a arquitetura ARM apresenta os princípios fundamentais de arquiteturas RISC (Reduced Instruction Set Computer), como operações aplicadas somente no conteúdo de registradores (arquitetura load/store), instruções alinhadas e de tamanho fixo, além de modos de endereçamento simples. Entretanto, a arquitetura ARM apresenta melhorias significativas em seus processadores frente a arquiteturas RISC, apresentando um bom balanceamento entre alto desempenho, pequena codificação, baixo consumo energético e tamanho de núcleo reduzido. Devido aos fatores descritos anteriormente, a arquitetura ARM é atualmente, a principal arquitetura utilizada em sistemas embarcados. Processadores ARM estão presentes em celulares, smartphones, tablets, televisões digitais, set-top boxes, impressoras, netbooks, modems, roteadores, entre outros. Após esta breve introdução, a seção 2 apresenta uma fundamentação teórica, destacando um breve histórico de desenvolvimento dos processadores ARM, assim como uma visão geral desta arquitetura. A seção 3 apresenta uma relação dos principais processadores ARM comerciais e por fim, a seção 4 apresenta as considerações finais sobre este trabalho. 2. Visão Geral da arquitetura ARM Segundo [Furber 2000], processadores ARM seguem o conceito de processadores RISC, surgido no início da década de 80, nas universidades de Berkeley e Stanford. O primeiro processador ARM foi desenvolvido pela Acorn Computer Ltd. de Cambridge na Inglaterra, entre 1983 e 1985, com base no projeto do Berkeley RISC I. O acrônimo ARM significava Acorn RISC Machine. A partir deste ponto, a Acorn Computer prosseguiu com o desenvolvimento de seus processadores ARM, e juntamente com parceiros como a Apple Computer e VLSI Technologies Inc. criou em 1990, a ARM Ltd. com o objetivo de exploração e desenvolvimento da tecnologia ARM, alterando o acrônimo ARM para Advanced RISC Machine. Apesar da nova nomenclatura, a arquitetura manteve-se basicamente a mesma do projeto desenvolvido pela Acorn Computer. Primeiramente, podem-se destacar as principais características da arquitetura ARM. A mesma se apresenta como processador de 32 bits, que utiliza decodificação de instruções hardwired, possuindo 31 registradores de propósito geral, onde 16 destes estão visíveis. Quanto às instruções, possuem formato de três endereços, apresentando instruções de suporte a coprocessadores e capacidade de execução de instruções de 16 bits sob o modo de arquitetura Thumb, que se trata de um subconjunto de instruções da arquitetura ARM que permite uma maior densidade de código, frente algumas limitações. Além disso, a arquitetura apresenta baixo consumo energético e tamanho de núcleo reduzido. Segundo [ARM 2005], A arquitetura ARM apresenta como atributos chave de seu desenvolvimento fatores como tamanho da implementação, desempenho e baixo consumo de energia. Esta arquitetura segue o conceito de RISC e para tal, apresenta características como: x Conjunto grande e uniforme e registradores; x Arquitetura load/store, que permite operações apenas sob o conteúdo de registradores; x Modos de endereçamento simples; x Instruções uniformes e de tamanho fixo, de fácil decodificação. Em adição a estas características, esta arquitetura apresenta alguns melhoramentos como: x Controle sob a ULA e deslocador na maioria das instruções de processamento de dados, a fim de maximizar o uso destes dois componentes; x Modos de endereçamento de auto-incremento e auto-decremento para otimização de laços de repetição; x Instruções de Load/Store múltiplos, a fim de maximizar o troughput de dados; x Execução condicional da maioria das instruções. Como já dito anteriormente, a arquitetura ARM apresenta um conjunto de 31 registradores de propósito geral, onde a qualquer momento, 16 deles estão visíveis. Entre estes 16 registradores, alguns possuem funções especiais como stack pointer (R13), link register (R14), program conter (R15). Além disso, existem registradores utilizados em programas com nível de usuário como o CPSR (Current Program Status Register) que armazena bits condicionais de flags de execução, como controle de interrupção, controle do modo de CPU e do modo de decodificação de instruções (ARM ou Thumb), e registradores utilizados em outros modos de operação da CPU (dada a ocorrência de exceções) como o SPSR (Saved Program Status Register). 3. Processadores ARM Esta seção busca apresentar uma visão geral sobre o desenvolvimento e organização dos principais processadores ARM comerciais, sendo que este trabalho dará enfoque a implementações recentes. Inicialmente, é importante ressaltar que processadores ARM são divididos de acordo com a versão corrente da arquitetura ARM utilizada para seu desenvolvimento. A figura 1 apresentada abaixo apresenta uma relação entre processadores ARM e versão da arquitetura utilizada. Figura 1. Relação entre processadores ARM e arquitetura utilizada [RealView 2011] Segundo [ARM 2012] podemos classificar os processadores ARM recentes da seguinte maneira: x Família Cortex: Geração mais recente de processadores, dividida em “perfis” focando especificamente um dado tipo de abordagem: o Cortex-A: Voltados a aplicações com maior necessidade de desempenho, especialmente dispositivos móveis com capacidade de acesso à internet, como smartphones, e-books, TV’s digitais, etc. o Cortex-R: Desenvolvido especialmente para dispositivos embarcados que executam aplicações de tempo real. Presam por desempenho e baixo consumo de energia, como sistemas automotivos. o Cortex-M: Desenvolvido especialmente para uso em microcontroladores, buscando um balanceamento entre baixo custo, comportamento altamente determinístico e eficiência energética, como microcontroladores, sensores inteligentes etc; x Processadores ARM clássicos, que oferecem um bom balanceamento entre desempenho, eficiência energética e tamanho de núcleo. Destacam-se: o ARM7: processador de propósito geral de baixo custo. o ARM9: Apresenta desempenho superior ao ARM7, seguindoa versão 5 da arquitetura ARM. o ARM11: Utiliza a versão 6 da arquitetura ARM e presam por maior desempenho, à um baixo custo. x Processadores ARM especialistas: Desenvolvidos para aplicações específicas, destacam-se: o SecurCore: Voltado a aplicações de sistemas embarcados que necessitam de um nível elevado de segurança. o FPGA Core: Processador de FPGA. A figura 2 apresenta uma relação entre desempenho e capacidade de utilização, entre os diversos processadores ARM descritos. Vale ressaltar ainda que com o decorrer do tempo, foram incluídos novos recursos através de extensões à arquitetura ARM. Pode-se destacar: x Thumb: Recurso adicionado à arquitetura ARM a partir dos processadores ARM7TDMI em 1996 [ARM 2001], inclui um conjunto de instruções de 16 bits com o intuito de aumentar a densidade de código; x Thumb-2: Recurso adicionado a partir dos processadores ARM1156, em 2003, permitindo adicionar a arquitetura Thumb instruções de 32 bits; x DSP: Inclusão de instruções apropriadas ao processamento digital de sinais a partir dos processadores da quinta versão da arquitetura ARM, como multiply- accumulate, count leading zeros, satured add e subtract; x Jazelle: Permite a execução de bytecodes java diretamente em hardware, incluindo aos processadores ARM, a partir do ARM926EJ-S um terceiro modo de decodificação de instruções, além das instruções ARM e Thumb; x Advanced SIMD (NEON): Esta extensão, desenvolvida para a linha de processadores Cortex-A (presente em todos os processadores Cortex-A8 e opcional nos processadores Cortex-A9) permite a execução de instruções SIMD de 64 e 128 bits, sendo especialmente desenvolvidos para manipulação de áudio e vídeo. Figura 2. Relação entre desempenho e capacidade de utilização entre os diversos processadores ARM [ARM 2012] As subseções seguintes apresentam uma visão geral da organização de processadores ARM clássicos e da família ARM Cortex, destacando suas principais características. 3.1 ARM7 A família de processadores ARM7 foi introduzida em 1994, e tem como destaque a inclusão da arquitetura Thumb, a partir do ARM7TDMI. Segundo [RealView 2011] o ARM7TDMI, apresentava pipeline de três estágios, basicamente realizando a busca, decodificação e execução de instruções. A figura 3 apresenta a organização do processador ARM7TDMI, construído sob a arquitetura ARMv4. Figura 3. Organização do processador ARM7TDMI[RealView] 3.2 ARM9 A família de processadores ARM9 apresenta como características, processadores de único núcleo, com extensões para tratamento de DSP (Digital Signal Processing) e execução de aplicações Java, através da extensão Jazelle. A figura 4 apresenta a organização do processador ARM926EJ-S, que apresenta como características, pipeline de cinco estágios, memórias cache, multiplicador com capacidade de 32x16, MMU (Memory Management Unit) e extensão Jazelle [RealView 2011]. Figura 4. Organização do processador ARM926EJ-S [RealView] 3.3 ARM11 A família de processadores ARM11 tem como principal foco desempenho e eficiência energética, sendo amplamente aplicado em smartphones, TV’s digitais, e outros dispositivos de internet móvel. A figura 5 apresenta a organização do processador ARM1176JZF-S, que tem como principais características, pipeline de 8 estágios com predição de desvio, gerenciamento inteligente de energia, coprocessador de vetorial de ponto flutuante integrado e extensões Jazelle e TrustZone. Figura 5. Organização do processador ARM1176JZF-S [RealView] 3.4 ARM Cortex-M e ARM Cortex-R A linha de processadores Cortex-M e Cortex-R, utilizam a arquitetura ARMv7 e são voltados para o uso como processadores embarcados. As duas linhas apresentam como foco principal a utilização em aplicações de tempo real, sendo a Cortex-M mais indicada como processador de microcontroladores. A figura 6 apresenta a organização do processador ARM Cortex-M3. Dentre suas principais características podemos destacar utilização da Arquitetura Thumb-2 juntamente com a arquitetura ARM, não se aplica o CPSR, dado que ocorre o salvamento de contexto automaticamente por parte do processador, controlador de interrupções integrado e mapa de memória fixo. Figura 6. Organização do processador Cortex-M3 3.5 ARM Cortex-A A família Cortex-A apresenta como foco a produção de processadores para aplicações embarcadas com utilização de um sistema operacional mais aprimorado, sendo utilizada amplamente em dispositivos de computação móvel. A figura 7 apresenta a organização do processador Cortex-A8. Pode-se destacar como características deste processador pipeline de 14 estágios, utilização da arquitetura ARMv7 e possibilidade de execução de instruções Thumb, Thumb2 e ARM. Além disso, também incorpora a extensão NEON, voltada à aplicações SIMD, como tratamento de vídeo e áudio. Figura 5. Organização do processador Cortex-A8 4. Considerações Finais Pode-se destacar, como considerações finais, que processadores ARM são amplamente utilizados, sendo a principal tecnologia aplicada em dispositivos embarcados, equipando milhões de dispositivos. Dentre os fatores para a devida demanda desta tecnologia, conclui-se que o fator principal remete-se ao seu projeto de arquitetura promissor, que oferece alternativa de implementações pequenas, eficientes energeticamente, o que contribui positivamente para a tendência atual de computação verde e também a demanda de baixo consumo de bateria importante em dispositivos móveis e de bom desempenho. Entretanto, pode-se a característica mais importante (e também mais atraente) destes processadores o baixo custo associado. Referências ARM, The Architecture for the Digital World (2012);; “The ARM Processor Architecture”, disponível em <http://www.arm.com/products/processors/ technologies/instruction-set-architectures.php>, acessado em 04 de junho de 2012. Furber, S. (2000); “ARM System-on-Chip Arquitecture”, 2ª Edição, Addison-Wesley. ARM, The Architecture for the Digital World (2005); “ARM Archtecture Reference Manual”. RealView, Tools by ARM (2011); “ARM Architecture Overview”, disponível em http://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/readings/ARM_Architec ture_Overview.pdf>, acessado em 14 de junho de 2012. ARM, The Architecture for the Digital World (2012);; “Processors”, disponível em <http://www.arm.com/products/processors/index.php>, acessado em 10 de junho de 2012. ARM, The Architecture for the Digital World (2001); “ARM7TDMI Technical Reference Manual”.
Compartilhar