Post on 20-Jul-2020
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
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
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)
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.
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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)
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
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores21
Caminho de dados para instruções de acesso à memória
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
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores23
Caminho de dados para a instrução de desvio condicional
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
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
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
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores27
Combinando com a busca de instruções
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores28
Combinando com o caminho de dados para desvios condicionais
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
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)
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
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
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
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)
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
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
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
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores38
Controle da UAL: 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:
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
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores41
Caminho de dados incluindo o controle da UAL
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
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)
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores44
Caminho de dados com todos os sinais de controle
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores45
Execução de Instruções Tipo R:Passo 1
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores46
Execução de Instruções Tipo R:Passo 2
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores47
Execução de Instruções Tipo R:Passo 3
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores48
Execução de Instruções Tipo R:Passo 4
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores49
Execução da instrução LW
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores50
Execução da instrução BEQ
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores51
Caminho de dados com todos os sinais de controle
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
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
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
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
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
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores57
Caminho de dados, completo com suporte a desvios incondicionais (J)
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.
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores59
Material adicional
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