You are on page 1of 8

A Arquitetura ARM

MC722 - Projeto de Sistemas Computacionais


Pedro Henrique Gomes Tatiane Silvia Leite Uirauna Imirim Caetano
RA 024844 RA 025217 RA 025336

1. INTRODUC
AO Instruc
oes de tres enderecos;
A arquitetura ARM (Advanced RISC Machines) comecou
Capacidade de executar instruc
oes de 16 bits usando
como um projeto em 1983 na Arcon Computers de Cam-
a arquitetura Thumb;
bridge, Inglaterra, para desenvolver um processador que
fosse similar ao j
a usado MOS Technology 6502. Baixo consumo de energia;
O desenvolvimento da primeira vers ao foi terminado em
1985, chamado ARM1. Esta arquitetura n ao chegou ao Tamanho do n
ucleo reduzido;
mercado e a Arcon continuou no desenvolvimento, ter-
minando no ano seguinte a segunda vers ao, chamada de Ate 16 co-processadores l
ogicos.
ARM2.
Alem do 6502, a arquitetura ARM tem uma grande he- 1.2
Tipos de Nucleos:
ranca do processador Berkeley RISC1, como instruc oes de
tamanho fixo (32 bits), formato das instruc oes e a arqui- Processadores para aplicativos;
tetura load-store. Apesar disso, a Arcon optou por ter
instruc
oes multi-ciclo, ao contrario do RISC1. Processadores para sistemas embarcados;
Em sua epoca, o ARM2 era o processador de 32 bits
mais simples no mercado, com apenas 30.000 transistores, Processadores SecurCore;
mas ainda assim superava o desempenho de muitos proces-
sadores (RISC ou CISC) mais complexos, como o 286 da 1.3 Famlias:
Intel.
O desenvolvimento continuou, e o nome original (Arcon ARM7 Thumb;
RISC Machine) deixado de lado quando a ARM Ltda. foi
criada e assumiu as patentes e o desenvolvimento da ar- ARM9 Thumb;
quitetura ARM. Atualmente a arquitetura j a conta com
sua 11a versao, mas as vers oes antigas ainda sao usadas e ARM9E;
desenvolvidas, ja que o uso de cada famlia e voltado para
ARM10E;
um nicho de mercado.
Existem tambem v arias extens
oes especializadas para al- ARM11;
guma funcao ou processamento, como o Jazelle e o Thumb.
SecurCore;
1.1 Principais caractersticas da arquitetura:
OptimoDE Data Engine;
Processador de 32 bits;
Cortex Family;
16 registradores de uso geral;
Conjunto de instruc
oes extensvel com o uso de co- 2. CONJUNTO DE INSTRUC
OES DA AR-
processadores; QUITETURA ARM
Instruc
oes b
asicas similares ao 6502; A arquitetura ARM foi desenvolvida para possibilitar
implementacoes muito enxutas, sem deixar de lado o alto
desempenho. Isso e possvel pela simplicidade dos proces-
sadores ARM. Importante lembrar que implementac oes pe-
quenas implicam em baixo consumo de energia, o que torna
esses processadores interessantes para aplicac
oes m
oveis.
O ARM e tipicamente um RISC (Reduced Instruction
Set Computer). Algumas caractersticas interessantes das
instruc
oes ARM:

Conjunto grande e uniforme de registradores;

