O jeito que eu gosto de pensar é com uma analogia da lavanderia. As instruções da CPU são como cargas de roupa. Você precisa usar a lavadora e a secadora para cada carga. Digamos que cada um leva 30 minutos para ser executado. Esse é o ciclo do relógio. As CPUs antigas usavam a lavadora e, em seguida, a secadora, levando 60 minutos (2 ciclos) para terminar cada carregamento de roupa, todas as vezes.
Tubulação: Uma tubulação é quando você usa os dois ao mesmo tempo - você lava uma carga e, enquanto está secando, lava a próxima carga. A primeira carga leva 2 ciclos para terminar, mas a segunda carga é concluída após mais 1 ciclo. Portanto, a maioria das cargas precisa apenas de 1 ciclo, exceto a primeira carga.
Superscalar: Leve toda a roupa para a lavanderia. Pegue 2 arruelas e carregue as duas. Quando terminar, encontre 2 secadores e use os dois. Agora você pode lavar e secar 2 cargas em 60 minutos. São 2 cargas em 2 ciclos. Cada carga ainda leva 2 ciclos, mas você pode fazer mais deles agora. O tempo médio agora é de 1 carga por ciclo.
Superscalar com Pipelining: Lave as 2 primeiras cargas e, enquanto estiverem secando, carregue as arruelas com as 2 cargas seguintes. Agora, as 2 primeiras cargas ainda levam 2 ciclos e as 2 seguintes são concluídas após mais 1 ciclo. Assim, na maioria das vezes, você termina duas cargas em cada ciclo.
Múltiplos núcleos: entregue metade da sua roupa à sua mãe, que também possui 2 lavadoras e 2 secadoras. Com os dois trabalhando juntos, você pode fazer o dobro. Isso é semelhante ao superescalar, mas um pouco diferente. Em vez de você ter que mover toda a roupa para e de cada máquina, ela pode fazer isso ao mesmo tempo que você.
Isso é ótimo, podemos lavar roupa oito vezes mais do que antes na mesma quantidade de tempo, sem precisar criar máquinas mais rápidas. (Dobrar a velocidade do relógio: máquinas de lavar que precisam apenas de 15 minutos para funcionar.)
Agora, vamos falar sobre como as coisas dão errado:
Bolha do gasoduto: você tem uma mancha que não saiu na lavagem e decide lavá-la novamente. Agora, o secador está apenas sentado, esperando algo para fazer.
Falta de cache: o caminhão que entrega a roupa suja está preso no trânsito. Agora você tem 2 lavadoras e 2 secadoras, mas não está fazendo nenhum trabalho porque precisa esperar.
Dependendo da frequência com que as coisas dão errado, nem sempre podemos realizar 4 cargas a cada ciclo, portanto, a quantidade real de trabalho realizado pode variar.
Previsão de ramificação: Bem, você começa a lavar a roupa com suas roupas limpas, caso as mancha mais tarde, para que elas já estejam limpas ... ok, é aqui que a analogia se rompe ...