Escolar Documentos
Profissional Documentos
Cultura Documentos
ISA MIPS
Ivan Saraiva Silva
Introdução à ISA MIPS
• MIPS = Microprocessor Without
Interlocked Pipeline Stage
• ISA = Istruction Set Architecture
– Contem definições da arquiteturais relativas a
programação
• Tipos de dados;
• Registradores;
• Instruções;
• Formato de instruções;
• ....
Formato de Instruções MIPS
• A ISA MIPS usa três formatos de instrução
6 bits 26 25
5 bits 21 20
5 bits 16 15
5 bits 1110
5 bits 6 5
6 bits
31 0
op rs rt rd shamt funct
Formato tipo R (Operações entre registradores)
Instruções de Formato R
• op: opcode – operação básica da instrução
• rs: registrador do primeiro operando de origem
• rt: registrador do segundo operando de origem
• rd: registrador do operando destino
• shamt: Quantidade de deslocamento
• funct: função – define uma variante da operação
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
op rs rt rd shamt funct
Formato tipo R
Formato de Instruções MIPS
• A ISA MIPS usa três formatos de instrução
6 bits 5 bits 5 bits 16 bits
31 26 25 21 20 16 15 0
op rs rt constante ou endereço
Formato tipo I (Endereçamento imediato)
6 bits 26 bits
31 26 25 0
op constante ou endereço
Formato tipo J (Saltos e chamada de procedimentos)
Representando Instruções Tipo R
• Exemplo:
• Como codificar: add $t0, $s1, $s2
op rs rt rd shant funct
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
000000 10001 10010 01000 00000 100000
Memória
Endereço 0
Endereço 1
Endereço 2 Palavra 0
Endereço 3
Endereço 4
Endereço 5
Endereço 6 Palavra 1
Endereço 7
Memória – “Endianness”
Litlle Endian
Memória
Byte 3 Byte 2 Byte 1 Byte 0
Endereço 0
Endereço 1
Endereço 2 Palavra 0
Endereço 3
Endereço 4
Endereço 5
Endereço 6 Palavra 1
Endereço 7
Byte 3 Byte 2 Byte 1 Byte 0
Big Endian
Conjunto de Instruções
• O conjunto de instruções MIPS possui algumas
características fundamentais
– Apenas as instruções de carga (Load) e armazenamento
(Store) podem ler/escrever na memória
• Estas intruções podem manipular
– Palavras (32 bits – quatro bytes)
– Meia-palavra (16 bits – dois bytes
– Byte (oito bits – um byte)
– Operações (cálculo) só são realizados em dados
armazenados em registradores
Conjunto de Instruções
• Operações no MIPS envolvem
– Carga (Load) dos operando para registradores;
– Realização das operações com os registradores;
– Armazenamento (Store) do resultado na
memória;
• O conjunto de instruções MIPS segue a
filosofia RISC
RISC x CISC
• Conjunto de instruções • Conjunto de instruções
reduzido complexo
– Toda complexidade é do – Toda a complexidade é do
software hardware
• Poucos formatos de instrução • Vários formatos de instrução
• Endereçamento da memória • Endereçamento da memória
simples complexo
• Todas (ou quase) as instruções • Número variável de ciclos para
executadas em uma mesma executar cada instrução
quantidade de ciclos
(preferencialmente 1)
Exemplos de Instruções
• Carga (Load) e Armazenamento (Store)
• Lógicas e Aritméticas
• Deslocamento
• Saltos e desvios condicionais
#Deslocamentos lógicos
• sll $t1, $t2, 3 # $t1 = $t2 << 3
• srl $t1, $t2, 8 # $t1 = $t2 >> 3
#Deslocamento aritmético
• sra $t1, $t2, 3 # $t1 = $t2 >> 3 (copia bit de sinal)
Saltos e desvios
Instrução Significado (pseudocódigo)
#Desvio condicional
• beq $t1, $t2, label # IF St1 == $t2, PC = endereço do
label
ELSE PC = PC+4
#Desvio incondicional
• j label # PC = endereço do label
Desvio e retorno de sub-rotina
Instrução Significado (pseudocódigo)
#Desvio incondicional
• jr $ra # PC = ($ra)
Lista de instruções
Carga (Load) e Armazenamento (Store)