Arm Cortex

31
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

description

Descrição arquitetura processador Armx Cortex

Transcript of Arm Cortex

Page 1: Arm Cortex

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

Page 2: Arm Cortex

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.

Page 3: Arm Cortex

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).

Page 4: Arm Cortex

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.

Page 5: Arm Cortex

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.

Page 6: Arm Cortex

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.

Page 7: Arm Cortex

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".

Page 8: Arm Cortex

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.

Page 9: Arm Cortex
Page 10: Arm Cortex

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].

Page 11: Arm Cortex

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

Page 12: Arm Cortex

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.

Page 13: Arm Cortex

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;

Page 14: Arm Cortex

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.

Page 15: Arm Cortex

● AGU (Adress Generation Unit).

*Imagem feita no Paint.

Page 16: Arm Cortex

É implementado 2 estruturas de desvio:● GHB (Global History Buffer). ● BTB (BranchTarget Buffer).● Componentes da BTB.

*Imagem feita no Paint.

Page 17: Arm Cortex

● RAM (Random Acess Memory).● TLB (Translation Lookaside Buffer).

*Imagem feita no Paint.

Page 18: Arm Cortex

● 12 Entradas.

*Imagem feita no Paint.

Page 19: Arm Cortex

*Imagem feita no Paint.

Page 20: Arm Cortex

*Imagem feita no Paint.

Page 21: Arm Cortex

*Imagem feita no Paint.

Page 22: Arm Cortex

● 2 ALU Pipe Sysmetric.● LS Pipe.● O pipeline executa.

*Imagem feita no Paint.

Page 23: Arm Cortex

● Branch Mispredict Penalty

*Imagem feita no Paint.

Page 24: Arm Cortex

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

Page 25: Arm Cortex

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

Page 26: Arm Cortex

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

Page 27: Arm Cortex

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

Page 28: Arm Cortex

● 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

Page 29: Arm Cortex

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)

Page 30: Arm Cortex

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.

Page 31: Arm Cortex

*Imagem feita no Paint.