1
Arquitetura de LOAD / STORE. Operac oes de pro- User: execuc ao normal de programas. Possui res-
cessamento de dados nao operam diretamente com o tric
oes de acesso a registradores;
conteudo da memoria, somente com o conteudo de
registradores; FIQ (Fast Interrupt): suporta a transferencia r
apida
de dados;
Modos de enderecamento simples, com todos enderecos
IRQ (Interrupt): usado para manipulac
ao de inter-
de load / store sendo determinados a partir dos re-
rupc
oes de prop
osito geral;
gistradores ou pelos campos da instruc
ao;
Supervisor: e um modo protegido para o sistema ope-
Uniformidade e tamanho fixo dos campos das ins- racional;
truc
oes para simplificar a decodificac
ao de instruc
oes;
Abort: implementa mem
oria virtual e/ou protec
ao
Controle sobre a ALU e sobre o shifter (deslocador) de memoria;
em todas instruc
oes de processamento de dados;
Undefined: suporta emulac
ao em software de co-pro-
Auto incremento e decremento dos enderecos das ins- -cessadores;
truc
oes;
System: executa tarefas privilegiadas do sistema ope-
Instruc
oes de m
ultiplos loads / stores para maximizar racional, existente a partir da vers
ao 4 do ARM.
a performance;
Os modos de operacao podem mudar atraves de controle
Execuc
ao condicional da maioria das instruco
es. de software ou atraves de interrupc
oes externas. Durante
a execuc
ao normal de um programa o processo encontra-se
2.1 Registradores no modo User.
A arquitetura possui 31 registradores de proposito geral,
todos de 32 bits. Em qualquer momento apenas 16, dos
2.3 Tipos de Instruco es
31, registradores sao visveis. Os registradores restantes O conjunto de instruc
oes do ARM pode ser dividido em
s
ao usados em operac oes de excec
ao, quando o processa- 6 grandes classes:
dor entra em um de seus modos especiais de operac ao e
Instruc
oes de Branch;
substitui alguns dos 16 registradores comuns por registra-
dores especficos do modo. Instruc
oes de processamento de dados;
Dos 16 registradores, 2 tem papel especial:
Transferencia de registradores de status;
Link Register (R14) - possui o endereco da pr
oxima
instruc
ao a ser executada ap
os um Branch and Link Instruc
oes de Load / Store;
(BL), que e uma instruc
ao usada na chamada de su-
Instruc
oes de co-processador;
brotinas. Excluindo essa situacao, o R14 pode ser
utilizado normalmente pelo programador. Instruc
oes de gerac
ao de excec
oes.
Program Counter (R15) - possui o endereco da proxima Uma caracterstica muito importante das instruc oes ARM
instruc
ao a ser executada pelo processador. Sempre diz respeito aos bits de condicoes. A maioria das instruc
oes
possui o valor do endereco da instruc
ao atual mais 8 de processamento pode atualizar os 4 bits de flag contidos
bytes. no registrador CPSR, que indicam a ocorrencia de uma re-
sultado nulo (Zero), de resultado negativo (Negative), de
comum o uso do registrador R13 para fins de Stack
E Carry ou Overflow. Quase todas instruc oes ARM possuem
Pointer; todos outros 13 podem ser usados para prop osito 4 bits condicionais que especificam se a instrucao sera exe-
geral. A partir da vers ao 3 o ARM passou a separar em cutada ou n ao, a partir da situac
ao em que os bits de flag se
registradores independentes o seu status. Existem dois re- encontram. Com esses 4 bits condicionais e possvel existir
gistradores responsaveis por essa func
ao: o Current Pro- ate 16 situac
oes condicionais; dessas, uma e utilizada para
gram Status Register (CPSR) e o Saved Program Status execucao incondicional (sempre) de uma instruc ao a outra
Register (SPSR), ambos de 32 bits. para instrucoes que n
ao possibilitam execucao condicional.
O primeiro possui 4 bits condicionais de flag (Negative, Das outras 14 situacoes condicionais que restam podem
Zero, Carry e Overflow), 2 bits de controle de interrupc
ao, ser testadas condicoes tais quais:
5 para controle do modo atual do processador e 1 que in-
dica o tipo de instruc
ao que est
a sendo executada (ARM Igualdade e desigualdade;
ou Thumb). O segundo registrador de status guarda o
conteudo do primeiro durante uma excec ao, para possi- Menor que, menor ou igual que, maior que, maior ou
bilitar um retorno seguro do contexto anterior da CPU; igual que, em aritmetica sinalizada e n
ao-sinalizada;
existe um registrador SPSR para cada modo de excec ao Situac
ao de cada flag do registrador CPSR individu-
do processador. A figura 1 mostra a disposicao dos 31 re- almente.
gistradores e os modos de operacao que podem acess a-los.
Quando o processador encontra uma instruc ao com campo
2.2 Modos da Arquitetura ARM condicional v alido, ele compara a condic
ao desejada com
A arquitetura ARM suporta ate 7 modos de operac
oes, o status dos flags do CPSR; se ambos concordam a ins-
apresentados a seguir. truc
ao e executada normalmente, caso contr ario n
ao. Os

2
Figure 1: Tabela de Registradores

Figure 2: Sufixos Condicionais

