Baixe o app para aproveitar ainda mais
Prévia do material em texto
Victor Medeiros victor@deinfo.ufrpe.br victorwcm Infraestrutura de Hardware Pipeline Victor MedeirosInfraestrutura de Hardware Pipeline • Podemos fazer uma analogia do pipeline com o processo de lavagem de roupas • Lavagem sem pipeline • Coloca uma carga de roupa suja na lavadora; • Quando a lavadora termina o seu trabalho, coloca a roupa molhada na secadora; • Quando a secadora termina o seu trabalho, passa as roupas; • Depois, guarda a roupa no armário; 2 Victor MedeirosInfraestrutura de Hardware Lavagem de roupa sem pipeline 3 lavar secar passar guardar 1 2 1ª carga de roupas 2ª carga de roupas 3 4 lavar secar passar guardar 5 3ª carga de roupas lavar secar passar guardar 6 7 8 9 10 11 12 13 14 15 Victor MedeirosInfraestrutura de Hardware Lavagem de roupa sem pipeline 4 lavar secar passar guardar 1 2 1ª carga de roupas 2ª carga de roupas 3 4 lavar secar passar guardar 5 3ª carga de roupas lavar secar passar guardar 6 7 8 9 10 11 12 13 14 15 Se considerarmos que cada etapa leva 1 hora, a lavagem das 3 cargas de roupa levaria 12 horas. 1 hora total de 12 horas Victor MedeirosInfraestrutura de Hardware Pipeline • Lavagem com pipeline • Tão logo termine de colocar a primeira carga de roupa na secadora, introduz a segunda carga de roupa na lavadora; • Quando a primeira carga de roupa estiver seca, passe-a, ponha a segunda carga de roupa limpa molhada na secadora e, na lavadora, coloque a terceira carga de roupa suja... • e assim por diante... • Após 4 intervalos de tempo, todos os passos do processo de lavagem – chamados estágios do pipeline – estarão operando de forma concorrente; 5 Victor Medeiros lavar secar passar guardar 1 2 1ª carga de roupas 2ª carga de roupas 3 4 lavar secar passar guardar 5 3ª carga de roupas lavar secar passar guardar 6 7 8 9 10 11 12 13 14 15 Infraestrutura de Hardware Lavagem de roupa com pipeline 6 Victor Medeiros lavar secar passar guardar 1 2 1ª carga de roupas 2ª carga de roupas 3 4 lavar secar passar guardar 5 3ª carga de roupas lavar secar passar guardar 6 7 8 9 10 11 12 13 14 15 Infraestrutura de Hardware Lavagem de roupa com pipeline 7 Se considerarmos que cada etapa leva 1 hora, a lavagem das 3 cargas de roupa levaria, com o pipeline, 6 horas. 1 hora total de 6 horas Victor MedeirosInfraestrutura de Hardware Introdução • Pipeline é uma técnica de projeto onde o hardware processa mais de uma instrução de cada vez, sem esperar que uma instrução termine antes de começar a próxima; • Permite que os processadores rodem mais rapidamente. • Sempre que tivermos recursos separados para executar cada passo (estágio) de uma tarefa, esta tarefa pode ser executada em pipeline. 8 Victor MedeirosInfraestrutura de Hardware Características • O pipeline não diminui o tempo de execução de uma instrução, cada instrução continua necessitando da mesma quantidade de tempo para ser teminada; • O pipeline aumenta o número de instruções executadas na unidade de tempo; • O segredo do pipeline é que todos os recursos envolvidos operam em paralelo; 9 Victor MedeirosInfraestrutura de Hardware 10 Victor MedeirosInfraestrutura de Hardware 11 Monociclo, multiciclo e pipeline Victor MedeirosInfraestrutura de Hardware Representando pipelines graficamente • Pode ajudar a responder questões como: • quantos ciclos leva para executar esse código? • qual é a ALU sendo executada durante o ciclo 4? • vamos utilizar esta representação para ajudar a entender os caminhos de dados 12 Victor MedeirosInfraestrutura de Hardware Conflitos do pipeline • Existem situações no pipeline em que a instrução seguinte não pode ser executada no próximo ciclo de clock. Esses eventos chamam- se conflitos: • Conflitos estruturais; • Conflitos de controle; • Conflitos de dados; 13 Victor MedeirosInfraestrutura de Hardware Conflitos estruturais • Ocorrem quando o hardware não suporta a combinação de instruções que o pipeline deseja executar no mesmo ciclo; • Analogia com a lavagem de roupa: • O conflito estrutural poderia ocorrer no caso da lavadora e secadora estarem integradas no mesmo dispositivo. 14 Victor MedeirosInfraestrutura de Hardware Conflitos estruturais • No caso do MIPS: • O conflito estrutural poderia ocorrer se tivéssemos apenas uma única memória para armazenar dados e instruções. 15 Victor MedeirosInfraestrutura de Hardware Conflitos estruturais • No caso do MIPS: • O conflito estrutural poderia ocorrer se tivéssemos apenas uma única memória para armazenar dados e instruções. 16 Conflito estrutural Victor MedeirosInfraestrutura de Hardware Conflitos de controle • Ocorrem quando há a necessidade de se tomar uma decisão com base no resultado de uma instrução, enquanto outras estão sendo executadas. • Analogia com a lavagem de roupa: • Suponha que queremos lavar uniformes de futebol. A quantidade de sabão necessária para limpar efetivamente os uniformes depende do estado de sujeira dos mesmos. • Devemos esperar pelo segundo estágio para examinar os uniformes secos e verificar se precisamos ou não alterar a quantidade de sabão. 17 Victor MedeirosInfraestrutura de Hardware Soluções para conflitos de controle • Analogia com a lavagem de roupa: • Solução 1: Parada • Espere até que a primeira carga de roupas esteja seca e repita a operação de lavagem até encontrar a quantidade de sabão adequada. • Esta solução funciona, porém é muito lenta. 18 Victor MedeirosInfraestrutura de Hardware Soluções para conflitos de controle • No caso do MIPS: • Este conflito ocorre: • na execução de instruções de desvio condicional, incondicional • chamadas e retornos de subrotinas • interrupções • Se o computador tiver que parar durante a execução de um desvio condicional, ele deve interromper a progressão das instruções pelo pipeline 19 Victor MedeirosInfraestrutura de Hardware Soluções para conflitos de controle 20 Victor MedeirosInfraestrutura de Hardware Soluções para conflitos de controle 21 Victor MedeirosInfraestrutura de Hardware Soluções para conflitos de controle • Congelamento do pipeline: • Esperar para buscar próxima instrução até que o desvio seja executado • Quando a instrução de desvio é descoberta no pipeline, suspende a busca de instruções até que o desvio seja concluído. • Positivo: Solução simples • Negativo: Degradação do desempenho do pipeline 22 Victor MedeirosInfraestrutura de Hardware Soluções para conflitos de controle • Execução especulativa • Consiste em predizer o comportamento do desvio • Técnicas de compilação podem ser utilizadas para aumentar a taxa de acertos • A previsão de desvio pode ser feita de várias formas, um exemplo é a previsão dinâmina: • Uma das formas de previsão dinâmica é a chave desvio / não desvio 23 Victor MedeirosInfraestrutura de Hardware Soluções para conflitos de controle • Chave desvio / não desvio 24 Victor MedeirosInfraestrutura de Hardware Soluções para conflitos de controle • Técnicas sofisticadas: • Um “buffer de destino de desvio” nos ajuda a consultar o destino. • Correlacionar previsores que baseiem a previsão no comportamento global e nos desvios recentemente executados (por exemplo, previsão para uma instrução de desvio específica com base no que ocorreu nos desvios anteriores). • Previsores de competição que usam diferentes tipos de estratégias de previsão e controlam qual delasestá sendo melhor executada. • Previsão de desvio é especialmente importante porque permite que outras técnicas de pipelining mais avançadas sejam eficazes! • Os processadores modernos prevêem corretamente 95% das vezes! 25 Victor MedeirosInfraestrutura de Hardware Conflitos de dados • Ocorre quando a execução de uma instrução depende do resultado de outra que ainda está no pipeline. • Analogia com a lavagem de roupa: • Suponha que estejamos dobrando uma carga de roupas composta quase inteiramente por meias. Neste caso pode acontecer de um pé de meia estar em uma carga de roupa e o seu par correspondente pertencer à segunda carga. • Nesta situação, não podemos guardar as meias no armário até que os pares estejam casados. 26 Victor MedeirosInfraestrutura de Hardware Conflitos de dados • No caso do MIPS: • Suponhamos que temos que executar as seguintes instruções: add $s0, $t0, $t1 sub $t2, $s0, $t3 • Neste caso, o conflito de dados vai fazer com que o progresso das instruções por meio do pipeline seja interrompido. É necessária a inserção de bolhas no pipeline. 27 Victor MedeirosInfraestrutura de Hardware Conflitos de dados 28 Victor MedeirosInfraestrutura de Hardware Conflitos de dados 29 Victor MedeirosInfraestrutura de Hardware 30 Soluções de software para conflitos de dados • Podemos garantir a ausência de conflitos de dados inserindo instruções “nop” (bolhas) entre instruções que apresentem dependência de dados • Exemplo: Onde serão inserimos os “nops”? • Problema: esta solução é lenta! sub $s2, $s1, $s3 and $t0, $s2, $s5 or $t1, $s6, $s2 add $t2, $s2, $s2 sw $t3, 100($s2) sub $s2, $s1, $s3 nop nop and $t0, $s2, $s5 or $t1, $s6, $s2 add $t2, $s2, $s2 sw $t3, 100($s2) Victor MedeirosInfraestrutura de Hardware 31 • Outra forma é reordenar as instruções para eliminar as dependências • Para isso precisamos de um compilador inteligente add $s1, $s2, $s3 sub $s4, $s1, $s3 and $s6, $s1, $s7 or $s8, $s1, $t0 xor $s8, $s1, $s7 add $s1, $s2, $s3 and $t2, $t2, $t3 or $t4, $t4, $t5 sub $s4, $s1, $s3 and $s6, $s1, $s7 or $s8, $s1, $t0 xor $s8, $s1, $s7 Soluções de software para conflitos de dados Victor MedeirosInfraestrutura de Hardware 32 • Curto-circuito (Forwarding) • Use resultados temporários, não espere que eles sejam escritos • adiantamento do arquivo de registrador para manipular read/write para o mesmo registrador • adiantamento da ULA Soluções de hardware para conflitos de dados Victor MedeirosInfraestrutura de Hardware 33 Soluções de hardware para conflitos de dados Victor MedeirosInfraestrutura de Hardware 34 Soluções de hardware para conflitos de dados Victor MedeirosInfraestrutura de Hardware 35 Curto circuito nem sempre é possível • Load word ainda pode causar um conflito: • uma instrução load tenta ler um registrador e em seguida uma outra instrução precisa utilizar o mesmo registrador. Victor MedeirosInfraestrutura de Hardware 36 Curto circuito nem sempre é possível Victor MedeirosInfraestrutura de Hardware 37 Curto circuito nem sempre é possível Victor MedeirosInfraestrutura de Hardware 38 Curto circuito nem sempre é possível Victor MedeirosInfraestrutura de Hardware 39 Exercícios 1. Represente o diagrama do pipeline para os seguintes conjuntos de instruções. Resolva os problemas de conflito utilizando a técnica de bolhas, ou seja, atrasando o início das instruções problemáticas. 2. Identifique as dependências de dados existentes e quais conflitos podem ser resolvidos via curto circuito. B. add $s2, $s3, $s4 add $s4, $s5, $s6 add $s5, $s3, $s4 A. sub $s2, $s1, $s3 and $s4, $s2, $s5 or $t0, $t1, $s2 add $s2, $s5, $s4 add $s4, $s2, $s5 sw $s5, 100($s2) add $s3, $s2, $s4
Compartilhar