Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

Documentos relacionados
UCP: Construindo um Caminho de Dados (Parte III)

UCP: Caminho de Dados (Parte II)

UCP: Construindo um Caminho de Dados (Parte I)

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

Aula 16: UCP: Conceitos Básicos e Componentes

Aula 21: UCP: Instrução Jump, Monociclo vs. Multiciclo, Pipeline

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Processador. Processador

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Organização de Computadores

2. A influência do tamanho da palavra

Processador: Conceitos Básicos e Componentes

Aula 12: Memória: Barramentos e Registradores

ção de Computadores II

Disciplina: Arquitetura de Computadores

Solução Lista de Exercícios Processadores

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

2. A influência do tamanho da palavra

FUNCIONAMENTO DO COMPUTADOR. Adão de Melo Neto

COMPUTADOR. Adão de Melo Neto

Implementação da UCP. Construção do caminho de dados Controle Implementação monociclo. Organização de Computadores

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CONJUNTO DE INSTRUÇÕES

Introdução à Computação: Arquitetura von Neumann

Aula 15: Ciclo de Execução e Introdução ao Pipeline

Arquitetura de Computadores. Ciclo de Busca e Execução

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

4. Modelo de Programação do DLX Introdução

Organização e Arquitetura de Computadores I

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Aula 8: Complemento a Um e Complemento a Dois

PSI3441 Arquitetura de Sistemas Embarcados

Instruções. Maicon A. Sartin

Tiago Alves de Oliviera

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

SSC510 Arquitetura de Computadores 1ª AULA

Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções

SSC0112 Organização de Computadores Digitais I

lw, sw add, sub, and, or, slt beq, j

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

SSC0114 Arquitetura de Computadores

Conjunto de Instruções

COMPUTADOR 2. Professor Adão de Melo Neto

Infra-estrutura de Hardware

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

PSI3441 Arquitetura de Sistemas Embarcados

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

ção de Computadores I

Pipeline. Prof. Leonardo Barreto Campos 1

Sistemas de Computação. Instruções de Linguagem de Máquina

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Unidade Central de Processamento UCP (CPU)

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

Organização e Arquitetura de Computadores I

ORGANIZAÇÃO DE COMPUTADORES

25/8/2010. Praticamente todas as arquiteturas de computadores fornecem mais de um modo de

Prof. Leonardo Augusto Casillo

LISTA 01 3B ORGANIZAÇÃO DE COMPUTADORES (REALIZADA EM AULA) NOME: NOME:

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO

ORGANIZAÇÃO DE COMPUTADORES

Organização e Arquitetura de Computadores I

ção de Computadores I

X Y Z A B C D

Capítulo 3 Organização Interna de um Computador

Sistemas Processadores e Periféricos Aula 2 - Revisão

Conceitos Básicos Processador

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Elementos Físicos do SC e a Classificação de Arquiteturas

Arquitetura e Organização de Computadores

Instruções de Máquina

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores

Organização de Computadores

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Infraestrutura de Hardware. Funcionamento de um Computador

A Arquitetura: conjunto de instruções

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

pet Arquitetura de Computadores computação UFPE

COMPUTADOR. Adão de Melo Neto

NEANDERWIN. Algumas características do processador Neander são:

Processadores

Complemento a Um e Complemento a Dois

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

Introdução à Informática

Prof. Gustavo Oliveira Cavalcanti

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 7

Arquitetura e Organização de Computadores

Organização de Computadores Aula 05

18/10/2010. Unidade de Controle Controle. UC Microprogramada

Infra-estrutura de Hardware

Transcrição:

Aula 19: UCP: Construindo um Caminho de Dados (Parte III) Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 1 / 38

Revisão Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 2 / 38

Na Aula Passada Continuamos o projeto do caminho de dados do nosso processador Tomamos várias decisões de projeto Tamanho da palavra Linhas de controle em cada componente Comportamentos específicos de cada componente Número de registradores de propósito geral (Ausência de) ponto flutuante Codificação de números negativos Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 3 / 38

