Sei sulla pagina 1di 8

A Arquitetura ARM

MC722 - Projeto de Sistemas Computacionais


Pedro Henrique Gomes
RA 024844

Tatiane Silvia Leite


RA 025217

Uirauna Imirim Caetano


RA 025336

1.

INTRODUC AO

Instru c oes de tr es endere cos; Capacidade de executar instru c oes de 16 bits usando a arquitetura Thumb; Baixo consumo de energia; Tamanho do n ucleo reduzido; At e 16 co-processadores l ogicos.

A arquitetura ARM (Advanced RISC Machines) come cou como um projeto em 1983 na Arcon Computers de Cambridge, Inglaterra, para desenvolver um processador que fosse similar ao j a usado MOS Technology 6502. O desenvolvimento da primeira vers ao foi terminado em 1985, chamado ARM1. Esta arquitetura n ao chegou ao mercado e a Arcon continuou no desenvolvimento, terminando no ano seguinte a segunda vers ao, chamada de ARM2. Al em do 6502, a arquitetura ARM tem uma grande heran ca do processador Berkeley RISC1, como instru c oes de tamanho xo (32 bits), formato das instru c oes e a arquitetura load-store. Apesar disso, a Arcon optou por ter instru c oes multi-ciclo, ao contrario do RISC1. Em sua epoca, o ARM2 era o processador de 32 bits mais simples no mercado, com apenas 30.000 transistores, mas ainda assim superava o desempenho de muitos processadores (RISC ou CISC) mais complexos, como o 286 da Intel. O desenvolvimento continuou, e o nome original (Arcon RISC Machine) deixado de lado quando a ARM Ltda. foi criada e assumiu as patentes e o desenvolvimento da arquitetura ARM. Atualmente a arquitetura j a conta com sua 11a vers ao, mas as vers oes antigas ainda s ao usadas e desenvolvidas, j a que o uso de cada fam lia e voltado para um nicho de mercado. Existem tamb em v arias extens oes especializadas para alguma fun c ao ou processamento, como o Jazelle e o Thumb.

1.2

Tipos de Nucleos:

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

1.3

Fam lias:

ARM7 Thumb; ARM9 Thumb; ARM9E; ARM10E; ARM11; SecurCore; OptimoDE Data Engine;

1.1

Principais caracter sticas da arquitetura:

Processador de 32 bits; 16 registradores de uso geral; Conjunto de instru c oes extens vel com o uso de coprocessadores; Instru c oes b asicas similares ao 6502; Cortex Family;

2.

CONJUNTO DE INSTRUC OES DA ARQUITETURA ARM

A arquitetura ARM foi desenvolvida para possibilitar implementa c oes muito enxutas, sem deixar de lado o alto desempenho. Isso e poss vel pela simplicidade dos processadores ARM. Importante lembrar que implementa c oes pequenas implicam em baixo consumo de energia, o que torna esses processadores interessantes para aplica c oes m oveis. O ARM e tipicamente um RISC (Reduced Instruction Set Computer). Algumas caracter sticas interessantes das instru c oes ARM: Conjunto grande e uniforme de registradores; 1

Arquitetura de LOAD / STORE. Opera c oes de processamento de dados n ao operam diretamente com o conte udo da mem oria, somente com o conte udo de registradores; Modos de endere camento simples, com todos endere cos de load / store sendo determinados a partir dos registradores ou pelos campos da instru c ao; Uniformidade e tamanho xo dos campos das instru c oes para simplicar a decodica c ao de instru c oes; Controle sobre a ALU e sobre o shifter (deslocador) em todas instru c oes de processamento de dados; Auto incremento e decremento dos endere cos das instru c oes; Instru c oes de m ultiplos loads / stores para maximizar a performance; Execu c ao condicional da maioria das instru co es.

User: execu c ao normal de programas. Possui restri c oes de acesso a registradores; FIQ (Fast Interrupt): suporta a transfer encia r apida de dados; IRQ (Interrupt): usado para manipula c ao de interrup c oes de prop osito geral; Supervisor: e um modo protegido para o sistema operacional; Abort: implementa mem oria virtual e/ou prote c ao de mem oria; Undened: suporta emula c ao em software de co-pro-cessadores; System: executa tarefas privilegiadas do sistema operacional, existente a partir da vers ao 4 do ARM. Os modos de opera c ao podem mudar atrav es de controle de software ou atrav es de interrup c oes externas. Durante a execu c ao normal de um programa o processo encontra-se no modo User.

