Arquitetura Superescalar
Mais um aperfeiçoamento do Pentium e um dos principais motivos de seu maior desempenho, é a adoção de uma arquitetura superescalar.
Internamente, o Pentium trabalha como dois processadores de 32 bits distintos (chamados de canaleta U e canaleta V), sendo capaz de processar duas instruções por ciclo de clock (uma em cada processador). Cada processador possui acesso total ao cache, à memória RAM, e aos demais componentes do micro. Foi incluída também, uma unidade de controle, com a função de comandar o funcionamento dos dois processadores e dividir as tarefas entre eles.
Teoricamente, o uso de dois processadores distintos dobraria o desempenho do Pentium, já que ao invés de uma, poderiam ser executadas duas instruções por ciclo de clock. Mas, na prática existem algumas limitações.
Se por exemplo, um programa ordena que o processador some 4 números, X + Y + W + K, o processador poderia no primeiro ciclo de clock usar a canaleta U para somar X e Y e a canaleta V para somar W, mas no segundo ciclo, haveria apenas mais um cálculo para ser executado, o resultado das duas somas. Neste caso, apenas uma das canaletas poderia ser usada; a segunda ficaria ociosa. No final das contas, houve um ganho de 33%, já que ao invés do processador demorar 3 ciclos para executar o cálculo, demorou apenas 2.
Caso a continuação do cálculo dependesse da conclusão do cálculo anterior, como em “(X + Y) x 3”, a segunda canaleta novamente não poderia ser usada, pois o processador teria primeiro que somar X e Y para depois multiplicar o resultado por 3. Neste caso, não haveria ganho algum, pois o processador demoraria os mesmos dois ciclos que seriam necessários com apenas uma canalização.
Em média, a segunda canalização permite um desempenho 30 ou 40% superior ao desempenho obtido com apenas uma canalização. Caso o software seja alterado e otimizado para rodar em um processador com duas canalizações, ordenando as instruções de modo a deixar a segunda canaleta ocupada durante a maior parte do tempo, podemos conseguir mais 10 ou 15% de desempenho, chegando a algo entre 40 e 50%, mas, jamais será possível conseguir o dobro de desempenho.
Isto pode ser notado por exemplo ao recompilar o kernel do Linux. É possível orientar o utilitário a otimizar o código para qualquer processador, de um 486 a um Pentium III. Esta otimização permite que o Linux utilize todos os recursos do processador, obtendo um desempenho bastante superior.
Otimizar um programa para rodar em um processador Pentium, não o torna incompatível com processadores com apenas uma canalização (como o 486), nem torna seu desempenho menor nestes processadores, já que as mesmas instruções serão executadas, apenas em ordem diferente.
|