3
bits condicionais s ao ativado atraves de sufixos nas ins- S
ao instruc
oes que podem iniciar uma operacao no co-
truc
oes, conforme e mostrado na figura 2. Exemplificando, processador, podem tambem transferir dados deste ultimo
o sufixo EQ indica que a instruc
ao s
o e executada se o bit Z para a mem oria e vice-versa, e ainda podem ser usadas
(Zero) estiver ativado; assim, a instrucao ADDEQ R1,R2, para transferir dados entre registradores do ARM e do seu
20 somente adicionar a 20 ao registrador R2 e armazenar a co-processador.
em R1 se a operaca o anterior tiver ativado o bit Z.
2.3.6 Instruco es de Geraca o de Exceco es
2.3.1 Instruco es de Branch A instruc
ao SWI causa uma interrupc ao de software,
Essas instrucoes possibilitam a troca do fluxo de ins- sendo normalmente usada para fazer chamadas ao sistema
truc
oes escrevendo um endereco no PC. As instruc
oes Branch operacional. A instrucao BKPT causa uma excec ao de
comuns possuem um offset sinalizado de 24 bits, possibili- aborto. Caso uma rotina de tratamento esteja instalada
tando desvios de 32 MB. Existem ainda outros 3 tipos de no vetor de interrupc
oes essa excec
ao e tratada como um
instruc
oes Branchs. O primeiro, Branch and Link preserva breakpoint e se ha um hardware de debug instalado ele
o endereco anterior no registrador R14, podendo ser utili- tambem pode tratar essa instruc
ao como um breakpoint.
zado em chamadas de subrotinas. Um segundo tipo realiza
a troca do tipo de instruc oes, de ARM para Thumb, ou 2.4 Codigo ARM
vice-versa. Por ultimo, existe um tipo de branch que troca A caracterstica mais importante da arquitetura ARM
para o modo de execuc ao de bytecodes Java (extens ao Ja- e a grande densidade de seu c odigo. Podemos analisar
zelle). isso atraves do exemplo do algoritmo euclidiano de MDC
(Maximo Divisor Comum) apresentado a seguir.
2.3.2 Instruco es de Processamento de Dados
C
odigo em C:
Existem 12 instrucoes que tem o mesmo formato e fazem
operacoes l
ogicas e aritmeticas com ate dois operandos de
int mdc (int i, int j) {
origem, escrevendo o resultado em um terceiro operando,
while (i != j)
de destino. Essas instruc oes podem atualizar os bits de
if (i > j)
flag. Como origem podemos ter registradores, imediatos
i -= j;
ou registradores deslocados.
else
Ha ainda 4 tipos de instruc
oes de comparacao, que usam
j -= i;
o mesmo formato que as instruc oes l
ogico-aritmeticas. Es-
return i;
sas instrucoes, porem, nao escrevem o resultado em um
}
registrador de destino, mas sempre atualizam os bits de
flag.
C
odigo em ARM Assembler:
Instruc
oes de multiplicacao operam sobre dois registra-
dores de 32 bits. O resultado pode ser de dois tipos: de 32
b test
bits, que e escrito em um u nico registrador, e de 64 bits,
loop subgt R0,R0,R1
que e escrito em dois registradores.
suble R1,R1,R0
2.3.3 Transferencia de Registradores de Status test cmp R0,R1
bne loop
Existem duas instrucoes (MRS e MSR) que podem trans-
ferir dados do registrador de status. A primeira move o
conteudo do registrador de status para um registrador de 3.
SISTEMA DE MEMORIA
proposito geral e a segunda faz o inverso. A instruca
o MSR Os processadores ARM podem ser encontrados nas mais
pode ser usada para ajustar os valores dos flags, valores dos diversas aplicac
oes, e por essa raz
ao, os requisitos de mem oria
bits de interrupc
ao ou para mudar o modo do processador. variam, utilizando-se dos seguintes recursos: m ultiplos ti-
pos de mem oria, caches, buffers de escrita, mem oria virtual
2.3.4 Instruco es de Load/Store e outras tecnicas de mapeamento. O CP15 (co-processador),
Essas instrucoes podem ser de 3 tipos que fazem load / tambem conhecido como co-processador de Controle de
store de 1 unico registrador, fazem load / store de v arios Sistema, e respons avel por realizar o controle do sistema
registradores ou que trocam o conte udo de um registrador de mem oria padr ao do ARM e suas facilidades. Ele pode
com um endereco da mem oria. conter ate 16 registradores prim arios, com 32 bits cada um.
Instruc
oes de um u nico registrador acessam words, half- E para alguns destes registradores, existem bits adicionais
-words e bytes. Como podem acessar o PC, s ao usadas usados para identificar uma vers ao especfica do registra-
para jumps que alcancam os 4 GB de enderecamento. dor e/ou o tipo de acesso especfico do registrador.
As instrucoes LDM e STM, respectivamente, fazem load
e store de varios registradores ao mesmo tempo. Podem 3.1 Mais Detalhes sobre o Sistemas de Memoria
ser usadas no incio e fim de subrotinas para empilhar os Os processadores ARM (e softwares) foram projetados
registradores que devem ser preservados. para serem conectados a uma mem oria enderecada a byte,
A instrucao SWP faz a troca do conte udo de um regis- ou seja, cada endereco da memoria corresponde a um byte.
trador com um endereco de mem oria. Entao para ter acesso a uma word os dois bits menos
significativos s
ao ignorados, e caso se queira ter acesso
a uma halfword apenas o bit menos significativo e igno-
rado. O formato dos dados (Little Endian ou Big Endian)
2.3.5 Instruco es dos co-Processadores de um processador ARM e igual ao formato do sistema

