Descrição de Arquiteturas
Por: Rodrigo Miguel • 27/3/2016 • Trabalho acadêmico • 1.013 Palavras (5 Páginas) • 322 Visualizações
Descrição de Arquiteturas
1) Descrição da arquitetura: tipos de barramentos (dados, controle, endereço), CPU (ULA,
Cache, etc.), RISC ou CISC, Bits (32, 64, etc.).
Processadores ARM utilizam a arquitetura RISC (Reduced Instruction Set Computer) e os atributos típicos para este tipo de arquitetura são:
- Grande variedades de registradores;
- Arquitetura load/store: Um modelo de processamento de dados em que as operações só podem operar nos registradores e não diretamente na memória. Isto requer que todos os dados sejam carregados na registradoress antes que uma operação possa ser pré-formada, o resultado pode então ser utilizado para processamento adicional ou armazenados de volta para a memória;
- Instrução fixa de 32 bits alinhadas em 4 bytes;
- Unidade Aritmética Lógica (ULA) separada dando o controle adicional sobre o processamento de dados para maximizar a velocidade de execução;
2) Capacidade de Processamento (MIPS, FLOPS, CFP);
3) Conjunto de instruções (assembly – listar as principais instruções e por tipo).
- Instruções de branch (controle de fluxo):
Salto direto: B{cond} <endereco>
Salto direto com link: BL{cond} <endereco>
Salto indireto: BX{cond} Rn
Salto indireto com link: BXL{cond} Rn
- Instruções de processamento de dados: existem quatro tipos de instruções de processamento de dados:
- Aritmética:
ADD R1, R2, R3 // Adição
SUB R1, R2, R3 // Subtração
RSB R1, R2, R3 // Subtração reversa
Com carry:
ADC R1, R2, R3 // Adição com carry
SBC R1, R2, R3 // Subtração com carry
RSC R1, R2, R3 // Subtração reversa com carry
- Comparação:
CMP R1, R2 // R2-R1
CMN R1, R2 // R2-(-R1)
TST R1, R2 // R2 AND R1
TEQ R1, R2 // R2 EOR R1
- Lógica:
AND R1, R2, R3
ORR R1, R2, R3
EOR R1, R2, R3
BIC R1, R2, R3
- Movimentação de dados:
MOV R1, R2
MVN R3, R4
- Instruções de transferência do registrador de estado: As instruções de transferência do registrador de estado transferem o conteúdo da CPSR ou um SPSR para ou a partir de um registrador de uso geral:
MRS – move o conteúdo do registrador de estado para um registrador de propósito geral.
MSR – move o conteúdo do registrador de propósito geral para um registrador de estado.
- Instruções de load e store: Instruções de load podem carregar uma palavra de 32 bits, uma meia palavra de 16 bits ou um byte da memória para um registrador. Instruções de store podem armazenar uma palavra de 32 bits, uma meia palavra de 16 bits ou um byte do registrador para a memória.
LDR | STR {<cond>} {B} {T} Rd, <addressing_mode>
LDR | STR {<cond>} H | SH | SB Rd, <addressing_mode>
- Instruções de coprocessador: existem três tipos de instruções do coprocessador:
Instrução de processamento de dados: inicia uma operação interna específica do coprocessador;
Instrução de Transferência de dados: transfere dados do co-processador para ou da memória. O endereço da transferência é calculado pelo processador ARM;
Instruções de transferência de registradores: permite que um valor do coprocessador seja transferido para ou a partir de um registrador.
- Instruções para geração de exceções: Existem duas instruções deste tipo:
Instruções de interrupção de software (SWI): instruções SWI causam interrupção de software. São normalmente utilizados para fazer chamadas para um sistema operacional, para solicitar um serviço definido pelo SO. A entrada exceção causada por uma instrução SWI também muda para um modo privilegiado. Isto permite que uma tarefa sem privilégios obtenha acesso a funções privilegiadas, mas apenas se permitida pelo SO.
Codificação: SWI {<cond>} <inmed_24>
Instruções de breakpoint de software (BKPT): se o software depurador apropriado está instalado no vetor de interrupção, uma exceção é gerada e dessa forma é tratada como um breakpoint. Se o hardwre de depuração estiver presente no sistema, em vez disso, pode ser tratada uma instrução BKPT diretamente como breakpoint, impedindo a excepção de interrupção de ocorrer.
Codificação: BKPT <immediate>
4) Tipos de instruções (memória, aritmética, etc).
Os tipos de instruções são:
- Movimentação de dados
- Aritmética
- Acesso
...