Parte
2: Do MMX ao Pentium II
O 8086 foi lançado
em 79, doze anos antes do Pentium MMX, lançado em 97. Doze
anos na indústria de semicondutores, corresponde a 3 ou 4
gerações de processadores, uma eternidade.
Mas, de 97 pra cá,
as coisas começaram a avançar ainda mais rápido.
Em parte por causa da concorrência entre a Intel, AMD, Cyrix, a
novata Transmeta e até empresas como a IBM e a Motorola, que
também fabricam chips, apesar de não diretamente para o
mercado de PCs.
Outro fator importante
é o aumento no número de processadores vendidos. Na
década de 70, os poucos computadores pessoais que podiam ser
encontrados à venda, eram produzidos quase que artesanalmente
e vendiam algumas centenas de unidades por mês. Hoje em dia,
empresas como a Dell vendem milhões de PCs todos os anos. Com
este crescimento astronômico, foi natural que os investimentos
no desenvolvimento de novos processadores aumentassem na mesma
proporção.
Durante a década
de 70, uma fábrica de microchips não custava mais do
que alguns milhões de dólares. Hoje em dia, uma fábrica
capaz de produzir processadores de ponta, não sai por menos de
3 bilhões de dólares. É mais do que o PIB de
muitos países.
Apesar tudo, o preço
dos processadores vem caindo. Hoje em dia, processadores como o Duron
e o Celeron custam menos de 100 dólares por unidade. O
desempenho claro, é inferior ao dos processadores topo de
linha, que custam 300 ou 400 dólares, mas é muito maior
do que tudo o que vimos até agora. No futuro, os processadores
se tornarão cada vez mais baratos e terão incorporadas
cada vez mais funcionalidades.
É só ver
o caso do coprocessador aritmético e da memória cache.
Na época do 386, ambos eram espetados na placa mãe,
enquanto hoje em dia são componentes “de fábrica”
mesmo nos processadores mais simples.
Componentes que hoje
são adicionados na forma de placas de expansão ou fazem
parte do chipset da placa mãe, como vídeo, som, rede,
etc. mais cedo ou mais tarde também serão incorporados
aos processadores. Continuarão existindo placas de alto
desempenho para quem tiver interesse, mas graças à
integração, será possível montar PCs
básicos muito mais baratos do que os atuais. Mesmo um
processador de baixo custo, como todos estes componentes integrados,
será muito mais rápido que um atual.
Não estou
falando de mais 12 anos, mas de apenas mais 2 ou 3 anos. As coisas
agora estão avançando mais rápido lembra-se? :-)
Mas, vamos encerrar
nosso exercício de futurologia por enquanto. Mais adiante
teremos várias outras oportunidades para exercitar nossa
imaginação.
Pentium MMX
Não existem
muitas diferenças entre o Pentium 1 e o MMX. Como o nome já
sugere, a principal modificação foram as instruções
MMX, que segundo o marketing feito pela Intel na época, seriam
suficientes para aumentar de forma considerável o desempenho
do processador em aplicativos que envolvem multimídia.
O problema é que
as instruções MMX ajudam apenas em aplicativos
otimizados. É necessário que o desenvolvedor altere o
código do programa, substituindo as instruções
x86 padrão por instruções MMX, recompile e
redistribua o programa, um processo que exige muito trabalho e custa
dinheiro. Mesmo os programas lançados depois do MMX, nem
sempre são otimizados para as novas instruções.
Para não
depender apenas das novas instruções, a Intel aumentou
o cache L1 do processador, de 16 para 32 KB. Com isto, o MMX passou a
ser um pouco mais rápido do que um Pentium 1 da mesma
frequência, mesmo nos aplicativos sem otimização.
Lembre-se que naquela época o cache L2 do processador ainda
fazia parte da placa mãe e operava a apenas 66 MHz. Um cache
L1 competente era essencial.
A Intel lançou
também, modelos de processadores MMX Overdrive, que podem
substituir antigos processadores Pentium de 75, 100 ou 120 MHz com a
simples troca do processador. O problema é que estes
processadores eram mais caros e difíceis de encontrar, assim
como os overdrives anteriores. Novamente uma péssima opção
de upgrade, já o overdrive chegava a custar mais caro que um
MMX “normal” junto com uma nova placa mãe.
Como funcionam as instruções MMX
O Pentium é um
processador que trabalha com palavras binárias de 32 bits. O
problema é que muitas vezes é preciso realizar cálculos
utilizando dados de 8 ou 16 bits, que são utilizados
principalmente por programas de edição de imagem ou
som. Pela lógica, seria possível processar quatro
palavras de 8 bits ou duas de 16 de cada vez, mas na prática,
o processador é capaz de processar apenas um valor de cada de
cada vez, independentemente do número de bits. A soma de dois
números de 8 bits demora tanto quanto a soma de dois números
de 32 bits, simplesmente os bits adicionais do processador não
são utilizados.
As instruções
MMX, permitem juntar várias palavras binárias de 8 ou
16 bits e transformá-las em uma única palavra maior,
que pode ser processada (da mesma maneira que seria processada
separadamente utilizando as instruções padrão)
usando instruções específicas do conjunto MMX.
Para tornar mais fácil
a tarefa de adaptar os programas para utilizar as instruções
MMX, a Intel optou por adicioná-las ao processador na forma de
uma extensão do coprocessador aritmético. Esta
arquitetura traz a vantagem de não exigir praticamente nenhuma
alteração no projeto do processador, pois seu
funcionamento continua sendo idêntico, apenas sendo “remendado”
com as novas instruções.
Um programa antigo,
simplesmente ignorará as instruções MMX, e
acabará não apresentando nenhum ganho de performance.
Para tirar proveito das novas instruções, é
preciso que o programador altere o código do programa,
alterando suas rotinas para que as instruções MMX sejam
utilizadas no lugar das instruções x86 padrão. O
ganho de performance real depende da habilidade do programador em
detectar onde e como o MMX pode ser usado para tornar a execução
do programa mais rápida.
Um golpe de Marketing
Teoricamente, as
instruções MMX podem tornar a execução de
aplicativos gráficos até 400% mais rápida, já
que até 4 palavras de 16 bits poderiam ser processadas de cada
vez. Outros aplicativos também poderiam ser muito
beneficiados. Na prática porém, os ganhos trazidos
pelas instruções MMX são muito menores.
Para começar,
apenas algumas das rotinas utilizadas pelos programas podem ser
otimizadas, já que a única vantagem trazida pelas
instruções MMX é o processamento mais rápido
de palavras de 8 ou 16 bits. A maioria das instruções
continuam sendo executadas através das instruções
x86 padrão. Na prática, apenas 30 ou 40% das instruções
executadas pelos processadores de imagens poderiam ser executadas
mais rápido, resultando em um ganho de performance em torno de
20 ou 30%.
Trinta por cento de
ganho real já não seria uma ganho tão ruim,
porém, mais um pequeno problema com as instruções
MMX tornam o ganho de desempenho ainda menor.
Como o acesso às
instruções MMX é feito através do mesmo
barramento utilizado pelo coprocessador aritmético, não
é possível acessar ao mesmo tempo ambos os
dispositivos. Ou seja, o programa pode ou executar uma instrução
MMX ou uma instrução de ponto flutuante, nunca fazer as
duas coisas ao mesmo tempo.
Para piorar um pouco
mais a situação, um certo tempo é perdido para
alternar entre o acesso às instruções MMX e o
uso do coprocessador aritmético. Como os programas gráficos
são muito dependentes do coprocessador aritmético, é
preciso constantemente alternar entre as instruções MMX
e as instruções de FPU (do coprocessador aritmético)
fazendo com que o ganho de performance conseguido através do
uso das instruções MMX seja em média de apenas
10 ou 12%.
Vendo o pequeno ganho
de desempenho que poderia ser conseguido através do MMX,
poucas softwarehouses se interessaram em otimizar seus programas para
as novas instruções. A adesão às
instruções MMX foi tão pequena que mesmo hoje,
vários anos depois do lançamento do MMX, praticamente
pode-se contar nos dedos os programas realmente otimizados para as
novas instruções, sendo que os programas otimizados
rodam em média apenas 10% mais rápido.
O MMX é muito
mais um golpe de Marketing, do que realmente um melhoramento nos
processadores. Apesar dos ganhos anêmicos de performance, as
campanhas publicitárias da Intel foram tão fortes que
obrigaram concorrentes como a AMD e a Cyrix a também adotar o
MMX em seus processadores, pois caso contrário, simplesmente
não conseguiriam vendê-los. Infelizmente, apesar do
estardalhaço, as instruções MMX tornaram-se
apenas um elefante branco da informática.
AMD K6
Depois do fiasco do K5, a AMD trabalhou duro para atualizar seu
projeto e lançar o K6 a tempo de competir com o MMX da Intel.
Em termos de recursos, o K6 trazia 64 KB de cache L1 integrado ao
processador e compatibilidade com as instruções MMX.
Uma grande sacada da AMD com o K6 foi mantê-lo compatível
com as placas mãe soquete 7 usadas pelo Pentium e Pentium MMX,
facilitando bastante a vida dos usuários.