4
de mem oria. A mem oria que e usada para armazenar os
programas esta dividida em: Mem oria Principal (RAM) e
Mem oria ROM. O sistema de mem oria de primeiro nvel e
composto por cache de instrucao e dados separados, areas
separadas de mem oria para instrucoes e dados, sistema
DMA para acessar a mem oria, buffer 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 sig-
nifca 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
tambem mapeada diretamente, ou seja, a cache e associa-
tiva por conjunto de m vias, com um conjunto de m blocos Figure 3: Sequ
encia de Acesso `
a Mem
oria
e uma entrada pode residir em qualquer bloco dentro desse
conjunto. O tamanho das linhas de cache e sempre uma
fsico, assim como a checagem de permiss ao de acesso.
potencia de dois e tipicamente s ao de 16 bytes (4 words) ou
Atraves das tabelas de traduc
ao armazenadas na memoria
de 32 bytes (8 words). A poltica de substituic ao utilizada
e obtido quase todo controle detalhado do sistema, e as
pela cache dos processadores ARM podem ser: peseudo-
entradas dessas tabelas e que definem as propriedades de
r
andomica ou Round-Robin. Quanto ao tamanho, o sis-
areas de mem
oria que variam de 1KB a 1MB de tamanho.
tema de mem oria ARM permite diferentes tamanhos de
Essas propriedades incluem:
cache, dependendo da import ancia de performance no dis-
positivo. Os processadores ARM dividem sua cache em Mapeamento de endereco virtual para fsico (este en-
duas partes: uma cache exclusiva para dados e uma cache dereco fsico identifica que localizac
ao da mem
oria
exclusiva para instruc oes, podendo assim acelerar o pro- principal est a sendo acessada);
cesso de execuc ao j
a que e permitido instruc
oes de leitura
e escrita num mesmo ciclo de clock. E o tamanho da cahe Permiss oes de aceso a mem oria (quando um acesso
de dados pode diferir do tamanho da cache de instruc ao. n
ao e permitido, um sinal de memory abort e enviado
Para cada cache, existe uma area da mem oria RAM de- para o processador);
dicada tambem separadamente, uma para dados e outra
Bits de cachability e bufferability;
para instrucoes, essas
areas sao chamadas TCM. A TCM
foi desenvolvida com objetivo de fornecer uma mem oria Registradores do CP15 que permitem controle de alto
mais est avel que as caches e ao mesmo tempo com baixa nvel, como a localizac
ao de tabelas de traduc ao.
latencia. Assim, elas s ao utilizadas para conter rotinas Tambem s ao utilizados para fornecer a situac
ao (sta-
crticas, em que a imprevisibilidade da mem oria cache e tus) dos memory aborts para o ARM;
altamente indesej avel, como por exemplo: rotinas mani-
puladoras de interrupc oes. Visando reduzir o custo medio de acesso a mem oria, os
resultados das buscas nas tabelas de traducao s
ao armaze-
3.1.2 Buffer de escrita nadas em estruturas de cache, tambem chamadas de TLBs
um bloco de mem
E oria de alta velocidade que tem (Translation Lookaside Buffers). Geralmente, um sistema
como objetivo otimizar as gravac oes na mem oria princi- que possui apenas uma interfaze de mem oria possui uma
pal. Quando deve ocorrer a gravac ao, os dados, o endereco u
nica TLB, j a um sistema que possui interface de mem oria
e outros detalhes s
ao escritos no buffer de escrita (com alta de instruc
ao e interface de memoria de dados separadas,
velocidade). E o buffer de escrita fica responsavel em com- normalmente possui TLBs separadas tambem, uma para
pletar a gravac
ao na mem oria principal, na velocidade da instruc
ao e uma para dados.
mem oria principal, que e tipicamente menor que a veloci-
dade do processador ARM.
4.1
Sequencia de Acesso a` Memoria
Ao ser gerado um acesso a mem oria pelo processador
3.1.3 Interrupco es ARM, a MMU procura o endereco virtual de acesso na
As interrupc
oes nos processadores ARM s ao sinalizadas TLB (ou nas TLBs). Caso a TLB n ao contenha a entrada
externamente e muitas implementac oes sincronizam as in- para o endereco virtual, o hardware e invocado, retornando
terrupc
oes antes de gerar uma excec
ao. Elas podem ser: a traduc
ao e a permiss ao de acesso da tabela de traducao
na mem oria principal. A informacao retornada e colocada
FIQ :solicitac
ao de interrupc
ao r
apida; na TLB em uma entrada n ao utilizada, ou sobrescrevendo
alguma entrada existente.
IRQ: solicitac
ao de interrupc
ao normal. A MMU pode ser habilitada ou desabilitada, para isso
basta alterar o bit menos significativo do registrador 11
4. SISTEMA DE GERENCIAMENTO DE do CP15. Ao desabilitar a MMU, os acessos a mem oria