2.1

Registradores

A arquitetura possui 31 registradores de prop osito geral, todos de 32 bits. Em qualquer momento apenas 16, dos 31, registradores s ao vis veis. Os registradores restantes s ao usados em opera c oes de exce c ao, quando o processador entra em um de seus modos especiais de opera c ao e substitui alguns dos 16 registradores comuns por registradores espec cos do modo. Dos 16 registradores, 2 t em papel especial: Link Register (R14) - possui o endere co da pr oxima instru c ao a ser executada ap os um Branch and Link (BL), que e uma instru c ao usada na chamada de subrotinas. Excluindo essa situa c ao, o R14 pode ser utilizado normalmente pelo programador. Program Counter (R15) - possui o endere co da pr oxima instru c ao a ser executada pelo processador. Sempre possui o valor do endere co da instru c ao atual mais 8 bytes. comum o uso do registrador R13 para ns de Stack E Pointer; todos outros 13 podem ser usados para prop osito geral. A partir da vers ao 3 o ARM passou a separar em registradores independentes o seu status. Existem dois registradores respons aveis por essa fun c ao: o Current Program Status Register (CPSR) e o Saved Program Status Register (SPSR), ambos de 32 bits. O primeiro possui 4 bits condicionais de ag (Negative, Zero, Carry e Overow), 2 bits de controle de interrup c ao, 5 para controle do modo atual do processador e 1 que indica o tipo de instru c ao que est a sendo executada (ARM ou Thumb). O segundo registrador de status guarda o conte udo do primeiro durante uma exce c ao, para possibilitar um retorno seguro do contexto anterior da CPU; existe um registrador SPSR para cada modo de exce c ao do processador. A gura 1 mostra a disposi c ao dos 31 registradores e os modos de opera c ao que podem acess a-los.

2.3

es Tipos de Instruc o

O conjunto de instru c oes do ARM pode ser dividido em 6 grandes classes: Instru c oes de Branch; Instru c oes de processamento de dados; Transfer encia de registradores de status; Instru c oes de Load / Store; Instru c oes de co-processador; Instru c oes de gera c ao de exce c oes. Uma caracter stica muito importante das instru c oes ARM diz respeito aos bits de condi c oes. A maioria das instru c oes de processamento pode atualizar os 4 bits de ag contidos no registrador CPSR, que indicam a ocorr encia de uma resultado nulo (Zero), de resultado negativo (Negative), de Carry ou Overow. Quase todas instru c oes ARM possuem 4 bits condicionais que especicam se a instru c ao ser a executada ou n ao, a partir da situa c ao em que os bits de ag se encontram. Com esses 4 bits condicionais e poss vel existir at e 16 situa c oes condicionais; dessas, uma e utilizada para execu c ao incondicional (sempre) de uma instru c ao a outra para instru c oes que n ao possibilitam execu c ao condicional. Das outras 14 situa c oes condicionais que restam podem ser testadas condi c oes tais quais: Igualdade e desigualdade; Menor que, menor ou igual que, maior que, maior ou igual que, em aritm etica sinalizada e n ao-sinalizada; Situa c ao de cada ag do registrador CPSR individualmente. Quando o processador encontra uma instru c ao com campo condicional v alido, ele compara a condi c ao desejada com o status dos ags do CPSR; se ambos concordam a instru c ao e executada normalmente, caso contr ario n ao. Os 2

2.2

Modos da Arquitetura ARM

A arquitetura ARM suporta at e 7 modos de opera c oes, apresentados a seguir.

Figure 1: Tabela de Registradores

Figure 2: Suxos Condicionais

bits condicionais s ao ativado atrav es de suxos nas instru c oes, conforme e mostrado na gura 2. Exemplicando, o suxo EQ indica que a instru c ao s o e executada se o bit Z (Zero) estiver ativado; assim, a instru c ao ADDEQ R1,R2, 20 somente adicionar a 20 ao registrador R2 e armazenar a em R1 se a opera ca o anterior tiver ativado o bit Z.

