Advanced RISC Machine ARM Vítor da Rosa
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 Intel compra a DEC e junto ganha de presente o StrongARM Ao longo dos anos 90s, ARM torna-se líder no mercado de processadores embarcados de alto desempenho e baixo consumo de energia.
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 Alto desempenho Sete modos de operação: User, Fast Interrupt, Supervisor, Abort, System, Undefined 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> 0x1C 0x18 0x14 0x10 0x0C 0x08 0x04 0x18 O tratamento de exceção só pode ser efetuado no estado ARM FIQ IRQ (Reserved) Data Abort Prefetch Abort Software Interrupt Undefined Instruction Reset Vector Table
ARM7TDMI Fetch Decode Execute Instruction fetch Thumb decompress ARM decode Reg read Shift/ALU Reg write Instruções: Memória é utilizada a cada ciclo Branches esvaziam o pipeline Single-cycle Multi-cycle
Organização: ARM7TDMI
ARM7TDMI Instruções de processamento de dados Operações sobre Registradores Operações imediatas
ARM7TDMI Instruções de transferência de dados (load/store) Final do 3 ciclo Auto- Indexing Calcula o endereço Load gasta um ciclo a mais para transferir o dado para um registrador. Armazena o dado e auto-index
ARM7TDMI 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) Calcula branch Salva o endereço de retorno
ARM9TDMI Arquitetura ARMv4T (RISC Load/Store de 32 bits) Thumb Pipeline com 5 estágios Harvard Instruction Fetch r.read decode 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