Três Unidades de execução
Enquanto o Pentium pode processar até duas instruções simultaneamente, o Pentium Pro possui três unidades de execução, o que permite processar até três instruções por ciclo.
Mas, as coisas não são tão simples quanto parecem, pois os programas continuam esperando por um processador capaz de executar uma única instrução por ciclo, como um 486. Apenas de alguns anos pra cá é que os aplicativos comerciais começaram a ser otimizados para a arquitetura do Pentium Pro (e consequentemente também para o Pentium III, Celeron e Athlon, que tem um funcionamento semelhante). O Linux leva uma certa vantagem neste aspecto, pois é possível, a qualquer momento recompilar o Kernel do sistema para otimiza-lo para qualquer processador, garantindo um desempenho bastante superior.
Novos problemas, novas soluções. Para garantir que as outras duas unidades de execução não acabassem ociosas na maior parte do tempo foi incluído também o recurso de execução de instruções fora de ordem.
Caso chegue ao processador uma instrução como “Se X >10, então Y = X + 2, senão Y = X + 5” onde as próximas instruções dependem da resolução da primeira, a unidade de controle vasculhará o código do programa em busca de instruções que possam ser executadas antecipadamente. Através deste recurso, enquanto uma das canaletas se ocupa em resolver o primeiro problema, as demais podem se dedicar a resolver as instruções seguintes, ganhando tempo. Caso não seja possível localizar nenhuma instrução que possa ser “adiantada”, entra em cena o recurso de execução especulativa, tomando um dos caminhos possíveis. Não é tão vantajoso, pois existe uma grande chance do processador tomar o caminho errado, e ter de recomeçar o trabalho quando perceber o erro, mas é melhor do que não fazer nada enquanto a condição está sendo processada.
|