View
104
Download
0
Category
Preview:
Citation preview
Organização de Computadoresrganização de Computadores
Melhorias de DesempenhoMelhorias de Desempenhocom com PipelinesPipelines
- Parte B -- Parte B -
Capítulo 6 – Patterson & HennessyCapítulo 6 – Patterson & Hennessy
Prof. Fábio M. CostaInstituto de InformáticaUniversidade Federal de Goiás
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores2
Controle do Processador com Pipeline
Utilizando os mesmos sinais de controle do caminho de dados monociclo
– Elementos do caminho de dados que não possuem sinais específicos são ativados pela transição do relógio (como sempre)
Problema:– Determinar quais são os sinais de controle ativos
durante cada estágio do pipeline
Suposição (simplifica bastante):– Cada linha de controle é usada em apenas um
estágio
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores3
Caminho de dados em Pipeline com os sinais de controle
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores4
Sinais usados em cada estágio
Busca e Decodificação: nenhum– Todas as ações são executadas para todas as
instruções
Execução / Cálculo do endereço– RegDst, UALOp, e UALFonte
Acesso à memória– DvC, LerMem, e EscMem
Escrita de resultado– MemParaReg e EscReg
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores5
Sinais de controle e seus efeitos
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 Computadores6
Sinais de controle da UAL
111set less than101010set less than10Tipo R
001or100101OR10Tipo R
000and100100AND10Tipo R
110subtração100010subtract10Tipo R
010soma100000add10Tipo R
110subtraçãoXXXXXXbranch equal01Branch equal
010somaXXXXXXstore word00SW
010somaXXXXXXload word00LW
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 Computadores7
Valores dos sinais de controle nos estágios 3, 4 e 5 do Pipeline
X0100010XBEQ
X0010100XSW
110011000LW
010000011Tipo R
Mem
ParaReg
EscRegDvCEscMemLerMem UAL
Fonte
UALOp0UALOp1RegDstInstru-ção
Estágio de Execução Acesso à Memória
Resultado
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores8
Geração e transferência dos sinais de controle entre os estágios
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores9
Caminho de dados Pipeline com os sinais de controle conectados
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores10
Exercício
Ilustrar a execução da seguinte seqüência de instruções no pipeline do slide anteriorAdd $1, $2, $3Add $4, $1, $3Beq $2, $3, 100Sub $10, $11, $12
Add $10, $11, $12
Que problemas você encontrou e quais as soluções para melhorar o pipeline?
+100:
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores11
Exercícios do Livro (P&H, Cap. 6)
6.1 a 6.5
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores12
Execução de uma seqüência de instruções no Pipeline
...
<before 2>
<before 1>
lw $10, 20($1)
sub $11, $2, $3
and $12, $4, $5
or $13, $6, $7
add $14, $8, $9
<after 1>
<after 2>
...
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores13
Observar:
Progresso dos “dados” de cada instrução à medida que ela prossegue pelo pipeline
– Ex.: número do registrador de destino
Sinais inativos em um dado estágio– marcados com 0 ou X
Não é necessário hardware adicional (além dos registradores do pipeline) para transferir os sinais de controle de um estágio para o próximo
– Podemos, no estágio 2, usar a mesma lógica de controle principal usada no Capítulo 5 (monociclo) para decodificar a instrução
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores14
Ciclo 1
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores15
Ciclo 2
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores16
Ciclo 3
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores17
Ciclo 4
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores18
Ciclo 5
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores19
Ciclo 6
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores20
Ciclo 7
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores21
Ciclo 8
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores22
Ciclo 9
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores23
Conflitos por Dados e Adiantamento de Resultados
Ocorre quando as instruções em uma seqüência de código são dependentes entre si quanto aos dados que produzem/utilizam
sub $2, $1, $3
and $12,$2, $5
or $13,$6, $2
add $14,$2, $2
sw $15,100($2)
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores24
Visualização dos conflitos
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores25
Resolução dos conflitos com uso de adiantamento
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores26
Caminho de Dados sem adiantamento (parcial)
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores27
Caminho de Dados com adiantamento (parcial)
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores28
Caminho de Dados com adiantamento (completo)
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores29
Conflitos de dados que geram paradas no Pipeline
Caso típico das dependências de dados envolvendo a memória. Ex.:lw $2, 20($1)
and $4, $2, $5 Solução: Parar o pipeline. Como?
– Evitando que uma nova instrução seja buscada Congela PC – na prática, repetindo os estágios de busca
e decodificação
– Desativando os sinais de controle nos estágios de execução, acesso à memória e escrita de resultados – evita qualquer alteração de estado
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores30
Exemplo de dependência envolvendo a memória
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores31
Efeito da parada do Pipeline
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores32
Caminho de dados com a Unidade de Detecção de Conflitos
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores33
Conflitos de Controle
No caso de desvios condicionais– Qual a próxima instrução a ser executada?
PC + 4 ou endereço alvo do desvio
Previsão de desvio– Se acertada, evita estágios ociosos– Se incorreta, requer o esvaziamento do pipeline
zerando os sinais de controle nos estágios de busca, decodificação e execução
Melhorar o desempenho do desvio condicional– Resolvendo o desvio no estágio de execução
Hardware para previsão de desvio – histórico
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores34
Caminho de dados com desvios otimizados
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores35
Exercícios
Conflitos por dados: 6.15, 6.19 Conflito por controle: 6.26
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores36
O que falta?
Tratamento de exceções– Alguns tipos adicionais de exceções– Exceções geram conflitos semelhantes àqueles
gerados por desvios– Determinar qual das instruções no pipeline gerou a
exceção– No mais, o princípio usado no tratamento é
semelhante ao já estudado
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores37
O que falta? (2)
Pipeline Superescalar– Replicar os componentes no estágio de execução
Ex.: duas ou mais UALs
Pipeline com escalonamento dinâmico– Lógica para a busca de instruções considera a
resolução de conflitos– Despacha cada instrução para uma unidade de
execução diferente
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores38
MIPS Superescalar
Duas instruções despachadas a cada ciclo de relógio
– Uma instrução aritimética ou de desvio condicional– Uma instrução de acesso à memória (LW ou SW)
Busca e decodificação de 64 bits a partir da memória de instruções
Pode exigir uma reordenação das instruções na memória
– De forma a ter, sempre que possível, o par certo de instruções (veja acima)
Hardware adicional– Em particular: portas extra no banco de
registradores e na memória de instruções
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores39
Execução em um pipeline superescalar
Tipo de Instrução Estágios do PipelineInstrução da UAL ou de desvio condicional BI DI EX MEM ERInstrução de load ou de store BI DI EX MEM ERInstrução da UAL ou de desvio condicional BI DI EX MEM ERInstrução de load ou de store BI DI EX MEM ERInstrução da UAL ou de desvio condicional BI DI EX MEM ERInstrução de load ou de store BI DI EX MEM ERInstrução da UAL ou de desvio condicional BI DI EX MEM ERInstrução de load ou de store BI DI EX MEM ER
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores40
MIPS Superescalar
Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores41
Exemplo de execução superescalar
P&H, pág 302-303
Recommended