Upload
internet
View
102
Download
1
Embed Size (px)
Citation preview
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 funct6bits5bits 5bits 5bits 5bits 6bits
Formato para instruções Tipo I:op rs rt endereço6bits5bits 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 time
rising edge
falling edge
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores8
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 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 time
rising 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, $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)
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 100
op 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)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 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 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 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
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 Computadores38
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 Computadores39
Controle da UAL: Implementação
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores40
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 Computadores41
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 Computadores42
Caminho de dados incluindo o controle da UAL
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores43
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
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores44
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 Computadores45
Caminho de dados com todos os sinais de controle
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores46
Execução de Instruções Tipo R:Passo 1
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores47
Execução de Instruções Tipo R:Passo 2
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores48
Execução de Instruções Tipo R:Passo 3
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores49
Execução de Instruções Tipo R:Passo 4
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores50
Execução da instrução LW
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores51
Execução da instrução BEQ
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores52
Caminho de dados com todos os sinais de controle
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores53
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.
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores54
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 Computadores55
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 Computadores56
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 Computadores57
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 Computadores58
Caminho de dados, completo com suporte a desvios incondicionais (J)
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores59
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 Computadores60
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 Computadores61
Material adicional
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores62
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