Por causa de sua arquitetura mais avançada, o K6 supera em
desempenho não somente o Pentium clássico, mas também
o Pentium MMX, chegando perto até mesmo do Pentium II em
muitos aplicativos.
O calcanhar de Aquiles do K6 porém, é seu coprocessador
aritmético, que possui uma arquitetura muito mais simples do
que os modelos utilizados pela Intel no Pentium MMX e no Pentium II,
sendo por isso bem mais lento.
Apesar deste defeito não atrapalhar o desempenho do K6 em
aplicativos de escritório, faz com que seu desempenho em
aplicativos gráficos, como processamento de imagens ou vídeos,
jogos com gráficos tridimensionais (como o Quake II) fique
bastante prejudicado. Nestes aplicativos o K6 chega a ser mais de 20%
mais lento que um Pentium MMX do mesmo clock e uma porcentagem ainda
maior se comparado com processadores Pentium II ou Pentium III.
Na época do lançamento, o K6 não era exatamente
um processador de baixo custo, pelo contrário, o mais
enfatizado pela AMD era o seu bom desempenho em inteiros e sua
arquitetura mais avançada. Na verdade, o K6 já é
um processador de sexta geração, com uma arquitetura
muito semelhante à dos processadores Pentium II e Pentium III.
A principal diferença entre a arquitetura destes processadores
e do Pentium e Pentium MMX antigos é que esta nova safra de
processadores já incorpora um núcleo RISC, são
na verdade processadores Post-RISC.
Foi esta mudança de filosofia que permitiu que a frequência
dos processadores crescesse tanto nos últimos tempos. Veja, um
Pentium MMX de 233 MHz utiliza uma arquitetura de 0.35 mícron.
Quanto menores os transístores, mais alta será a
frequência de operação que o processador será
capaz de atingir. Seguindo esta regra, dá para imaginar que se
produzido numa técnica de 0.13 mícron, como os
processadores mais atuais, o 233 MMX pudesse operar a 700, talvez 800
MHz. Pois bem, a Intel já demonstrou um protótipo do
Pentium 4 de 0.13 mícron operando a nada menos que 3.5 GHz. Ou
seja, não foi apenas a miniaturização dos
transístores, mas também a evolução nos
projetos dos processadores que permitiram que a indústria de
semicondutores chegasse aonde chegou.
Freqüência x Aquecimento
Quanto mais elevada for
a freqüência de operação de um processador,
maior será a quantidade de calor gerado. Justamente por isso,
os fabricantes procuram desenvolver novas tecnologias de fabricação,
que permitam produzir chips com transístores cada vez menores,
a fim de diminuir o consumo de energia e consequentemente a geração
de calor.
As primeiras versões
do K6 utilizavam uma técnica de produção de 0.35
mícron e utilizavam tensão interna de 2.9 ou 3.2 volts.
Estas primeiras séries são chamadas de “modelo 6”
e costumavam aquecer bastante, necessitando de um cooler de boa
qualidade.
A partir da versão
de 233 MHz, o K6 passou a ser produzido usando uma nova técnica
de produção de 0.25 mícron, o que garante uma
geração de calor bem menor. Estas versões são
chamadas de “modelo 7” e operam com tensão de
apenas 2.2v.
Note que apesar do
encaixe ser o mesmo, nem todas as placas soquete 7 oferecem os 2.2v
exigidos pelos K6 modelo 7. Na verdade, a maioria das placas antigas
só são capazes de fornecer 3.3 ou 3.5v, as tensões
utilizadas pelo Pentium antigo.
Todos os K6 de 166 e
200 MHz são produzidos usando-se a técnica de produção
de 0.35 mícron, enquanto que todos os processadores de 266 e
300 MHz o são pela técnica de 0.25 mícron. O
problema são os processadores de 233 MHz, pois estes foram
fabricados com ambas as técnicas, dependendo da série.
Para reconhecer um ou outro, basta olhar a voltagem que está
estampada no processador.
Evolução dos Processadores
Desde o 4004 da Intel,
lançado em 1971, os processadores evoluíram
assustadoramente. Os processadores não foram apenas os
componentes dos computadores que mais evoluíram, mas sim o
dispositivo que evoluiu mais rápido em toda a história
da humanidade. Não é à toa que o transístor
foi considerado a invenção do século.
O grande segredo para
esta evolução vertiginosa pode ser contado em uma única
palavra: miniaturização. Foi justamente a
miniaturização dos transístores que permitiu
criar o circuito integrado, em seguida o microchip e processadores
com cada vez mais transístores e operando a frequências
cada vez mais altas.
Para você ter uma
idéia do quanto as técnicas de construção
de processadores evoluíram, o 8088 possuía apenas
29,000 transístores, e operava a apenas 4.7 MHz, enquanto o
Pentium 4 tem 42.000.000 de transístores e opera a frequências
acima de 2.0 GHz.
Número de
transístores:
-
|
8088 (1979)
|
29.000
|
|
286 (1982)
|
134.000
|
|
386 (1985)
|
275.000
|
|
486 (1989)
|
1.200.000
|
|
Pentium (1993)
|
3.100.000
|
|
Pentium MMX (1997)
|
4.300.000
|
|
Pentium II (1998)
|
9.500.000
|
|
Pentium III (Coppermine)
|
21.000.000
|
|
Athlon (Thunderbird)
|
35.000.000
|
|
Pentium 4
|
42.000.000
|
O primeiro transístor,
criado no início da década de 50, foi feito a mão
e não era nada pequeno. Depois de algum tempo, passaram a
construir transístores usando silício e desenvolveram a
litografia óptica, técnica utilizada até hoje,
que usa luz, máscaras e vários produtos químicos
diferentes para esculpir as camadas do transístor, permitindo
alcançar nível incríveis de miniaturização.
Veja agora uma tabela
com o tamanho dos transístores usados em cada processador.
-
|
Intel
4004 (1971)
|
15 mícrons
|
|
8088
(1979)
|
3 mícrons
|
|
486
|
1 mícron
|
|
Pentium
60 MHz
|
0.80 mícron
|
|
Pentium
100 MHz
|
0.60 mícron
|
|
Pentium
166 MHz
|
0.40 mícron
|
|
Pentium MMX
|
0.35 mícron
|
|
Pentium
III 350 MHz
|
0.25 mícron
|
|
Celeron
366 (soquete)
|
0.22 mícron
|
|
Pentium III Coppermine
|
0.18 mícron
|
|
Athlon Thunderbird
|
0.18 mícron
|
|
Pentium 4 Northwood
|
0.13 mícron
|
|
Athlon
Thoroughbred
|
0.13 mícron
|
|
Até 2005 (segundo a
Intel)
|
0.07 mícron
|
|
Até 2010 (segundo a
Intel)
|
0.03 mícron
|
|
2015
|
0.02 mícron?
|
|
2025
|
Processadores Quânticos?
|
|
2100
|
???? :-)
|
Um mícron
equivale a 1 milésimo de milímetro, ou a 1 milionésimo
de metro.
AMD K6-2
Ao desenvolver o
projeto do K6, os projetistas da AMD estavam convencidos de que o
mais importante num processador era o seu desempenho em números
inteiros. Em parte eles estavam certos, se você já teve
um 486 ou um Pentium I, quantos jogos 3D você chegou a jogar
nele? Poucos não é mesmo? Quantas projetos você
fez no Cad ou quantas imagens 3D você renderizou no 3D Max?
Mas, houve um pequeno
erro de cálculo neste raciocínio: as aplicações
3D não eram populares na época não por falta de
interesse, mas por falta de potência dos processadores para
roda-los decentemente. Quando perceberam isso, o K6 já estava
sendo produzido.
O coprocessador
aritmético do K6 é um projeto bastante simples e
elegante. Apenas uma unidade de execução faz todo o
trabalho. Isto permitiu eliminar todos os componentes de controle que
equipam o coprocessador aritmético de processadores como o
Pentium III e o Athlon que possuem respectivamente 2 e 3 unidades de
execução no coprocessador aritmético.
Com apenas uma unidade
de execução também é possível ter
uma latência mais baixa, ou seja, conseguir intervalos mais
curtos entre cada instrução processada. Apesar de tudo,
isso não foi o suficiente para dar condições
para o K6 competir em pé de igualdade com o Pentium II em
ponto flutuante.
Desenvolver um projeto
de coprocessador aritmético demora anos. Por isso, a AMD
novamente optou por uma solução elegante para tentar
corrigir este problema no K6-2, seguiu o exemplo da Intel e
incorporou novas instruções ao seu processador, o
conjunto 3D-Now!, formado por 27 novas instruções que
tem o objetivo de agilizar o processamento de imagens
tridimensionais, funcionando em conjunto com uma placa aceleradora
3D. Como acontece com as instruções MMX, é
necessário que o software usado faça uso do 3D-Now!,
caso contrário não existe ganho algum.
Além das novas
instruções, os novos K6-2 trouxeram mais uma novidade
(pelo menos para a época) que foi o uso de bus de 100 MHz.
Lembre-se que o K6-2 ainda utiliza cache L2 na placa mãe. Como
o cache opera na mesma frequência que o restante da placa,
utilizar placas de 100 MHz trouxe uma grande vantagem para o K6-2, o
cache L2 ficou 50% mais rápido, sem falar na memória
RAM, que teve seu desempenho aumentado na mesma proporção.
Apesar disso, a AMD
continuou produzindo seus processadores K6-2 com o multiplicador
destravado. Isso permite instalar processadores K6-2 em placas
antigas, que trabalham a apenas 66 MHz, desde claro, que a placa
suporte a tensão de 2.2v (ou 2.4v nas versões mais
recentes) utilizada pelo processador.
Um K6-2 de 300 MHz pode
ser utilizado tanto numa placa mãe configurada para operar a
100 MHz com multiplicador de 3x, quanto numa outra, configurada para
operar a 66 MHz com multiplicador de 4.5x. Naturalmente, o desempenho
será melhor na placa de 100 MHz, pela diferença na
frequência da memória e do cache L2.
Também foi
mantida a compatibilidade com as instruções MMX, com a
possibilidade de executar até 2 instruções MMX
por ciclo de clock. Todos os K6-2 são fabricados usando-se uma
técnica de produção de 0.25 mícron. É
por isso que o K6-2 chegou a apenas 550 MHz, antes de dar lugar ao
Athlon e ao Duron, que trouxeram a resposta para a maior parte dos
seus problemas.
3D-Now! x MMX
Por incrível que
possa parecer, ao contrário do MMX, o 3D-Now! da AMD conseguiu
obter um grande apoio por parte dos desenvolvedores de jogos,
conseguindo que a maioria dos jogos atuais sejam otimizados para as
novas instruções. Aplicativos 3D otimizados para o
3D-Now! rodam de 10 a 20% mais rápido em processadores K6-2,
resultando em um desempenho próximo ao alcançado pelo
Pentium II.
Existem também
casos de drivers de vídeo otimizados para o 3D-Now!, como os
drivers Detonator para placas nVidia (TnT, TnT 2, GeForce, etc.) que
garantem um ganho de desempenho considerável mesmo em jogos
sem otimização.
A diferença
básica entre o MMX e o 3D-Now!, é que enquanto o MMX
permite apenas melhorar sutilmente o desempenho do processador no
cálculo de números inteiros, onde tanto o Pentium,
quanto o K6 e o 6x86 da Cyrix são fortes, o 3D-Now! é
capaz de melhorar o desempenho do K6-2 onde ele mais precisa, no
cálculo de números de ponto flutuante. Basicamente,
temos uma extensão do coprocessador aritmético, que
permite a ele desempenhar suas funções de maneira mais
rápida, através de instruções mais
eficientes.
O 3D-Now continua
presente no Athlon e no Duron, os processadores AMD atuais. Apesar de
ambos possuírem um coprocessador muito poderoso, capaz de
executar 3 instruções por ciclo, o 3D-Now! continua
prestando bons serviços.
AMD K6-3
Apesar de desde o final
da era 486 a AMD utilizar tecnologia própria, sempre conseguiu
lançar bons processadores, que muitas vezes introduziam novas
tecnologias que viriam a ser utilizadas apenas nas próximas
gerações de processadores Intel, chegando muitas vezes
até a superar os processadores Intel em performance, quase
sempre custando menos. O problema é que sempre que a AMD
conseguia lançar um processador novo, a Intel já estava
dois ou três passos à frente, restando à AMD
competir com chips obsoletos da Intel no mercado de PCs de baixo
custo. Foi assim com o K5, com o K6, e até certo ponto com o
K6-2. Vender chips de baixo custo pode ser uma boa maneira de
aumentar a participação no mercado, mas definitivamente
não é a melhor maneira de conseguir obter lucro.

