33
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aula 17: UCP: Construindo um Caminho de Dados (Parte I) Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 1 / 33

Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Aula 17: UCP: Construindo um Caminho de Dados (Parte I)

Diego Passos

Universidade Federal Fluminense

Fundamentos de Arquiteturas de Computadores

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 1 / 33

Page 2: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Revisão

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 2 / 33

Page 3: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Na Aula Passada. . .

Discutimos componentes típicos de um processador.Alguns simples:

▶ Multiplexadores.▶ Geradores de clock.▶ Deslocadores.▶ . . .

Outros mais complexos:▶ Bancos de registradores.▶ Interfaces com a MP.▶ . . .

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 3 / 33

Page 4: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Na Aula Passada. . . (II)

O último componente visto foi a ALU.▶ Unidade Lógica-Aritmética.

Componente que “faz contas”.▶ Recebe dois operandos.▶ Realiza alguma operação lógica ou aritmética sobre eles.

Possui algumas linhas de controle.▶ Determinam como a ALU se comporta.▶ Qual operação será realizada.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 4 / 33

Page 5: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Mais Alguns Conceitos

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 5 / 33

Page 6: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Componentes Combinacionais vs. Sequenciais

A maioria dos componentes vistos na aula passada eram sequenciais.▶ A saída é uma função das entradas.

⋆ E apenas delas.▶ Exemplos:

⋆ Somador.⋆ Deslocador.⋆ ALU.

Mas vimos também um elemento diferente: o registrador.▶ Em um dado ciclo, a saída de um registrador não depende das suas entradas.▶ Na verdade, o registrador mantém estado entre ciclos.▶ O valor de saída é o armazenado em um ciclo anterior.▶ A entrada só muda este estado (para os próximos ciclos).

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 6 / 33

Page 7: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Unidade de Controle vs. Caminho de Dados

Podemos dividir o funcionamento de um processador em duas partes:▶ O Caminho de Dados.▶ A Unidade de Controle.

O Caminho de Dados é o hardware que executa as instruções.▶ Realiza processamento, armazenamento, . . .

A Unidade de Controle gerencia o caminho de dados.▶ Diz a este o que fazer.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 7 / 33

Page 8: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O Caminho de Dados

O Caminho de Dados contém componentes como:▶ Registradores.▶ Multiplexadores.▶ ALU.▶ Somadores.▶ . . .

Estes vários componentes devem ser interligados.Objetivo:

▶ Criar um ou mais caminhos para os dados.▶ Cada caminho realiza um tipo de transformação nos dados.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 8 / 33

Page 9: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

A Unidade de Controle

Vários componentes do Caminho de Dados possuem linhas de controle.▶ e.g., um multiplexador escolhendo entre duas ou mais entradas.▶ e.g., uma ALU efetuando uma operação específica.

Alguém precisa determinar o estado destas linhas de controle.▶ Quais “parâmetros” passar para o Caminho de Dados.

Este é justamente o trabalho da Unidade de Controle.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 9 / 33

Page 10: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

A Unidade de Controle (II)

Componentes típicos da Unidade de Controle incluem:▶ Extensores de sinal.▶ Somadores.▶ Decodificadores.▶ . . .

De forma simplificada, a unidade de controle tem o trabalho de:▶ Decodificar a instrução a ser executada.▶ Ativar (e desativar) as linhas de controle adequadas para esta execução.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 10 / 33

Page 11: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Projetando um Processador Simplificado

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 11 / 33

Page 12: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Objetivo das Próximas Aulas

Nas próximas aulas, entenderemos como funciona um processador internamente.▶ i.e., como a execução de instruções ocorre.

Veremos como implementar as funcionalidades de controle e do caminho de dados.▶ A partir dos componentes descritos anteriormente.▶ Como combiná-los e conectá-los de forma a implementar um processador funcional.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 12 / 33

Page 13: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Objetivo das Próximas Aulas (II)

Faremos isso através de um grande exemplo:▶ Um projeto de um processador simplificado.