S ao instru c oes que podem iniciar uma opera c ao no coprocessador, podem tamb em transferir dados deste u ltimo para a mem oria e vice-versa, e ainda podem ser usadas para transferir dados entre registradores do ARM e do seu co-processador.

2.3.6

es de Gerac o de Excec es Instruc o a o

2.3.1

es de Branch Instruc o

Essas instru c oes possibilitam a troca do uxo de instru c oes escrevendo um endere co no PC. As instru c oes Branch comuns possuem um oset sinalizado de 24 bits, possibilitando desvios de 32 MB. Existem ainda outros 3 tipos de instru c oes Branchs. O primeiro, Branch and Link preserva o endere co anterior no registrador R14, podendo ser utilizado em chamadas de subrotinas. Um segundo tipo realiza a troca do tipo de instru c oes, de ARM para Thumb, ou vice-versa. Por u ltimo, existe um tipo de branch que troca para o modo de execu c ao de bytecodes Java (extens ao Jazelle).

A instru c ao SWI causa uma interrup c ao de software, sendo normalmente usada para fazer chamadas ao sistema operacional. A instru c ao BKPT causa uma exce c ao de aborto. Caso uma rotina de tratamento esteja instalada no vetor de interrup c oes essa exce c ao e tratada como um breakpoint e se h a um hardware de debug instalado ele tamb em pode tratar essa instru c ao como um breakpoint.

2.4

C odigo ARM

A caracter stica mais importante da arquitetura ARM e a grande densidade de seu c odigo. Podemos analisar isso atrav es do exemplo do algoritmo euclidiano de MDC (M aximo Divisor Comum) apresentado a seguir. C odigo em C: int mdc (int i, int j) { while (i != j) if (i > j) i -= j; else j -= i; return i; } C odigo em ARM Assembler: b test loop subgt R0,R0,R1 suble R1,R1,R0 test cmp R0,R1 bne loop

2.3.2

es de Processamento de Dados Instruc o

Existem 12 instru c oes que t em o mesmo formato e fazem opera c oes l ogicas e aritm eticas com at e dois operandos de origem, escrevendo o resultado em um terceiro operando, de destino. Essas instru c oes podem atualizar os bits de ag. Como origem podemos ter registradores, imediatos ou registradores deslocados. H a ainda 4 tipos de instru c oes de compara c ao, que usam o mesmo formato que as instru c oes l ogico-aritm eticas. Essas instru c oes, por em, n ao escrevem o resultado em um registrador de destino, mas sempre atualizam os bits de ag. Instru c oes de multiplica c ao operam sobre dois registradores de 32 bits. O resultado pode ser de dois tipos: de 32 bits, que e escrito em um u nico registrador, e de 64 bits, que e escrito em dois registradores.

2.3.3

Transfer encia de Registradores de Status

Existem duas instru c oes (MRS e MSR) que podem transferir dados do registrador de status. A primeira move o conte udo do registrador de status para um registrador de prop osito geral e a segunda faz o inverso. A instru ca o MSR pode ser usada para ajustar os valores dos ags, valores dos bits de interrup c ao ou para mudar o modo do processador.

3.

SISTEMA DE MEMORIA

2.3.4

es de Load/Store Instruc o

Essas instru c oes podem ser de 3 tipos que fazem load / store de 1 u nico registrador, fazem load / store de v arios registradores ou que trocam o conte udo de um registrador com um endere co da mem oria. Instru c oes de um u nico registrador acessam words, half-words e bytes. Como podem acessar o PC, s ao usadas para jumps que alcan cam os 4 GB de endere camento. As instru c oes LDM e STM, respectivamente, fazem load e store de v arios registradores ao mesmo tempo. Podem ser usadas no in cio e m de subrotinas para empilhar os registradores que devem ser preservados. A instru c ao SWP faz a troca do conte udo de um registrador com um endere co de mem oria.