Lançado em
novembro de 98, o Sharptooth, ou simplesmente K6-3 foi a primeira
tentativa da AMD em competir diretamente com os processadores topo de
linha da Intel, que na época eram os Pentium II de 500 e 550
MHz. Como o K6-3 possui uma arquitetura bem diferente do Pentium II,
não é tão fácil fazer uma comparação
direta, já que cada processador acaba saindo-se melhor em um
tipo de aplicação.
O cache de três níveis
O cache surgiu na época
dos processadores 386, como uma forma de acelerar o acesso aos dados
gravados na memória RAM. Inicialmente, tínhamos apenas
alguns Kbytes de cache espetados na placa mãe, mas, quando a
Intel desenvolveu o 486, embutiu uma pequena quantidade de memória
cache dentro do processador. Tínhamos agora dois tipos de
cache diferentes, um interno ao processador, e outro espetado na
própria placa mãe. Para diferenciar os dois, o cache
incorporado ao processador passou a ser chamado de cache nível
um, ou “L1”, enquanto o cache da placa mãe passou
a ser chamado de nível 2, ou “L2”.
A diferença
entre o cache L1 e o cache L2 reside na velocidade. Enquanto o cache
L1 trabalha na frequência do processador, possuindo tempos de
acesso extremamente baixos, o cache L2 trabalha na frequência
da placa mãe, sendo bem mais lento do que o cache L1.
Justamente por ser mais lento, o cache nível 2 é mais
barato, possibilitando o uso de quantidades maiores. Mesmo nos
processadores atuais, onde o cache L2 também faz parte do
processador, a velocidade é mais baixa.
Os dados mais
requisitados pelo processador são inicialmente armazenados no
cache L2, sendo os dados que o processador está processando no
momento, juntamente com alguns outros dados importantes, transferidos
para o cache L1.
Assim que o processador
termina de processar uma determinada rotina e passa para a próxima,
são trocados os dados do cache L1, evitando ao máximo
que o processador precise acessar dados contidos no cache L2 (que
sempre será mais lento) e principalmente acessar diretamente a
memória RAM, o que resultaria em uma grande perda de tempo.
Nos processadores atuais, a velocidade e a quantidade de memória
cache são muito mais importantes que a própria
velocidade da memória RAM. Vou usar um exemplo tosco, só
para tentar tornar mais claro este tema:
Imagine que num sistema
qualquer, 40% das vezes que o processador necessite de dados,
encontre-os no cache L1, 45% da vezes precise recorrer ao cache L2, e
em 15% dos casos os dados não estejam gravados no cache e o
processador precise busca-los diretamente na memória RAM.
Imagine que neste
sistema, um acesso ao cache L1 demore 2 nanossegundos, um acesso ao
cache L2 demore 6 nanos, e um acesso à memória RAM
demore 50 nanos (é apenas um exemplo). Usando a estatística
anterior (40-45-15), 1000 acessos à dados demorariam 12.800
nanos (400 x 2 + 450 x 6 + 150 x 50).
Imagine agora que
aumentamos o tamanho do cache L1 deste processador, aumentamos a
velocidade do cache L2, mas foi mantida a mesma memória RAM.
Neste caso, poderíamos imaginar que em 50% das vezes que o
processador precisar de dados, os encontrará no cache L1 (já
que agora é maior do que no exemplo anterior), em 40% das
vezes encontrará os no cache L2 e em 10% das vezes será
necessário um acesso à memória RAM. Imaginando
que um acesso ao cache L1 continue demorando 2 nanos (já que
aumentamos apenas seu tamanho, e não a velocidade), um acesso
ao cache L2 passe a demorar 4 nanos depois de aumentarmos sua
velocidade, e um acesso à memória RAM continue
demorando os mesmos 50 nanos, 1000 acessos demorariam agora apenas
6600 nanos (500 x 2 + 400 x 4 + 100 x 50), uma diminuição
de quase 50%, muito mais do que conseguiríamos aumentando a
velocidade da memória RAM.
Terminando, imagine
agora, que fosse acrescentado um cache nível 3, um pouco mais
lento do que o cache L2, mas em uma quantidade um pouco maior, e que
um acesso a este novo cache demore 10 nanos. Manteríamos então
um cache-hit de 50% no cache L1, 40% no cache L2, mas passaríamos
a ter um cache-hit de (digamos) 5% no cache L3, fazendo com que em
apenas 5% dos casos fosse necessário um acesso à
memória RAM. Os 1000 acessos demorariam então apenas
5600 nanos (500 x 2 + 400 x 4 + 50 x 10 + 50 x 50), um aumento de
quase 15% na velocidade de acesso, que certamente resultaria em um
aumento considerável na velocidade global do equipamento.
A idéia do K6-3
é justamente essa, aumentar o desempenho através de uma
maior eficiência da memória cache. O K6-3 traz os mesmos
64 KB de cache L1 do K6-2, mas vem agora com 256 KB de cache L2
embutidos no encapsulamento do processador, cache que trabalha na
mesma frequência do processador, assim como o cache usado no
Celeron e no Pentium II Xeon. Ora, se apenas 128 KB de cache L2
trabalhando na frequência do processador, conseguiram
transformar o anêmico Celeron sem cache, em um processador cujo
desempenho chega até mesmo a superar o desempenho do Pentium
II em alguns aplicativos, imagine o que o dobro dessa quantidade não
pode fazer pelo K6-3.
Para aumentar ainda
mais o desempenho do K6-3, a AMD resolveu aproveitar também o
cache L2 encontrado em todas as placas mãe Soquete 7, passando
a usa-lo como um cache L3. O funcionamento do cache da placa mãe
continua idêntico, apenas mudamos seu nome.
O uso do cache L3
consegue aumentar de 3 a 8% o desempenho do K6-3, dependendo da
quantidade usada. Não chega a ser nenhuma revolução,
mas é um ganho bem perceptível, principalmente se
lembrarmos que o Pentium II é apenas 3 ou 5% mais rápido
do que o K6-2 em aplicativos de escritório.
Testando o K6-3 em uma
placa mãe com 512 KB de cache, o ganho de performance fica em
cerca de 3.8%. Segundo números obtidos por outros usuários,
o ganho de performance com 1024 KB de cache fica em torno de 6%,
chegando a 8% no caso de placas mãe com 2048 KB de cache.
O que mais mudou?
Fora a inclusão
do cache L2 trabalhando na mesma frequência do processador, e
do uso do cache L3, o K6-3 trouxe poucas mudanças sobre o
antigo K6-2. Foram feitas algumas alterações nos
registradores do processador, mas nada gritante. O K6-3 continua
utilizando as 21 instruções 3D-Now! e o mesmo
coprocessador aritmético do K6-2.
Este é o grande
problema. O maior defeito do K6-2 não é o cache, mas
sim o próprio coprocessador aritmético, com apenas uma
unidade de execução, que apesar do reforço do
3D-Now! Não foi alterado desde o primeiro modelo do K6. Graças
ao cache rápido, o K6-3 consegue até mesmo superar um
Pentium III da mesma frequência em aplicativos de escritório,
mas continua perdendo em jogos e aplicativos gráficos.
Mantendo a idéia
de deixar de ser uma mera coadjuvante e passar a realmente competir
em pé de igualdade com a Intel, a AMD resolveu investir pesado
para desenvolver um coprocessador decente para seu próximo
processador, o Athlon, que veremos com mais detalhes adiante. Por
sinal, o investimento valeu à pena, pois o coprocessador
aritmético do Athlon consegue não apenas igualar o
desempenho do coprocessador do Pentium III, mas chega a superá-lo.
Realmente o desempenho do Athlon vem surpreendendo, principalmente
pelo fato da AMD desta vez estar conseguindo lançar versões
mais rápidas antes da Intel.
Compatibilidade
Na época em que
o K6-3 foi lançado, existia um enorme contingente de usuários
de equipamentos baseados em placas mãe Super-7, entre usuários
de processadores AMD e de processadores Cyrix, que sem dúvida
se sentiam muito mais inclinados a trocar seu processador por outro
que continuasse utilizando o soquete 7, permitindo um upgrade sem
necessidade de troca da placa mãe. Percebendo isso, a AMD
optou por tornar o K6-3 totalmente compatível com as placas
mãe soquete 7, mantendo apenas a velha exigência de que
a placa mãe seja capaz de fornecer a tensão correta
para o processador e seja capaz de sinalizar o multiplicador correto.
Qualquer placa mãe
que suporte o AMD K6-2 de 400 MHz, suportará também o
K6-3 de 400 e 450 MHz sem problema algum, dispensando inclusive
upgrades de BIOS. A voltagem utilizada pelo K6-3 também é
a mesma utilizada pelo K6-2: 2.2v, dispensando qualquer configuração
adicional. Também não é preciso configurar nada
relacionado ao cache L3, pois espetando o K6-3 na placa mãe, o
cache da placa passa automaticamente a ser reconhecido como cache L3,
novamente dispensando qualquer configuração adicional.
Resumindo, basta
configurar o multiplicador da placa mãe para 4x 100 MHz, ou
4.5x 100 (no caso do K6-3 de 450 MHz) e a voltagem para 2.2v para que
tudo funcione.
Cyrix 6x86MX
Voltando um pouco no
tempo, o 6x86MX foi o concorrente da Cyrix para o MMX da Intel. Como
o K6, este processador traz 64 KB de cache L1, instruções
MMX, e oferece compatibilidade com as placas mãe soquete 7. A
performance em aplicações Windows é muito
parecida com um K6, porém, o coprocessador aritmético é
ainda mais lento do que o que equipa o K6, tornando muito fraco seu
desempenho em jogos e aplicativos que façam uso intenso de
cálculos de ponto flutuante.

