rganização de Computadores Melhorias de Desempenho com Pipelines - Parte B - Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho com Pipelines - Parte B - Capítulo 6 – Patterson & Hennessy Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 2 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 - UFGOrganização de Computadores 3 Caminho de dados em Pipeline com os sinais de controle
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 4 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 - UFGOrganização de Computadores 5 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 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 da instrução (campo rd) Reg. a ser escrito: bits 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 - UFGOrganização de Computadores 6 Sinais de controle da UAL 111set less than set less than10Tipo R 001or OR10Tipo R 000and AND10Tipo R 110subtração subtract10Tipo R 010soma add10Tipo R 110subtração XXXXXX branch equal01Branch equal 010soma XXXXXX store word00SW 010soma XXXXXX load 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 - UFGOrganização de Computadores 7 Valores dos sinais de controle nos estágios 3, 4 e 5 do Pipeline X XBEQ X XSW LW Tipo 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 - UFGOrganização de Computadores 8 Geração e transferência dos sinais de controle entre os estágios
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 9 Caminho de dados Pipeline com os sinais de controle conectados
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 10 Exercício Ilustrar a execução da seguinte seqüência de instruções no pipeline do slide anterior Add $1, $2, $3 Add $4, $1, $3 Beq $2, $3, 100 Sub $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 - UFGOrganização de Computadores 11 Exercícios do Livro (P&H, Cap. 6) 6.1 a 6.5
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 12 Execução de uma seqüência de instruções no Pipeline... lw$10, 20($1) sub$11, $2, $3 and$12, $4, $5 or$13, $6, $7 add$14, $8, $9...
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 13 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 - UFGOrganização de Computadores 14 Ciclo 1
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 15 Ciclo 2
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 16 Ciclo 3
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 17 Ciclo 4
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 18 Ciclo 5
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 19 Ciclo 6
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 20 Ciclo 7
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 21 Ciclo 8
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 22 Ciclo 9
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 23 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 - UFGOrganização de Computadores 24 Visualização dos conflitos
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 25 Resolução dos conflitos com uso de adiantamento
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 26 Caminho de Dados sem adiantamento (parcial)
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 27 Caminho de Dados com adiantamento (parcial)
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 28 Caminho de Dados com adiantamento (completo)
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 29 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 - UFGOrganização de Computadores 30 Exemplo de dependência envolvendo a memória
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 31 Efeito da parada do Pipeline
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 32 Caminho de dados com a Unidade de Detecção de Conflitos
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 33 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 - UFGOrganização de Computadores 34 Caminho de dados com desvios otimizados
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 35 Exercícios Conflitos por dados: 6.15, 6.19 Conflito por controle: 6.26
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 36 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 - UFGOrganização de Computadores 37 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 - UFGOrganização de Computadores 38 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 - UFGOrganização de Computadores 39 Execução em um pipeline superescalar
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 40 MIPS Superescalar
Prof. Fábio M. Costa - Instituto de Informática - UFGOrganização de Computadores 41 Exemplo de execução superescalar P&H, pág