Na Aula Passada (II) Também iniciamos a terceira fase do projeto A interconexão dos componentes Seguindo a estratégia de desenvolvimento incremental, começamos do básico Como implementar a etada de busca de uma instrução Fase comum a qualquer tipo de instrução Demais etapas são específicas de cada tipo de instrução Vimos, por exemplo, como executar uma instrução do tipo R Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 4 / 38

Na Aula Passada (III) RI S o m a d or es 4 RI[25-21] de Leitura 1 PC Memória de Instruções Endereço RI[20-16] Valor Lido 1 Valor Lido 2 de Leitura 2 Zero ALU Resultado Instrução Lida RI[15-11] de Escrita Valor Escrito Controle Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 5 / 38

Na Aula Passada (IV) Este esquemático é quase completo para a execução de instruções do tipo R Mas falta uma coisa: Determinar as linhas de controle da ALU Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 6 / 38

Na Aula de Hoje Eventualmente, veremos como conectar as linhas de entrada da ALU Mas note que operações lógicas/aritméticas também são necessárias para outros tipos de instrução Diferentes do tipo R Como as instruções de desvio condicional Por isso, antes disso, veremos como implementar outras instruções Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 7 / 38

Instruções de Desvio Condicional Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 8 / 38

Instruções de Desvio Condicional Relembrando: Nosso processador simplificado possui apenas uma instrução deste tipo A instrução branch on equal Semântica: Compara dois valores (em registradores) Se forem iguais, altera o valor do PC Se forem diferentes, PC continua apontando para a próxima instrução Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 9 / 38

Instruções de Desvio Condicional (II) Alguns detalhes importantes: A instrução possui formato I Recebe três operandos: 2 registradores, 1 imediato (constante) Se desvio for tomado, PC é incrementado no valor dado pelo imediato Depois do incremento inicial E em unidades do tamanho da instrução Isto é: PC PC + (imm + 1) 4 Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 10 / 38

Branch on Equal: Busca de Operandos RI A instrução compara dois valores Ambos em registradores Especificados nos bits da instrução Logo, o banco de registradores será utilizado Note que a instrução nunca escreve em registrador Não precisamos especifcar o ID do registrador de escrita E nem o valor RI[25-21] RI[20-16] es Valor Lido 1 Valor Lido 2 de Leitura 1 de Leitura 2 de Escrita Valor Escrito Operando 1 Operando 2 Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 11 / 38

Branch on Equal: Execução A execução em si consiste na comparação dos dois valores e no cálculo do novo PC Em caso de desvio Note que nenhum componente visto até aqui realiza comparações Nem mesmo a ALU tem essa funcionalidade Mas podemos alcançar este mesmo efeito usando um truque Repare que nossa ALU tem duas saídas: resultado e o bit zero Bit zero indica se operação realizada deu zero Uma subtração dá zero se, e somente se, os operandos forem iguais Solução: Usamos a ALU para subtrair os dois valores Se o bit zero ficar ativo, valores são iguais Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 12 / 38

Branch on Equal: Execução (II) A interconexão entre o banco de registradores e a ALU é idêntica àquela das instruções R es de Leitura 1 Valor Lido 1 Valor Lido 2 de Leitura 2 Zero ALU Resultado de Escrita Valor Escrito Controle Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 13 / 38

Branch on Equal: Execução (III) Além da comparação, a execução desta instrução faz mais É preciso calcular o novo valor do PC Caso a condição seja verdadeira Relembrando o valor desejado para o PC: PC + (imm + 1) 4 Ou: PC + 4 + imm 4 Note que no processo de busca da próxima instrução já calculávamos PC + 4 Se aproveitarmos aquele resultado, precisamos apenas somá-lo com imm 4 Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 14 / 38

Branch on Equal: Execução (IV) O valor do imediato vem dos 16 bits menos significativos da instrução Multiplicá-lo por 4 é fácil Basta deslocá-lo 2 bits para a esquerda Para somá-lo com PC + 4, poderíamos usar a ALU Mas não vamos porque: Já estamos usando a ALU para fazer a comparação dos dois valores Precisaríamos de outra ALU para isso Mas basta um somador simples Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 15 / 38