Os processadores ARM podem ser encontrados nas mais diversas aplica c oes, e por essa raz ao, os requisitos de mem oria variam, utilizando-se dos seguintes recursos: m ultiplos tipos de mem oria, caches, buers de escrita, mem oria virtual e outras t ecnicas de mapeamento. O CP15 (co-processador), tamb em conhecido como co-processador de Controle de Sistema, e respons avel por realizar o controle do sistema de mem oria padr ao do ARM e suas facilidades. Ele pode conter at e 16 registradores prim arios, com 32 bits cada um. E para alguns destes registradores, existem bits adicionais usados para identicar uma vers ao espec ca do registrador e/ou o tipo de acesso espec co do registrador.

3.1

Mais Detalhes sobre o Sistemas de Mem oria

2.3.5

es dos co-Processadores Instruc o


4

Os processadores ARM (e softwares) foram projetados para serem conectados a uma mem oria endere cada a byte, ou seja, cada endere co da mem oria corresponde a um byte. Ent ao para ter acesso a uma word os dois bits menos signicativos s ao ignorados, e caso se queira ter acesso a uma halfword apenas o bit menos signicativo e ignorado. O formato dos dados (Little Endian ou Big Endian) de um processador ARM e igual ao formato do sistema

de mem oria. A mem oria que e usada para armazenar os programas est a dividida em: Mem oria Principal (RAM) e Mem oria ROM. O sistema de mem oria de primeiro n vel e composto por cache de instru c ao e dados separados, areas separadas de mem oria para instru c oes e dados, sistema DMA para acessar a mem oria, buer de escrita e duas micro-TLBs.

3.1.1

Cache

Cada local de mem oria na cache e conhecido como linha de cache. A cache no ARM e full associative, o que signifca que ela e associativa por conjunto de N vias, sendo N o n umero total de linhas de cache, assim, qualquer busca na cache precisa checar cada linha de cache. A cache e tamb em mapeada diretamente, ou seja, a cache e associativa por conjunto de m vias, com um conjunto de m blocos e uma entrada pode residir em qualquer bloco dentro desse conjunto. O tamanho das linhas de cache e sempre uma pot encia de dois e tipicamente s ao de 16 bytes (4 words) ou de 32 bytes (8 words). A pol tica de substitui c ao utilizada pela cache dos processadores ARM podem ser: peseudor andomica ou Round-Robin. Quanto ao tamanho, o sistema de mem oria ARM permite diferentes tamanhos de cache, dependendo da import ancia de performance no dispositivo. Os processadores ARM dividem sua cache em duas partes: uma cache exclusiva para dados e uma cache exclusiva para instru c oes, podendo assim acelerar o processo de execu c ao j a que e permitido instru c oes de leitura e escrita num mesmo ciclo de clock. E o tamanho da cahe de dados pode diferir do tamanho da cache de instru c ao. Para cada cache, existe uma area da mem oria RAM dedicada tamb em separadamente, uma para dados e outra para instru c oes, essas areas s ao chamadas TCM. A TCM foi desenvolvida com objetivo de fornecer uma mem oria mais est avel que as caches e ao mesmo tempo com baixa lat encia. Assim, elas s ao utilizadas para conter rotinas cr ticas, em que a imprevisibilidade da mem oria cache e altamente indesej avel, como por exemplo: rotinas manipuladoras de interrup c oes.

Figure 3: Sequ encia de Acesso ` a Mem oria f sico, assim como a checagem de permiss ao de acesso. Atrav es das tabelas de tradu c ao armazenadas na mem oria e obtido quase todo controle detalhado do sistema, e as entradas dessas tabelas e que denem as propriedades de areas de mem oria que variam de 1KB a 1MB de tamanho. Essas propriedades incluem: Mapeamento de endere co virtual para f sico (este endere co f sico identica que localiza c ao da mem oria principal est a sendo acessada); Permiss oes de aceso a mem oria (quando um acesso n ao e permitido, um sinal de memory abort e enviado para o processador); Bits de cachability e buerability; Registradores do CP15 que permitem controle de alto n vel, como a localiza c ao de tabelas de tradu c ao. Tamb em s ao utilizados para fornecer a situa c ao (status) dos memory aborts para o ARM; Visando reduzir o custo m edio de acesso a mem oria, os resultados das buscas nas tabelas de tradu c ao s ao armazenadas em estruturas de cache, tamb em chamadas de TLBs (Translation Lookaside Buers). Geralmente, um sistema que possui apenas uma interfaze de mem oria possui uma u nica TLB, j a um sistema que possui interface de mem oria de instru c ao e interface de mem oria de dados separadas, normalmente possui TLBs separadas tamb em, uma para instru c ao e uma para dados.

3.1.2

Buffer de escrita

um bloco de mem E oria de alta velocidade que tem como objetivo otimizar as grava c oes na mem oria principal. Quando deve ocorrer a grava c ao, os dados, o endere co e outros detalhes s ao escritos no buer de escrita (com alta velocidade). E o buer de escrita ca respons avel em completar a grava c ao na mem oria principal, na velocidade da mem oria principal, que e tipicamente menor que a velocidade do processador ARM.

4.1

` Mem Sequencia de Acesso a oria

3.1.3

es Interrupc o

As interrup c oes nos processadores ARM s ao sinalizadas externamente e muitas implementa c oes sincronizam as interrup c oes antes de gerar uma exce c ao. Elas podem ser: FIQ :solicita c ao de interrup c ao r apida; IRQ: solicita c ao de interrup c ao normal.

4.

SISTEMA DE GERENCIAMENTO DE MEMORIA

Ao ser gerado um acesso a mem oria pelo processador ARM, a MMU procura o endere co virtual de acesso na TLB (ou nas TLBs). Caso a TLB n ao contenha a entrada para o endere co virtual, o hardware e invocado, retornando a tradu c ao e a permiss ao de acesso da tabela de tradu c ao na mem oria principal. A informa c ao retornada e colocada na TLB em uma entrada n ao utilizada, ou sobrescrevendo alguma entrada existente. A MMU pode ser habilitada ou desabilitada, para isso basta alterar o bit menos signicativo do registrador 11 do CP15. Ao desabilitar a MMU, os acessos a mem oria passam a ser tratados da seguinte forma: A aplica c ao e que determina se o uso de caches e buers de escrita ser ao habilitados ou n ao; 5

A MMU controla o acesso ` a mem oria externa e e respons avel pela tradu c ao do endere co virtual em endere co

N ao s ao realizadas verica c oes de permiss ao de acesso a mem oria, e n ao s ao mais gerados sinais de abortos pela mmu; O endere co f sico e igual ao endere co virtual, para todos os acessos. Ao habilitar ou desabilitar a MMU altera-se o mapeamento de endere co virtual-para-f sico, ent ao podem ocorrer alguns problemas caso o endere co f sico do c odigo que habilita ou desabilita a MMU n ao seja igual ao endere co virtual, devido ao prefetch de instru c ao.

1. FAR (Fault Adress Register): onde e escrito o endere co que causou a falha; 2. FSR (Fault Status Register): e atualizado com status de falha. A arquitetura ARM tamb em dene um pino para abortos externos, permitindo que os acessos de leitura, escritas sem buer, descritor de fetch de primeiro n vel, descritor de fetch de segundo n vel e sem aforos em areas de mem oria possam ser abortados externamente e reiniciados de forma segura.

4.2

o Processo de traduc a

4.4

Registradores CP15

A MMU suporta acessos de mem oria baseados em se c oes ou p aginas. As se c oes compreendem blocos de mem oria de 1MB. J a as p aginas podem ter tr es tamanhos diferentes: Min usculas: compreendem blocos de mem oria de 1KB; Pequenas: compreendem blocos de mem oria de 4 KB (com o controle de acesso dividido em subp aginas de 1KB); Grandes: compreendem blocos de mem oria de 64 KB (com o controle de acesso dividido em subp aginas de 16KB). Uma cole c ao de se c oes, de p aginas grandes e de p aginas pequenas e chamada de dom nio. O acesso a cada dom nio e controlado pelo registrador 3 do CP15, sendo que cada campo permite habilitar ou desabilitar o acesso ao dom nio inteiro rapidamente.Assim, o mecanismo de troca de contexto entre processos e bastante eciente, j a que areas completas de mem oria podem ser colocadas e retiradas da mem oria virtual rapidamente. A tabela de tradu c ao mantida em mem oria e dividida em dois n veis: 1. Tabela de primeiro n vel: armazena tradu c oes de se c oes e ponteiros para tabelas do segundo n vel; 2. Tabela de segundo n vel: armazena tradu c oes de p a-ginas pequenas e grandes. Existe um tipo desse n vel que pode armazenar a tradu c ao de p aginas min usculas. O processo de tradu c ao sempre come ca do mesmo jeito (com um fetch no primeiro n vel) em seq uencia existem quatro formas de realizar a tradu c ao de endere cos e a verica c ao de permiss ao. Estas maneiras dependem se o endere co est a marcado como um acesso mapeado a se c ao (que requer somente um fetch no primeiro n vel) ou a p agina (que requer um fetch no n vel segundo tamb em), sendo que se for mapeado a p agina, pode ser p agina grande, pequena ou min uscula.

Os registradores 1 (alguns bits),2,3,4,5,6,8 e 10 do CP15 controlam a MMU, abaixo ser a mostrado uma breve descri c ao desses registradores. Registrador 1: habilita/desabilita MMU; Registrador 2: fornece o endere co f sico da tabela de tradu c ao de primeiro n vel atualmente ativa a partir do valor dos 18 bits mais signicativos; Registrador 3: cada dois bits denem a permiss ao de acesso para cada dom nio (cole c ao de se co es, paginas grandes e pequenas). Registrador 4: reservado; Registrador 5: status de falha (FSR); Registrador 6: endere co de falha (FAR); Registrador 8: utilizado para controlar TLBs; Registrador 10: permite que os resultados de uma busca nas tabelas de tradu c ao sejam carregados na TLB de uma forma que n ao sejam sobrescritos pelos resultados de buscas posteriores.

5.

PIPELINE

4.3

Aborts

Restri c oes de mem oria podem parar a execu c ao do ARM, e podem ser: falha da MMU (MMU detecta a restri c ao e sinaliza para o processador) e aborto externo (o sistema externo de mem oria sinaliza um acesso ilegal ` a mem oria). As falhas geradas pela MMU podem ser falha de alinhamento, falha de tradu c ao, falha de dom nio e falha de permiss ao. E pode abortar 3 tipos de acesso: fetch de linha, acessos a mem oria e acessos a tabela de tradu c ao. Registradores espec cos para falhas: 6

