quarta-feira, 2 de fevereiro de 2011

Pentium Pro

Até aqui, apresentei os processadores numa ordem mais ou menos cronológica (ok, nem tão cronológica assim :-), mas acabei abrindo uma excepção para o Pentium Pro. Na verdade, este processador foi lançado bem antes do MMX, sendo praticamente um contemporâneo do Pentium Clássico.

Porém, a arquitectura usada no Pentium Pro foi usada como base para o Pentium II e o Pentium III, assim como para o Xeon e o Celeron, processadores que examinaremos com detalhe mais adiante.

O Pentium Pro foi desenvolvido para competir no mercado de máquinas de alto desempenho, equipando Workstations e servidores. Apesar de usar um pouco da tecnologia do Pentium, o Pentium Pro é um projecto 
quase que totalmente novo, trazendo brutais alterações na arquitectura. Entre as inovações trazidas pelo Pentium Pro, podemos destacar a arquitectura superescalar com três canais, o suporte multiprocessamento com até 4 processadores trabalhando em paralelo e o cache L2 integrado ao processador. O barramento de endereços do Pentium Pro também foi ampliado, de 32 para 36 bits, permitindo ao Pentium Pro endereçar até 64 GB de memória (2 elevado à 36º).

Pode parecer um exagero, afinal, mesmo hoje em dia dificilmente um PC tem mais de 2 ou  4 GB de memória. Mas, muitos servidores de alto desempenho usam muito mais memória do que isto, chegando à casa de alguns terabytes em alguns supercomputadores.

Toda esta memória RAM permite executar simulações complexas e cálculos inimagináveis. Se não fosse este tipo de equipamento, a previsão do tempo não seria tão precisa :-)

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 para cá é que os programas comerciais começaram a ser optimizados para a arquitectura 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 optimiza-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 um dos canais ocupa-se 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.

Cache L2 integrado

O engenheiro da Intel que inventou a multiplicação de clock deve ter ganho vários prémios, afinal, este recurso foi um dos factores que possibilitaram as frequências assombrosas dos processadores actuais. Mas, este recurso também tem os seus efeitos colaterais. Um deles, notado até mesmo num 486, é a lentidão do cache L2, pois como ele tradicionalmente se localizava na placa mãe, tinha a sua frequência de operação limitada à velocidade da placa, ou seja, apenas 33, 66 ou 100 MHz, muito mais lento que o processador.

Tínhamos então um gargalo, pois frequentemente os poucos dados gravados no cache L1 se esgotavam, fazendo com que o processador precisasse perder vários ciclos esperando que novos dados fossem entregues pelo cache L2.

Para solucionar este problema, a Intel resolveu integrar o cache L2 no Pentium Pro, criando também um novo barramento, baptizado de “Backside Bus” dedicado unicamente à comunicação entre o núcleo do processador e o cache L2. O uso de um barramento separado, permite que o cache opere na mesma frequência do processador, independentemente da velocidade da placa mãe, trazendo a vantagem adicional de permitir o acesso simultâneo à memória RAM, já que temos dois barramentos distintos.

Cortesia da Intel Corp.
Mesmo com o cache L2 trabalhando na mesma frequência do processador, o cache L1 continua sendo necessário, pois apesar dos dois caches operarem na mesma frequência, o barramento de dados do cache L1 é bem maior, o que permite taxas de transferência muito mais altas. O tempo de resposta do L1 também é menor, pois além de nele serem usadas memórias mais rápidas, a distância física a ser percorrida pelo sinal será sempre muito menor, já que o L1 faz parte do núcleo do processador.

Justamente devido ao cache, o Pentium Pro era muito difícil de produzir, pois a complexidade do cache L2 resultava em uma alta taxa de defeitos de fabricação. Como no Pentium Pro o cache L2 está embutido no mesmo invólucro do processador, um defeito no cache L2 condenava todo o processador à lata de lixo. Os problemas de fabricação contribuíam para tornar o Pentium Pro ainda mais caro.

Apesar de partilhar o mesmo invólucro do processador, o cache L2 do Pentium Pro é formado por um chip separado. Isso permitiu que a Intel lançasse várias versões do Pentium Pro, equipadas com quantidades variadas de cache. Existiram três versões, com 256 KB, 512 KB e 1 MB de cache. O preço claro, crescia exponencialmente junto com o cache, por isso os de 256 KB foram praticamente os únicos a serem comercializados em PCs domésticos e Workstations.

Quanto à frequência de operação, existiram apenas duas versões, de 166 MHz e 200 MHz. A limitação básica não foi a arquitectura do processador, mas sim o cache. Na época, a Intel tinha condições de lançar versões bem mais rápidas, mas não tinha como produzir chips de cache capazes de operar a mais de 200 MHz.

Multiprocessamento

O Pentium Pro permite o uso de até 4 processadores na mesma placa mãe. Neste caso, as regras são as mesmas do multiprocessamento no Pentium, sendo necessária uma placa mãe especial e um sistema operacional com suporte ao multiprocessamento.

Apesar deste recurso não ser muito útil para um urilizador doméstico, ele permitiu o desenvolvimento de servidores com um desempenho incrível a um custo relativamente baixo, usando o Pentium Pro no lugar de caros processadores RISC topo de linha disponíveis na época.

Os mainframes com 2 ou 4 processadores Pentium Pro apresentavam um desempenho tão bom, graças ao cache rápido, que muitas empresas continuam utilizando-os até hoje, mesmo depois do lançamento de processadores muito mais rápidos.

Soquete 8

Com a grande mudança na arquitectura do processador e o novo encapsulamento, o Pentium Pro deixou de ser compatível com as velhas placas soquete 7 usadas pelos processadores anteriores. 

Foi criado então um novo tipo de soquete, baptizado de soquete 8, que foi utilizado apenas em placas para processadores Pentium Pro. Estas placas são naturalmente incompatíveis com o Pentium, MMX, K6, etc.

Para permitir o uso de todos os novos recursos trazidos pelo Pentium Pro, foi criado também o chipsetPentium Pro.
i440FX, que equipa a maioria das placas mãe para Pentium Pro.

O soquete 8 é bem maior do que o soquete 7 utilizado pelo Pentium clássico e similares, e possui também uma pinagem diferenciada que impede que o processador seja encaixado ao contrário. C
omo no Pentium Pro o cache L2 é integrado ao processador, as placas para ele não possuem cache algum.
in Manual de Hardware Completo
de Carlos E Marimoto

Asus P6NP5, cortesia da Asus Inc.

Sem comentários: