Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14:...

35
Aula 14: Instruc ¸˜ oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Material baseado nos slides do prof. Diego Passos Fernanda Passos (UFF) Instru¸ oes e Seus Tipos FAC 1 / 35

Transcript of Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14:...

Page 1: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Aula 14: Instrucoes e Seus Tipos

Fernanda Passos

Universidade Federal Fluminense

Fundamentos de Arquiteturas de Computadores

Material baseado nos slides do prof. Diego Passos

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 1 / 35

Page 2: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Conceitos Basicos

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 2 / 35

Page 3: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Processador e Instrucoes

Processador e um dispositivo que opera em ciclos.Ciclos de execucao de instrucoes.

I Pequenas tarefas executadas sobre determinados operandos.

Buscar Instrução Interpretar Instrução Executar Instrução

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 3 / 35

Page 4: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Maquina

Individualmente, instrucoes sao simples.I Nao realizam tarefas complexas.I e.g., nao ha instrucao de maquina para verificar a ortografia de uma palavra em um texto.

A composicao/sequencia de varias operacoes mais simples resulta em tarefas maiscomplexas.Exemplos de tarefas simples (para as quais podem existir instrucoes de maquina):

I Operacoes logicas/aritmeticas simples sobre dois operandos.I Movimentacao de dados entre a memoria e registradores.I Alteracoes nos valores de certos registradores.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 4 / 35

Page 5: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Conjunto de Instrucoes

Tambem chamado de ISA (do ingles, Instruction Set Architecture).Nome dado ao grupo de todas as instrucoes disponıveis em um processador.

I Processadores diferentes podem disponibilizar instrucoes diferentes.I Em outras palavras, processadores diferentes podem ter conjuntos de instrucoes diferentes.

O conjunto de instrucoes de um processador deve permitir a implementacao de qualquertarefa computavel.

I i.e., deve haver um grupo mınimo de instrucoes que combinadas possam resultar em qualquertarefa computacional.

I Em outras palavras, algoritmos escritos em linguagens de alto nıvel podem ser traduzidospara sequencias destas instrucoes.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 5 / 35

Page 6: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Conjunto de Instrucoes: Reduzido vs. Extenso

Respeitando este conjunto mınimo necessario de instrucoes, processadores podemimplementar conjuntos de instrucoes maiores ou menores.

I Ha meritos e desvantagens em ambas as abordagens.I Discutiremos isso em mais detalhes na ultima aula do curso.

De toda forma, ha processadores reais com conjuntos de instrucoes grandes e pequenos.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 6 / 35

Page 7: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Conjunto de Instrucoes: Famılia

Processadores diferentes podem implementar conjuntos de instrucoes diferentes.I Mas isso nem sempre ocorre.I De fato, e comum que um novo processador herde o conjunto de instrucoes de um

modelo mais antigo.Distincao importante:

I Conjunto de instrucoes: que operacoes estao disponıveis.I Microarquitetura: como estas operacoes sao implementadas.

Processador mais novo pode implementar o mesmo conjunto de instrucoes, mas demaneira mais eficiente.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 7 / 35

Page 8: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Conjunto de Instrucoes: Famılia (II)

Ha varios motivos para “repetir” um conjunto de instrucoes:I Nao “reinventar a roda”: reutilizar formula bem sucedida.I Permitir reutilizacao de compiladores.I Permitir compatibilidade de codigo executavel binario.

Algumas vezes, pode-se ganhar desempenho alterando o conjunto de instrucoes.I Mas normalmente, maiores evolucoes estao na forma de implementa-lo.

Permite o lancamento de processadores mais rapidos, mas compatıveis.I Consumidor pode atualizar computador.I Sem alterar software utilizado.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 8 / 35

Page 9: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Conjunto de Instrucoes: Famılia (III)

Exemplos de conjuntos de instrucoes bem sucedidos:I i386 (ou x86): processadores Intel, AMD (entre outros) de 32 bits.I x86 64: processadores Intel, AMD (entre outros) de 64 bits.I MIPS: extensivamente usada em dispositivos embarcados (roteadores) e consoles (Nintendo

64, Playstation 1 e 2, PSP).I PowerPC: usado em carros, consoles (Wii, Wii U, XBox 360, Playstation 3).I ARM: conjunto de instrucoes mais popular do mundo.

F Domina os smartphones (95%).F Apenas em 2013, 10 bilhoes de processadores produzidos.F Tambem presente em tablets, aparelhos de TV, . . .F Comeca a se popularizar no mercado de servidores.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 9 / 35

