Assembly mips
ISA
- Instruction Set Architecture
- Conjunto de Instruções de uma Máquina
ISA
Em geral não existe um conjunto de regras que ajude a definir melhor um ISA
Mas uma dica é o projeto de instruções simples, que permitam a utilização de um datapath enxuto (e rápido!) Processadores que possuem instruções complexas no seu ISA usualmente utilizam microcódigo para implementá-las, de modo a facilitar o projeto do datapath
RISC x CISC?
Instruction Set Architecture (ISA)
Conjunto de instruções que definem uma máquina qualquer Desse modo, o projetista do ISA possui algumas
“obrigações”
Criar um ISA que permita um projeto rápido (ou menos demorado!) Criar um ISA que satisfaça as restrições de projeto
(consumo de energia, área lógica, etc)
Criar um ISA que simplifique o trabalho dos compiladores
Criar um ISA que não fique obsoleto de uma geração para outra ISA do MIPS
Um exemplo interessante de ISA é o do MIPS, que utiliza os princípios RISC
Poucos formatos de instrução
Instruções de tamanho fixo
Arquitetura registrador-registrador (ou load/store)
Poucos modos de endereçamento
Poucas instruções complexas
Formatos de Instrução
Instruções do tipo R (Registrador)
31
26 25
op
rs
1615
rt
1110
rd
65
shamt
0
funct
Instruções do tipo I (Imediato)
31
26 25
op
21 20
21 20
rs
1615
rt
0
immediate
Instruções do tipo J (Salto)
31
26 25
op
0
target
Formatos de Instrução
Onde:
OP: 6 bits que definem a operação (opcode)
RS: 5 bits de indicam um registrador de origem
RT: 5 bits que indicam um registrador (origem ou destino) ou condição de salto
RD: 5 bits que indicam um registrador de destino
SHAMT: 5 bits que especificam a quantidade de bits a serem deslocados
FUNCT: 6 bits que definem a função da operação