MEMORIA passam a ser tratados da seguinte forma:
A MMU controla o acesso ` a mem oria externa e e res- A aplicac
ao e que determina se o uso de caches e
pons
avel pela traduc
ao do endereco virtual em endereco buffers de escrita ser
ao habilitados ou n
ao;

5
Nao s
ao realizadas verificac
oes de permiss
ao de acesso 1. FAR (Fault Adress Register): onde e escrito o en-
a mem oria, e n
ao s
ao mais gerados sinais de abortos dereco que causou a falha;
pela mmu;
2. FSR (Fault Status Register): e atualizado com status
O endereco fsico e igual ao endereco virtual, para de falha.
todos os acessos.
A arquitetura ARM tambem define um pino para abor-
Ao habilitar ou desabilitar a MMU altera-se o mapea- tos externos, permitindo que os acessos de leitura, escritas
mento de endereco virtual-para-fsico, ent
ao podem ocor- sem buffer, descritor de fetch de primeiro nvel, descritor
rer alguns problemas caso o endereco fsico do c
odigo que de fetch de segundo nvel e sem
aforos em
areas de mem oria
habilita ou desabilita a MMU n ao seja igual ao endereco possam ser abortados externamente e reiniciados de forma
virtual, devido ao prefetch de instruc
ao. segura.

4.2 Processo de traduca o 4.4 Registradores CP15


A MMU suporta acessos de mem oria baseados em sec
oes Os registradores 1 (alguns bits),2,3,4,5,6,8 e 10 do CP15
ou p
aginas. As sec
oes compreendem blocos de mem oria de controlam a MMU, abaixo ser a mostrado uma breve des-
1MB. Ja as p
aginas podem ter tres tamanhos diferentes: cric
ao desses registradores.

Min
usculas: compreendem blocos de mem
oria de 1KB; Registrador 1: habilita/desabilita MMU;

Pequenas: compreendem blocos de mem oria de 4 KB Registrador 2: fornece o endereco fsico da tabela de
(com o controle de acesso dividido em subpaginas de traduc
ao de primeiro nvel atualmente ativa a partir
1KB); do valor dos 18 bits mais significativos;

Grandes: compreendem blocos de mem oria de 64 KB Registrador 3: cada dois bits definem a permiss ao de
(com o controle de acesso dividido em subpaginas de acesso para cada domnio (colec
ao de seco
es, paginas
16KB). grandes e pequenas).

Uma colecao de sec


oes, de p
aginas grandes e de paginas Registrador 4: reservado;
pequenas e chamada de domnio. O acesso a cada domnio
Registrador 5: status de falha (FSR);
e controlado pelo registrador 3 do CP15, sendo que cada
campo permite habilitar ou desabilitar o acesso ao domnio Registrador 6: endereco de falha (FAR);
inteiro rapidamente.Assim, o mecanismo de troca de con-
texto entre processos e bastante eficiente, ja que areas Registrador 8: utilizado para controlar TLBs;
completas de mem oria podem ser colocadas e retiradas da
mem oria virtual rapidamente. Registrador 10: permite que os resultados de uma
A tabela de traduc ao mantida em mem oria e dividida busca nas tabelas de traduc
ao sejam carregados na
em dois nveis: TLB de uma forma que n ao sejam sobrescritos pelos
resultados de buscas posteriores.
1. Tabela de primeiro nvel: armazena traduc oes de
sec
oes e ponteiros para tabelas do segundo nvel; 5. PIPELINE
2. Tabela de segundo nvel: armazena traduc
oes de p a- O pipeline dos processadores baseados na arquitetura
-ginas pequenas e grandes. Existe um tipo desse nvel ARM s ao muito semelhantes aos pipelines de outros pro-
que pode armazenar a traduc
ao de p
aginas minusculas. cessadores RISC, como o MIPS. Como atualmente existem
varias famlias de processadores ARM, cada uma usando
O processo de traducao sempre comeca do mesmo jeito um diferente modelo de pipeline, vamos focar no pipeline
(com um fetch no primeiro nvel) em seq uencia existem do Intel XScale, um processador para aplicativos de alto
quatro formas de realizar a traducao de enderecos e a ve- desempenho baseado no ARMv5TE e desenvolvido a partir
rificac
ao de permiss
ao. Estas maneiras dependem se o en- da arquitetura StrongARM.
dereco esta marcado como um acesso mapeado a secao (que As principais diferencas entre o pipeline do XScale e dos
requer somente um fetch no primeiro nvel) ou a p agina processadores da arquitetura StrongARM s ao o numero
(que requer um fetch no nvel segundo tambem), sendo que de estagios (cinco no StrongARM e sete no pipeline prin-
se for mapeado a p agina, pode ser p
agina grande, pequena cipal do XScale) operando em uma freq uencia mais alta
ou min uscula. e a existencia de dois m odulos secund arios paralelos ao
m odulo principal, como pode ser visto na figura 4. Um
4.3 Aborts pipeline mais longo como o usado no Xscale traz algu-
Restric
oes de mem oria podem parar a execuc
ao do ARM, mas desvantagens relacionadas a penalidades de erros no
e podem ser: falha da MMU (MMU detecta a restric ao e branch-prediction e uso de loads, mas no geral as outras
sinaliza para o processador) e aborto externo (o sistema ex- medidas tomadas causam um ganho de desempenho signi-
terno de mem oria sinaliza um acesso ilegal `
a memoria). As ficativo.
falhas geradas pela MMU podem ser falha de alinhamento, Esse ganho de desempenho vem da maior freq uencia
falha de traduc ao, falha de domnio e falha de permiss ao. do pipeline e tambem da capacidade de processamento
E pode abortar 3 tipos de acesso: fetch de linha, acessos paralelo obtida com o uso de m odulos secund arios. O
a mem oria e acessos a tabela de traduc ao. Registradores m odulo principal, tambem chamado de Main Execution
especficos para falhas: Pipeline ou ULA, e respons avel pelo processamento de