Branch on Equal: Execução (V) Resumindo esta parte da execução: 4 S o m a d or RI Deslocamento de 2 à Esquerda S oma d or PC RI[15-0] 16 Extensão de 32 Sinal Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 16 / 38

Branch on Equal: Armazenando o Resultado O resultado de uma instrução de desvio é o novo valor de PC Ou PC + 4, ou PC + 4 + 4 imm Ao final da instrução este valor deve ser armazenado de volta no PC Na etapa de armazenamento de resultado, portanto, precisamos: Decidir entre os dois valores Escrevermos este valor de volta no PC A decisão entre os dois valores é realizada com base no bit zero da saída da ALU Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 17 / 38

Branch on Equal: Armazenando o Resultado (II) 4 S o m a d or RI Deslocamento de 2 à Esquerda S oma d or M ux 0 1 Zero ALU Resultado PC RI[15-0] 16 Extensão de 32 Sinal Controle Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 18 / 38

Branch on Equal: Juntando Tudo 4 S o m a d or RI RI[25-21] RI[20-16] es Valor Lido 1 de Leitura 1 de Leitura 2 Deslocamento de 2 à Esquerda S oma d or M ux 0 1 Valor Lido 2 de Escrita Valor Escrito Zero ALU Resultado PC Memória de Instruções Instrução Lida Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 19 / 38

Branch on Equal: Juntando Tudo (II) Assim como ocorreu para as instruções R, este caminho de dados está ainda incompleto As linhas de controle da ALU ainda estão desconectadas Como fizemos anteriormente, vamos deixar estas conexões para mais tarde Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 20 / 38

Instrução Add Immediate Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 21 / 38

Instrução Add Immediate Relembrando: Instrução no formato I Assim como a branch on equal que acabamos de ver Soma valor de um registrador com o imediato Armazena resultado em um registrador De certa forma, essa instrução é uma mistura das instruções R com a instrução de desvio condicional Usa o mesmo formato da de desvio Mas executa uma operação aritmética e armazena resultado em registrador Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 22 / 38

Instrução Add Immediate Nossa implementação para esta instrução vai combinar as soluções já vistas Aproveitar a obtenção do imediato feita para a instrução de desvio Usar o imediato como uma das entradas da ALU O restante da estrutura será idêntica à projetada para as instruções do tipo R Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 23 / 38

Instrução Add Immediate: Busca de Operandos RI RI[25-21] es de Leitura 1 Valor Lido 1 Valor Lido 2 de Leitura 2 de Escrita Valor Escrito Operando 1 Operando 2 RI[15-0] 16 Extensão de 32 Sinal Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 24 / 38

Instrução Add Immediate: Execução Execução é trivial: deixamos por conta da ALU RI RI[25-21] es Valor Lido 1 Valor Lido 2 de Leitura 1 de Leitura 2 de Escrita Valor Escrito Zero ALU Resultado RI[15-0] 16 Extensão de 32 Sinal Controle Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 25 / 38

Instrução Add Immediate: Armazenando o Resultado Simplesmente conectamos a saída da ALU ao valor a ser escrito no banco de registradores ID do registrador para escrita vem diretamente dos bits 20 16 do RI RI RI[25-21] es Valor Lido 1 de Leitura 1 de Leitura 2 RI[20-16] Valor Lido 2 de Escrita Valor Escrito Zero ALU Resultado RI[15-0] 16 Extensão de 32 Sinal Controle Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 26 / 38

Instrução Add Immediate: Juntando Tudo RI es 4 S o m a d or RI[25-21] RI[20-16] Valor Lido 1 Valor Lido 2 de Leitura 1 de Leitura 2 de Escrita Valor Escrito Zero ALU Resultado PC Memória de Instruções Instrução Lida Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 27 / 38