O pipeline dos processadores baseados na arquitetura ARM s ao muito semelhantes aos pipelines de outros processadores RISC, como o MIPS. Como atualmente existem varias fam lias de processadores ARM, cada uma usando um diferente modelo de pipeline, vamos focar no pipeline do Intel XScale, um processador para aplicativos de alto desempenho baseado no ARMv5TE e desenvolvido a partir da arquitetura StrongARM. As principais diferen cas entre o pipeline do XScale e dos processadores da arquitetura StrongARM s ao o n umero de est agios (cinco no StrongARM e sete no pipeline principal do XScale) operando em uma freq u encia mais alta e a exist encia de dois m odulos secund arios paralelos ao m odulo principal, como pode ser visto na gura 4. Um pipeline mais longo como o usado no Xscale traz algumas desvantagens relacionadas a penalidades de erros no branch-prediction e uso de loads, mas no geral as outras medidas tomadas causam um ganho de desempenho signicativo. Esse ganho de desempenho vem da maior freq u encia do pipeline e tamb em da capacidade de processamento paralelo obtida com o uso de m odulos secund arios. O m odulo principal, tamb em chamado de Main Execution Pipeline ou ULA, e respons avel pelo processamento de

Figure 4: Fluxo do Pipeline de multiplica c ao merece uma aten c ao especial pelo fato de n ao ser exatamente um pipeline, j a que apenas uma instru c ao por vez pode ser processada. Isso se deve ao fato de que o MAC n ao tem comprimento xo, e a instru c ao pode percorrer varias vezes um mesmo est agio. O n umero de ciclos de clock necess arios para completar uma instru c ao no MAC e denido pelo tipo e argumentos da instru c ao. Para realizar as multiplica c oes o MAC usa um registrador de 40 bits chamado acc0, que pode no m da instru c ao ser copiado para os registradores de uso geral do n ucleo. Memory Pipeline: Apesar de ser o mais comprido, este e o pipeline mais simples do Xscale. Ela e dividida em duas partes: os est agios D1 e D2 e o est agio DWB. Nos est agio D1 e D2 as instru c oes load/store s ao processadas e os dados s ao obtidos da cache, e depois no est agio DWB os dados s ao escritos na cache. Figure 5: Est agios do Pipeline instru c oes l ogico-aritm eticas assim como outras instru c oes mais simples do processador, como branch, enquanto o m odulo de mem oria, tamb em chamado Memory Pipeline, e respons avel pelo processamento de instru c oes relacionadas ao uso da mem oria e o m odulo de multiplica c ao, tamb em chamado de MAC Pipeline, e respons avel pelas opera c oes de acumula c ao e multiplica c ao. Main Execution Pipeline: Este pipeline e respons avel pela leitura (F1 e F2) e decodica c ao (ID) das instru c oes e pela leitura dos registradores (RF). Ap os a leitura dos registradores, se a instru c ao envolver opera c oes de multiplica c ao ou acumula c ao, ela ser a enviada ent ao para o MAC que continua seu processamento. Caso contr ario, a instru c ao continua no pipeline principal e passa pela etapa de execu c ao na ALU (X1) e novamente, dependendo da instru c ao, pode ser desviada para o pipeline de mem oria. Caso contr ario, ele continua no pipeline principal e termina o processamento nas duas fases seguintes. MAC Pipeline: O pipeline respons avel pelas instru c oes 7

6. 6.1

EXTENSOES DA ARQUITETURA Thumb

As instru c oes Thumb s ao na verdade instru c oes ARM codicadas para aumentar a performance do processador em certas aplica c oes, utilizando um barramento de dados mais simples (de apenas 16 bits) e criando uma melhor densidade dos c odigos. As vers oes de processadores ARM que possuem o conjunto de instru c oes Thumb t em a letra T em seu nome, como ARM720T. O uso de instru c oes Thumb e recomendado em aplica c oes que n ao utilizam toda largura do barramento de mem oria, como algumas aplica c oes embarcadas. Todas instru c oes Thumb s ao codicadas em 16 bits. As opera c oes matem aticas continuam sendo de 32 bits, somente o tamanho da instru c ao e que passa a ser de 16 bits. Quando o processador est a em modo Thumb somente 8 registradores (R0 - R7) est ao dispon veis para uso, al em do PC (R15) e do Link Register (R14). O uso do modo Thumb e especicado atrav es de um bit (bit T) do registrador CPSR. Quando o bit T est a ativado a fase de fetch do processador busca instru c oes Thumb, de 16 bits.

6.2

Thumb-2

Esse tipo novo de instru c ao foi implementado inicialmente no n ucleo ARM1156 (em 2003). Ele extende o limite de 16 bits do modo Thumb com algumas instru c oes adicionais de 32 bits, para dar um melhor f olego para aplica c oes totalmente escritas em modo Thumb. Assim, essas aplica c oes podem continuar com a densidade de c odigo do antigo Thumb, mas tem a possibilidade de utilizar recursos do modo ARM.

A ARM produz apenas as especica c oes dos processadores, deixando que outras empresas os fabriquem. Isso torna um pouco dif cil descobrir se um determinado produto possui um processador ARM. Ainda, grande parte desses fabricantes integram outros dispositivos, principalmente co-processadores espec cos, ao processador ARM, criando maior versatilidade ao projeto de seu produto. Abaixo temos uma lista de alguns produtos que utilizam processadores ARM. Gameboy Advance games console; Datcom 2000 digital satellite receiver; LG Java computer; Lexmark Z12/22/32/42/52 Jetprinter; V arios handsets GSM da Alcatel, AEG, Ericsson, Kenwood, NEC e Nokia; Cable/ADSL modems, da Caymen Systems, D-Link e Zoom; 3Com 3CD990-TX-97 10/100 PCI NIC; item HP/Ericsson/Compaq pocket PCs; Palm PDAs

6.3

Jazelle