Baseado em um subconjunto do conjunto de instruções do MIPS.▶ Conjunto pequeno, mas suficiente para executarmos programas complexos.

Processo será iterativo.▶ Começaremos com versões simples.▶ Adicionaremos mais funcionalidades aos poucos.

Ao final destas aulas, teremos um projeto completo e funcional deste processador.▶ No nível dos macro-componentes vistos na aula anterior.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 13 / 33

Page 14: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Etapas do Projeto

Projetar um processador (mesmo um simplificado) é uma tarefa complexa.Não podemos simplesmente começar a interligar componentes de forma ad hoc.Precisamos de um plano.

▶ Uma estratégia para atacar o problema.

Por isso, vamos dividir o projeto em etapas.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 14 / 33

Page 15: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Etapas do Projeto (II)

Primeiro, vamos definir nosso conjunto de instruções.▶ Deve ser pequeno.▶ Mas suficiente para rodarmos programas interessantes.

Em seguida, definiremos uma estrutura organizacional macroscópica.▶ Em termos mais simples, definiremos características e quantidades de certos componentes.▶ Como o número de registradores.▶ E funcionalidades da ALU.

Depois, definiremos a interconexão destes componentes no caminho de dados.▶ Como conectá-los permitindo a execução das instruções desejadas.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 15 / 33

Page 16: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Etapas do Projeto (III)

A seguir, definiremos as estruturas de controle.▶ Interconexão de componentes com objetivo de controlar o caminho de dados.

Em uma última etapa, faremos uma validação do nosso projeto.▶ Verificaremos se os requisitos foram atendidos.▶ e.g., se o conjunto de instruções foi implementado corretamente.

⋆ Se as instruções fazem o que se espera.⋆ E apenas isso.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 16 / 33

Page 17: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Definindo um Conjunto de Instruções

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 17 / 33

Page 18: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Requisitos

Queremos que nosso processador seja capaz de executar programas “interessantes”.Mais formalmente, precisamos das seguintes funcionalidades:

▶ Ler dados da MP.▶ Escrever dados para a MP.▶ Carregar constantes.▶ Realizar operações aritméticas.

⋆ Soma, subtração, . . .▶ Realizar operações lógicas.

⋆ Operações bit a bit, como E e Ou.▶ Realizar comparações.▶ Realizar saltos para outros pontos do código.

⋆ Condicionalmente e incondicionalmente.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 18 / 33

Page 19: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Simplificações

Poderíamos implementar o conjunto completo de instruções do MIPS.▶ Ou de alguma outra arquitetura.

Mas isso não seria prático ou didático.▶ Muitas instruções, demoraríamos muito.▶ Em um dado ponto, o projeto ficaria muito complexo.

⋆ Difícil de entender.

Por isso, utilizaremos o conjunto de instruções do MIPS, mas com várias simplificações.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 19 / 33

Page 20: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Simplificações (II)

A primeira simplificação é no número de instruções.▶ Nosso processador entenderá apenas 10 instruções.

Para isso:▶ Implementaremos apenas instruções sobre inteiros.

⋆ i.e., nenhuma instrução de ponto-flutuante.⋆ Pode ser implementado em software.

▶ Em termos de aritmética, apenas instruções de soma e subtração.⋆ i.e., não há instruções para multiplicação e divisão.⋆ Podem ser implementadas em software.

▶ Em termos de lógica, apenas duas operações: E e Ou.⋆ Outras operações (como a negação, Xor,. . . ) podem ser implementadas em software.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 20 / 33

Page 21: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Simplificações (III)

Para isso (continuação):▶ Apenas uma instrução para leitura de dados da MP: load word.

⋆ Ao invés das diversas variações implementadas pelo MIPS.⋆ Podem ser implementadas em software.

▶ Idem para as instruções de escrita de dados na MP: apenas a store word.⋆ Variações podem ser obtidas por software.

▶ Apenas uma instrução de comparação: set less than.⋆ Outros tipos de comparação podem ser obtidos por software.

▶ Apenas uma instrução de desvio condicional: branch if equal.⋆ Outros tipos de desvio podem ser emulados por software.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 21 / 33