6
Figure 4: Fluxo do Pipeline

de multiplicacao merece uma atenc ao especial pelo


fato de n ao ser exatamente um pipeline, j
a que ape-
nas uma instruc ao por vez pode ser processada. Isso
se deve ao fato de que o MAC n ao tem comprimento
fixo, e a instrucao pode percorrer varias vezes um
mesmo est agio. O n umero de ciclos de clock ne-
cessarios para completar uma instruc ao no MAC e
definido pelo tipo e argumentos da instruc ao. Para
realizar as multiplicac
oes o MAC usa um registrador
de 40 bits chamado acc0, que pode no fim da ins-
truc
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 divi-
dida em duas partes: os estagios D1 e D2 e o estagio
DWB. Nos est agio D1 e D2 as instruc
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 ca-
che.

Figure 5: Est
agios do Pipeline 6.
EXTENSOES DA ARQUITETURA
6.1 Thumb
instruc
oes l
ogico-aritmeticas assim como outras instruc
oes
As instruc
oes Thumb s ao na verdade instruc oes ARM
mais simples do processador, como branch, enquanto o
codificadas para aumentar a performance do processador
modulo de mem oria, tambem chamado Memory Pipeline, e
em certas aplicacoes, utilizando um barramento de dados
respons avel pelo processamento de instrucoes relacionadas
mais simples (de apenas 16 bits) e criando uma melhor den-
ao uso da mem oria e o m odulo de multiplicac
ao, tambem
sidade dos codigos. As vers oes de processadores ARM que
chamado de MAC Pipeline, e respons avel pelas operac
oes
possuem o conjunto de instruc oes Thumb tem a letra T em
de acumulac ao e multiplicac
ao.
seu nome, como ARM720T. O uso de instruc oes Thumb e
Main Execution Pipeline: Este pipeline e respons avel recomendado em aplicac oes que n ao utilizam toda largura
pela leitura (F1 e F2) e decodificac ao (ID) das ins- do barramento de mem oria, como algumas aplicac oes em-
truc
oes e pela leitura dos registradores (RF). Ap os barcadas.
a leitura dos registradores, se a instruc ao envolver Todas instruc
oes Thumb s ao codificadas em 16 bits. As
operac
oes de multiplicacao ou acumulac ao, ela sera operac
oes matem aticas continuam sendo de 32 bits, so-
enviada ent ao para o MAC que continua seu proces- mente o tamanho da instruc ao e que passa a ser de 16
samento. Caso contr ario, a instruc
ao continua no bits. Quando o processador est a em modo Thumb somente
pipeline principal e passa pela etapa de execuc ao na 8 registradores (R0 - R7) est ao disponveis para uso, alem
ALU (X1) e novamente, dependendo da instruc ao, do PC (R15) e do Link Register (R14). O uso do modo
pode ser desviada para o pipeline de mem oria. Caso Thumb e especificado atraves de um bit (bit T) do regis-
contrario, ele continua no pipeline principal e termina trador CPSR. Quando o bit T est a ativado a fase de fetch
o processamento nas duas fases seguintes. do processador busca instruc oes Thumb, de 16 bits.

