O que é um pipeline de instrução?

Qualquer instrução do processador possui vários estágios para sua operação. Cada um desses estágios leva um único ciclo de CPU para ser concluído. Esses estágios são busca de instrução, decodificação de instrução, execução, acesso à memória e write-back. Respectivamente, eles obtêm a instrução que precisa ser concluída, separam a operação dos valores que estão sendo operados, executam o processo, abrem o registrador no qual o resultado será escrito e escrevem o resultado no registrador aberto.

Processadores de pedidos históricos

Nos primeiros computadores, a CPU não usava um pipeline de instruções. Nessas CPUs, cada operação de ciclo único precisava acontecer para cada instrução. Isso significava que eram necessários cinco ciclos de clock para que a instrução média fosse totalmente processada antes que a próxima pudesse ser iniciada. Algumas operações podem não precisar gravar nenhum resultado em um registrador, o que significa que os estágios de acesso à memória e write-back podem ser ignorados.

O que é um pipeline de instrução?

Em um processador subescalar sem pipeline, cada parte de cada instrução é executada em ordem.

Há um problema à espreita, porém, ao executar uma instrução completa em ordem antes de poder passar para a próxima instrução. O problema é a falta de cache. A CPU armazena os dados que está processando ativamente no registrador. Isso pode ser acessado com uma latência de um ciclo. O problema é que o registrador é minúsculo porque está embutido no núcleo do processador. A CPU deve ir para o cache L1 maior, porém mais lento, se os dados ainda não tiverem sido carregados. Se não estiver lá, ele deve ir para o cache L2 maior e mais lento novamente. A próxima etapa é o cache L3; a opção final é a RAM do sistema. Cada uma dessas opções leva mais e mais ciclos de CPU para verificar.

Agora, essa latência extra adicionada pode ser um grande problema em um sistema que deve concluir cada instrução na ordem antes de iniciar a próxima instrução. O que era um processador de 5 ciclos por instrução, pode repentinamente ficar preso em uma instrução por dezenas ou centenas de ciclos de clock. Enquanto isso, nada mais pode acontecer no computador. Tecnicamente, isso pode ser aliviado por ter dois núcleos independentes. Nada, porém, impede que ambos façam a mesma coisa, potencialmente simultaneamente. Portanto, seguir a rota multi-core não resolve isso.

O Pipeline RISC Clássico

RISC significa computador com conjunto de instruções reduzido . É um estilo de design de processador que otimiza o desempenho tornando a decodificação de cada instrução mais fácil. Isso é em comparação com o CISC ou Complex Instruction Set Computer, que projeta conjuntos de instruções mais complexos, permitindo que menos instruções sejam necessárias para executar as mesmas tarefas.

O design clássico do RISC inclui um pipeline de instruções. Em vez de executar qualquer um dos cinco estágios de instrução em um determinado ciclo, o pipeline permite que todos os cinco estágios sejam executados. Claro, você não pode executar todos os cinco estágios de uma instrução em um ciclo. Mas você pode enfileirar cinco instruções consecutivas com um deslocamento de um estágio cada. Dessa forma, uma nova instrução pode ser concluída a cada ciclo de clock. Oferecendo um aumento potencial de desempenho de 5x para um aumento relativamente baixo na complexidade do núcleo.

O que é um pipeline de instrução?

Em um processador com pipeline escalar, cada estágio da execução de uma instrução pode ser executado uma vez por ciclo de clock. Isso permite uma taxa de transferência máxima de uma instrução concluída por ciclo.

Os processadores que não possuem um pipeline só podem ser subescalares, pois não podem executar uma instrução completa por ciclo. Com esse pipeline primário de cinco estágios, você pode criar uma CPU escalar capaz de concluir uma instrução para cada processo. Ao criar pipelines ainda mais abrangentes, você pode criar CPUs superescalares que podem executar mais de uma instrução por ciclo de clock. Claro, ainda existem problemas em potencial.

Ainda sequencial

Nada disso resolve o problema de esperar muitos ciclos por uma resposta ao precisar consultar os diferentes níveis de cache e RAM. Também introduz um novo problema. E se uma instrução depender da saída da instrução anterior? Esses problemas são resolvidos de forma independente com um despachante avançado. Ele planeja cuidadosamente a ordem de execução para que nenhuma instrução que dependa da saída de outra esteja muito próxima. Ele também lida com faltas de cache estacionando uma instrução e substituindo-a no pipeline por outras instruções que estão prontas para serem executadas e não exigem seu resultado, retomando a instrução quando estiver pronta.

Essas soluções podem funcionar em processadores sem pipeline, mas são necessárias para um processador superescalar que executa mais de uma instrução por clock. Um preditor de desvio também é muito útil, pois pode tentar prever o resultado de uma instrução com mais de um resultado potencial e continuar assumindo que está correto, a menos que seja provado o contrário.

Conclusão

Um pipeline permite que todos os recursos distintos do processador sejam usados ​​em cada ciclo. Ele faz isso executando diferentes estágios de diferentes instruções simultaneamente. Isso nem adiciona muita complexidade ao design da CPU. Também abre caminho para permitir que mais de uma instrução execute um único estágio por ciclo.



Como clonar um disco rígido

Como clonar um disco rígido

Na era digital moderna, onde os dados são um bem valioso, a clonagem de um disco rígido no Windows pode ser um processo crucial para muitos. Este guia completo

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Você está enfrentando a mensagem de erro ao inicializar o computador, informando que o driver WUDFRd falhou ao carregar no seu computador?

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Você está enfrentando o código de erro 0x0003 da experiência NVIDIA GeForce em sua área de trabalho? Se sim, leia o blog para descobrir como corrigir esse erro de forma rápida e fácil.

Noções básicas de impressão 3D: adesão à base da impressora

Noções básicas de impressão 3D: adesão à base da impressora

Aprendendo sobre impressão 3D? Aqui está o que você precisa saber sobre a adesão da base da impressora.

Como remover uma GPU do Windows PC em 2023

Como remover uma GPU do Windows PC em 2023

Você precisa remover a GPU do seu PC? Junte-se a mim enquanto explico como remover uma GPU do seu PC neste guia passo a passo.

Como instalar um SSD NVMe em um desktop e laptop

Como instalar um SSD NVMe em um desktop e laptop

Comprou um novo SSD NVMe M.2, mas não sabe como instalar? Continue lendo para saber como instalar um SSD NVMe em um laptop ou desktop.

O que é uma bomba lógica?

O que é uma bomba lógica?

Uma bomba lógica é um incidente de segurança em que um invasor configura uma ação atrasada. Continue lendo para saber mais.

O que é Stuxnet?

O que é Stuxnet?

O Stuxnet era um worm autopropagado. Foi o primeiro uso de uma arma cibernética e a primeira ocorrência de malware.

O que é um hacker ético?

O que é um hacker ético?

Um hacker ético é um hacker que age dentro das restrições da lei. Continue lendo para saber mais sobre o assunto.

O que é criptografia simétrica?

O que é criptografia simétrica?

Existem muitas partes diferentes da criptografia. Se você deseja criptografar alguns dados, existem dois tipos de algoritmos que você pode usar: simétrico