advanced risc machine - instituto de informática - ufrgsflavio/ensino/cmp237/arm7.pdf ·...

22
Advanced RISC Machine Vítor da Rosa ARM

Upload: vuongcong

Post on 09-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Advanced RISC Machine

Vítor da Rosa

ARM

Sumário

� Introdução � História � Evolução � ARM Ltd � Arquitetura & Organização

� Primeiros Processadores � ARM7TDMI � ARM9TDMI

� Referências

História

� Out/83, a Acorn Computers Ltd desenvolve o primeiro modelo do processador ARM [3];

� 26/Abr/85, protótipos do ARM são fabricados pela VLSI Technology e são utilizados pela primeira vez em BBC Micros [3, 4]; � Primeiro processador RISC a ser comercializado

� 80s, os ARMs são utilizados nos desktops da Acorn (BBC Master, Acorn Archimedes) [3];

� 80s, é criada uma versão estática, o ARM2aS; � Fim 80s, visando uma versão totalmente estática, a Apple junta-se a Acorn para desenvolver novas versões do ARM.

História

� Nov/90, a AdvancedRM Ltd spin-off da Arcorn é fundada resultante de uma joint venture com a Apple Computer e VLSI Technology [3];

� 91, são lançados os primeiros modelos do ARM6. � 95, DEC e ARM lançam o StrongARM

� 98, ARM Ltd é introduzida nas bolsas de Londres e NASDAQ

Ao longo dos anos 90s, ARM torna-se líder no mercado de processadores embarcados de alto

desempenho e baixo consumo de energia.

Intel compra a DEC e junto ganha de presente o StrongARM

História

Evolução

ARM Ltd

� Desenvolve cores dos processadores ARM

� Licencia seus IP Cores a design houses, fábricas de semicondutores, etc

� Desenvolve também outras tecnologias de apoio aos seus processadores ARMs � Ferramentas de software, boards, debug hardware, softwares aplicativos, barramentos, periféricos, etc.

ARM Ltd

ARM Ltd

Primeiros Processadores

� RISC (32 bits, load/store) � Instruções de 3 operandos

� Não possuíam banco de registradores � Área reduzida.

� Não suportavam delayed branches � Simplifica o pipeline, � tratamento de exceções e � predição de branches.

� Suportavam Auto-Indexing Addressing (CISC) � Realizado durante os ciclos gastos no acesso a memória (Von Neumann)

� Reduz o número de instruções

ARM7TDMI

� Arquitetura ARMv4T (RISC Load/Store de 32 bits) � palavras de dados podem ser também de 16 e 8 bits � Instruções também podem ser de 16 bits (Thumb)

� Pipeline com 3 estágios � Auto-Indexing Addressing (executado durante estágios menos “apertados” do pipeline)

� Von Neumann � Bi-endian

� 32 bit Multiplier, Barrel Shifter + ALU

� Interface com coprocessadores � Sete modos de operação: User, Fast Interrupt, Supervisor, Abort, System, Undefined

Alto desempenho

Alta densidade de código

ARM7TDMI

� 37 Registradores de 32-bits � 31 de propósito geral (PC, SP, LR) � 6 de status (CPSR, SPSR)

� O modo de operação corrente controla quais registradores são acessíveis

ARM7TDMI

� Quando uma Exceção ocorre: � SPSR_<mode> <= CPSR

� Arruma os bits do CPSR � Muda para o estado ARM

� Muda para o modo exceção � Desabilita exceções (se apropriado)

� LR_<mode> <= PC

� PC <= endereço do vetor � Para retornar da exceção:

� Restaurar CPSR <= SPSR_<mode>

� PC <= LR_<mode>

Reset

Undefined Instruction

Software Interrupt

Prefetch Abort

Data Abort

(Reserved)

IRQ

FIQ 0x1C

0x18

0x14

0x10

0x0C

0x08

0x04

0x18

Vector Table

O tratamento de exceção só pode ser efetuado no estado ARM

ARM7TDMI

� Instruções:

Single-cycle Multi-cycle

Memória é utilizada a cada ciclo

Branches esvaziam o pipeline

Instruction fetch

Thumb decompress

ARM decode

Reg read Shift/ALU Reg

write

Fetch Decode Execute

Organização: ARM7TDMI

ARM7TDMI

Operações sobre Registradores Operações imediatas

� Instruções de processamento de dados

ARM7TDMI

Calcula o endereço Armazena o dado e auto-index

� Instruções de transferência de dados (load/store)

Auto-Indexing

Final do 3° ciclo

Load gasta um ciclo a mais para transferir o dado para um registrador.

ARM7TDMI

Calcula branch Salva o endereço de retorno

� Instruções de branch

1° - Busca Instr.

2° - Decodifica

3° - cal. novo end.

4° - recarrega o pipeline link rg <= retorno 5° // Corrige PC PC <= PC - 4

(Brach with link)

ARM9TDMI

� Arquitetura ARMv4T (RISC Load/Store de 32 bits) � Thumb � Pipeline com 5 estágios � Harvard

Instruction Fetch decode

r.read Shift/ALU data memory

access Reg write

Fetch Decode Execute Memory Write

Cache de

instr.

Organização

Referências

1. A. Wesley, S. Furber. ARM System-on-Chip Architecture. 2nd Edition.

2. www.arm.com

3. Wikipedia