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

Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. CostaInstituto de InformáticaUniversidade Federal de Goiás

Organização de Computadoresrganização de Computadores

Organização do ProcessadorOrganização do Processador- Parte A- Parte A

Capítulo 5 – Patterson & HennessyCapítulo 5 – Patterson & Hennessy

Page 2: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores2

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

Page 3: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores3

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)

Page 4: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores4

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.

Page 5: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores5

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

Page 6: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores6

Formato de Instruções

Formato para instruções Tipo R:Op rs rt rd shamt funct6bits 5bits 5bits 5bits 5bits 6bits

Formato para instruções Tipo I:op rs rt endereço6bits 5bits 5bits 16bits

Page 7: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores7

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 timerising edge

falling edge

Page 8: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores8

Execução típicaAs 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

Page 9: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores9

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 doclock: lógica

opera e produzresultado

Subida do clock(fim do ciclo):

escreve resultado

Page 10: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores10

Exemplo

Add $1, $1, $3; Instrução 1Add $1, $1, $2; Instrução 2

cycle timerising edge

falling edge

Page 11: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores11

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

Page 12: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores12

Construção do Caminho de Dados Busca de instruções Busca de operandos

– registradores– memória

Execução

Page 13: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores13

Elementos usados na busca de instruções

Memória de instruções Contador de programa Somador (para incremento do PC: PC=PC+4

Page 14: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores14

Parte do caminho de dados usada para busca de instruções

A instrução obtida é usada em outras partes do caminho de dados

Page 15: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores15

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)

Page 16: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores16

Detalhes: Implementação do banco de registradores: Portas de leitura

Apêndice B

Page 17: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores17

Detalhes: Implementação do banco de registradores: Portas de escrita

Apêndice B

Page 18: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores18

Caminho de dados para instruções lógicas e aritiméticas

Page 19: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores19

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)

Page 20: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores20

Memória de dados e lógica de extensão de sinal

Page 21: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores21

Caminho de dados para instruções de acesso à memória

Page 22: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores22

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

Page 23: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores23

Caminho de dados para a instrução de desvio condicional

Page 24: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores24

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

Page 25: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores25

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

Page 26: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores26

Caminho de dados combinando instruções tipo R com instruções de acesso à memória

Page 27: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores27

Combinando com a busca de instruções

Page 28: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores28

Combinando com o caminho de dados para desvios condicionais

Page 29: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores29

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

Page 30: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores30

Exemplo

add $8, $17, $18Formato 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)

Page 31: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores31

Outro exemplo Qual deve ser a operação da ALU para esta

instrução:lw $1, 100($2)

35 2 1 100op rs rt 16 bit offset

Page 32: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores32

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)111Subtração110

Soma010OR001

AND000FunçãoEntrada de controle da ALU

Page 33: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores33

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)

op rs rt rd shamt funct6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

Page 34: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores34

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)

Page 35: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores35

Controle da UAL: Entradas e Saídas

111set less than101010set less than10Tipo R

001or100101OR10Tipo R

000and100100AND10Tipo R

110subtração100010subtract10Tipo R

010soma100000add10Tipo R

110subtraçãoXXXXXXbranch equal01Branch equal

010somaXXXXXXstore word00SW

010somaXXXXXXload word00LW

Saída (entrada de controle da

UAL)

Operação da UAL

Campo de Função

Operação da Instrução

UALOpopcode

Page 36: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores36

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

Page 37: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores37

Tabelas-verdade para cada bit de controle individual

Bit de controle Operação2

X1XXXXX1

XXXXXX1X

F0F1F2F3F4F5UALOp0UALOp1Campo de funçãoUALOp

Bit de controle Operação1

XX0XXXXX

XXXXXXX0

F0F1F2F3F4F5UALOp0UALOp1Campo de funçãoUALOp

Bit de controle Operação0

XXX1XXX1

1XXXXXX1

F0F1F2F3F4F5UALOp0UALOp1Campo de funçãoUALOp

Page 38: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores38

Controle da UAL: Implementação

Page 39: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores39

Revendo os formatos de instrução relevantes

op rs rt rd shamt funct

31-26 25-21 20-16 15-11 10-6 5-0

Instrução tipo R:

35 ou 43 rs rt

31-26 25-21 20-16 15-0

Endereço

4 rs rt

31-26 25-21 20-16 15-0

Endereço

Instruções LW e SW:

Instrução BEQ:

Page 40: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores40

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 multiplexadorpara determinar oregistrador a ser escrito

Page 41: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores41

Caminho de dados incluindo o controle da UAL

Page 42: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores42

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 + End. alvo do desvio (saída do somador)

PC = PC + 4FontePC

Segundo operando da UAL: extensão do deslocamento

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 = 0(inativo)

Efeito se = 1(ativo)

Nome do Sinal

Page 43: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores43

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)

Page 44: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores44

Caminho de dados com todos os sinais de controle

Page 45: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores45

Execução de Instruções Tipo R:Passo 1

Page 46: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores46

Execução de Instruções Tipo R:Passo 2

Page 47: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores47

Execução de Instruções Tipo R:Passo 3

Page 48: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores48

Execução de Instruções Tipo R:Passo 4

Page 49: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores49

Execução da instrução LW

Page 50: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores50

Execução da instrução BEQ

Page 51: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores51

Caminho de dados com todos os sinais de controle

Page 52: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores52

Valores das linhas de controle para cada (tipo de) instrução

101000X0XBEQ

000100X1XSW

000011110LW

010001001Tipo R

UALOp0UALOp1DvCEscMemLerMemEscRegMemPara-Reg

UALFonteRegDstInstru-ção

Page 53: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores53

Opcodes

0010004BEQ

11010143SW

11000135LW

0000000Tipo R

Op0Op1Op2Op3Op4Op5

Opcodes em binárioOpcode em

decimal

Nome

Page 54: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores54

Tabela-verdade para a Função de Controle Principal

1000UALOp0

0001UALOp1

1000DvC

0100EscMem

0010LerMem

0011EscReg

XX10MemParaReg

0110UALFonte

XX01RegDst

Saídas

0110Op0

0110Op1

1000Op2

0100Op3

0000Op4

0110Op5

Entradas

BEQSWLWInstr. Tipo RNome do sinal

Entrada ou Saída

Page 55: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores55

Implementação da Unidade de Controle Principal usando uma PLA

PLA: Programmable Logic Array

Page 56: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores56

Instrução de Desvio Incondicional Formato da instrução J (jump):

2 endereç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

Page 57: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores57

Caminho de dados, completo com suporte a desvios incondicionais (J)

Page 58: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores58

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.

Page 59: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores59

Material adicional

Page 60: Organização de Computadores - Instituto de Informática (INF)fmc/orgcomp/Cap2.pdf · Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores 4 Implementação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores60

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