Enquanto o K6 usa um coprocessador aritmético simples, com
apenas uma unidade de execução, mas com otimizações
para ser capaz de executar uma instruções por ciclo, o
coprocessador 6x86MX da Cyrix pode demorar vários ciclos para
processar cada instrução. Apenas as instruções
simples são executadas em um único ciclo. Enquanto o
coprocessador aritmético do K6 é cerca de 20% mais
lento que o do MMX, o do 6x86MX chega a ser 50% mais lento, sem nem
mesmo instruções especiais, como o 3D-Now! Para tentar
salvar a pátria.
Para aplicações
de escritório como o Office, o 6x86MX foi até uma boa
opção devido ao baixo custo do processador, que custava
até metade do preço de um MMX, mas ele não era
nada adequado para PCs destinados principalmente a jogos ou
aplicações gráficas.
O 6x86MX usa tensão
de 2.9v mas, segundo o fabricante, caso a placa mãe não
ofereça esta tensão específica, podemos usar a
voltagem 2.8v, como no MMX, sem problemas.
Como o K5, o 6x86 adota
o índice Pr, agora comparando seu desempenho com o de um
Pentium. O 6x86MX é encontrado nas versões PR150 (120
MHz), PR166 (133 MHz), PR200 (166 MHz), PR233 (187 ou 200 MHz
dependendo da série) e PR266 (225 ou 233 MHz). O uso do índice
Pr já foi causador de muita confusão. Alguns usuários
chegavam a pensar que o Cyrix Pr 266 trabalhava realmente a 266 MHz e
não a 233 MHz e acabavam achando que o processador estava com
algum defeito, por não trabalhar na frequência
“correta”.
Felizmente, o índice
Pr deixou de ser usado. Mesmo os processadores atuais da Cyrix, os C3
são vendidos segundo sua frequência real de operação,
apesar de alguns já defenderem a volta do índice Pr no
caso do Athlon da AMD, que é consideravelmente mais rápido
que um Pentium 4 da mesma frequência.
Cyrix 6x86MII
O MII foi na verdade
apenas uma continuação da série 686MX,
alcançando agora índices PR 300, 333, 350 e 400. Como o
686MX, o MII utiliza tensão de 2.9v ou 2.8v caso a placa não
suporte a ideal.
Um dos maiores
problemas no 6x86 é justamente seu aquecimento exagerado.
Mesmo nas suas versões mais rápidas era utilizada uma
técnica de fabricação de 0.35 mícron,
resultando em um aquecimento considerável, que pode causar
travamentos caso não sejam tomados alguns cuidados. Ao usar um
6x86 é sempre essencial adquirir um bom cooler.
Cyrix Media GX
O Media GX é um
processador 6x86MX acrescido de circuitos controladores de memória
e cache, assim como controladores de vídeo e som, que se
destina ao mercado de PCs de baixo custo e, principalmente, a
notebooks. Quando usado em computadores portáteis, o Media GX
traz a vantagem de consumir pouca eletricidade, proporcionando maior
autonomia da bateria. Já os micros de mesa equipados com o
Media GX pecam por oferecerem poucas possibilidades de upgrade.

