UCP: Construindo um Caminho de Dados (Parte III)

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

UCP: Construindo um Caminho de Dados (Parte I)

UCP: Caminho de Dados (Parte II)

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

Processador: Conceitos Básicos e Componentes

Processador. Processador

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

Aula 16: UCP: Conceitos Básicos e Componentes

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

ção de Computadores II

Disciplina: Arquitetura de Computadores

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

Solução Lista de Exercícios Processadores

Organização de Computadores

2. A influência do tamanho da palavra

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

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

COMPUTADOR. Adão de Melo Neto

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

2. A influência do tamanho da palavra

Instruções. Maicon A. Sartin

Complemento a Um e Complemento a Dois

Conceitos Básicos Processador

Organização e Arquitetura de Computadores I

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

FUNCIONAMENTO DO COMPUTADOR. Adão de Melo Neto

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

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

PSI3441 Arquitetura de Sistemas Embarcados

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

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

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

Aula 12: Memória: Barramentos e Registradores

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

ção de Computadores I

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

CONJUNTO DE INSTRUÇÕES

Tiago Alves de Oliviera

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

ção de Computadores I

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

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

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

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

Unidade Central de Processamento UCP (CPU)

Aritmética em Bases Não Decimais

Aula 8: Complemento a Um e Complemento a Dois

Infra-estrutura de Hardware

SSC510 Arquitetura de Computadores 1ª AULA

COMPUTADOR 2. Professor Adão de Melo Neto

PSI3441 Arquitetura de Sistemas Embarcados

SSC0114 Arquitetura de Computadores

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

SSC0112 Organização de Computadores Digitais I

ORGANIZAÇÃO DE COMPUTADORES

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

Pipeline. Prof. Leonardo Barreto Campos 1

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

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

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

ORGANIZAÇÃO DE COMPUTADORES

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

Conjunto de Instruções

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

A Arquitetura: conjunto de instruções

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

pet Arquitetura de Computadores computação UFPE

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

COMPUTADOR. Adão de Melo Neto

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

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

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

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

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 é

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 7

Prof. Leonardo Augusto Casillo

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

Instruções de Máquina

Estouro e Representação em Ponto Flutuante

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

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Arquiteturas de Computadores

Arquitetura e Organização de Computadores

III.2 - Princípios de Arquitetura

Arquitetura e Organização de Computadores

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

Arquitetura e Organização de Computadores

Célula, Palavra, Ciclo de Instruções e Lógica Temporizada

Organização e Arquitetura de Computadores INTRODUÇÃO

Organização de Computadores

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Capítulo 6 Aritmética Digital: Operações e Circuitos

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

Transcrição:

UCP: Construindo um Caminho de Dados (Parte III) Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado nos slides do Fernanda Passos Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 1 / 31

Continuando a construir a arquitetura básica Interconectando componentes de forma incremental Seguindo a estratégia de desenvolvimento incremental, começamos do básico Como implementar a etapa 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 Como executar uma instrução do tipo R. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 2 / 31

Busca de Instrução e Execução de Instrução do Tipo R 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 Controle Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 3 / 31

Continuando a construir a arquitetura Este esquema é quase completo para a execução de instruções do tipo R Mas falta uma coisa: Determinar as linhas de controle da ALU ainda falta 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 de desvio condicional Por isso, antes disso, veremos como implementar outras instruções Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 4 / 31

Instruções de Desvio Condicional A instrução branch on equal Nosso processador simplificado possui apenas uma instrução deste tipo Semântica: Compara dois valores (em registradores) Se forem iguais, altera o valor do PC para o valor especificado na instrução Se forem diferentes, PC continua apontando para a próxima instrução LEMBRE: PC já está sendo incrementado no mesmo ciclo de relógio Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 5 / 31

Instruções de Desvio Condicional Formato (relembrando) 000100 sssss ttttt iiiiiiiiiiiiiiii sssss: indica o registrador do primeiro operando ttttt: indica o registrador do segundo operando iiiiiiiiiiiiiiii: 16 bits (Complemento a Dois) Alguns detalhes importantes: A instrução possui formato I. Recebe três operandos: 2 registradores, 1 imediato (constante). Se desvio for realizado, PC é incrementado no valor dado pelo imediato Depois do incremento inicial E em unidades do tamanho da instrução PC PC + (imm + 1) 4 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 6 / 31