Page 10: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Conjunto de Instrucoes: Famılia (IV)

Note que algumas vezes processadores de uma mesma famılia estendem o conjunto deinstrucoes.

I Acrescentam instrucoes.I Objetivo: permitir melhor desempenho de certos tipos de aplicacao.

Mas instrucoes que ja existiam sao mantidas.I Compatibilidade e garantida.

Exemplo:I Instrucoes MMX adicionadas ao Pentium, em 1997.I Alem das instrucoes tradicionais do i386.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 10 / 35

Page 11: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

O Conjunto de Instrucoes do MIPS

A arquitetura MIPS e relativamente simples.I Ao menos em comparacao com outras, como a x86.

Por este motivo, esta arquitetura e comumente adotada em cursos de Arquiteturas deComputadores.

I E livros didaticos da area.No restante deste curso, utilizaremos a arquitetura MIPS e seu conjunto de instrucoescomo estudo de caso.

I Exemplificaremos conceitos com ela.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 11 / 35

Page 12: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Representacao de uma Instrucao

Assim como qualquer outro dado em memoria, instrucoes sao armazenadas comoconjuntos de bits.Em algumas arquiteturas, o tamanho de uma instrucao e fixo.

I Geralmente, do tamanho da palavra do processador.I e.g., MIPS.

Em outras, ha instrucoes de tamanhos variaveis.I i.e., algumas instrucoes sao curtas, outras mais longas.I e.g., famılia x86.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 12 / 35

Page 13: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Representacao de uma Instrucao (II)

O conjunto de bits de uma instrucao pode ser dividido em varios subconjuntos.I Ou campos.I Cada um com uma semantica especıfica.

Exemplos de campos tıpicos:I Opcode: codigo da operacao, numero que especifica operacao a ser executada.I Operandos: representacao numerica dos operandos sobre os quais operacao sera realizada.

F Ou de onde obte-los.I Resultado: representacao numerica de onde guardar o resultado da operacao.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 13 / 35

Page 14: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Representacao de uma Instrucao (III)

Exemplo de instrucao de soma no MIPS (32 bits):

0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0

Opcode:

000000(2) = 0(10)

Significado:

Operação Lógicaou

Aritmética

Operando 1:

10001(2)=17(10)

Significado:

PrimeiroOperando está

no Reg. 17

Operando 2:

10010(2)=18(10)

Significado:

SegundoOperando está

no Reg. 18

Resultado:

01000(2)=8(10)

Significado:

ArmazenarResultadono Reg. 8

Campo nãoUtilizado

NestaInstrução

(deve sempreser 0)

Função:

100000(2)=32(10)

Significado:

Operação de Soma

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 14 / 35

Page 15: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Tipos de Instrucao de Maquina

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 15 / 35

Page 16: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes e Seus Propositos

Geralmente, podemos dividir as instrucoes de um conjunto de instrucoes de acordo com oproposito.

I Objetivo.I Tipo de operacao realizada.I Tipo de dado manipulado.

Categorias comuns:I Instrucoes aritmeticas.I Instrucoes de transferencia de dados.I Instrucoes logicas.I Instrucoes de deslocamento.I Instrucoes de desvio condicional.I Instrucoes de desvio incondicional.I Instrucoes de ponto flutuante.I Instrucoes para operacao atomica.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 16 / 35

Page 17: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes Aritmeticas

Instrucoes que realizam contas sobre valores inteiros.I Na nossa classificacao, ha um grupo separado para operacoes sobre ponto flutuante.

Em geral, recebem dois operandos e tem um resultado numerico.Na arquitetura MIPS, operandos sao necessariamente registradores ou constantesespecificadas na propria instrucao.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 17 / 35

Page 18: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes Aritmeticas (II)

Exemplos (do MIPS):I Instrucao add :

F Soma os valores de dois registradores.F Resultado e guardado tambem em um registrador.F Registradores podem ser todos diferentes, ou nao.

I Instrucao sub:F Equivalente a add, mas faz subtracao.

I Instrucao addi.F Parecida com a add, mas um dos operandos e uma constante armazenada na propria instrucao.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 18 / 35

Page 19: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Transferencia de Dados

Em geral, instrucoes de processamento (e.g., aritmeticas, logicas) operam sobre:I Constantes, presentes na propria instrucao.I Valores guardados em registradores.

Em outras palavras, elas nao operam diretamente sobre dados na MP.Mas registradores sao pequenos.

I Nao podemos armazenar todos os dados do programa neles.I A maior parte dos dados estara em MP.

Solucao:I Trazer dados da MP para os registradores.I E levar dados dos registradores para a MP.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 19 / 35

Page 20: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Transferencia de Dados (II)

Logo, precisamos de instrucoes que sejam capazes de fazer estas transferencias.Exemplos (do MIPS):

I Instrucao load word :F Traz uma palavra da memoria principal para um registrador.F Recebe como “operandos” dois registradores e uma constante.F Um dos registradores e o destino.F O endereco da palavra a ser trazida e dado pela soma do outro registrador com a constante.

I Instrucao store word :F Inverso da load word.F Armazena valor de um registrador de origem em um endereco da MP.F Endereco e dado pela soma de um registrador com uma constante.

Ha tambem variacoes para outros tamanhos de dados.I Meia palavra, byte.

Ha tambem instrucoes para carregar um valor constante (na propria instrucao) para umregistrador.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 20 / 35

Page 21: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes Logicas

Similares as instrucoes aritmeticas.Mas executam operacoes de logica.

I Bit 0 representa o falso logico.I Bit 1 representa o verdadeiro.

Operacoes logicas sao executadas bit a bit.I Operandos sao numeros com varios bits.

F Geralmente, uma palavra completa.I Operacoes sao feitas para cada par de bits correspondentes dos operandos.I e.g., com 4 bits, uma operacao logica OU entre 1010 e 0110 resulta em 1110.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 21 / 35

Page 22: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes Logicas (II)

Exemplos (do MIPS):I Instrucao and :

F Realiza a operacao logica E bit a bit.F Operandos sao dois registradores.F Resultado tambem e colocado em um registrador.

I Instrucao or :F Similar a and, mas efetua a operacao logica OU.

I Instrucao xor :F Similar as anteriores, mas a operacao e de OU Exclusivo.

I Instrucao nor :F Idem, mas para a operacao de Nao-OU.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 22 / 35

Page 23: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Deslocamento

Algumas vezes e util “deslocarmos” os bits de um numero.I Para a esquerda ou para a direita.I Operacao conhecida em ingles como shift.

Exemplo de utilidade aritmetica:I Deslocar bits uma casa para a esquerda multiplica por dois.I Deslocar bits uma casa para a direita divide por dois.

Ha ainda outras utilidades na manipulacao de bits em geral.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 23 / 35

Page 24: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Deslocamento (II)

O tipo mais comum de shift e o logico.I No shift para a direita, bits a esquerda sao completados com zero.I No shift para a esquerda, bits a direita sao completados com 0.I e.g., com 4 bits, 0101 <<1 = 1010, 0101 >>1 = 0010.

Ha ainda o shift a direita aritmetico.I Bits adicionados a esquerda sao iguais ao bit mais significativo do operando.I e.g., com 4 bits, 0101 >>1 = 0010, 1101 >>1 = 1110.

Shifts aritmeticos sao uteis para fazer divisoes por 2 em numeros negativos emcomplemento a 2.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 24 / 35

Page 25: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Deslocamento (III)

Na arquitetura MIPS, ha 6 tipos de instrucoes de shift disponıveis.I Shifts a esquerda, a direita, aritimeticos a direita.I Quantidade de bits deslocados dado por constante (na propria instrucao) ou por valor em

registrador.Em todas as instrucoes, o valor a sofrer o deslocamento e sempre lido de um registrador.E resultado e guardado em outro registrador (potencialmente diferente).

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 25 / 35

Page 26: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Desvio Condicional

Tambem comumente chamadas de instrucoes de branch.Alteram o valor do registrador PC, caso uma determinada condicao seja verdadeira.

I Ou auxiliam nesta tarefa.Lembrando:

I PC e um registrador especial.I Armazena endereco da proxima instrucao a ser executada.I Geralmente, instrucoes sao executadas em sequencia.I Mas as vezes precisamos saltar para outra parte do codigo.I Exemplos?

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 26 / 35

Page 27: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Desvio Condicional (II)

Instrucoes de branch sao necessarias para dar suporte a condicionais e repeticoes emlinguagens de alto nıvel.Alguns exemplos (em C):

if (x == 3) { // Instrucao de branchy = 4;

}else {

y = 6;}

while (x < 100) { // Instrucao de branch

y = y + 1;x = x + y;

}x = x * 4;

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 27 / 35

Page 28: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Desvio Condicional (III)

Ha diversas pequenas variacoes das instrucoes de branch em cada arquitetura.Alguns exemplos do MIPS:

I Instrucao branch on equal :F Operandos sao dois registradores e uma constante numerica.F Compara os valores dos registradores.F Se forem iguais, soma ao PC a constante multiplicada por 4, e mais 4.

I Instrucao branch on not equal :F Idem, mas PC e mudado se valores foram diferentes.

I Instrucao set on less than:F Recebe dois registradores como operandos e mais um para o resultado.F Se o primeiro operando e menor que o segundo, resultado e 1.F Usado com branch on equal para comparacoes do tipo menor que.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 28 / 35

Page 29: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Desvio Incondicional

Tambem chamadas de instrucoes de jump, ou salto.Parecidas com as instrucoes de branch, mas nao ha condicao a ser testada.

I Valor do PC e mudado sempre.I Programa sempre “salta” para outra instrucao.

Utilidades?

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 29 / 35

Page 30: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Desvio Incondicional (II)

Em linguagens de alto nıvel, instrucoes de jump ocorrem em varios casos. Por exemplo:I Estruturas como goto.I Loops infinitos.I Chamadas de funcao.

Exemplos (em C):

if (x == 3) {goto erro; // Jump

}y = 6;erro:printf("Houve algum erro!\n");

while (1) {

// Espera nova conexao.// Trata requisicao.//...

}// Jump

y = 4;x = sqrt(5); // Jumpy = y + x;

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 30 / 35

Page 31: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes de Desvio Incondicional (III)

Exemplos (no MIPS):I Instrucao jump:

F Recebe um unico operando: uma constante na propria instrucao.F Valor do PC e alterado para 4 vezes o valor da constante concatenada com os 4 bits mais

significativos do PC.I Instrucao jump register :

F Parecido, mas o operando e um registrador.F Valor do PC e alterado para valor do registrador especificado.

I Instrucao jump and link:F Identica a jump, mas adicionalmente guarda o valor atual do PC no registrador 31.

Qual e a utilidade da instrucao jump and link?

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 31 / 35

Page 32: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Formatos de Instrucoes

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 32 / 35

Page 33: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Instrucoes e Seus Formatos

Instrucoes diferentes precisam de operandos diferentes.I Ou, mais genericamente, parametros diferentes.

As diferencas estao tanto no numero, quanto no tipo.I e.g., instrucao jump recebe apenas um parametro vs. tres na instrucao add.I Instrucao add recebe tres registradores vs. dois (e uma constante) na addi.

Outra diferenca: numero de bits de cada parametro.I e.g., uma constante pode usar 16 ou 26 bits no MIPS.

De alguma forma, processador “conhece” o formato de cada instrucao.I Sabe como separar os bits da instrucao nos grupos adequados.I E o que cada grupo representa.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 33 / 35

Page 34: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Formatos de Instrucao no MIPS

No MIPS, as instrucoes podem ser divididas de acordo com seu formato.Ha tres formatos, no total:

I Formato R: instrucoes que recebem tres registradores como parametros.I Formato I: instrucoes que recebem dois registradores e um imediato (constante) como

parametros.I Formato J: para instrucoes do tipo jump, que recebem apenas um imediato (constante)

como parametro.Em qualquer um dos tres tipos, os 6 bits mais significativos representam o OpCode.

I Codigo numerico que define a operacao.I Ou ao menos seu tipo.

Todas as instrucoes tem um comprimento de 32 bits.I O que varia, portanto, sao os 26 bits menos significativos.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 34 / 35

Page 35: Aula 14: Instruções e Seus Tipos - ic.uff.brfernanda/2016-1/FAC/aulas/aula14.pdfAula 14: Instruc¸˜oes e Seus Tipos Fernanda Passos Universidade Federal Fluminense Fundamentos de

Formato de Instrucao no MIPS (II)

Tipo Formato (bits)R opcode (6) rs (5) rt (5) rd (5) shamt (5) funcao (6)I opcode (6) rs (5) rt (5) imediato (16)J opcode (6) endereco (26)

Em todos os formatos, os nomes dos campos querem dizer:I rs, rt (formato R): registradores com valores de entrada para a instrucao.I rd, rt (formato I): registrador de resultado.I shamt: quantidade de bits deslocados.I imediato: constante numerica.I endereco: constante numerica.I funcao: similar ao opcode, define mais especificamente o operacao realizada.

F e.g., para operacoes aritmeticas, o opcode define apenas que a instrucao e uma operacaoaritimetica.

F Neste caso, o campo funcao determina se e uma soma, subtracao, etc.

Fernanda Passos (UFF) Instrucoes e Seus Tipos FAC 35 / 35