http://www.ic.unicamp.br/~ducatte/mo401/1s2009/T2/089065-t2.pdf
http://pt.wikipedia.org/wiki/Microprocessador#Capacidade_de_processamento
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:
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.
Um mícron equivale a 1 milésimo de milímetro, ou a 1 milionésimo de metro.
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.
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.