Instrução Add Immediate: Juntando Tudo (II) Este caminho de dados é mais um que utiliza a ALU Novamente, não indicamos de onde virão as linhas de controle Assim como fizemos nos outros casos, resolveremos isso depois Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 28 / 38

Instruções de Transferência de Memória Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 29 / 38

Instruções de Transferência de Memória Relembrando: Há duas instruções deste tipo: load word e store word Ambas usam o formato I: dois registradores e um imediato Em ambos os casos, o endereço da MP a ser acessado é dado por uma soma: Valor do primeiro registrador somado ao imediato O segundo registrador é a origem/destino do dado a ser transferido Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 30 / 38

Instruções de Transferência de Memória: Busca de Operandos Na instrução load word, antes da execução, precisamos determinar o endereço a ser acessado Na store word, adicionalmente, precisamos do valor a ser escrito O endereço a ser acessado precisa ser calculado Podemos usar a ALU para isso Ela não será necessária para mais nada nestas instruções Para obter o valor a ser escrito na MP, basta passar o ID do registrador adequado para o banco de registradores Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 31 / 38

Instruções de Transferência de Memória: Busca de Operandos (II) RI RI[25-21] RI[20-16] es Valor Lido 1 de Leitura 1 de Leitura 2 Valor Lido 2 de Escrita Valor Escrito Zero ALU Resultado Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Valor Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 32 / 38

Instruções de Transferência de Memória: Execução Dados o endereço a ser acessado e o valor a ser escrito (no caso da store word), a execução é trivial Trabalho pesado é feito pela interface de acesso à MP RI RI[25-21] RI[20-16] es Valor Lido 1 de Leitura 1 de Leitura 2 Valor Lido 2 de Escrita Valor Escrito Zero ALU Resultado Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Valor Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 33 / 38

Instruções de Transferência de Memória: Execução (II) RI RI[25-21] RI[20-16] es Valor Lido 1 de Leitura 1 de Leitura 2 Valor Lido 2 de Escrita Valor Escrito Zero ALU Resultado Endereço Escrita Leitura Memória de Dados RI[15-0] 16 Extensão de 32 Sinal Controle Valor Valor Lido Endereço Valor Escrito Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 34 / 38

Instruções de Transferência de Memória: Armazenando os Resultados Quais são os resultados da execução das instruções de transferência de memória? No caso da load word, a interface com a MP retornará o valor lido Precisa ser armazenado no registrador adequado No caso da store word o único armazenamento é a própria escrita do dado na MP Tarefa realizada pela interface com a MP Logo, nesta etapa, para a CPU, basta conectar a saída da interface com a MP, à entrada do banco de registradores O ID do registrador vem diretamente dos bits do RI Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 35 / 38

Instruções de Transferência de Memória: Execução (II) RI RI[25-21] RI[20-16] es Valor Lido 1 de Leitura 1 de Leitura 2 Valor Lido 2 de Escrita Valor Escrito Zero ALU Resultado Escrita Leitura Memória de Dados RI[15-0] 16 Extensão de 32 Sinal Controle Valor Lido Endereço Valor Escrito Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 36 / 38

Instruções de Transferência de Memória: Juntando Tudo RI es 4 S o m a d or RI[25-21] RI[20-16] Valor Lido 1 Valor Lido 2 de Leitura 1 de Leitura 2 de Escrita Valor Escrito Zero ALU Resultado Escrita Leitura Memória de Dados PC Memória de Instruções Instrução Lida Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Valor Lido Endereço Valor Escrito Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 37 / 38

Instruções de Transferência de Memória: Juntando Tudo (II) Novamente, ainda não indicamos de onde vêm as linhas de controle da ALU Pior: neste caso temos mais duas desligadas As linhas de escrita e leitura da interface com a MP Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 38 / 38

Instruções de Transferência de Memória: Juntando Tudo (II) Novamente, ainda não indicamos de onde vêm as linhas de controle da ALU Pior: neste caso temos mais duas desligadas As linhas de escrita e leitura da interface com a MP Mais uma vez, vamos deixar isso para a próxima aula! Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 38 / 38