MAC Pipeline: O pipeline respons


avel pelas instruc
oes

7
6.2 Thumb-2 A ARM produz apenas as especificac oes dos processa-
Esse tipo novo de instruc ao foi implementado inicial- dores, deixando que outras empresas os fabriquem. Isso
mente no n ucleo ARM1156 (em 2003). Ele extende o li- torna um pouco difcil descobrir se um determinado pro-
mite de 16 bits do modo Thumb com algumas instruc oes duto possui um processador ARM. Ainda, grande parte
adicionais de 32 bits, para dar um melhor f olego para desses fabricantes integram outros dispositivos, principal-
aplicac
oes totalmente escritas em modo Thumb. Assim, es- mente co-processadores especficos, ao processador ARM,
sas aplicac
oes podem continuar com a densidade de codigo criando maior versatilidade ao projeto de seu produto.
do antigo Thumb, mas tem a possibilidade de utilizar re- Abaixo temos uma lista de alguns produtos que utilizam
cursos do modo ARM. processadores ARM.

6.3 Jazelle Gameboy Advance games console;


Essa tecnologia permite a execuc
ao nativa em hardware Datcom 2000 digital satellite receiver;
de bytecodes Java. E um outro modo de operac ao im-
plementado na arquitetura, diferente dos modos ARM e LG Java computer;
Thumb. Os processadores que suportam o modo Jazelle Lexmark Z12/22/32/42/52 Jetprinter;
tem o seu nome acompanhado da letra J, como por exem-
plo, ARM926J-S. V
arios handsets GSM da Alcatel, AEG, Ericsson,
Kenwood, NEC e Nokia;
6.4 Thumb-2EE
Tambem conhecido como Jazelle RCT, essa tecnologia Cable/ADSL modems, da Caymen Systems, D-Link
foi lancada nesse ano, primeiramente no n ucleo Cortex- e Zoom;
A8. O Thumb-2EE extende o Thumb-2 com um conjunto 3Com 3CD990-TX-97 10/100 PCI NIC;
de instruc
oes particularmente uteis para c
odigos gerados item HP/Ericsson/Compaq pocket PCs;
em tempo de execuc ao, como ocorre com os compiladores
JIT do Java e C#. Outras linguagens que podem obter Palm PDAs
vantagens da tecnologia sao Perl e Phyton. Com o Thumb-
2EE c odigos mais compactos podem ser criados, sem que 8.
CONCLUSAO
isso impacte na performance da aplicacao. A arquitetura ARM e implementada em mais de 75%
6.5 NEON dos processadores de 32 bits atuais principalmente devido
um conjunto de instruc a sua versatilidade de uso em diversas aplicaco
` es pr
atica,
E oes do tipo SIMD (Single Ins- pela boa performance que apresenta e pela constante atu-
truction Multiple Data) de 64 e 128 bits criado especial- alizac
ao de novas vers oes que s
ao lancadas pela ARM. E
mente para acelerar aplicac oes multimidia e de processa- curioso notar que uma empresa (ARM) que n ao produz
mento de sinais. A tecnologia possui um novo conjunto processadores consegue o domnio de grande fatia do mer-
de instruc
oes, um conjunto separado de registradores e um cado. Esse sucesso pode ser atribuido ` a dedicaca
o exclusiva
hardware de execuc ao independente. As instruc
oes supor- da ARM no desenvolvimento do projetos dos processado-
tam dados de 8, 16, 32 e 64 bits, inteiros e de ponto flutu- res, sem se preocupar com quest oes mercadol ogicas do pro-
ante de precis ao simples, operando em modo SIMD. Com duto final; esse papel e desempenhado por empresas com a
o NEON e possvel executar um decoder de MP3 com me- Intel, que compram o projeto de um processador e passam
nos de 10 Mhz e um codec GSM AMR com apenas 13 a fabrica-lo e integr
a-lo em seus produtos.
Mhz. Ate 16 operac oes simult
aneas s
ao suportadas pelas Apesar de muito utilizados, os processadores ARM s ao
instruc
oes SIMD criadas. muito pouco conhecidos, principalmente pelos usu arios fi-
6.6 VFP - Vector Floating Point Processor nais. Os processadores ARM s ao principalmente utilizados
um coprocessador que extende as instruc hoje em dia em dispositivos m oveis, como PDAs, smartpho-
E oes ARM
nes e equipamentos de rede. A grande expans ao desse mer-
para o calculo de ponto flutuante de precis ao simples e
cado e a adoc ao por parte da Intel da arquitetura ARM a
dupla, totalmente compatvel com o padr ao ANSI/IEEE
partir de seus processadores XScale, s ao fatores que pro-
754. As aplicacoes que fazem uso do co-processador s ao:
metem perpetuar por muito tempo o uso dessa arquitetura
compress ao e descompress ao de voz, gr aficos 3D, audio
no dia-a-dia do consumidor.
digital, PDAs, smartphones, dentre outras. A execuc ao
de operacoes sobre pequenos vetores e privilegiada com o
VFP, ja que podem ser realizadas operacoes paralelas 9. BIBLIOGRAFIA
1. Steve Furber, ARM System Architecture. Addison-
7. APLICAC
OES Wesley. (1996)
Os processadores ARM representam atualmente mais de
75% do mercado de processadores 32 bits. A ARM oferece 2. David Seal, ARM Architecture Reference Manual. Addison-
a especificacao de diversos modelos de processadores com Wesley. (2000)
enfoque em alguns tipos especficos de aplicacoes, que v
ao
3. ARM7EJ-S Technical Reference Manual. ARM Ltd.
desde aplicac oes moveis e de processamento de imagem,
(2001)
ate aplicac
oes automotivas e industriais e na
area de segu-
ranca. Os processadores ARM s ao divididos em 3 princi- 4. Intel XScale
R Core Developers Manual. Intel Ltd.
pais categorias. Os principais modelos de cada categoria (2005)
estao citados na introducao.

You might also like