arm cortex
DESCRIPTION
Descrição arquitetura processador Armx CortexTRANSCRIPT
Arm Cortex
Felipe Haack Schmitz Henrique Becker
Isabella Czamanski Rota Laís Berlatto
Universidade de Passo FundoInstituto de Geociências e Ciências Exatas
Ciência da Computação
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.
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).
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.
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.
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.
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".
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.
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].
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
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.
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;
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.
● AGU (Adress Generation Unit).
*Imagem feita no Paint.
É implementado 2 estruturas de desvio:● GHB (Global History Buffer). ● BTB (BranchTarget Buffer).● Componentes da BTB.
*Imagem feita no Paint.
● RAM (Random Acess Memory).● TLB (Translation Lookaside Buffer).
*Imagem feita no Paint.
● 12 Entradas.
*Imagem feita no Paint.
*Imagem feita no Paint.
*Imagem feita no Paint.
*Imagem feita no Paint.
● 2 ALU Pipe Sysmetric.● LS Pipe.● O pipeline executa.
*Imagem feita no Paint.
● Branch Mispredict Penalty
*Imagem feita no Paint.
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
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
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
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
● 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
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)
Fontes bibliográficas
http://www.gdhpress.com.br/blog/cortex-a8/http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344k/index.htmlhttp://www.enlight.ru/docs/cpu/risc/arm/CodeExamples.txthttp://en.wikipedia.org/wiki/ARM_architecturehttp://www.ic.unicamp.br/~rodolfo/Cursos/mc722/2s2005/Trabalho/g20-arm-apresentacao.pdfCortex-A8 Technical Reference Manualhttp://www.design-reuse.com/articles/11580/architecture-and-implementation-of-the-arm-cortex-a8-microprocessor.html http://www.jp.arm.com/products/processors/pdf/tiger_whitepaper_final.pdfhttp://www.elook.org/computing/advanced-risc-machine.htm
Cortex™-A8 Technical Reference ManualRevision: r3p2
Copyright © 2006-2010 ARM Limited. All rights reserved.
*Imagem feita no Paint.