Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás rganização de Computadores Organização do Processador - Parte A Capítulo 5.

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Contadores e Registradores
PIPELINE (continuação).
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
CPU: Controle e processamento
Arquitetura de Computadores
WebDesign Redes de Computadores Aula 05
Circuitos Lógicos e Organização de Computadores Capítulo 4 – Implementações Otimizadas de Funções Lógicas Ricardo Pannain
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Arquitetura e organização de computadores.
Operadores e Funções do LINGO
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
A Arquitetura: conjunto de instruções
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
Introdução ao Projecto com Sistemas Digitais e Microcontroladores Introdução à arquitectura de microprocessadores - 1 Introdução à arquitectura de microprocessadores.
VISÃO GERAL Profa. Fernanda Denardin Walker
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
Sistemas Digitais Projeto RTL – Unidade de Execução
Unidades de Execução e de Controle Sistemas Digitais.
Exemplo de arquitetura registrador-registrador- MIPS
MIPS PIPELINE.
MIPS MULTICICLO Fluxo de Dados e Controle
Processador Fluxo de Dados e Controle
MC542 Organização de Computadores Teoria e Prática
MC542 Organização de Computadores Teoria e Prática
Pipeline.
Organização de Computadores Inserindo o Controle Identifica pontos de controle no caminho de dados – Busca da instrução – Operações lógicas e aritméticas.
EXPRESSÕES ARITMÉTICAS
CISC e RISC.
EXPRESSÕES ARITMÉTICAS
Introdução à Informática
Rganização de Computadores Melhorias de Desempenho com Pipelines - Parte B - Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de.
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás rganização de Computadores Organização do Processador Parte B Capítulo 5 –
Estudo de Caso 1: UNIX e LINUX
Sistemas Digitais Microprocessados
Multiplicador e Forwarding no MIPS
UNIDADE DE CONTROLE MICROPROGRAMADA PARA O FEMTOJAVA
Arquitetura de Computadores
Aula 4 Nomes, Vinculações, Tipos e Escopos
Linguagens de Programação
Autor: Fernando de Mesentier Silva
Instruções: A Linguagem de Máquina – Aula 01
Processadores – Aula 3 Professor: André Luis Meneses Silva
Provas de Concursos Anteriores
Processadores – Aula 3 Professor: André Luis Meneses Silva
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Prof. Felipe Ferreira de Oliveira
Funcionamento básico de um computador
Coordenação Geral de Ensino da Faculdade
Arquitetura de computadores
Arquitetura de computadores
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Tópicos em Arquitetura de Computadores João Angelo Martini Universidade Estadual de Maringá Departamento de Informática Mestrado em Ciência.
Projeto de Banco de Dados
ELETRÔNICA DIGITAL Circuitos Aritméticos
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
Unidade Central De Processamento: Processador
Unidade Central De Processamento: Processador
Tudo sobre o Processador
Parte 3 Seção de Dados e Unidade de Controle
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
TRABALHO AVALIATIVO ALUNO: FRANCISCO HELIÉSUS DE MEDEIROS MATÉRIA: ORGANIZAÇÃO DE COMPUTADORES.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Caminho de Dados (aula passada)
Transcrição da apresentação:

Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás rganização de Computadores Organização do Processador - Parte A Capítulo 5 – Patterson & Hennessy Organização de Computadores Organização do Processador - Parte A Capítulo 5 – Patterson & Hennessy

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 2 Conteúdo Caminho de dados Caminho de controle Implementação direta em hardware Implementação por microprograma Unidade logico-aritimética Pipelines e outras melhorias de desempenho

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 3 Abordagem: Implementação de uma arquitetura-exemplo simplificada Subconjunto da arquitetura MIPS, contendo: – instruções de referência à memória: lw (load word): carrega uma palavra – lw $reg, end;reg = Mem(end) sw (store word): armazena uma palavra – sw $reg, end;Mem(end) = reg – Instruções aritiméticas e lógicas: add, sub – add $reg1, $reg2, $reg3;reg1 = reg2 + reg3 and, or – and $reg1, $reg2, $reg3;reg1 = reg2 AND reg3 slt (set on less than): – slt $reg1, $reg2, $reg3;se (reg2 < reg3) reg1 = 1; senão reg1 = 0; – Instrs. de controle de fluxo: beq (branch on equal) e j (jump) – beq $reg1, $reg2, Label;se reg1 == reg2, desvia para L – j Label; desvia para o endereço alvo (Label)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação genérica Usar o contador de programa (PC) para fornecer endereços de instruções Obter a instrução a partir da memória Ler registradores Usar a instrução para decidir exatamente o que fazer – Todas as instruções usam a ALU após ler os registradores referências à memória, aritimética, controle de fluxo, etc.

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 5 Visão geral da Implementação Dois tipos de elementos funcionais: – combinacionais: produzem resultado a partir das entradas – seqüenciais: resultado depende da entrada e do valor armazenado em um ciclo anterior – elementos de estado

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 6 Formato de Instruções Formato para instruções Tipo R: Op rsrtrdshamtfunct 6bits5bits5bits5bits5bits6bits Formato para instruções Tipo I: oprsrtendereço 6bits5bits5bits16bits

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 7 Clocks Usados para sincronizar e cadenciar a operação dos elementos funcionais Transições do relógio marcam o instante em que um elemento pode ser lido ou escrito – permite o tempo necessário para a estabilização dos sinais, evitando que dados inconsistentes sejam lidos cycle time rising edge falling edge

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 8 Execução típica As ações acontecem nas transições do relógio: Lê o conteúdo de alguns elementos de estado Envia os valores para um elemento de lógica combinacional Escreve os resultados em um ou mais elementos de estado

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 9 Outro exemplo Leitura e escrita ocorrendo sobre o mesmo elemento de estado – A temporização dada pelo relógio impede que seja usado um valor indeterminado do elemento de estado A leitura e posterior escrita ocorrem em instantes diferentes O valor escrito em um ciclo só pode ser lido no ciclo seguinte Subida do clock (início do ciclo): lê dado Descida do clock: lógica opera e produz resultado Subida do clock (fim do ciclo): escreve resultado

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 10 Exemplo Add$1, $1, $3; Instrução 1 Add$1, $1, $2; Instrução 2 cycle time rising edge falling edge

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 11 Instruções monociclo e multiciclo Monociclo – Todas as instruções são executadas em um único ciclo do relógio – O ciclo de relógio deve ser longo o suficiente para acomodar a instrução mais complexa – Perda de tempo para instruções mais simples Multiciclo – Instruções simples: um ciclo de relógio – Instruções mais complexas: um ou mais ciclos – Mais eficiente, embora lógica de controle mais complexa

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 12 Construção do Caminho de Dados Busca de instruções Busca de operandos – registradores – memória Execução

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 13 Elementos usados na busca de instruções Memória de instruções Contador de programa Somador (para incremento do PC: PC=PC+4

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 14 Parte do caminho de dados usada para busca de instruções A instrução obtida é usada em outras partes do caminho de dados

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 15 Elementos usados na leitura dos dados (operandos) Banco de registradores: 32 registradores de 32 bits – permite acesso a 3 registradores simultaneamente: dois para leitura e um para escrita (controlada pelo sinal RegWrite) Unidade Lógico-Aritimética – duas entradas, uma saída (mais flag de zero) e operação controlada por 3 linhas de controle (até oito operações possíveis)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 16 Detalhes: Implementação do banco de registradores: Portas de leitura Apêndice B

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 17 Detalhes: Implementação do banco de registradores: Portas de escrita Apêndice B

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 18 Caminho de dados para instruções lógicas e aritiméticas

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 19 Caminho de dados para instruções de acesso à memória [lw|sw] $t1, deslocamento16bits($t2) Formação do endereço: – Regs[$t2] + deslocamento16bits load (lw): Regs[$t1] = Mem(endereço) store (sw): Mem(endereço) = Regs[$t1] Elementos de hardware necessários – banco de registradores – ALU – memória (leitura e escrita) – lógica para extensão de sinal do desloc. (16 para 32 bits)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 20 Memória de dados e lógica de extensão de sinal

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 21 Caminho de dados para instruções de acesso à memória

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 22 Caminho de dados para a instrução de desvio condicional beq $t1, $t2, deslocamento16bits – se Regs[$t1] == Regs[$t2] PC = PC + deslocamento18bits – senão segue execução normal Detalhes: – Deslocamento de 18 bits deslocamento original de 16 bits, deslocados 2 bits à esquerda – Desvio: soma o deslocamento calculado ao endereço da instrução seguinte à instrução atual (i.e., PC + 4), que é calculado como parte do caminho de dados de qualquer instrução

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 23 Caminho de dados para a instrução de desvio condicional

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 24 Implementação simples: Monociclo Juntando as partes descritas anteriormente Toda instrução executa dentro de um único período de ciclo do relógio Conseqüências: – cada elemento do caminho de dados não pode ser usado mais do que uma vez por uma instrução – elementos necessários mais de uma vez devem ser replicados Ex.: memória de instruções e memória de dados Elementos compartilhados por várias classes de instruções: – múltiplas entradas alternativas, selecionadas através de multiplexadores

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 25 Primeiro passo... Combinação dos caminhos de dados para instruções lógicas e aritiméticas e para instruções de acesso à memória Partes comuns: – banco de registradores entrada para o registrador de destino pode vir da ALU ou da memória – ALU entrada B da ALU pode vir de um registrador ou da extensão de sinal do deslocamento

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 26 Caminho de dados combinando instruções tipo R com instruções de acesso à memória

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 27 Combinando com a busca de instruções

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 28 Combinando com o caminho de dados para desvios condicionais

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 29 Projeto da Unidade de Controle Gerar os sinais de controle (mostrados em cor laranja nos diagramas) para direcionar a operação dos vários elementos do hardware: – sinais de escrita / leitura para os elementos de estado – sinais seletores dos multiplexadores – sinais de controle das operações da ALU Toda a informação necessária vem dos 32 bits da instrução sendo executada Observando a temporização dentro do período de ciclo do relógio

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 30 Exemplo add $8, $17, $18 Formato da Instrução: op rs rt rd shamt funct A operação da ALU é baseada no tipo da instrução ( op ) e no código da função ( funct )

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 31 Outro exemplo Qual deve ser a operação da ALU para esta instrução: lw $1, 100($2) op rs rt 16 bit offset

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 32 Controle da UAL 3 sinais de controle indicam a operação a ser realizada pela UAL – apenas 5 das 8 combinações possíveis são usadas Set less than (SLT)111 Subtração110 Soma010 OR001 AND000 FunçãoEntrada de controle da ALU

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 33 Controle da ALU: funções executadas para cada classe de instruções load e store – adição (para cálculo do endereço de memória) instruções tipo R – uma das cinco operações dependendo do valor contido no campo de função ( funct ) da instrução Instrução branch equal (beq) – subtração (para testar a igualdade dos dois operandos) oprsrtrdshamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 34 Entradas da Unidade de Controle da UAL UALOp: 2 bits – 00: adição, para lw (load) e sw (store) – 01: subtração, para beq (branch on equal) – 10: operação determinada pelo campo funct, para instruções tipo R Campo de função ( funct ) – Indica a operação da instrução tipo R soma (100000), subtração (100010) and (100100), or (100101) Set less than (101010)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 35 Controle da UAL: Entradas e Saídas 111set less than set less than10Tipo R 001or OR10Tipo R 000and AND10Tipo R 110subtração subtract10Tipo R 010soma add10Tipo R 110subtração XXXXXX branch equal01Branch equal 010soma XXXXXX store word00SW 010soma XXXXXX load word00LW Saída (entrada de controle da UAL) Operação da UAL Campo de Função Operação da Instrução UALOpopcode

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 36 Tabela-verdade para gerar os 3 bits de controle da UAL (resumida) SaídasEntradas XXX XXX XXX XXX XXX1 110XXXXXX1X 010XXXXXX00 F0F1F2F3F4F5UALOp0UALOp1 Operação da UAL (bits de controle da UAL) Campo de funçãoUALOp

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 37 Tabela-verdade para gerar os 3 bits de controle da UAL (resumida) SaídasEntradas XXX XXX XXX XXX XXX1 110XXXXXX1X 010XXXXXX00 F0F1F2F3F4F5UALOp0UALOp1 Operação da UAL (bits de controle da UAL) Campo de funçãoUALOp

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 38 Tabelas-verdade para cada bit de controle individual Bit de controle Operação2 X1XXXXX1 XXXXXX1X F0F1F2F3F4F5UALOp0UALOp1 Campo de funçãoUALOp Bit de controle Operação1 XX0XXXXX XXXXXXX0 F0F1F2F3F4F5UALOp0UALOp1 Campo de funçãoUALOp Bit de controle Operação0 XXX1XXX1 1XXXXXX1 F0F1F2F3F4F5UALOp0UALOp1 Campo de funçãoUALOp

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 39 Controle da UAL: Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 40 Revendo os formatos de instrução relevantes oprsrtrdshamt funct Instrução tipo R: 35 ou 43rsrt Endereço 4 rsrt Endereço Instruções LW e SW: Instrução BEQ:

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 41 Obtendo as informações necessárias da instrução Campo de operação (opcode): – bits Registradores a serem lidos: – rs: bits – rt: bits Registrador base (índice) para load/store: – rs: bits Deslocamento de 16 bits (para beq, lw e sw) – bits 15-0 Registrador de destino – para load word (lw): (rt) OU – para instruções tipo R: (rd) Usar um multiplexador para determinar o registrador a ser escrito

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 42 Caminho de dados incluindo o controle da UAL

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 43 Descrição dos demais sinais de controle (além dos sinais UALOp) Valor a ser escrito no registrador de destino vem da memória Valor a ser escrito no registrador de destino vem da UAL MemParaReg Escreve o valor em Dado a ser escrito no endereço selecionado NenhumEscMem Palavra endereçada é produzida na saída de leitura da memória NenhumLerMem PC = PC deslocamento do desvio (saída do somador) PC = PC + 4FontePC Segundo operando da UAL: extensão do sinal dos bits 16-0 Segundo operando da UAL: reg. em Dado lido #2 UALFonte Escreve o valor presente em Dado de Escrita no reg. selecionado por Reg. a ser escrito NenhumEscReg Reg. a ser escrito: bits da instrução (campo rd) Reg. a ser escrito: bits da instrução (campo rt) RegDst Efeito se = 1 (inativo) Efeito se = 0 (ativo) Nome do Sinal

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 44 Unidade de Controle Principal Fornece valores para os seguintes sinais de controle: – para a unidade de controle da UAL UALOp0 e UALOp1 – Para controle dos multiplexadores: RegDst UALFonte MemParaReg – Para controle de escrita/leitura dos els. de estado: EscReg LerMem EscMem – Para derivar o sinal FontePC (juntamente com o flag Zero) DvC (indica que é uma instrução de desvio condicional)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 45 Caminho de dados com todos os sinais de controle

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 46 Execução de Instruções Tipo R: Passo 1

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 47 Execução de Instruções Tipo R: Passo 2

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 48 Execução de Instruções Tipo R: Passo 3

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 49 Execução de Instruções Tipo R: Passo 4

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 50 Execução da instrução LW

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 51 Execução da instrução BEQ

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 52 Caminho de dados com todos os sinais de controle

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 53 Valores das linhas de controle para cada (tipo de) instrução X0XBEQ X1XSW LW Tipo R UALOp0UALOp1DvCEscMemLerMemEscRegMemPara- Reg UALFonteRegDstInstru- ção Exercício: explicar o valor de cada sinal de controle para cada uma das (categorias de) instruções na tabela acima.

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 54 Opcodes BEQ SW LW Tipo R Op0Op1Op2Op3Op4Op5 Opcodes em binárioOpcode em decimal Nome

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 55 Tabela-verdade para a Função de Controle Principal

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 56 Implementação da Unidade de Controle Principal usando uma PLA PLA: Programmable Logic Array

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 57 Instrução de Desvio Incondicional Formato da instrução J (jump): 2endereço Execução: PC = PC[31-28] || (Instr[25-0] << 2) Ou seja, concatena-se os 4 bits mais significativos do PC com os 26 bits do campo de endereço da instrução deslocados 2 bits à esquerda

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 58 Caminho de dados, completo com suporte a desvios incondicionais (J)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 59 Exercício Completar o circuito do slide 56 para implementar a geração dos sinais de controle para a instrução J

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 60 Avaliação da Implementação Monociclo págs Comparação do desempenho da implementação com ciclo fixo com uma implementação hipotética com ciclo variável – Para instruções de inteiros (as 9 instruções vistas até então: Tipo R, LW, SW, BEQ e J) – Para um conjunto de instruções estendido com instruções de ponto flutuante.

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 61 Material adicional

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 62 Exemplo de uso da instrução SLT Loop1: slt$t3, $t0, $a1; t3 = (i<size) bne$t3, $zero, loop1; se (i<size) desvia Ou: utilizando a pseudo-instrução blt: blt$t0, $a1, Loop1