Advanced RISC Machine
Vítor da Rosa
Sumário
Introdução História
Evolução ARM Ltd
Arquitetura & Organização
Primeiros Processadores ARM7TDMI
ARM9TDMI
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
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,
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)
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
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 writeARM7TDMI
Operações sobre Registradores Operações imediatas
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
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
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
Cache de instr.
Referências
1.
A. Wesley, S. Furber. ARM System-on-Chip
Architecture. 2nd Edition.
2.