Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Arquitetura ARM • Introdução
• Instruções
Arquitetura de Computadores
Prof. Jadir
• Introdução
• Instruções
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Introdução
• Instruções
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
•Pipeline
•Extensão
•Memória
• Desenvolvida pela Acorn Computers
• Herança: MOS Technology 6502 Berkeley RISC1
• Atingiu o Mercado no Ano de 1986
• Simplicidade e Desempenho
• Versões e Extensões
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
Introdução
• Processador de 32 bits• 16 Registradores para uso geral• Cojunto de instruções extensível• Instruções de 3 endereços• Capacidade de executar instruções de 16
bits usando a arquitetura Thumb• Baixo consumo de energia• Tamanho de núcleo reduzido
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
CaracterísticasJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
DatapathJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
Registradores
• 31 Registradores de propósito geral• 16 registradores sempre vísiveis• Registradores Especiais:
* Link Register (r14)* Program Counter (r15)
• Registradores de Status:CPSR – Current Program Status RegisterSPSR – Saved Program Status Register
Registradores
• 31 Registradores de propósito geral• 16 registradores sempre vísiveis• Registradores Especiais:
* Link Register (r14)* Program Counter (r15)
• Registradores de Status:CPSR – Current Program Status RegisterSPSR – Saved Program Status Register
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler RochaRegistradores
• 31 Registradores de propósito geral• 16 registradores sempre vísiveis• Registradores Especiais:
* Link Register (r14)* Program Counter (r15)
• Registradores de Status:CPSR – Current Program Status RegisterSPSR – Saved Program Status Register
• Introdução
• Instruções
Jean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
RegistradoresJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções• 31 Registradores de propósito geral• 16 registradores sempre vísiveis• Registradores Especiais:
* Link Register (r14)* Program Counter (r15)
• Registradores de Status:CPSR – Current Program Status RegisterSPSR – Saved Program Status Register
RegistradoresJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Modos suportados pelo ARM:
USERFIQ (Fast Interrupt)IRQ (Interrupt)SupervisorAbortUndefinedSystem
Modos de OperaçãoJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• São 6 tipos de instruções:
• Instruções de Branch• Instruções de processamento de dados• Instruções de registradores de status• Instruções de Load/ Store• Instruções de co-processador• Instruções de geração de exceções
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Instruções de branch: • Possuem offset de 24 bits, possibilitando desvios de 32
MB• Branch comuns• Branch and Link (preservam o PC anterior)• Troca entre instruções ARM e Thumb• Troca para instruções Jazelle (execução de bytecodes
Java)
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
Transferência de registradores de status• Instruções MRS e MSR• Transferem dados entre um registrador de propósito geral
e o CPSR
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Instruções de processamento de dados:• Operações lógicas e aritméticas• 12 tipos de instruções aritméticas• 4 tipos de instruções lógicas
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
Instruções de Load / Store:• Load / Store de 1 único registrador• Load / Store de vários registradores
(LDM e STM)• Instrução SWP troca o conteúdo de um registrador
com um endereço de memória• Suporta 2 tipos de instruções de load/store que
transferem o conteudo de um registrador para a memória ou ao contrário.
• O primeiro tipo pode carregar ou escrever uma parava de 32 bits ou um byte sem sinal.
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
O segundo tipo pode ler ou escrever meia palavra de 16 bit sem sinal, e pode
carregar e sinalizar meia palavra de 16 bit ou um byte.– Instrução que lê e carrega palavra ou byte sem sinal:
I,P, U, W – são bits para distinguir diferenças entre tipos de<addressing_mode>.L bit – Diferencia instrução de load (L==1) e store (L==0)B bit – Diferencia byte sem sinal (B==1) e palavra(B==0)Rn – Especifica o registrador base utilizado por
<addressing_mode>Rd – Especifica o registrador onde vai ser carregado ou de
onde vai ser escrito.
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
Instrução que lê e carrega meia palavra ou lê um byte sinalizado
I,P,U,W – são registradores que especificam o tipo de endereçamento
L bit - Diferencia Load (L==1) e Store (L==0)S bit – Diferencia meia palavra sinalizada (S==1) e não
sinalizada (L==0).H bit – diferencia meia palavra (H==1) e byte sinalizado
(H==0).Rn – Especifica o registrado base a ser utilizado pelo modo
de endereçamento.Rd – Especifica o registrador do qual será lido ou onde será
carregado ainformação.
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Instruções de co-processador:• Podem iniciar uma operação no co-processador• Transferem dados do co-processador para a
memória e vice-versa• Transferem dados entre os registradores do ARM e
do co-processador
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
- Instruções de geração de exceções:- Instrução SWI causa uma interrupção de software. É
o mecanismo principal utilizado pelo ARM para poder executar codigos do Sistema Operacional no modo de usuário (User Mode).
- Instrução BKPT causa exceção de aborto, normalmente usada para debug
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Todas as instruções
InstruçõesJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• O pipeline dos processadores baseados na arquitetura ARM são muito semelhantes aos pipelines de outros processadores RISC, como os MIPS.
• Atualmente existem várias famílias de processadores ARM, cada um usando um diferente modelo de pipeline.
• ARM7 – utiliza 3 estágios, evitando quaisquer dependências entre eles
• ARM9 – utiliza cinco estágios• ARM11 – utiliza oito estágios
PipelineJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Pipeline do ARM7 :• Busca de Instruções• Decodificação• Execução da Instrução
PipelineJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• As instruções ARM oferecem diversas funcionalidades interessantes, uma delas é a execução condicional de todas as instruções.
• Os quatros últimos bits de cada instrução são comparados com os bits de estado do registrador CPSR, caso a comparação seja negativa a instrução é executada como NOP.
• Dessa forma é minimizado o impacto das instruções de decisão no funcionamento do pipeline
PipelineJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• ThumbInstruções ARM codificadas em 16 bits
• As instruções matemáticas continuam sendo de 32 bits
• Quando o processador está em modo Thumb somente 8 registradores estão disponíveis para uso, além do PC e do LR
• O uso do modo Thumb é especificado através de um bit T do registrador CPSR
ExtensãoJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Registradores Thumb
ExtensãoJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Instruções Thumb
ExtensãoJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Thumb-2• Extende o limite de 16 bits do modo Thumb
com algumas instruções adicionais de 32 bits.
• ARM11556
ExtensãoJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• JazellePermite execução nativa de opcodes Java
• Thumb-2EETambém conhecido como Jazelle RCTConjunto de instruções úteis pata Java e C#
• NEONConjunto de instruções SIMD de 64 e 128 bits
ExtensãoJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• VFP – Vector Floating Point Processor Coprocessador que extende as instruções ARM para operações de ponto flutuante de precisão simples e dupla.
ExtensãoJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Co-processador CP15Responsável por realizar o controle de memória.
• Contem ate 16 registradores primario, com 32 bits
• CP15:Os tipos de acesso que são permitidosA funcionalidade invocada para cada tipo de acesso
MemóriaJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• CP15:Registrador 1: habilita/desabilita MMU
• Registrador 2: fornece o endere co físico da tabela de
• tradução• Registrador 3: a cada dois bits define a permissão de• acesso para cada domínio• Registrador 4: reservado• Registrador 5: Status de falha (FSR)• Registrador 6: Endereço de falha (FAR)• Registrador 8: utilizado para controlar TLBs• Registrador 10: permite que os resultados de uma• busca nas tabelas de tradução sejam carregados na• TLB de uma forma que não sejam sobrescritos pelos• resultados de buscas posteriores.
MemóriaJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Cada endereço de memória corresponde a um byte.
• O sistema de memória de primeiro nivel é composto:Memória cache de instruções e de dadosseparadosáreas separadas da memória para instruções e dadosSistema DMA para acessar a memóriaBuffer de escritaDuas micro-TLBs
MemóriaJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• MMUControla o acesso à memória externaFaz tradução do endereço virtual em físicoFaz checagem de permissão de acesso
• MMU procura o endereço virtual de acesso na TLBs
• O controle detalhado do sistema e obtido através das tabelas de tradução armazenada na memória em estruturas de cache, denominado de TLBs (Translation Lookaside Buffers).
MemóriaJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• MMUAo desabilitar a MMU, os acessos a memória passam
a ser tratados da seguinte forma:
• A aplicação e que determina se o uso de caches e buffers de escrita serão habilitados ou não
• Não são realizadas verificações de permissão de acesso a memória
• O endereço físico e igual ao endereço virtual, para todos os acessos.
MemóriaJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• MMURestrições da memória podem parar a execução do
ARM. Exemplos:
- falha da MMU (MMU detecta a restrição e sinaliza para o processador), como:
- - falha de tradução, - falha de permissão. - aborto externo (o sistema externo de memória
sinaliza um acesso ilegal a memória);
MemóriaJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• CacheAssociativa por conjunto
Dividida em duas partes:• Cache exclusiva para dados• Cache exclusiva para instruções
MemóriaJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória
• Buffer de escritaÉ o bloco de memória de alta velocidade que tem como objetivo otimizar as gravações na memória principal
MemóriaJean Maicon Rickes Medeiros
Fábio Henrique Stefanelli Potsch
Rodolfo Henrique Erler Rocha
• Introdução
• Instruções
• Pipeline
• Extensão
• Memória