arm7
-
Upload
edilson-tiao -
Category
Documents
-
view
16 -
download
0
Transcript of arm7
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
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.
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
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