Buscar

Arquitetura de Processadores ARM

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”.

Continue navegando