Baixe o app para aproveitar ainda mais
Prévia do material em texto
CONFLITOS NO PIPELINE Prof. José Augusto Real Educação para o desenvolvimento da Amazônia! Gente criando o futuro! INTRODUÇÃO Como vimos anteriormente, existem no pipeline situações em que a instrução seguinte não pode ser executada no próximo ciclo de clock. Estes eventos são conhecidos como conflitos. Existem basicamente três tipos de conflitos em pipeline: • Conflitos Estruturais • Conflitos de Controle • Conflitos por Dados obs: A forma de solucionar estes conflitos vai depender da arquitetura de cada processador. Educação para o desenvolvimento da Amazônia! Gente criando o futuro! Conflitos Estruturais Ocorre quando mais de uma unidade do processador está sendo necessária para a execução de duas ou mais instruções em um mesmo ciclo de clock. – Exemplo: Caso em duas ou mais instruções necessitam de realizar um acesso em uma determinada unidade do computador (por exemplo a memória). Como a memória só pode ser acessada por uma única unidade do processador em um determinado instante de tempo, então esta ação irá provocar um conflito denominado de estrutural. Educação para o desenvolvimento da Amazônia! Gente criando o futuro! • Exemplo: A instrução ADD R4,X necessita do estágio de busca para apanhar o operando na memória. Caso alguma instrução necessitar utilizar o mesmo estágio, então ocorrerá um conflito estrutural Exemplo de Conflito Estrutural Educação para o desenvolvimento da Amazônia! Gente criando o futuro! Soluções • Uma possível alternativa para reduzir o conflito estrutural é duplicar os recursos disponíveis. – ALU e Unidade de busca podem ser duplicados para suportar mais de um instrução por unidade de tempo; – Separação de dados e instruções em caches internas separadas; • Caches de dados • Caches de instruções Educação para o desenvolvimento da Amazônia! Gente criando o futuro! CONFLITO DE DADOS • No conflito por dados, a execução de uma instrução depende do resultado de uma outra que ainda está no pipeline. Educação para o desenvolvimento da Amazônia! Gente criando o futuro! CONFLITO DE DADOS • No exemplo, a instrução ADD R1, R2 teve que esperar o resultado da multiplicação entre R3 e R2 para que valor de R2 atual seja utilizado. – Somente após a escrita é que o resultado pode ser utilizado. – A penalidade nesse caso será de dois ciclos. • Esperando o fim da execução • Esperando o fim da escrita do resultado Educação para o desenvolvimento da Amazônia! Gente criando o futuro! Possível Solução Uma solução para que o pipeline não espere que a instrução seja finalizada para que continue o processo é possível adiantar os resultados para as instruções posteriores. No caso do exemplo, logo após a ALU tenha o resultado da soma, este valor poderá ser utilizado pela instrução de subtração, não esperando finalizar a instrução de soma. Esta obtenção antecipada dos resultados é conhecida como adiantamento um bypass. Educação para o desenvolvimento da Amazônia! Gente criando o futuro! Possível Solução • Como vimos, uma possível solução para reduzir a penalidade por conflito de dados é através do adiantamento dos resultados (Bypass). – Observe que após a execução da instrução MUL R2, R3 do exemplo anterior, já temos o valor de R2 para a execução da próxima instrução. – O resultado da ALU é sempre retornado para a sua entrada, como mostrado na figura. – Caso o hardware detecte que uma instrução posterior necessita dos resultados de uma outra anterior que ainda não salvou o resultado, então o valor desejado pode ser apanhado diretamente da ALU sem a necessidade de esperar que o resultado seja armazenado na memória ou em um registrador. Educação para o desenvolvimento da Amazônia! Gente criando o futuro! Solução: Adiantamento (Bypass) MUX MUX ALU RealimentaçãoRealimentação Para um Registrador ou Memória De um Registrador ou Memória De um Registrador ou Memória Educação para o desenvolvimento da Amazônia! Gente criando o futuro! Solução: Exemplo • Observe no exemplo anterior, que a técnica de adiantamento vai reduzir a penalidade, devido o conflito, para um ciclo. • Depois do estágio EI, o valor de R2 já encontra-se disponível para utilização. Educação para o desenvolvimento da Amazônia! Gente criando o futuro! Conflitos de Controle Ocorre quando temos que tomar alguma decisão e os procedimentos que serão tomados em seguida, dependem desta decisão. Este tipo de conflito ocorre quando são encontradas instruções de desvio condicional e incondicional. Educação para o desenvolvimento da Amazônia! Gente criando o futuro! Procedimentos para Solução do Conflito de Controle No caso da ocorrência de um conflito de controle são utilizadas algumas técnicas, tais como: • Parada • Predição • Predição Dinâmica • Decisão Retardada Educação para o desenvolvimento da Amazônia! Gente criando o futuro!
Compartilhar