Por exigir uma placa
mãe específica, o media GX destina-se somente aos
computadores de arquitetura fechada. Justamente por isso ele foi
utilizado apenas em alguns micros de grife.
IDT C6
Lançado no
início de 98, o C6 foi a tentativa da IDT de entrar no mercado
de processadores, competindo na faixa de processadores de baixo custo
com o MMX e o 6x86 MX.
Tecnicamente, o C6 não
traz nenhuma novidade. Basicamente temos uma arquitetura não
superescalar simples, que lembra um pouco a dos micros 486, combinada
com um cache L1 de 64 KB, dividido em dois blocos de 32 KB. O
coprocessador também é fraco, ficando atrás até
mesmo dos processadores Cyrix. O C6 foi lançado em versões
de 180, 200, 225 e 240 MHz, utiliza placas mãe soquete 7 e
tensão de 3.5v, como o Pentium antigo.
Apesar do pouco sucesso
alcançado com o C6, a IDT lançou depois de algum tempo
o C6+, que incorporou instruções equivalentes ao
3D-Now! da AMD, e passou a usar barramento de 100 MHz mas que, como
no caso anterior, acabou sendo praticamente ignorado pelo mercado.
Foi último processador lançado por esta companhia.
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 exceçã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
arquitetura 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 detalhes 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 projeto
quase que totalmente novo, trazendo brutais alterações
na arquitetura. Entre as inovações trazidas pelo
Pentium Pro, podemos destacar a arquitetura superescalar com três
canalizações, o suporte a 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 256
ou 512 MB 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 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.
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 fatores
que possibilitaram as frequências assombrosas dos processadores
atuais. Mas, este recurso também tem 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 sua freqüê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 ao Pentium Pro,
criando também um novo barramento, batizado 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 freqüê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 freqüência do processador, o cache L1
continua sendo necessário, pois apesar dos dois caches
operarem na mesma freqüência, o barramento de dados do
cache L1 é bem maior, o que permite taxas de transferências
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 compartilhar
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 como 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 arquitetura 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 usuário 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 arquitetura 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, batizado 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 chipset 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. Como no Pentium
Pro o cache L2 é integrado ao processador, as placas para ele
não possuem cache algum.
Asus
P6NP5, cortesia da Asus Inc.
Arquitetura otimizada para instruções
de 32 Bits
O Pentium Pro pode ser
considerado um processador Post-RISC, pois basicamente o processador
é composto por um núcleo formado por 3 processadores
RISC (as três unidades de execução de instruções)
e três decodificares, com a função de converter
as instruções x86 usadas pelos programas em instruções
mais simples, que possam ser processadas pelo núcleo RISC.
Instruções simples, como operações de
soma e atribuição, podem ser convertidas em uma única
instrução RISC, enquanto instruções mais
complexas precisam ser quebradas em várias instruções
simples, precisando então de vários ciclos para serem
processadas.
Este esquema funciona
muito bem com instruções de modo protegido (32 bits),
mas o decodificador do Pentium Pro possui uma certa dificuldade para
trabalhar com instruções de modo real (16 bits), que
acabam sendo decodificadas em muitas instruções RISC,
demorando muito mais para serem processadas.
Rodando sistemas
operacionais de 32 bits, como o Windows NT, Windows 2000, OS/2, Linux
e UNIX, o Pentium Pro apresenta um desempenho bastante superior ao
Pentium Clássico. Porém, rodando sistemas de modo real,
como o MS-DOS, ou híbridos, como o Windows 95/98, mesmo com o
cache mais rápido, o Pentium Pro acaba apresentando um
desempenho equivalente, ou até mesmo um pouco mais baixo que
um Pentium comum.
No caso de servidores,
esta não chegava a ser uma limitação, pois,
invariavelmente estas máquinas rodavam versões do Unix,
Netware ou Windows NT, sempre sistemas de 32 bits. Os usuários
domésticos porém, acabaram sendo penalizados pelo fraco
desempenho do Pentium Pro rodando o Windows 95/98, sistemas que ainda
possuem muito código de 16 bits.
Para uso doméstico,
não faria muito sentido o uso de um Pentium Pro. Porém,
num servidor, o cache L2 funcionando na mesma velocidade do
processador faz muita diferença, pois o processamento de dados
nestas máquinas é muito repetitivo, tanto que, mesmo
com o surgimento do Pentium II (onde o cache L2 apesar de ser de 512
KB funciona a apenas metade da velocidade do processador) muitos
ainda preferiram continuar usando o Pentium Pro, pois além do
cache, ele oferece recursos interessantes para uma máquina
servidora, como a possibilidade de usar até quatro
processadores em paralelo (o Pentium II é limitado a dois
processadores), além da maior quantidade de memória
suportada, recursos que só foram superados pelo Xeon, o atual
processador Intel destinado a servidores, que traz uma quantidade
maior de cache L2, e já encarnou na forma de versões
especiais do Pentium II, Pentium III e agora do Pentium 4.
Pentium II
A Intel desenvolveu o
Pentium II, usando como base o projeto do Pentium Pro. Foram feitas
algumas melhorias de um lado, e retirados alguns recursos (como o
suporte a 4 processadores) de outro, deixando o processador mais
adequado ao mercado doméstico.
A mudança mais
visível no Pentium II é o novo encapsulamento SEPP
(Singled Edge Processor Package). Ao invés de um pequeno
encapsulamento de cerâmica, temos agora uma placa de circuito,
que traz o processador e o cache L2 integrado. Protegendo esta placa,
temos uma capa plástica, formando um cartucho muito parecido
com um cartucho de video-game.
Novamente, foi alterado
o encaixe usado pelo processador. O Pentium II não é
compatível tanto com as placas soquete 7, quanto com as placas
para Pentium Pro, exigindo uma placa mãe com o encaixe slot 1.
A maioria dos usuários
não gostou muito da idéia, já que por utilizar
um novo encaixe, o Pentium II era incompatível com as placas
mãe soquete 7 disponíveis até então, o
que obrigava os usuários a trocar também a placa mãe
no caso de um upgrade. O uso do slot 1 não deixa de ser uma
política predatória da Intel, pois tendo sido criado e
patenteado por ela, outros fabricantes não podem fazer uso
dessa tecnologia em seus processadores. A utilização do
slot 1 pela Intel foi o primeiro passo para a salada de padrões
e tecnologias proprietárias que temos atualmente no ramos dos
processadores.
Porém, do ponto
de vista da Intel, a mudança foi necessária, pois a
presença do cache L2 na placa mãe limitava sua
freqüência de operação aos 66 ou 100 MHz da
placa mãe, formando um gargalo.
Pentium II
Na época, a
Intel não tinha outra solução para mover o cache
L2 para mais perto do núcleo do processador e ao mesmo tempo
manter custos aceitáveis de produção. A técnica
utilizada no Pentium Pro, onde o cache L2 fazia parte do
encapsulamento do processador, mas era composto por um chip separado,
era mais cara e gerava um índice de defeitos muito maior, o
que aumentava os custos de produção.
Já que não
tinha outra opção melhor, acabou optando pelo uso do
encapsulamento SEPP.
Fora o aspecto externo,
o Pentium II traz um cache L1 de 32 KB (dividido em dois blocos de 16
KB para dados e instruções), cache L2 integrado de 512
KB e compatibilidade com as instruções MMX. Como os
processadores anteriores, o Pentium II também oferece suporte
a até 4 GB de memória RAM.
Como o Pentium II foi
desenvolvido para o mercado doméstico, onde ainda o Windows 98
é o sistema operacional mais utilizado, a Intel deu um jeito
de solucionar o problema do Pentium Pro com instruções
de 16 bits, adicionando ao processador um registrador de segmento. Ao
contrário do Pentium Pro, seu antecessor, o Pentium II pode
processar instruções de 16 bits tão rapidamente
quanto processa as de 32, oferecendo um bom desempenho rodando o DOS,
Windows 3.x ou Windows 95/98.
Cache L2 integrado
O Pentium II traz
integrados ao processador, nada menos que 512 KB de cache L2, o dobro
da quantidade encontrada na versão mais simples do Pentium
Pro. No Pentium II porém, o cache L2 trabalha a apenas metade
do clock do processador. Em um Pentium II de 266 MHz por exemplo, o
cache L2 trabalha a 133 MHz, o dobro da frequência do cache
encontrado nas placas mãe soquete 7, mas bem menos do que os
200 MHz do cache encontrado no Pentium Pro. A Intel optou por usar
este cache mais lento para solucionar três problemas que
atrapalharam o desenvolvimento e a popularização do
Pentium Pro:
O primeiro é o
alto grau de incidência de defeitos no cache. O cache
full-spped do Pentium Pro era muito difícil de se produzir com
a tecnologia existente na época, o que gerava um índice
de defeitos muito grande. Como não é possível
testar o cache separado do processador, era preciso ter o processador
pronto para depois testar todo o conjunto. Se o cache apresentasse
algum defeito, então todo o processador era condenado à
lata do lixo. Este problema inutilizava boa parte dos processadores
Pentium Pro produzidos, resultando em custos de produção
mais altos e consequentemente preços de venda mais elevados,
que tornavam o Pentium Pro ainda mais inacessível ao
consumidor final. O cache mais lento utilizado no Pentium II era mais
fácil de se produzir, e ao mesmo tempo o formato SEPP permite
substituir os chips de cache durante o processo de fabricação,
caso estes apresentassem defeito.
O segundo problema é
a dificuldade que a Intel encontrou para produzir memórias
cache rápidas na época do Pentium Pro; dificuldade
acabou impossibilitando o lançamento de processadores desta
família operando a mais de 200 MHz. Naquela época, a
Intel ainda não tinha tecnologia suficiente para produzir
módulos de cache L2 capazes de trabalhar a mais de 200 MHz,
com um custo de produção aceitável. Se o cache
L2 do Pentium II operasse na mesma freqüência do
processador, o mesmo problema logo voltaria a aparecer, atrapalhando
o desenvolvimento de versões mais rápidas.
Por último,
temos o fator custo, pois utilizando memórias cache um pouco
mais lentas no Pentium II, os custos de produção se
reduzem, tornando o processador mais atraente ao mercado doméstico.
Você nunca
encontrará à venda uma placa mãe para Pentium II
com cache, já que o cache L2 já vem embutido na placa
de circuito do processador.
Arquitetura
O Pentium II foi
produzido em duas arquiteturas diferentes. As versões de até
300 MHz utilizam a arquitetura Klamath, que consiste numa técnica
de fabricação de 0.35 mícron, muito parecida com
a utilizada nos processadores Pentium MMX. Nas versões a
partir de 333 MHz já é utilizada a arquitetura
Deschutes de 0.25 mícron, que garante uma dissipação
de calor muito menor, o que possibilitou o desenvolvimento de
processadores mais rápidos.
Vale lembrar também
que no Pentium II não é preciso se preocupar em
configurar corretamente a tensão do processador, pois isto é
feito automaticamente pela placa mãe. Só para matar sua
curiosidade, os processadores baseados na arquitetura Klamath
utilizam 2.8 volts, enquanto os baseados na arquitetura Deschutes
utilizam 2.0 volts.
Note apenas que é
necessário que a placa suporte a voltagem utilizada pelo
processador. Se você tiver em mãos uma placa slot 1
antiga, que trabalhe apenas com tensões de 2.8 e 2.0v, você
não poderá utilizar por exemplo um Pentium III
Coppermine, que usa tensão de 1.75v. Em muitos casos este
problema pode ser resolvido com um upgrade de BIOS, cheque se existe
algum disponível na página do fabricante.
Uma última
consideração a respeito dos processadores Pentium II é
sobre a freqüência de barramento utilizada pelo
processador. As versões do Pentium II de até 333 MHz
usam bus de 66 MHz, enquanto que as versões a partir de 350
MHz usam bus de 100 MHz, o que acelera a troca de dados entre o
processador e a memória RAM.
Lembra-se do recurso de
Pipeline introduzido no 486? Enquanto o Pentium clássico,
assim como o Pentium MMX mantém a mesma estrutura básica
do 486, com um Pipeline de 5 níveis, o Pentium II por
utilizar a mesma arquitetura do Pentium Pro possui um Pipeline de 10
estágios. Além de melhorar a performance do
processador, o uso de um Pipeline de mais estágios visa
permitir desenvolver processadores capazes de operar a frequências
maiores.
A idéia é
que com um Pipeline mais longo, o processador é capaz de
processar mais instruções simultaneamente. Porém,
ao mesmo tempo, o Pentium II possui um núcleo RISC, o que
significa que internamente ele processa apenas instruções
simples. A combinação destes dois fatores permite
simplificar a operação de cada estágio do
Pipeline, fazendo com que cada estágio execute menos
processamento, mas em conjunto consigam executar as mesmas tarefas,
já que são em maior número. Executando menos
processamento por ciclo em cada estágio, é possível
fazer o processador operar a frequências mais altas, sem
sacrificar a estabilidade. Na prática, existe a possibilidade
de desenvolver processadores mais rápidos, mesmo utilizando as
mesmas técnicas de fabricação.
Multiprocessamento
Ao contrário do
Pentium Pro, o Pentium II oferece suporte ao uso de apenas dois
processadores simultaneamente, como o Pentium comum. Esta é
mais uma adaptação feita para diminuir um pouco o preço
de venda.
Outra razão
desta limitação, é tornar mais atraente o
Pentium II Xeon (pronuncia-se “Zion”), basicamente um
Pentium II equipado com um cache mais rápido, suporte ao uso
de até 8 processadores e suporte a mais memória RAM.
Naturalmente, o Xeon é um processador muito mais caro,
dedicado ao mercado de servidores e Workstations.
Celeron
Com o lançamento
do Pentium II, a Intel abandonou a fabricação do
Pentium MMX, passando a vender apenas processadores Pentium II que
eram muito mais caros. O problema com esta estratégia foi que
a Intel passou a perder terreno rapidamente no mercado de PCs de
baixo custo, para os processadores K6 e 6x86 respectivamente da AMD e
da Cyrix, que apesar de apresentarem um desempenho ligeiramente
inferior, custavam menos da metade do preço de um Pentium II
do mesmo clock.
Tentando consertar a
besteira, a Intel resolveu lançar uma versão de baixo
custo do Pentium II, batizada de Celeron, do Latin “Celerus”
que significa velocidade. O Celeron original, nada mais era do que um
Pentium II desprovido do Cache L2 integrado e do invólucro
plástico, responsáveis por boa parte dos custos de
produção do Pentium II, ou seja, vinha “pelado”.
É impossível evitar uma comparação com o
486SX, que não passava de uma versão “castrada”
do 486DX.
As primeiras versões
do Celeron, que incluem todos os de 266 MHz e alguns dos de 300 MHz,
não traziam cache L2 algum e por isso apresentavam um
desempenho muito fraco na maioria dos aplicativos, apesar de ainda
conservarem um desempenho razoável em jogos e aplicativos que
utilizam muito o coprocessador aritmético.
O Cache L2 é um
componente extremamente importante nos processadores atuais, pois
apesar da potência dos processadores ter aumentado quase 10,000
vezes nas últimas duas décadas, a memória RAM
pouco evoluiu em velocidade. Pouco adianta um processador veloz, se
ao todo instante ele tem que parar o que está fazendo para
esperar dados provenientes da memória RAM. É justamente
aí que entra o cache secundário, reunindo os dados mais
importantes da memória para que o processador não
precise ficar esperando. Retirando o cache L2, a performance do
equipamento cai em quase 40%, só não caindo mais por
que ainda conservamos o cache L1. Justamente por isso, além de
perder feio para o seu irmão mais velho, o Celeron sem cache
perdia até mesmo para processadores mais antigos. De fato, um
Celeron sem cache de 266 MHz perde até mesmo para um 233 MMX
em muitas aplicações.
Devido
ao seu baixo desempenho, o Celeron sem cache não conseguiu uma
boa aceitação no mercado, sendo inclusive muito
criticado pela imprensa. Numa nova tentativa de consertar a besteira
cometida, a Intel resolveu equipar as novas versões do Celeron
com 128 KB de cache L2, que ao contrário do cache encontrado
no Pentium
II, funciona na mesma frequência do processador. Todos os
Celerons à venda atualmente possuem cache, isto inclui todas
as versões apartir do Celeron de 333 MHz e a maioria dos de
300 MHz. Para não haver confusão, a
versão de 300 MHz com cache é chamada de 300A.
Enquanto no Pentium II
o cache é formado por chips separados, soldados na placa de
circuito do processador, no Celeron o cache L2 faz parte do próprio
núcleo do processador. Estes 128 KB de cache fazem uma
diferença incrível na performance do processador.
Enquanto um Celeron antigo é quase 40% mais lento que um
Pentium II do mesmo clock, o Celeron com cache é menos de 6%
mais lento, chegando a empatar em algumas aplicações.
Isto acontece pois apesar Celeron possuir uma quantidade 4 vezes
menor de cache, nele o cache L2 funciona duas vezes mais rápido,
compensando em grande parte a diferença. Claro que isso
depende do aplicativo que estiver sendo executado.
Alguns programas, como
o Word por exemplo, necessitam de uma grande quantidade de cache.
Neste caso, mesmo sendo mais lento, o cache do Pentium II acaba sendo
muito mais eficiente por ser maior. Em compensação,
aplicativos que manipulam imagens em geral necessitam de um cache L2
mais rápido, pois os dados a serem manipulados são
menos repetitivos. Neste caso, o cache do Celeron acaba sendo tão
ou até mesmo mais eficiente do que o cache encontrado no
Pentium II.
Outro ponto a favor do
Celeron é seu coprocessador aritmético, que, sendo
idêntico ao do Pentium II, é muito mais rápido
que o do MMX ou do K6, o que lhe garante um bom desempenho em
aplicações gráficas.
Propositadamente, todas
as versões do Celeron (com exceção dos Celerons
de 800 MHz em diante, recentemente lançados) utilizam
barramento de apenas 66 MHz. Este é outro diferencial em
relação ao Pentium II e ao Pentium III. Apesar de em
termos de processamento o Celeron chegar às vezes a bater uma
Pentium II do mesmo clock, acaba sendo mais lento por utilizar um
multiplicador mais alto.
Por exemplo, um Pentium
II de 400 MHz utiliza bus de 100 MHz e multiplicador de 4x. Um
Celeron de 400 MHz por sua vez utiliza bus de 66 MHz e multiplicador
de 6.0x. Apesar de nos dois casos o processador trabalhar na mesma
freqüência, no caso do Celeron a placa mãe e a
memória RAM funcionam mais lentamente, acabando por atrapalhar
o desempenho do processador. É por isso que muitas vezes o
Celeron acaba ficando 10, até 15% atrás do Pentium II
nos benchmarks.
Se por um lado isto
atrapalha o desempenho, por outro torna os micros baseados no Celeron
ainda mais baratos, e facilita também na hora do upgrade, já
que é possível continuar utilizando antigas memórias
de 66 MHz e, em muitos casos, a mesma placa mãe utilizada em
conjunto com os Pentium II de 266 e 300 MHz.
Soquete 370 x slot 1
Inicialmente, a Intel
lançou o Celeron no mesmo formato do Pentium II, ou seja, na
forma de uma placa de circuito que utiliza o slot 1, a fim de manter
a compatibilidade com todas as placas mãe já existentes
e facilitar as vendas do novo processador.
Porém,
logo depois foi lançado um novo formato de encapsulamento e um
novo encaixe para o Celeron, chamado de soquete 370. O formato é
muito parecido com o de um Pentium MMX; a diferença é
que o Celeron possui alguns pinos a mais. O Celeron para soquete 370
também é chamado de PPGA, abreviação de
“Plastic Pin Grid Array”. Vale lembrar que, apesar dos
encaixes serem parecidos, o Celeron PPGA não é
compatível com as placas mãe soquete 7 utilizadas em
conjunto como o MMX e o K6.
O soquete 370 utiliza a
mesma pinagem do slot 1, e as placas utilizam os mesmos chipsets e
demais componentes básicos. É possível inclusive
encaixar um Celeron soquete 370 em uma placa mãe slot 1 com a
ajuda de um adaptador que custa cerca de 15 dólares.
A desculpa da Intel
para mudar subitamente o formato do Celeron, foi a de que depois que
o cache L2 foi movido para dentro do invólucro do processador,
a placa de circuito usada no Pentium II tornou-se desnecessária,
servindo apenas para aumentar os custos de produção.
Retirando-a do Celeron, seria possível fabricar processadores
um pouco mais baratos.
Durante muito tempo, a
Intel continuou fabricando o Celeron nos dois formatos, mas a algum
tempo atrás cancelou a produção das versões
slot 1, continuando a fabricar apenas as versões para soquete
370.
Os Celerons soquete 370
podem ser utilizados tanto em placas mãe para Pentium II ou
Pentium III utilizando-se o adaptador, quanto em placas mãe
soquete 370. Como disse, os dois encapsulamentos são
elétricamente compatíveis, o que muda é apenas o
formato.
Adaptador
soquete 370 > slot 1
Pentium II Xeon
O Pentium II acabou
revelando-se uma solução muito mais adequada que o
Pentium Pro para o mercado doméstico. O Celeron trouxe mais um
avanço neste sentido, pois manteve um bom desempenho (se
comparado aos processadores da época) a um custo mais baixo.
Mas, nem todo mundo
ficou satisfeito com o cache L2 operando à metade da
frequência do processador usado no Pentium II, nem com o
minúsculo cache de 128 KB do Celeron. Sim, são os donos
de servidores de alto desempenho, que precisam de máquinas com
vários processadores e muito cache.
O Pentium II Xeon
surgiu como uma alternativa para quem precisava de mais desempenho e
podia pagar por ele. Assim como no Celeron, o cache L2 opera na mesma
frequência do processador, a diferença é a
quantidade. Existiram versões do Pentium II Xeon com 512 KB, 1
MB e 2 MB de cache e operando a 400, 450 e 500 MHz.
Outra característica
do Xeon é um melhor suporte a multiprocessamento. Existe
suporte para o uso de até 4 processadores na mesma placa, ou
até 8 processadores em cluster.
O Xeon foi
especialmente concebido para equipar servidores, pois nestes
ambientes o processamento é muito repetitivo, e por isso, o
cache mais rápido e em maior quantidade faz uma grande
diferença, Claro que não faz muito sentido pensar em
usar um desses para uso doméstico, justamente devido ao seu
alto preço.