Page 22: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Simplificações (IV)

Para isso (continuação II):▶ Apenas uma instrução de desvio incondicional: jump.▶ Neste caso, há uma perda de funcionalidade.▶ Uma funcionalidade importante em programação não é simulável.

⋆ A chamada de funções/procedimentos.▶ Seria necessária a implementação das instruções jump and link e jump register.

⋆ Por que?▶ Pagaremos este preço em troca de simplicidade.▶ Finalmente, apenas permitiremos o carregamento de constantes através de uma instrução: a

add immediate.⋆ O MIPS completo prevê várias instruções deste tipo.⋆ Executam operações lógicas/aritméticas sobre constantes.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 22 / 33

Page 23: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Resumo do Conjunto de InstruçõesInstrução Operandos Descrição

load word Dois registradores e um ime-diato

Carrega palavra de memória da posição reg2 + immpara o registrador reg1.

store word Dois registradores e um ime-diato

Escreve valor da palavra em reg1 para a posição dememória reg2 + imm.

add Três registradores Soma os valores dos registradores reg2 e reg3 e ar-mazena resultado em reg1.

subtract Três registradores Subtrai os valores dos registradores reg2 e reg3 earmazena resultado em reg1.

and Três registradores Realiza operação lógica AND bit a bit entre reg2 ereg3 e armazena resultado em reg1.

or Três registradores Realiza operação lógica AND bit a bit entre reg2 ereg3 e armazena resultado em reg1.

add immediate Dois registradores e um ime-diato

Soma o valor do registrador reg2 ao valor do imedi-ato e armazena resultado em reg1.

set on less than Três registradores Se o valor de reg2 é maior ou igual ao valor de reg3,escreve 0 em reg1. Escreve 1, caso contrário.

branch on equal Dois registradores e um ime-diato

Se os valores de reg1 e reg2 forem iguais, salta paraPC + 1 + imm (imediato em número de instruções).

jump Um imediato Salto incondicional para endereço dado pelo imedi-ato multiplicado por 4.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 23 / 33

Page 24: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Definindo o Formato das Instruções

Uma outra etapa necessária no projeto de um processador é definir o formato dasinstruções.

▶ Como cada instrução é codificada em bits.▶ Opcode, operandos, . . .

Vamos novamente simplificar nosso trabalho nesta etapa:▶ Usaremos os mesmos formatos de instrução do MIPS.

Note que isso é uma faca de dois gumes:▶ Por um lado, o trabalho já está pronto.▶ Por outro, poderíamos propor formatos mais simples.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 24 / 33

Page 25: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Relembrando os Formatos de Instrução do MIPS

Tipo Formato (bits)R opcode (6) rs (5) rt (5) rd (5) shamt (5) função (6)I opcode (6) rs (5) rt (5) imediato (16)J opcode (6) endereço (26)

Lembre-se: as instruções do MIPS usam um de três formatos.▶ Formato depende do número e tipo dos operandos.

Note que nosso subconjunto de instruções possui instruções de todos os trêstipos.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 25 / 33

Page 26: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Formatos Mais Específicos: Instruções Aritméticas/Lógicas

Nosso subconjunto de instruções possui 6 instruções que realizam operaçõeslógicas/aritméticas.

▶ add, subtract, set on less than, or, and e add immediate.Destas, cinco operam sobre dois registradores e colocam o resultado em um terceiroregistrador.

▶ Exceção: instrução add immediate.▶ Um dos operandos é uma constante (imediato).

Estas cinco operações precisam adotar o formato de instrução R.▶ Por causa dos três registradores.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 26 / 33

Page 27: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Formatos Mais Específicos: Instruções Aritméticas/Lógicas (II)

Mais especificamente, cada uma destas cinco instruções terá o formato binário:

0000 00ss ssst tttt dddd d000 00ff ffff

Onde:▶ sssss: número inteiro positivo indicando registrador do primeiro operando.▶ ttttt: número inteiro positivo indicando registrador do segundo operando.▶ ddddd : número inteiro positivo indicando registrador do resultado.▶ ffffff : campo “função”.

Instrução Campo “Função”add 100000

subtract 100010and 100100or 100101

set on less than 101010

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 27 / 33

Page 28: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Formatos Mais Específicos: Instruções Aritméticas/Lógicas (III)

A única exceção é a instrução add immediate.Ela precisa de dois registradores e uma constante (imediato).

▶ Logo, formato usado é o I.

Mais especificamente:0010 00ss ssst tttt iiii iiii iiii iiii

Onde:▶ sssss: número inteiro positivo indicando registrador do primeiro operando.▶ ttttt: número inteiro positivo indicando registrador do resultado.▶ iiiiiiiiiiiiiiii : 16 bits indicando um número inteiro em Complemento a Dois.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 28 / 33

Page 29: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Formatos Mais Específicos: Instruções Transferência de Memória

Há duas:▶ load word, store word.

Ambas têm os mesmos tipos de operandos.▶ Dois registradores e um imediato.▶ Formato de instrução I.

Mais especificamente:

loadword → 1000 11ss ssst tttt iiii iiii iiii iiii

storeword → 1010 11ss ssst tttt iiii iiii iiii iiiiOnde:

▶ sssss: número inteiro positivo indicando registrador contendo o endereço base.▶ ttttt: número inteiro positivo indicando registrador de/para onde o dado será lido/escrito.▶ iiiiiiiiiiiiiiii : 16 bits indicando um número inteiro em Complemento a Dois.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 29 / 33

Page 30: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Formatos Mais Específicos: Instruções de Desvio Condicional

Há apenas uma: branch on equal.Recebe dois registradores e uma constante (imediato).

▶ Formato I.

Mais especificamente:0001 00ss ssst tttt iiii iiii iiii iiii

Onde:▶ sssss: número inteiro positivo indicando registrador do primeiro operando.▶ ttttt: número inteiro positivo indicando registrador do segundo operando.▶ iiiiiiiiiiiiiiii : 16 bits indicando um número inteiro em Complemento a Dois.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 30 / 33

Page 31: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Formatos Mais Específicos: Instruções de Desvio Incondicional

Novamente, só há uma: jump.Como o desvio é incondicional, só precisamos de um operando:

▶ Endereço para o qual saltar.▶ Formato J.

Mais especificamente:0000 10ii iiii iiii iiii iiii iiii iiii

Onde:▶ iiiiiiiiiiiiiiiiiiiiiiiiii : 26 bits indicando um número inteiro positivo .

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 31 / 33

Page 32: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Resumindo os Formatos

Instrução Formatoadd 0000 00ss ssst tttt dddd d000 0010 0000

subtract 0000 00ss ssst tttt dddd d000 0010 0010and 0000 00ss ssst tttt dddd d000 0010 0100or 0000 00ss ssst tttt dddd d000 0010 0101

set on less than 0000 00ss ssst tttt dddd d000 0010 1010add immediate 0010 00ss ssst tttt iiii iiii iiii iiii

load word 1000 11ss ssst tttt iiii iiii iiii iiiistore word 1010 11ss ssst tttt iiii iiii iiii iiii

branch on equal 0001 00ss ssst tttt iiii iiii iiii iiiijump 0000 10ii iiii iiii iiii iiii iiii iiii

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 32 / 33

Page 33: Aula 17: UCP: Construindo um Caminho de Dados …diego/disciplinas/2015_1/FAC/...⋆ O MIPS completo prevê várias instruções deste tipo. ⋆ Executam operações lógicas/aritméticas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Exercício

Nesta aula falamos sobre o formato das instruções do nosso processador hipotético.Estamos usando o mesmo formato de instruções do MIPS.Particularmente, Todas as instruções têm um opcode de 6 bits.Responda:

▶ Para o subconjunto de instruções que estamos implementando, seis bits são necessários?Justifique.

▶ Em caso negativo, determine o número mínimo de bits para o opcode.

Diego Passos (UFF) UCP: Caminho de Dados (I) FAC 33 / 33