O documento descreve a arquitetura do processador ARM Cortex-A8, incluindo suas características principais como registradores, modos de operação, conjunto de instruções, pipeline, memória cache e gerenciamento de memória.
1. Arm Cortex
Felipe Haack Schmitz
Henrique Becker
Isabella Czamanski Rota
Laís Berlatto
Universidade de Passo Fundo
Instituto de Geociências e Ciências Exatas
Ciência da Computação
2. O que é ARM?
●ARM significava Acorn RISC Machine, depois Advanced
Risc Machine, e hoje há duvidas sobre se o significado
permanece.
●A arquitetura é licenciada pela ARM Holdings, ela a projeta,
e vende os direitos para quem está disposto a fabricá-la.
●Em 2007, cerca de 98% dos mais de um bilhão de celulares
vendidos usa pelo menos um processador ARM.
3. O que é Cortex?
●Cortex é uma linha de processadores ARM formada por três
famílias.
●Cortex-A são usados principalmente em smartphones, como
processadores de aplicativos, Cortex-R, são usados para
aplicações de tempo real, e Cortex-M em
microcontroladores.
●O cortex-A8 é considerado o processador mainstream da
família, usado principalmente em smartphones. Ele tem
maior poder de processamento que o A5 (focado no baixo
consumo), e menor consumo que o A9 (multicore de alto
desempenho).
4. Security Extensions
●Propagandeado como "Trust Zone". Objetiva oferecer uma
arquitetura que facilite o desenvolvimento de aplicações
seguras.
●Existem dois estados, o seguro e o inseguro. A maioria das
aplicações roda no modo inseguro, e tem de pedir para
entrar em modo seguro.
●Existe um Kernel Seguro, que roda em conjunto com o SO
do dispositivo, esse kernel tem maiores privilégios que o SO
e roda em modo seguro, enquanto o SO em inseguro.
5. VFP
●Um coprocessador de ponto flutuante totalmente aderente a
especificação do padrão IEEE 754. Mas que pode ser
configurado para ignorar detalhes do padrão a fim de
executar mais rápido.
●Possui um banco de registradores que ele vê como 32
registradores de onto flutuante de 64 bits ou 32 de 32 bits,
ou uma combinação de ambos.
●Pode executar certas instruções sobre até 8 intruções de
precisão simples, ou 4 intruções de precisão dupla.
6. Advanced SIMD Architecture
●Outro co-processador, este SIMD, propagandeado como
NEON.
●Compartilha o banco de registradores do VPF e o vê como
16 registradores de uso geral de 128 bits ou 32 de 64 bit, ou
uma combinação de ambos.
●Possui um pipeline de inteiros, um pipeline de ponto
flutuante de precisão simples e dupla, um pipeline de
Load/Store, e o VFP é considerado parte dele também.
7. Thumb-2
●É um conjunto de intruções em que a maioria das instruções
tem 16 bits de tamanho.
●O processador pode ser alternado para estado Thumb, a
partir daí ele passa entender o que é buscado como
instruções Thumb de 16 bits(ou 32bits).
●Adiciona intruções redundantes como "Compare com Zero e
Desvie".
8. ThumbEE
●Propagandeado como Jazelle RCT. É uma união do Jazelle
com o Thumb-2.
●É outro conjunto de intruções, assim como o Jazelle Original
e o Thumb-2, e mais um estado para o processador.
●Compartilha grande parte das intruções com o modo Thumb-
2. Visa oferecer intruções especializadas em pequenos
conjuntos de operações gerados por compiladores JIT e
replicadas em muitas partes do código.
9.
10. Registradores
O processador tem no total 40 registradores:
● 33 registradores de 32 bits de uso geral;
● 7 registradores de 32 bits de estado.
* Estes registradores não estão todos disponíveis ao mesmo tempo. O estado do processador e o modo de operação determinam os
registradores que estão disponíveis para o programador.
● Program Counter [R15];
● Link Register [R14].
11. Modos de Operação
A arquitetura do processador ARM Cortex A-8 suporta até 8 modos de
operações:
1. User;
2. FIQ (Fast Interrupt);
3. IRQ (Interrupt);
4. Supervisor;
5. Abort;
6. Undefined;
7. System;
8. Secure Monitor;
Imagem retirada de :Cortex™-A8Revision: r3p2 Technical Reference Manual
12. Conjunto de Instruções
da Arquitetura Arm
O conjunto de instruções ARM pode ser dividido em 6 grandes classes:
1. Instruções de Branch;
2. Instruções de Processamento de Dados;
3. Transferência de Registradores de Status;
4. Instruções de Load / Store;
5. Instruções de Co-Processado;
6. Instruções de Geração de Exceções.
* Uma característica muito importante das instruções diz respeito as bits
de condições.
● Quase todas as instruções ARM possuem 4 bits condicionais que
especificam se a instrução será executada ou não, a partir da
situação em que os bits de flag se encontram.
13. Considerações
● Possui auto incremento e auto decremento dos endereços das
instruções ;
● Possui execução condicional da maioria das instruções;
●Uniformidade e tamanho fixo dos campos das instruções para
simplificar sua decodificação;
●Capacidade de executar instruções de 16 bits usando a
arquitetura Thumb;
14. Pipeline
● Quantidades de estagios.
● Ordem de execução das instrução.
● Mecanismos dentro da Busca da Instrução.
● Decodificação da instrução.
● ULA, MUL e LOAD/STORE.
15. ● AGU (Adress Generation Unit).
*Imagem feita no Paint.
16. É implementado 2 estruturas de desvio:
● GHB (Global History Buffer).
● BTB (BranchTarget Buffer).
● Componentes da BTB.
*Imagem feita no Paint.
24. Sistema de Memória
●Requisitos de memórias variáveis entre os modelos de
processadores Arm.
○Múltiplos tipos de memória
○Caches
○Buffers de escrita
○Memória Virtual
○Técnicas de mapeamento
25. Memória Cache
Os processadores ARM dividem sua memória cache em duas partes.
● L1
○ 64 KB, dividido em dois blocos de 32 KB (dados e instruções),
4-way set associative
○ Linhas de tamanho 64 bytes
○ O conteúdo da cache de instrução de nível 1 é um subconjunto
do cache de nível 2
○ O conteúdo da cache de dados de nível 1 é exclusivo em
relação a cache de nível 2
○ Política de substituição pseudo-aleatória
○ Cache de intruções é virtualmente indexada
○ Cache de dados é fisicamente indexada
26. Memória Cache
● L2
○ 256 KB, que pode ser expandido para até 1 MB de acordo com
o nível de desempenho desejado pelo fabricante, 8-way set
associative
○ Linhas de tamanho 64 bytes
○ Indexada fisicamente
○ Política de substituição pseudo-aleatória
○ Intimamente ligado ao cache L1 de dados e cache de instrução
L1
27. Gerenciamento de Memória
●Ao ser gerado um acesso a memória pelo processador ARM
Cortex, a MMU procura o endereço virtual de acesso na TLB
(ou nas TLBs)
●Caso a TLB não contenha a entrada para o endereço virtual,
o hardware é invocado, retornando a tradução e a
permissão de acesso da tabela de tradução na memória
principal
●Política de substituição Round-Robin
●32 entradas de dados e intruções, full associative
28. ●O Cortex A8 possui frequencias que variam entre os
fabricantes.
●Em 2009, a Samsung lançou um A8, o Hummingbird, com
1GHz capaz de lidar com até 2 bilhões de instruções por
segundo.
●Frequencias maiores de clock são inviáveis por enquanto para
processadores de dispositivos móveis.
●O Cortex A9 trabalha com clock de 2 GHz.
Frequencia de Clock
29. Onde achar?
●Cortex A5: smartphones da Nokia E62,E61,E61i e game
mobile como Nintendo DS, entre outros
●Cortex A8: mais utilizado em aparelhos móveis
●Cortex A9: utilizado no iPad (no SOC Apple A4)