Branch on Equal: Busca de Operandos RI A instrução compara dois valores nos registradores especificados na instrução Logo, o banco de registradores será utilizado Note que a instrução não escreve em registrador do banco RI[25-21] RI[20-16] es Valor Lido 1 Valor Lido 2 de Leitura 1 de Leitura 2 de Escrita Operando 1 Operando 2 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 7 / 31

Branch on Equal: Execução como comparar dois conteúdos de registrador? 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 para comparar dois registradores Usamos a ALU para subtrair os dois valores Se o bit zero ficar ativo, valores são iguais Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 8 / 31

Branch on Equal: Execução 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 de Escrita Controle Zero ALU Resultado Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 9 / 31

Branch on Equal: Execução Realizada a comparação: resolver o valor do PC É preciso calcular o novo valor do PC Caso a condição seja verdadeira. Novo valor do PC: PC + (imm + 1) 4. Ou: PC + 4 + imm 4. LEMBRE: na busca da próxima instrução, PC + 4 já era calculado Aproveitando aquele resultado, é preciso apenas somá-lo com imm 4 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 10 / 31

Branch on Equal: Execução Atualizando o valor do PC imm vem dos 16 bits menos significativos da instrução para multiplicá-lo por 4: Basta deslocá-lo 2 bits para a esquerda precisa-se de um deslocador 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 será utilizado um somador simples Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 11 / 31

Branch on Equal: Execução A lógica da atualização do PC 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 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 12 / 31

Branch on Equal: Armazenando o Resultado Novo valor de PC De acordo com o resultado da instrução de desvio 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: através do bit zero da saída da ALU é setado se o resultado da subtração (utilizado para comparar) é zero se for zero, os dois valores são iguais Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 13 / 31

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 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 14 / 31

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 Zero ALU Resultado PC Memória de Instruções Instrução Lida Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 15 / 31

Branch on Equal: Juntando Tudo (II) Assim como ocorreu para as instruções R, este caminho de dados está ainda incompleto. FALTA: linhas de controle com a ALU Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 16 / 31

Instrução Add Immediate Formato: Instrução no formato I 001000 sssss ttttt iiiiiiiiiiiiiiii Assim como a branch on equal que acabamos de ver Soma valor de um registrador com o valor do operando 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 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 17 / 31

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 Operando 1 Operando 2 RI[15-0] 16 Extensão de 32 Sinal Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 18 / 31

Instrução Add Immediate: Execução a soma realizada pela ALU RI RI[25-21] es Valor Lido 1 Valor Lido 2 de Leitura 1 de Leitura 2 de Escrita Zero ALU Resultado RI[15-0] 16 Extensão de 32 Sinal Controle Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 19 / 31

Instrução Add Immediate: Armazenando o Resultado Saída da ALU deve alimentar o 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 Zero ALU Resultado RI[15-0] 16 Extensão de 32 Sinal Controle Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 20 / 31

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 Zero ALU Resultado PC Memória de Instruções Instrução Lida Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 21 / 31

Instrução Add Immediate: Juntando Tudo 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. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 22 / 31

Instruções de Transferência de Memória load word e store word loadword 100011 sssss ttttt iiiiiiiiiiiiiiii storeword 101011 sssss ttttt iiiiiiiiiiiiiiii Formato I: dois registradores e um imediato O endereço da MP a ser acessado é dado por uma soma: Valor do primeiro registrador somado ao operando imediato O segundo registrador é a origem/destino do dado a ser transferido Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 23 / 31

Inst. 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 Usa-se 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 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 24 / 31

Inst. de Transferência de Memória: Busca de Operandos RI RI[25-21] RI[20-16] es Valor Lido 1 de Leitura 1 de Leitura 2 Valor Lido 2 de Escrita Zero ALU Resultado Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Valor Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 25 / 31

Instruções de Transferência de Memória: Execução Com endereço a ser acessado e o valor a ser escrito (store word) a execução é trivial RI RI[25-21] RI[20-16] es Valor Lido 1 de Leitura 1 de Leitura 2 Valor Lido 2 de Escrita Zero ALU Resultado Endereço RI[15-0] 16 Extensão de 32 Sinal Controle Valor Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 26 / 31

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

Instruções de Transferência de Memória: Armazenando os Resultados 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 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 28 / 31

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

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 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 Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 30 / 31

Instruções de Transferência de Memória: Juntando Tudo Novamente, ainda não indicamos de onde vêm as linhas de controle da ALU Ainda, neste caso temos mais duas a serem especificadas As linhas de escrita e leitura da interface com a MP Cristina Boeres (IC/UFF) UCP: Caminho de Dados (III) FAC 31 / 31