Thiago Schoppen Veronese Rodrigo Horst INE5309

Propaganda
Thiago Schoppen Veronese
Rodrigo Horst
INE5309
Linguagem Assembly
Bastante semelhante ao MIPS
Arquitetura RISC
Fabricado pela Xilinx
Implementação em FPGAs
Permite o uso de C através do MB-GCC
Pipeline de cinco estágios:
Instruction Fetch (IF), Decode (OF),
Execute (EX), Access Memory (MEM) e
Writeback (WB)
Para a maioria das instruções cada
estágio leva um ciclo
Cinco ciclos para completar uma instrução
Uma instrução completada por ciclo
Dados e instruções numa BRAM
Palavras de instruções e dados de 32 bits
Um ciclo para acesso à memória e leitura
de cache e dois para escrita na cache
Sem gerenciamento de memória
SOs portados: µClinux e FreeRTOS
São dos seguintes tipos:
Tipo A: registrador-registrador
Tipo B: registrador-imediato
Mapeadas para endereços de memória:
Causa
Hardware desvia
Labels de software
Início / Reset
0x0
_start
Exceção de usuário
0x8
_exception_handler
Interrupção
0x10
_interrupt_handler
Break (HW/SW)
0x18
Exceção de hardware
0x20
Reservado pela Xilinx
para uso futuro
0x28
_hw_exception_handler
0x4F
-
32 registradores de uso geral R0-R31
Até 7 registradores de uso especial
Uso do formato Big Endian para
representação de dados
Há uma convenção para uso dos
registradores de uso geral
Registrador
Tipo
Uso
R0
Dedicado
Valor 0
R1
Dedicado
Stack Pointer
R2
Dedicado
Ponteiro de área de dados somente leitura
R3-R4
Volátil
Valores de retorno/Temporários
R5-R10
Volátil
Passagem de parâmetros/Temporários
R11-R12
Volátil
Temporários
R13
Dedicado
Ponteiro de área de dados de leitura/escrita
R14
Dedicado
Endereço de retorno de interrupções
R15
Dedicado
Endereço de retorno de sub-rotinas
R16
Dedicado
Endereço de retorno do Debugger
R17
Dedicado
Endereço de retorno de exceções
R18
Dedicado
Reservado ao Assembler
R19-R31
Não-volátil
Uso geral
Devem ser salvos nas chamadas de funções
Registrador
Tipo
Uso
RPC
Especial
Contador de programa
RMSR
Especial
Registrador de status da máquina
REAR
Especial
Registrador de endereço de exceção
RESR
Especial
Registrador de status de exceção
RFSR
Especial
Registrador de status de ponto flutuante
RBTR
Especial
Registrador de alvo de desvios
RPVR0RPVR11
Especial
Registrador de versão do processador 0 até 11
Controladores industriais
Aplicações para consumidores
Automação comercial
Comunicação de dados
> Natureza altamente configurável,
permitindo grande flexibilidade
.text
.align
.globl
.ent
2
main
main
addik
addik
r19, r0, 5
r20, r0, 4
mul
r21, r19, r20
rtsd
nop
.end
r15,r0
main:
main
.extern funcao
.text
.align
.globl
.ent
2
main
main
addik
swi
swi
swi
swi
swi
swi
swi
swi
swi
swi
r1, r1, -68
r14, r1, 0
r15, r1, 4
r16, r1, 8
r17, r1, 12
r19, r1, 16
r20, r1, 20
r21, r1, 24
r22, r1, 28
r23, r1, 32
r24, r1, 36
main:
swi
swi
swi
swi
swi
swi
swi
r25, r1, 40
r26, r1, 44
r27, r1, 48
r28, r1, 52
r29, r1, 56
r30, r1, 60
r31, r1, 64
brlid
nop
r15, funcao
lwi
addik
r15, r1, 4
r1, r1, 68
rtsd
nop
r15,r0
.end
main
Download