Essa tecnologia permite a execu c ao nativa em hardware um outro modo de opera de bytecodes Java. E c ao implementado na arquitetura, diferente dos modos ARM e Thumb. Os processadores que suportam o modo Jazelle t em o seu nome acompanhado da letra J, como por exemplo, ARM926J-S.

6.4

Thumb-2EE

Tamb em conhecido como Jazelle RCT, essa tecnologia foi lan cada nesse ano, primeiramente no n ucleo CortexA8. O Thumb-2EE extende o Thumb-2 com um conjunto de instru c oes particularmente u teis para c odigos gerados em tempo de execu c ao, como ocorre com os compiladores JIT do Java e C#. Outras linguagens que podem obter vantagens da tecnologia s ao Perl e Phyton. Com o Thumb2EE c odigos mais compactos podem ser criados, sem que isso impacte na performance da aplica c ao.

8.

CONCLUSAO

6.5

NEON

um conjunto de instru E c oes do tipo SIMD (Single Instruction Multiple Data) de 64 e 128 bits criado especialmente para acelerar aplica c oes multimidia e de processamento de sinais. A tecnologia possui um novo conjunto de instru c oes, um conjunto separado de registradores e um hardware de execu c ao independente. As instru c oes suportam dados de 8, 16, 32 e 64 bits, inteiros e de ponto utuante de precis ao simples, operando em modo SIMD. Com o NEON e poss vel executar um decoder de MP3 com menos de 10 Mhz e um codec GSM AMR com apenas 13 Mhz. At e 16 opera c oes simult aneas s ao suportadas pelas instru c oes SIMD criadas.

6.6

VFP - Vector Floating Point Processor

um coprocessador que extende as instru E c oes ARM para o c alculo de ponto utuante de precis ao simples e dupla, totalmente compat vel com o padr ao ANSI/IEEE 754. As aplica c oes que fazem uso do co-processador s ao: compress ao e descompress ao de voz, gr acos 3D, audio digital, PDAs, smartphones, dentre outras. A execu c ao de opera c oes sobre pequenos vetores e privilegiada com o VFP, j a que podem ser realizadas opera c oes paralelas

A arquitetura ARM e implementada em mais de 75% dos processadores de 32 bits atuais principalmente devido a sua versatilidade de uso em diversas aplica ` co es pr atica, pela boa performance que apresenta e pela constante atu aliza c ao de novas vers oes que s ao lan cadas pela ARM. E curioso notar que uma empresa (ARM) que n ao produz processadores consegue o dom nio de grande fatia do mercado. Esse sucesso pode ser atribuido ` a dedica ca o exclusiva da ARM no desenvolvimento do projetos dos processadores, sem se preocupar com quest oes mercadol ogicas do produto nal; esse papel e desempenhado por empresas com a Intel, que compram o projeto de um processador e passam a fabric a-lo e integr a-lo em seus produtos. Apesar de muito utilizados, os processadores ARM s ao muito pouco conhecidos, principalmente pelos usu arios nais. Os processadores ARM s ao principalmente utilizados hoje em dia em dispositivos m oveis, como PDAs, smartphones e equipamentos de rede. A grande expans ao desse mercado e a ado c ao por parte da Intel da arquitetura ARM a partir de seus processadores XScale, s ao fatores que prometem perpetuar por muito tempo o uso dessa arquitetura no dia-a-dia do consumidor.

9.

BIBLIOGRAFIA
1. Steve Furber, ARM System Architecture. AddisonWesley. (1996) 2. David Seal, ARM Architecture Reference Manual. AddisonWesley. (2000) 3. ARM7EJ-S Technical Reference Manual. ARM Ltd. (2001) 4. Intel XScale R Core Developers Manual. Intel Ltd. (2005)

7.

APLICAC OES

Os processadores ARM representam atualmente mais de 75% do mercado de processadores 32 bits. A ARM oferece a especica c ao de diversos modelos de processadores com enfoque em alguns tipos espec cos de aplica c oes, que v ao desde aplica c oes m oveis e de processamento de imagem, at e aplica c oes automotivas e industriais e na area de seguran ca. Os processadores ARM s ao divididos em 3 principais categorias. Os principais modelos de cada categoria est ao citados na introdu c ao. 8

Potrebbero piacerti anche