A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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

2 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

3 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)

4 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.

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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)

16 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

17 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

18 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

19 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)

20 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

21 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

22 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

23 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

24 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

25 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

26 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

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

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

29 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

30 Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 30 Exemplo add $8, $17, $18 Formato da Instrução: 000000 10001 10010 01000 00000 100000 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 )

31 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) 35 2 1 100 op rs rt 16 bit offset

32 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

33 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

34 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)

35 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 101010 set less than10Tipo R 001or 100101 OR10Tipo R 000and 100100 AND10Tipo R 110subtração 100010 subtract10Tipo R 010soma 100000 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

36 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 1110101XXX1 0011010XXX1 0000010XXX1 1100100XXX1 0100000XXX1 110XXXXXX1X 010XXXXXX00 F0F1F2F3F4F5UALOp0UALOp1 Operação da UAL (bits de controle da UAL) Campo de funçãoUALOp

37 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 1110101XXX1 0011010XXX1 0000010XXX1 1100100XXX1 0100000XXX1 110XXXXXX1X 010XXXXXX00 F0F1F2F3F4F5UALOp0UALOp1 Operação da UAL (bits de controle da UAL) Campo de funçãoUALOp

38 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

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

40 Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 40 Revendo os formatos de instrução relevantes oprsrtrdshamt funct 31-26 25-21 20-16 15-11 10-6 5-0 Instrução tipo R: 35 ou 43rsrt 31-26 25-21 20-16 15-0 Endereço 4 rsrt 31-26 25-21 20-16 15-0 Endereço Instruções LW e SW: Instrução BEQ:

41 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 31-26 Registradores a serem lidos: – rs: bits 25-21 – rt: bits 20-16 Registrador base (índice) para load/store: – rs: bits 25-21 Deslocamento de 16 bits (para beq, lw e sw) – bits 15-0 Registrador de destino – para load word (lw): 20-16 (rt) OU – para instruções tipo R: 15-11 (rd) Usar um multiplexador para determinar o registrador a ser escrito

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

43 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 + 4 + 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 15-11 da instrução (campo rd) Reg. a ser escrito: bits 20-16 da instrução (campo rt) RegDst Efeito se = 1 (inativo) Efeito se = 0 (ativo) Nome do Sinal

44 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)

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

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

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

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

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

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

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

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

53 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 101000X0XBEQ 000100X1XSW 000011110LW 010001001Tipo 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.

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

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

56 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

57 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 31-26 25-0

58 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)

59 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

60 Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 60 Avaliação da Implementação Monociclo págs. 215-217 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.

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

62 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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google