Assim como em outras áreas, os computadores começaram como aparelhos rudimentares, que eram capazes de desempenhar apenas tarefas muito simples. Mesmo componentes básicos, como o HD e outros tipos de unidade de armazenamento foram introduzidos apenas muito mais tarde.
Estudar sobre a história da informática permite entender melhor como os PCs atuais funcionam, já que uma coisa é consequência da outra. Do ENIAC, construído em 1945, até os processadores modernos, tivemos um longo caminho. Este tutorial resume a história da informática, das válvulas e relês até o Athlon, lançado em 1999, passando pelos computadores das décadas de 50, 60 e 70, os primeiros computadores pessoais e a era dos processadores modernos, que começou com o 386.
A história da informática nos remete ao final do século XIX. Na época dos nossos tataravôs, os computadores já existiam, apesar de extremamente rudimentares. Eram os computadores mecânicos, que realizavam cálculos através de um sistema de engrenagens, acionado por uma manivela ou outro sistema mecânico qualquer. Esse tipo de sistema, comum na forma de caixas registradoras, predominou até o início da década de 70, quando as calculadoras portáteis se popularizaram.
No final do século XIX, surgiu o relê, um dispositivo eletromecânico, formado por um magneto móvel, que se deslocava unindo dois contatos metálicos. O relê foi muito usado no sistema telefônico, no tempo das centrais analógicas. Nas localidades mais remotas, algumas continuam em atividade até os dias de hoje.

relê
Os relês podem ser considerados como uma espécie de antepassados dos transístores. Suas limitações eram o fato de serem relativamente caros, grandes demais e, ao mesmo tempo, muito lentos: um relê demora mais de um milésimo de segundo para fechar um circuito.
Apesar disso, os relês são usados até hoje em alguns dispositivos. Um exemplo são os modems discados, onde o relê é usado para ativar o uso da linha telefônica, ao discar. Eles são usados também em estabilizadores e nobreaks (geralmente nos modelos de baixo custo), onde são os responsáveis pelos "clicks" que você ouve durante as variações de tensão.
O fato de usar relês e fazer barulho, não é um indício de qualidade do estabilizador ou nobreak (muito pelo contrário), mas infelizmente muitas pessoas associam isso com o fato do aparelho estar funcionando, o que faz com que produtos de baixa qualidade continuem sendo produzidos e vendidos.
Voltando à história, também no final do século XIX, surgiram as primeiras válvulas. As válvulas foram usadas para criar os primeiros computadores eletrônicos, na década de 40.
As válvulas têm seu funcionamento baseado no fluxo de elétrons no vácuo. Tudo começou numa certa tarde quando Thomas Edson, inventor da lâmpada elétrica, estava brincando com a sua invenção. Ele percebeu que, ao ligar a lâmpada ao pólo positivo de uma bateria e uma placa metálica ao pólo negativo, era possível medir uma certa corrente fluindo do filamento da lâmpada até a chapa metálica, mesmo que não existisse contato entre eles. Havia sido descoberto o efeito termoiônico, o princípio de funcionamento das válvulas.
As válvulas já eram bem mais rápidas que os relês, atingiam freqüências de alguns megahertz, o problema é que esquentavam demais, consumiam muita eletricidade e se queimavam com facilidade. Era fácil usar válvulas em rádios, que utilizavam poucas, mas construir um computador, que usava milhares delas era extremamente complicado e caro.
Apesar de tudo isso, os primeiros computadores começaram a surgir durante a década de 40, naturalmente com propósitos militares. Os principais usos eram a codificação e a decodificação de mensagens e cálculos de artilharia.
té aqui, falei sobre os supercomputadores e sobre a evolução dos processadores, que evoluíram das válvulas para o transístor e depois para o circuito integrado. Vou agora falar um pouco sobre os primeiros computadores pessoais, que começaram a fazer sua história a partir da década de 70. Tempos difíceis aqueles :).
Como disse há pouco, o primeiro microchip, o 4004, foi lançado pela Intel em 1971. Era um projeto bastante primitivo, que processava instruções de 8 bits, através de um barramento rudimentar, que permitia transferir apenas 4 bits por ciclo, e operava a meros 740 kHz. Na verdade, o 4004 era tão lento que demorava 10 ciclos para processar cada instrução, ou seja, ele processava apenas 74 mil instruções por segundo (mesmo assim, ele era cerca de 15 vezes mais rápido que o ENIAC). Hoje em dia esses números parecem piada, mas na época era a última palavra em tecnologia. O 4004 permitiu o desenvolvimento das primeiras calculadoras eletrônicas portáteis.
Pouco tempo depois, a Intel lançou um novo processador, que fez sucesso durante muitos anos, o 8080. Ele já era um processador de 8 bits e operava a incríveis 2 MHz: "Ele é capaz de endereçar até 64 KB de memória e é rápido, muito rápido!" como dito num anúncio publicitário do Altair 8800 que, lançado em 1974, é considerado por muitos o primeiro computador pessoal da história.
O Altair era baseado no 8080 da Intel e vinha com apenas 256 bytes de memória, realmente bem pouco, mesmo para os padrões da época. Estava disponível também uma placa de expansão para 4 KB. Em teoria, seria possível instalar até 64 KB, mas o custo tornava o upgrade inviável.
No modelo básico, o Altair custava apenas 439 dólares, na forma de kit (onde você precisava soldar manualmente todos os componentes). Em valores corrigidos, isso equivale a quase 4.000 dólares, mas na época esse valor foi considerado uma pechincha, tanto que foram vendidas 4.000 unidades em 3 meses, depois de uma matéria da revista Popular Eletronics.
Esse "modelo básico" consistia nas placas, luzes, chips, gabinete, chaves e a fonte de alimentação, junto, claro, com um manual que ensinava como montar o aparelho. Existia a opção de comprá-lo já montado, mas custava 182 dólares (da época) a mais.
Em sua versão básica, o Altair não tinha muita utilidade prática, a não ser a de servir como fonte de aprendizado de eletrônica e programação. Entretanto, pouco tempo depois, começaram a surgir vários acessórios para o Altair: um teclado que substituía o conjunto de chaves que serviam para programar o aparelho, um terminal de vídeo (bem melhor que ver os resultados na forma de luzes :), um drive de disquetes (naquela época ainda se usavam disquetes de 8 polegadas), placas de expansão de memória e até um modelo de impressora. Até mesmo Bill Gates (antes mesmo da fundação da Microsoft) participou, desenvolvendo uma versão do Basic para o Altair.
Se você tivesse muito dinheiro, era possível chegar a algo que se parecia com um computador moderno, capaz de editar textos e criar planilhas rudimentares. Algumas empresas perceberam o nicho e passaram a vender versões "completas" do Altair, destinadas ao uso em empresas, como neste anúncio, publicado na revista Popular Eletronics, onde temos um Altair "turbinado", com o terminal de vídeo, impressora, dois drives de disquete e 4 KB de memória:

O Altair serviu para demonstrar a grande paixão que a informática podia exercer e que, ao contrário do que diziam muitos analistas da época, existia sim um grande mercado para computadores pessoais.
Pouco depois, em 1976, foi fundada a Apple, tendo como sócios Steve Jobs (que continua ativo até os dias de hoje) e Steve Wozniak. Na verdade, a Apple só foi fundada porque o projeto do Apple I (desenvolvido pelos dois nas horas vagas) foi recusado pela Atari e pela HP. Uma frase de Steve Jobs descreve bem a história:
- Então fomos à Atari e dissemos: “Ei, nós desenvolvemos essa coisa incrível, pode ser construído com alguns dos seus componentes, o que acham de nos financiar?” Podemos até mesmo dar a vocês, nós só queremos ter a oportunidade de desenvolvê-lo, paguem-nos um salário e podemos trabalhar para vocês. Eles disseram não, fomos então à Hewlett-Packard e eles disseram “Nós não precisamos de vocês, vocês mal terminaram a faculdade”.
O Apple I não foi lá um grande sucesso de vendas, vendeu pouco mais de 200 unidades a 666 dólares (pouco mais de US$ 5000 em valores corrigidos) cada uma. Mesmo assim, os lucros sustentaram a Apple durante o primeiro ano, abrindo caminho para o lançamento de versões mais poderosas. Quem comprou um, acabou fazendo um bom negócio, pois hoje em dia um Apple I (em bom estado) chega a valer US$ 50.000.
Diferente do Altair, o Apple I era vendido já montado. A placa era vendida "pelada" dentro de uma caixa de papelão, sem nenhum tipo de gabinete, por isso era comum que os Apple I fossem instalados dentro de caixas de madeira feitas artesanalmente.
O Apple I era baseado no processador 6502, um clone do Motorola 6800, que era fabricado pela MOS Tecnology. Ele era um processador de 8 bits, que operava a apenas 1 MHz. Em termos de poder de processamento, o 6502 perdia para o 8080, mas isso era compensado pelos "espaçosos" 8 KB de memória, suficientes para carregar o interpretador BASIC (que ocupava 4 KB), deixando os outros 4 KB livres para escrever e rodar programas.
Uma das vantages é que o Apple I podia ser ligado diretamente a uma TV, dispensando a compra de um terminal de vídeo. Ele possuía também um conector para unidade de fita (o controlador era vendido separadamente por 75 dólares) e um conector proprietário reservado para expansões futuras:

Apple I
Naquela época, as fitas K7 eram o meio mais usado para guardar dados e programas. Os disquetes já existiam, mas eram muito caros.
Os grandes problemas das fitas K7 eram a lentidão e a baixa confiabilidade. No Apple I, os programas eram lidos a meros 1500 bits por segundo e em outros computadores o acesso era ainda mais lento, com de 250 a 300 bits. Era preciso ajustar cuidadosamente o volume no aparelho de som antes de carregar a fita e, conforme a fita se desgastava, era preciso tentar cada vez mais vezes antes de conseguir uma leitura sem erros.
Na época, existiam até programas de rádio que transmitiam softwares como parte da programação. O locutor avisava e em seguida "tocava" a fita com o programa. Os interessados precisavam ficar com o aparelho de som à mão para gravar a cópia. Esses programas de rádio foram a primeira rede de pirataria de softwares de que se tem notícia, décadas antes da popularização da internet. ;)

Fita K7 com o BASIC para o Apple I
O Apple I foi logo aperfeiçoado, surgindo então o Apple II, lançado em 1977. Esse sim fez sucesso, apesar do preço salgado para a época: US$ 1.298, que equivalem a quase 10.000 dólares em valores corrigidos.
O Apple II vinha com apenas 4 KB de memória, mas incluía mais 12 KB de memória ROM, que armazenava um interpretador BASIC e o software de bootstrap, lido no início do boot. Isso foi uma grande evolução, pois você ligava e já podia começar a programar ou a carregar programas. No Apple I, era preciso primeiro carregar a fita com o BASIC, para depois começar a fazer qualquer coisa.
O BASIC era a linguagem mais popular na época (e serviu como base para diversas linguagens modernas), pois tem uma sintaxe simples se comparado com o C ou o Assembly, utilizando comandos derivados de palavras do Inglês.
Este é um exemplo de programa em BASIC simples, que pede dois números e escreve o produto da multiplicação dos dois:
10 PRINT "MULTIPLICANDO"
20 PRINT "DIGITE O PRIMEIRO NUMERO:"
30 INPUT A
40 PRINT "DIGITE O SEGUNDO NUMERO:"
50 INPUT B
60 LETC=A*B
70 PRINT "RESPOSTA:", C
Este pequeno programa precisaria de 121 bytes de memória para rodar (os espaços depois dos comandos são ignorados, por isso não contam). Ao desenvolver programas mais complexos você esbarrava rapidamente na barreira da memória disponível (principalmente se usasse um ZX80, que tinha apenas 1 KB ;), o que obrigava os programadores a otimizarem o código ao máximo. Aplicativos comerciais (e o próprio interpretador BASIC) eram escritos diretamente em linguagem de máquina, utilizando diretamente as instruções do processador e endereços de memória, de forma a extraírem o máximo do equipamento.
Voltando ao Apple II, a memória RAM podia ser expandida até 52 KB, pois o processador Motorola 6502 era capaz de endereçar apenas 64 KB de memória, e 12 KB já correspondiam à ROM embutida. Um dos "macetes" naquela época era uma placa de expansão, fabricada pela recém formada Microsoft, que permitia desabilitar a ROM e usar 64 KB completos de memória.
Além dos jogos, um dos programas mais populares para o Apple II foi o Visual Calc, ancestral dos programas de planilha atuais:

Foto de um manual antigo que mostra a interface do Visual Calc
O Apple II já era bem mais parecido com um computador atual. Vinha num gabinete plástico e tinha um teclado incorporado. A versão mais básica era ligada na TV e usava o famigerado controlador de fita K7, ligado a um aparelho de som para carregar programas. Gastando um pouco mais, era possível adquirir separadamente uma unidade de disquetes.

Apple II
A linha Apple II se tornou tão popular que sobreviveu até o início dos anos 90, quase uma década depois do lançamento do Macintosh. O último lançamento foi o Apple IIC Plus, que utilizava um processador de 4 MHz (ainda de 8 bits) e vinha com um drive de disquetes de 3.5", já similar aos drives atuais.
Outra inovação dos Apple I e Apple II em relação ao Altair e outros computadores anteriores é o tipo de memória usada. O Apple I foi o primeiro a utilizar memórias DRAM, que é essencialmente a mesma tecnologia utilizada até hoje em pentes de memória.
Ao longo das primeiras décadas, a memória RAM passou por duas grandes evoluções. No ENIAC, não existia uma unidade de memória dedicada. Parte das válvulas eram reservadas para armazenar as informações que estavam sendo processadas. Não existia unidade de armazenamento, além dos cartões perfurados e as anotações feitas manualmente pelos operadores.
Na década de 50 surgiram as memórias core, um tipo antiquado de memória onde são usados anéis de ferrite, um material que pode ter seu campo magnético alterado através de impulsos elétricos, armazenando o equivalente a um bit 1 ou 0). Esses anéis de ferrite eram carinhosamente chamados de "donuts" (rosquinhas) e eram montados dentro de uma complexa rede de fios, que transportavam os impulsos elétricos usados para ler e escrever dados.
Cada anel armazenava apenas um bit, de forma que você precisava de 8.192 deles para cada KB de memória. Inicialmente a malha de fios era "tecida" manualmente, mas logo começaram a ser usadas máquinas, que permitiram miniaturizar bastante as estruturas.
Este é um exemplo de placa de memória core. Ela mede 11 x 11 cm (um pouco menor que um CD), mas armazena apenas 50 bytes:

Essas placas eram ligadas entre si, formando "pilhas" organizadas dentro de estruturas maiores. Imagine que, para atingir 1 MB de memória no início da década de 1960, você precisaria de quase 21 mil dessas plaquinhas.
Este é um exemplo de unidade de memória, construída usando placas de memória core, que está em exposição no museu no MIT. Apesar do tamanho, ela possui apenas 64 KB:

Por serem muito caras e precisarem de um grande número de circuitos de apoio, as memórias core ficaram restritas aos computadores de grande porte. O Altair já utilizava memórias "modernas" na forma de chips. Para ser exato, ele utilizava dois chips de 1024 bits (ou 128 bytes) cada um.
O Altair utilizava chips de memória SRAM (static RAM), que eram rápidos e confiáveis, porém muito caros. Na memória SRAM, são usados de 4 a 6 transístores para cada bit de dados (as do Altair usavam 4 transistores), o que multiplica o custo dos chips. Atualmente, as memórias SRAM são usadas nos caches L1 e L2 dos processadores, o tipo mais rápido e caro de memória que existe.
O Apple I inovou utilizando um "novo" tipo de memória, as DRAM (dynamic RAM), onde é usado um único transístor para cada bit de dados. Embora à primeira vista pareçam mais simples, os chips de memória DRAM são muito mais complicados de se trabalhar (principalmente se considerarmos as limitações da época), pois são capazes de armazenar os dados por apenas uma pequena fração de segundo. Para conservar os dados, eles precisam de um circuito de refresh, que lê e regrava os dados a cada 64 milissegundos (ou menos, de acordo com o projeto).
Apesar de todas as dificuldades, foi o uso de memórias DRAM no Apple I que permitiu que ele viesse com 8 KB de memória, custando pouco mais que um Altair, que vinha com meros 256 bytes. A partir daí, as memórias DRAM se tornaram norma, o que continua até os dias de hoje.
Voltando à história, em 1979 surgiu um outro modelo interessante, desta vez da Sinclair, o ZX80. Ele não era tão poderoso quanto o Apple II, mas tinha a vantagem de custar apenas 99 dólares (pouco mais de 400 em valores corrigidos). Ele foi o computador mais popular até então, com 100.000 unidades vendidas (entre 1979 e 1981), sem contar uma grande quantidade de clones, produzidos em diversos países ao longo da década de 80.
O ZX80 era baseado no NEC-780C, um clone do Z80, que operava a 3.25 MHz. Ele era relativamente poderoso para os padrões da época, mas aquecia bastante. Segundo as más línguas, ele foi o primeiro processador overclocado da história. :)
Para cortar custos, ele vinha de fábrica com apenas 1 KB de memória RAM, combinados com 4 KB de memória ROM que armazenavam o interpretador BASIC, usado pelo aparelho. Como em qualquer sistema popular da época, os programas eram armazenados em fitas K7 e ele era ligado diretamente na TV:

Considerando o preço, o ZX80 foi uma máquina surpreendente, mas claro, tinha pesadas limitações, mesmo se comparado com outras máquinas da época. Apesar de já vir com uma saída de vídeo, a resolução gráfica era de apenas 64x48, mesmo em modo monocromático, já que o adaptador de vídeo tinha apenas 386 bytes de memória. Existia também uma opção de modo texto (usada para programas em BASIC, por exemplo), com 32x24 caracteres.
O processador Z80 se tornou incrivelmente popular, superando as vendas de qualquer outro processador da história. Versões modernizadas do Z80 (que conservam o mesmo projeto básico, mas são produzidas com técnicas modernas de fabricação e trabalham a freqüências mais altas) fazem sucesso até hoje, sendo utilizadas em todo tipo de eletrônicos, incluindo impressoras, aparelhos de fax, controladores diversos, robôs de uso industrial, brinquedos, diversos tipos de calculadoras, videogames (incluindo o Game Boy e Game Boy color), diversos modelos populares de mp3players, entre inúmeros exemplos. Apesar de não ser nenhum campeão de velocidade, o Z80 é um chip extremamente barato e fácil de programar, já que todos os seus truques são bem conhecidos e documentados.
Aqui no Brasil tivemos os TK80 e os TK82 da Microdigital, além do NE-Z80 da Prológica, produzidos na época da reserva de mercado. Eles concorriam com os computadores compatíveis com os Apple, como o AP II, Exato, Craft II e Magnex M10. A linha CP (200, 300, 400 e 500) da Prológica era baseada em chips Z80 e havia também os clones da linha MSX, como os Expert 1.0 e Expert Plus.
A reserva de mercado estagnou o desenvolvimento tecnológico do país, de forma que clones de computadores de 8 bits, lançados há uma década atrás era tudo que nossa indústria conseguia produzir. Isso perdurou até 1992, quando a reserva de mercado foi abolida, permitindo a entrada de computadores importados. Em pouco tempo, todos esses computadores de 8 bits foram substituídos por PCs 386 e 486.
Concluindo nosso passeio pela década de 70, outro que não poderia deixar de ser citado é o Atari 800. Sim, apesar de ser mais vendido como um videogame, o Atari 800 também podia ser usado como um computador relativamente poderoso, chegando a ser adotado nos laboratórios de informática de algumas universidades. Ele foi o antecessor do Atari 2600, o videogame conhecido por aqui.
Ele vinha de fábrica com 16 KB de memória RAM, que podiam ser expandidos para até 48 KB, com mais 10 KB de memória ROM. O sistema operacional era o Atari-OS, uma versão do BASIC:

Atari 800
Originalmente, o sistema vinha apenas com a entrada para os cartuchos, com o sistema operacional ou jogos, mas era possível adquirir separadamente uma unidade de disquetes, que o transformavam num computador completo. Não existiram muitos programas para o Atari, já que o foco foram sempre os jogos. A principal função do Atari como computador era desenvolver programas em BASIC, por isso seu uso em escolas.
Com o final da reserva de mercado, em 1992, a importação de computadores voltou a ser permitida no Brasil, sem maiores restrições. Rapidamente, os computadores de 8 bits e os XT's de fabricação nacional foram substituídos por micros 386 e 486, e muita gente teve a chance de comprar o primeiro micro. Isto coincidiu justamente com o início da era 486, fazendo com que eles fossem vendidos em enorme quantidade aqui no Brasil. É por isso que ainda é relativamente comum ver micros 486 por aí, muitos ainda funcionando, mas é muito raro encontrar um 386 ou anterior.
Assim como outros processadores da época, o 486 era vendido encapsulado dentro de uma pastilha de cerâmica, que ao mesmo tempo protegia o processador e facilitava a dissipação do calor. Os contatos ficavam nas beiradas internas do processador e eram ligados aos pinos externos através de filamentos de ouro. Atualmente, são utilizados compostos plásticos resistentes em vez de cerâmica, e os contatos do processador são feitos através de minúsculos pontos de solda disponíveis na parte inferior do próprio wafer de silício.
Esta foto de divulgação da Intel mostra um close de um 486 aberto. Veja que, graças ao zoom, é possível distinguir os componentes do processador dentro da pastilha de silício:

O 486 possuía 1.2 milhões de transistores e era fabricado numa técnica de 1 micron. Isto significa que cada transístor media um milionésimo de centímetro. Como tínhamos 1.2 milhões deles, o die do processador tinha cerca de 120 milímetros quadrados. Para efeito de comparação, o 386 tinha apenas 275.000 transistores, quase 5 vezes menos.
Esse brutal aumento de complexidade pode ser justificado por três inovações introduzidas pelo 486. Em primeiro lugar, ele usa um co-processador aritmético integrado, ao invés de um chip separado, como no 386. Em segundo, ele incorpora 8 KB de cache ultra-rápido diretamente no processador, complementando o cache mais lento disponível na placa-mãe. O cache interno passou a ser chamado de cache L1 (level 1, ou nível 1) e o cache da placa-mãe, de cache L2.
O cache L1 integrado se tornou um item de série em todos os processadores a partir do 486, pois melhora de forma considerável o desempenho do processador, oferecendo acesso instantâneo aos dados que estão sendo processados.
Mesmo em casos em que o cache L2 opera à mesma freqüência no processador (como no 486 DX-33, onde a placa-mãe também trabalhava a 33 MHz, ou nos processadores atuais, onde o cache L2 também é integrado ao processador) existe uma grande diferença nos tempos de acesso dos caches L1 e L2. Enquanto (nos processadores atuais) o cache L1 trabalha sempre com tempos de latência de 2 ou 3 ciclos, o L2 trabalha com latência de 7 ciclos ou mais e é acessado através de um barramento mais estreito.
Voltando ao 486, foi introduzido também o processamento de instruções em etapas, recurso que é utilizado até os dias de hoje. A unidade de execução do 486 é composta por um pipeline de 5 estágios, que possuem funções distintas. Cada instrução passa sucessivamente por cada um dos 5 estágios, sendo que cada um deles faz seu trabalho em apenas um ciclo, passa a instrução adiante e recebe outra. Poderíamos fazer uma analogia com uma linha de produção, que passa a ter 5 trabalhadores em vez de um.
O uso do pipeline trouxe duas vantagens. A primeira é que muitas instruções complexas, que consumiam vários ciclos do 386, passaram a ser executadas numa única passagem. A segunda é a redução do trabalho feito em cada estágio, o que permite que o processador seja capaz de atingir freqüências mais altas.
O 486 foi vendido em três versões: o 486DX (a versão completa), o 486SX (uma versão de baixo custo, sem o co-processador aritmético) e o 486SL (uma versão de baixo consumo, destinada a notebooks). O 486SX foi relativamente popular no começo, devido ao custo mais baixo, mas ele acabou sendo logo descontinuado, de forma que o 486DX tornou-se rapidamente a versão mais popular.
Os 486 (a partir do DX-33) foram também os primeiros processadores Intel a utilizarem coolers. Naquela época, eram usados dissipadores com menos de um centímetro de altura e exaustores minúsculos. Conforme os processadores passaram a dissipar cada vez mais calor, os coolers foram crescendo na mesma proporção, até chegar às monstruosidades que vemos atualmente ;). Aqui temos um cooler para 486 em comparação com um cooler low-end atual, dos mais baratos:

Como disse, esse é apenas um cooler low-end, que pode ser usado em processadores AMD de até 1.8 GHz. Coolers para processadores dual core, ou voltados para quem deseja fazer overclock são muito maiores e mais pesados, com exaustores maiores, bases de cobre e hot-pipes, como este Arctic Freezer Pro:

Exemplo de cooler que combina base de cobre, dissipador de alumínio e hot-pipes
O cobre é capaz de absorver quantidades maiores de calor que o alumínio, mas em compensação é mais caro e mais difícil de se trabalhar. O alumínio, por sua vez, permite criar lâminas mais finas, que facilitam a dissipação do calor. Por isso, é comum que os coolers atuais utilizem bases de cobre e dissipadores de alumínio.
Os hot-pipes são barras de cobre, maciças, ou contendo fluído, que permitem "transportar" o calor da base do cooler para o dissipador. Os hot-pipes são muito comuns em notebooks, onde o cooler é montado "na horizontal", com a base de um lado, o exaustor do outro e dois ou mais hot-pipes interligando as duas peças, como neste Toshiba A45:

Hot-pipes utilizados no dissipador de um Toshiba A45
Mais recentemente, os hot-pipes passaram a ser usados também para criar "links" entre os diferentes componentes da placa-mãe, permitindo que eles sejam resfriados de forma conjunta, a partir de um único cooler, ou através de um conjunto de dissipadores passivos.
Na foto a seguir temos um exemplo de uso, em uma placa Asus P5B Deluxe, onde um hot-pipe é utilizado para ligar o dissipador da ponte norte do chipset e o dissipador instalado sobre os reguladores de tensão da placa. Dessa forma, o fluxo de ar gerado pelo cooler do processador acaba resfriando de forma conjunta os dois componentes:

Hot-pipes interligando o dissipador da ponte norte e reguladores de tensão
em uma Asus P5B Deluxe
De uma forma geral, os fabricantes de placas-mãe não gostam de utilizar coolers ativos em suas placas, pois eles aumentam o índice de defeitos. Com o tempo, todo cooler acumula poeira e passa a girar mais lentamente, até parar completamente. Quando isso acontece, a placa passa a superaquecer e travar, o que prejudica a imagem do fabricante. Além disso, coolers adicionais aumentam o nível de ruído do equipamento, aumentam (embora pouco) o consumo elétrico e assim por diante. Soluções de dissipação passiva como essa da Asus P5B são cada vez mais populares, já que aproveitam o grande fluxo de ar gerado pelo cooler do processador.
Finalmente, temos os water coolers, que utilizam água ou outro líquido refrigerante no lugar do ar. O líquido é bombeado dentro do sistema, passando pelo water block (o módulo que fica sobre o processador, substituindo o cooler) e em seguida pelo radiador, onde é resfriado.
Os water coolers são em geral mais eficientes que os coolers tradicionais, mas são sistemas muito caros, destinados a entusiastas. Um "meio termo" entre os coolers tradicionais e os water coolers são os water coolers self-contained, onde todos os componentes, incluindo a bomba, radiador, water-block e o reservatório para o fluído são combinados na forma de um design bastante compacto, de tamanho similar ao de um cooler tradicional:

Evercool Silver Night, exemplo de water cooler self-contained
Voltando ao tema inicial, outra inovação introduzida pelo 486 foi a multiplicação de clock, onde o processador trabalha numa freqüência mais alta que a placa-mãe. Isto parece natural hoje em dia, mas na época causou espanto.
Graças a todas as inovações, as versões iniciais do 486 eram capazes de operar a 50 MHz ou mais. Por questões estratégicas, a Intel optou por lançar versões iniciais de 25 e 33 MHz, que funcionavam bem nas placas da época. Quando, pressionada pelos concorrentes, a intel decidiu gastar os cartuchos e lançar um 486 operando a 50 MHz, se viu num beco sem saída, pois na época não existia tecnologia para produzir uma placa-mãe capaz de trabalhar estavelmente a 50 MHz.
A solução foi incluir um circuito simples, que fazia com que o processador trabalhasse ao dobro da freqüência da placa-mãe. Surgiu então o 486 DX-2 50, seguido pelo DX-2 66. Pouco depois, a Intel introduziu uma nova técnica de fabricação, com transistores de 0.6 micron, e foi capaz de lançar o 486 DX-4 100, que trabalha ao triplo da freqüência da placa-mãe:
| Processador | placa-mãe | Multiplicador |
| 486 25 MHz | 25 MHz | 1x |
| 486 33 MHz | 33 MHz | 1x |
| 486DX-2 50 MHz | 25 MHz | 2x |
| 486DX-2 66 MHz | 33 MHz | 2x |
| 486DX-2 80 MHz | 40 MHz | 2x |
| 486DX-4 75 MHz | 25 MHz | 3x |
| 486DX-4 100 MHz | 33 MHz | 3x |
| 486DX-4 120 MHz | 40 MHz | 3x |
O 486DX-4 trouxe um complicador adicional: o uso de 3.3v de tensão, ao invés dos 5v usados pelos processadores anteriores. Os fabricantes passaram a produzir placas compatíveis com toda a família, onde o ajuste da freqüência da placa-mãe, multiplicador e tensão usada pelo processador eram configurados através de jumpers.
Isto continuou durante toda a era Pentium 1, fazendo com que os manuais de placas viessem com longas tabelas com as opções disponíveis, como neste exemplo, de uma placa TX Pro (para Pentium 1):

Exemplo de tabela de configuração de jumpers, item de série nos manuais de placas antigas
Com isso, surgiu também a possibilidade de fazer overclock do processador, usando uma freqüência ou multiplicador maior que o nominal. Era muito comum usar um 486DX-2 66 a 80 MHz ou um 486DX-4 100 a 120 MHz, aumentando a freqüência da placa-mãe de 33 para 40 MHz. Obviamente, fazer overclock aumenta o consumo e o aquecimento do processador (exigindo muitas vezes o uso de um cooler mais parrudo), além da possibilidade de redução da vida útil. Mesmo assim, ele se tornou incrivelmente popular, por permitir aumentar o desempenho do equipamento a custo zero.
A partir das placas para Pentium II, os ajustes passaram a ser feitos através do setup, ao invés de jumpers. A placa detecta automaticamente as configurações usadas pelo processador, mas você pode alterar as configurações manualmente para fazer overclock. Se, por acaso, você exagerar na dose e o micro não der mais boot, use o jumper do CMOS (o único ainda encontrado em todas as placas atuais) para limpar o CMOS, restaurando as configurações originais.
Aqui temos um exemplo de overclock (em uma placa moderna) feito através das configurações do setup. Neste exemplo, a placa foi configurada para operar a 148 MHz (em vez de 133), resultando em um aumento proporcional da freqüência do processador:

Overclock através do Setup
Mesmo depois do lançamento do Pentium 1, a plataforma 486 ainda teve uma sobrevida surpreendente graças aos processadores AMD 5x86, Cyrix Cx5x86 e ao Pentium overdrive da Intel, que serviam como opções de upgrade para quem tinha um 486DX-2 ou um 486DX-4, prometendo um desempenho similar ao dos processadores Pentium low-end.
A grosso modo, um 486 possui um desempenho duas vezes superior ao de um 386 do mesmo clock. Isto significa que mesmo um 486SX de 25 MHz ganha fácil de um 386 de 40 MHz. Por outro lado, um 486 apresenta apenas 50 a 60% do desempenho de um Pentium 1 do mesmo clock. Isto significa que mesmo um Pentium 60 consegue superar um 486 DX4-100.
O AMD 5x68 é um 486 "modernizado", lançado pela AMD no final de 1995. Ele vinha com 16 KB de cache L1, que operava em modo write-back (onde o cache trabalha cacheando tanto as operações de leitura, quanto as de escrita) e era fabricado numa técnica de produção de 0.35 micron, o que permitia que ele trabalhasse a 133 MHz (4x 33 MHz) e também o tornava menor e mais barato de se produzir. Na época, ele era o processador mais barato do mercado e permitia montar micros usando placas para 486, que também eram bem mais baratas. Isso o tornou especialmente popular aqui no Brasil.
Apesar do clock de 133 MHz, o 5x86 concorria com o Pentium 75 em termos de desempenho. Era comum que o 5x68 fosse overclocado para 160 MHz (aumentando a freqüência da placa-mãe de 33 para 40 MHz), resultando em um desempenho próximo ao de um Pentium 90.
Concorrendo com o 5x86, a Cyrix lançou o Cx5x86, um processador que utilizava uma arquitetura bastante similar ao Pentium da Intel, mas usava placas para 486. A versão de 100 MHz rivalizava com o 5x86 de 133 MHz, enquanto a de 120 MHz conseguia superá-lo com uma certa margem. O maior problema é que o Cx5x86 era bem mais caro, por isso acabou não sendo uma opção muito popular.
Completando o time, a Intel lançou o Pentium overdrive, um Pentium adaptado para utilizar as placas para 486, que existia em versões de 63 e 83 MHz. Apesar da diferença de clock, o overdrive de 83 MHz conseguia competir de igual para igual com o 5x86 de 133 MHz, com o vencedor variando de acordo com a aplicação usada. Apesar disso, o AMD 5x86 acabou sendo mais popular devido à questão do custo.
Muitas placas-mãe desta época vinham sem memória cache, trazendo no lugar um encaixe marrom, ao lado do processador, que permitia encaixar um módulo COAST (cache on a stick), com 128, 256 ou 512 KB de cache. Essas placas são bem diferentes da primeira safra de placas para 486, pois já possuem slots PCI e utilizam pentes de memória de 72 vias, assim como as placas para Pentium 1.

Placa mãe para 486, com um 5x86 e o módulo COAST instalado
Com o Pentium, a Intel tentou solucionar os principais gargalos de desempenho da plataforma anterior, mudando vários aspectos não apenas do processador, mas também nas placas-mãe para ele.
A primeira mudança trazida pelo Pentium foi o aumento da quantidade de cache L1, que passou a ser de 16 KB, dividido em dois blocos de 8 KB. Isso melhorou a eficiência do cache (em relação ao cache unificado do 486), permitindo que o processador consiga acessar instruções e os dados necessários (para executá-las) simultaneamente, em vez de precisar fazer duas operações separadas.
Além do aumento no tamanho, o cache passou a ser acessado através de um barramento interno de 512 bits (256 bits para o cache de dados e mais 256 para o de instruções), contra apenas 128 bits no 486. Assim como no 5x86 da AMD, passou também a ser utilizado cache write-back, que também cacheava as operações de escrita. O cache usado no 486 cacheia apenas as operações de leitura, o que permite ao processador ganhar tempo ao ler dados, mas não ajuda na hora de gravar, situação onde o processador tinha que esperar pela memória RAM.
Com a popularização dos games e aplicativos 3D de uma forma geral, o desempenho do processador em ponto flutuante passou a ser cada vez mais importante. Combinado com as melhorias no cache, foi desenvolvido um co-processador aritmético cerca de 5 vezes mais rápido que o usado no 486. O co-processador do Pentium era tão rápido (comparado com outros processadores da época), que mesmo um K6-2 perdia para um Pentium da mesma freqüência em jogos e aplicativos muito dependentes de cálculos de ponto flutuante.
O Pentium também foi o primeiro processador Intel a usar uma arquitetura superescalar. Internamente, o Pentium possui duas unidades de execução, com a inclusão de um circuito de branch prediction, encarregado de dividir as instruções entre as duas unidades e antecipar o processamento de instruções, de forma a manter ambas ocupadas na maior parte do tempo.
Essa tendência de "executar mais por ciclo de clock" continua até os dias de hoje, com os processadores incluindo um número cada vez maior de unidades de execução, mais memória cache, circuitos aprimorados de branch prediction, sem falar nos processadores dual-core e quad-core. Mesmo que existisse um 486 ou Pentium capaz de operar a 2 ou 3 GHz, o desempenho seria ridiculamente inferior ao de um processador atual operando na mesma freqüência.

Pentium 133, com o encapsulamento de cerâmica
Acompanhando as melhorias no processador, foram feitas mudanças nas placas-mãe, de forma a melhorar o desempenho de acesso à memória. Em primeiro lugar, as placas para Pentium operam a freqüências mais altas: 60 ou 66 MHz, de acordo com o processador usado. Embora as memórias FPM e EDO usadas na época não fossem capazes de acompanhar a mudança (elas passaram a trabalhar usando tempos de espera), o aumento da freqüência permitiu usar chips de cache L2 mais rápidos (já que eles operavam na freqüência da placa-mãe). Além disso, o Pentium passou a acessar a memória a 64 bits, ao invés de 32 bits como no 486, o que efetivamente dobrou a velocidade do barramento com a memória.
Como os pentes de 72 vias usados na época eram módulos de 32 bits, era necessário utilizá-los aos pares, sempre 2 ou 4 módulos, sendo que os módulos dentro de cada par deveriam ser idênticos. Os pentes de 72 vias são antecessores diretos dos módulos DIMM usados atualmente.
Na foto a seguir temos uma comparação entre um módulo DIMM, um módulo de 72 vias e um antigo módulo de 30 vias, dos usados nos micros 386 e nos primeiros 486:

Os processadores Pentium existiram em versões de 60 a 200 MHz, sempre com a placa-mãe operando a 60 ou 66 MHz e usando um multiplicador de 1x, 1.5x, 2x, 2.5x ou 3x para atingir a freqüência anunciada. Era comum fazer overclock aumentando a freqüência da placa-mãe para 75 MHz, opção oferecida pela maioria das placas soquete 7 da época.
Assim como na época dos micros 486, as placas-mãe para processadores Pentium (com exceção de placas muito antigas) suportam várias freqüências de barramento e vários multiplicadores distintos. Na maioria dos casos é possível configurar a placa-mãe para utilizar qualquer processador da família.
Em 1996 a Intel lançou o Pentium MMX, que foi o integrante final da família Pentium 1. Ele chegou ao mercado acompanhado de uma forte campanha de marketing, que divulgava as novas instruções MMX como a maior invenção da humanidade depois da batata frita ;). As instruções MMX permitiam que até 4 instruções simples fossem combinadas numa única instrução complexa, de forma a serem processadas em um único ciclo de clock. A Intel esperava que elas fossem capazes de multiplicar o desempenho do processador em aplicativos multimídia, principalmente em compressão e descompressão de áudio, mas no final acabou dando com os burros n'agua.
As instruções MMX continuam disponíveis nos processadores atuais, mas nunca foram muito utilizadas devido a uma combinação de fatores. O primeiro é que elas só ajudam em algumas operações envolvendo números inteiros, enquanto a maioria dos aplicativos de multimídia e jogos utilizam predominantemente instruções de ponto flutuante. O segundo é que para tirar proveito delas, os aplicativos precisam ser manualmente otimizados e não existe nada que os programadores odeiem mais do que ficar otimizando seus programas para cada conjunto de instruções existente. O terceiro é que, mesmo em aplicativos otimizados, elas não conseguem fornecer o ganho de desempenho esperado e, como se não bastasse, logo surgiram conjuntos mais completos e adequados de instruções multimídia, como o 3D-Now (introduzido pela AMD no K6-2) e o SSE (desenvolvido pela Intel e usado a partir do Pentium III).
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 freqüência, mesmo nos aplicativos sem otimização. Lembre-se de 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.
O MMX foi lançado em versões de 200 e 233 MHz, ambas compatíveis com a grande maioria das placas soquete 7 existentes. Ele também foi o primeiro processador Intel a usar um encapsulamento plástico com um dissipador metálico, ao contrário da cerâmica usada nos anteriores. Essa mudança foi na verdade bastante benéfica, pois o dissipador metálico é muito mais eficiente na dissipação do calor do que a cerâmica, o que melhora a eficiência do cooler.

Pentium MMX, com o encapsulamento PGA
Na foto a seguir temos uma VX Pro, uma placa bem comum no final da era Pentium. Ela suporta todos os processadores da família, até o 233 MMX. Note que ela inclui três slots ISA, pois na época os modems e placas de som ISA ainda eram bastante comuns:

Além dos 4 soquetes para pentes de 72 vias, ela possui também dois soquetes para módulos DIMM, mas eles não servem para muita coisa, pois o chipset so é capaz de endereçar chips de memória de até 2 MB, permitindo que fossem utilizados módulos de no máximo 32 MB. Mesmo que você tentasse instalar um módulo de maior capacidade, a placa só reconhecia 16 ou 32 MB, de acordo com o número de chips no módulo.
Durante a era Pentium, tivemos também os chips K5 e K6 (da AMD), o Cyrix 6x86 e o IDT C6, que eram compatíveis com as mesmas placas, mas que possuíam uma fatia relativamente pequena do mercado. A Cyrix foi comprada pela VIA em 1999, que usou sua tecnologia para desenvolver os processadores VIA C3 e VIA C7, que são vendidos atualmente. A IDT era uma fabricante menor, que desapareceu sem deixar rastros. Das antigas concorrentes, sobrou a AMD, que, com o lançamento do Athlon 64 e derivados, chegou a superar a Intel em volume de processadores vendidos em 2005 e 2006.
Na época, a AMD ainda era uma empresa menor, que enfrentava problemas financeiros depois das fracas vendas dos processadores K5 e K6. Para completar, a Intel passou a utilizar um barramento proprietário no Pentium II, impedindo que a AMD desenvolvesse processadores capazes de utilizar as placas-mãe para ele.
Sem escolha, a AMD apostou tudo no K6-2, um processador relativamente poderoso, que mantinha compatibilidade com as placas soquete 7. Em termos de processamento de inteiros, o K6-2 competia diretamente com um Pentium II do mesmo clock, o maior problema continuava sendo o co-processador aritmético, que era até duas vezes mais lento.

AMD K6-2, com o encapsulamento CPGA
Para reduzir a diferença, a AMD investiu no desenvolvimento de um novo conjunto de instruções, o 3D-Now, formado por 27 novas instruções, com o objetivo de agilizar o processamento 3D, sobretudo em jogos. O 3D-Now só ajudava em aplicativos otimizados, mas ao contrário do MMX ele era realmente eficiente, o que levou muitas empresas a otimizarem seus títulos para ele. O K6-2 também incorporou, sem muito alarde, o suporte às instruções MMX.
Junto com a AMD, fabricantes de chipsets, como a VIA, SiS e Ali foram prejudicados pela decisão da Intel, pois não podiam desenvolver chipsets para o Pentium II sem o pagamento de licenças, o que continua até os dias de hoje. Isto causou uma certa "revolta" entre os fabricantes, que passaram a apoiar a AMD, desenvolvendo placas soquete 7 aprimoradas, que suportavam barramento de 100 MHz, utilizavam pentes de memória DIMM e possuíam slots AGP. Essas placas passaram a ser chamadas de placas super 7 e, junto com os processadores K6-2, se tornaram uma opção de baixo custo para quem não queria gastar com um Pentium II.
Esta é uma Asus P5A-B, uma placa super 7 bastante comum na época. Veja que ela possui slot AGP e três soquetes para pentes de memória DIMM, que permitem o uso de módulos até 256 MB. Ela oferecia suporte a toda a família K6-2, até o K6-2 550, além de manter suporte aos processadores antigos. A qualidade da placa não era das melhores, sobretudo se comparada com placas mais caras para o Pentium II, mas ela era barata o que para muitos era argumento suficiente:

Asus P5A-B, exemplo de placa super 7
Uma das prioridades da AMD foi manter a compatibilidade com as placas soquete 7 antigas. Por isso, optaram por vender o K6-2 com o multiplicador destravado. Isso permitia instalar processadores K6-2 em placas antigas, que trabalhavam a apenas 66 MHz, desde que a placa suportasse a tensão de 2.2v (ou 2.4v nas versões mais recentes) utilizada pelo processador. Um K6-2 de 300 MHz podia ser utilizado tanto numa placa-mãe configurada para operar a 100 MHz com multiplicador de 3x quanto em uma placa configurada para operar a 66 MHz com multiplicador de 4.5x.
Naturalmente, o desempenho era melhor na placa de 100 MHz, pela diferença na freqüência de operação da memória e do cache L2, mas o esforço em manter compatibilidade com as placas antigas foi louvável.
Em 1999 a AMD lançou uma última atualização para a plataforma K6, na forma do K6-3, o primeiro processador AMD a trazer cache L2 integrado ao processador. Além de manter os mesmos 64 KB de cache L1 do K6-2, o K6-3 incorporou 256 KB de cache L2 full-speed (operando na mesma freqüência do processador), assim como os processadores atuais. Ele também aproveitava o cache disponível nas placas soquete 7, que passava a funcionar como um cache L3, resultando em mais um pequeno ganho.
Embora fosse perceptivelmente mais rápido que um K6-2 do mesmo clock, o K6-3 era mais caro e foi lançado no finalzinho da era soquete 7, quando a plataforma já caminhava para a obsolência. Por causa disso, ele acabou não fazendo muito sucesso, sendo substituído rapidamente pelos Athlons e Durons.
Como disse, ao desenvolver o Pentium II, a Intel optou por desenvolver um barramento proprietário (o GTL+), de forma a dificultar a vida dos concorrentes. Inicialmente a AMD continuou usando as placas soquete 7, mas em seguida respondeu com o EV6, um barramento próprio (na verdade desenvolvido pela Alpha Digital e licenciado pela AMD), utilizado pelos processadores Athlon e Duron. A partir daí, nunca mais tivemos um barramento padrão, que permitisse a criação de placas-mãe com suporte a processadores dos dois fabricantes, como na época das placas soquete 7.
As primeiras versões do Pentium II utilizavam o encapsulamento SEPP (Singled Edge Processor Package), um formato dispendioso, em que ao invés de um pequeno encapsulamento de cerâmica, temos 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 videogame, onde o cooler era instalado na parte de trás. O encaixe para ele foi batizado de slot 1:

Pentium II, com o encapsulamento SEPP
O Pentium II inclui 512 KB de cache L2, que opera à metade da freqüência do processador (num Pentium II 400, por exemplo, o cache L2 opera a 200 MHz) e por isso é bem mais rápido que o cache usado nas placas soquete 7, que opera a apenas 66 ou 100 MHz. Com o cache movido para dentro do processador, as placas deixaram de trazer cache externo, o que continua até os dias de hoje.
O único processador para micros PC a utilizar cache L3 instalado na placa-mãe foi mesmo o K6-3. Existiram séries de processadores Intel, como o Pentium 4 Extreme Edition (lançado em 2005) e algumas versões do Intel Xeon que também utilizavam cache L3, mas nesses casos o cache era instalado dentro do encapsulamento do processador, e não na placa-mãe. Durante muito tempo, a idéia de utilizar cache L3 acabou sendo abandonada, em favor de caches L2 cada vez maiores, mas tudo indica que ele retornará no AMD Phenom e no Intel Nehalem.
Além do cache L2, o Pentium II manteve os 32 KB de cache L1 (dividido em dois blocos de 16 KB para dados e instruções) do MMX. Abrindo o cartucho, é possível ver os dois grandes chips de cache L2 instalados próximos ao die do processador:

Pentium II com core Klamath, sem a cobertura plástica
O Pentium II foi produzido em duas arquiteturas diferentes. As versões de até 300 MHz utilizaram a arquitetura Klamath, que consistia em uma técnica de fabricação de 0.35 micron, muito parecida com a utilizada nos processadores Pentium MMX. Nas versões a partir de 333 MHz foi utilizada a arquitetura Deschutes de 0.25 micron, que resultou em uma dissipação de calor muito menor, possibilitando o desenvolvimento de processadores mais rápidos. 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, quebrando a compatibilidade com as placas da geração anterior.
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 essa estratégia foi que a Intel passou a perder terreno rapidamente no mercado de PCs de baixo custo, principalmente para o K6-2.
Para preencher a lacuna, a Intel lançou o Celeron, que inicialmente era uma simples versão castrada do Pentium II, sem os chips de cache e o invólucro plástico. O Celeron original era muito lento, pois não possuía cache L2 algum, contando apenas com os 32 KB de cache L1.
O cache L2 é um componente extremamente importante nos processadores atuais, pois apesar de o desempenho 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 a 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 40% ou mais. Justamente por isso, além de perder feio para o Pentium II, o Celeron sem cache perdia até mesmo para processadores mais antigos.
Essa primeira safra foi rapidamente substituída pelo Celeron Mendocino, que trazia 128 KB de cache L1 interno (full-speed), que resolveu o problema da performance. O Mendocino foi produzido em versões de 300 a 533 MHz, sempre utilizando barramento de 66 MHz. Além de possírem um desempenho próximo ao de um Pentium II do mesmo clock (o cache do Pentium II é maior, porém mais lento), as versões de 300, 333 e 366 MHz permitiam overclocks de 50%, atingindo respectivamente 450, 500 e 550 MHz com boa estabilidade. Não poderia ser mais simples: bastava investir num cooler de boa qualidade e instalar o Celeron Mendocino em uma placa-mãe configurada para operar a 100 MHz.
O Celeron Mendocino foi também o primeiro processador a utilizar o soquete 370, que mais tarde seria utilizado pelo Pentium III Coppermine e demais processadores da família. Foram produzidos também adaptadores, que permitiam usar processadores soquete 370 em placas slot 1 compatíveis:

Celeron Mendocino instalado em uma placa slot 1 usando o adaptador
Em fevereiro de 1999 foi lançado o Pentium III. A versão inicial (que utilizava o core Katmai) não trazia grandes mudanças: era basicamente um Pentium II, que utilizava o encapsulamento SEPP, mantinha o uso do cache externo e operava a 500 MHz. A novidade foi a inclusão das instruções SSE que, assim como as instruções 3D-Now da AMD, eram voltadas para aplicativos multimídia e 3D.
Pouco depois, em outubro de 1999, foi lançado o Pentium III Coppermine, uma versão aprimorada, produzida numa técnica de 0.18 micron, que trazia 256 KB de cache L2 integrado (operando na mesma freqüência do processador) e abandonou o formato SEPP em favor do FC-PGA, destinado a uso em conjunto com as placas-mãe soquete 370.
A mudança decretou a morte do slot 1, que não voltou a ser utilizado por outros processadores Intel. Apesar disso, as versões do Pentium III PC-PGA que utilizavam bus de 100 MHz ainda podiam ser usadas na maioria das placas slot 1 antigas, com a ajuda do adaptador (muitas placas precisavam de uma atualização de BIOS).

Pentium III, com o encapsulamento FC-PGA
Não demorou para que a Intel lançasse também uma nova versão do Celeron, baseada na mesma arquitetura, dando continuidade à tradição de overclocks gigantescos. O Celeron Coppermine nada mais era do que um Pentium III com metade do cache L2 desativado (128 KB), que utilizava bus de 66 MHz (em vez de 100 ou 133, como as diferentes versões do Pentium III). Embora fosse originalmente mais lento que um Pentium III do mesmo clock, o Celeron Coppermine de 600 MHz podia tranquilamente operar a 900 MHz, utilizando bus de 100 MHz, oferecendo um desempenho similar ao de um Pentium III 800 a uma fração do custo. Eu mesmo tenho um, funcionando até hoje. ;)
O Celeron acabou se revelando um bom negócio para a Intel, pois permitia aproveitar processadores Pentium III com defeitos na memória cache, que de outra forma iriam para o lixo.
Quando ocorre um defeito no cache, em geral apenas alguns poucos bits são afetados, normalmente bits fisicamente próximos. Antes de saírem de fábrica, todos os processadores são rigorosamente testados, e os que apresentam defeitos no cache são separados. O Pentium III foi projetado de tal maneira que o cache L2 era dividido em duas seções de 128 KB, que podiam ser desabilitadas individualmente (um processo irreversível). Como é usada apenas a metade "boa" do cache, o processador funciona perfeitamente e temos mais um consumidor satisfeito.
O Celeron Coppermine foi lançado em versões de até 950 MHz, sendo que a partir do Celeron 800 passou a ser utilizado bus de 100 MHz (que melhorou um pouco o desempenho do processador em relação aos antigos). O Pentium III passou a utilizar barramento de 133 MHz e foi lançado em versões de até 1.0 GHz, até ser substituído pelo Pentium 4.
Entre 2001 e 2002, já depois de descontinuar o Pentium III, a Intel produziu pequenas quantidades do Celeron Tualatin, uma versão aprimorada, produzida numa técnica de 0.13 micron e equipada com 256 KB de cache L2. O Tualatin existiu em versões de 1.0 e 1.4 GHz e era compatível com a maioria das placas soquete 370 para Pentium III (embora muitas precisassem de uma atualização de BIOS). Ele possuía um bom desempenho em relação ao Pentium 4 e era bastante econômico com relação ao consumo elétrico e aquecimento, mas a Intel optou por não levar o projeto adiante, com medo de prejudicar as vendas do Pentium 4.

Exemplar raro do Tualatin de 1.2 GHz
Uma questão interessante é que os processadores Pentium II e Pentium III são derivados do Pentium Pro, um processador destinado a workstations e servidores, lançado pela Intel em 1995, em versões de 150, 166, 180 e 200 MHz. Embora fosse contemporâneo do Pentium I, o Pentium Pro era baseado numa arquitetura completamente diferente (a plataforma P6), inspirada nos processadores RISC.
Em vez de processar diretamente todas as instruções complexas incluídas no conjunto x86, o Pentium Pro incluía unidades de execução capazes de processar apenas instruções simples, porém a uma grande velocidade, quase sempre uma instrução em cada unidade de execução, por ciclo de clock. Antes de chegarem às unidades de execução, as instruções complexas utilizadas pelos programas eram convertidas em instruções simples pelas unidades decodificadoras, incluídas no processador. O Pentium Pro incluía três unidades de execução e uma unidade decodificadora capaz de mantê-las ocupadas na maior parte do tempo.
Para completar, o processador incluía 256 KB de cache L2 full speed no mesmo encapsulamento do processador. Isto soa familiar não é? O Pentium Pro é muito similar a um Pentium III Coppermine, só que lançado 4 anos antes. Na época a Intel não possuía tecnologia para incluir o cache L2 diretamente no die do processador, por isso era utilizado um wafer separado, porém incluído no mesmo encapsulamento do processador. Isso fazia com que o Pentium Pro tivesse um formato retangular:

Interior de um Pentium Pro, com o chip de cache separado
Naturalmente, o Pentium Pro não possuía as instruções SSE, mas os ingredientes básicos já estavam presentes. Podemos dizer que tanto o Pentium II quanto o Pentium III são versões melhoradas do Pentium Pro, adaptadas ao mercado doméstico. Uma observação é que também existiram versões do Pentium Pro com 512 KB e 1 MB de cache, mas elas eram muito mais caras e por isso foram produzidas em pequenas quantidades.
Voltando à AMD, embora o K6-2 tenha dado combate ao Pentium II e às primeiras versões do Pentium III, as limitações da antiga plataforma soquete 7 limitavam o desempenho do processador. Outro problema é que o K6-2 era uma plataforma de baixo custo, que levava ao aparecimento de placas-mãe cada vez mais baratas e de qualidade cada vez pior. Os constantes problemas com as placas acabaram fazendo com que o K6-2 ficasse com má fama no mercado, embora o processador em si apresentasse um bom custo benefício.
Em 1999 a AMD finalmente conseguiu lançar o Athlon (na época também chamado de K7), uma plataforma completamente nova, que conseguiu solucionar os principais problemas associados ao K6-2. Apesar de toda a evolução, todos os processadores AMD lançados daí em diante, incluindo os Athlon 64 dual-core e quad-core continuam sendo baseados nessa mesma arquitetura.
As primeiras versões do Athlon utilizavam um formato de cartucho, muito similar ao usado pelo Pentium II, com chips de memória cache externos, operando à metade da freqüência do processador. As placas-mãe utilizavam o slot A, um conector similar ao usado pelo Pentium II, porém incompatível e com uma pinagem diferente.
O uso de cache externo atrapalhou o desempenho dessa versão inicial, principalmente se levarmos em conta que na época a Intel já vendia o Pentium III Coppermine, com cache full-speed, que era mais rápido e mais barato de se produzir. Para piorar, a AMD não conseguiu obter chips de memória cache capazes de operar a mais de 350 MHz, de forma que o divisor da freqüência do cache foi aumentando conforme lançava processadores mais rápidos.
As versões de até 700 MHz do Athlon slot A trazem cache L2 operando à metade da freqüência do processador. As versões de 750, 800 e 850 MHz trazem cache operando a apenas 2/5 da freqüência, enquanto nas versões de 900, 950 e 1 GHz o cache opera a apenas 1/3 da freqüência.

Athlon slot A, baseado na arquitetura K7
Essa cara e desajeitada versão inicial do Athlon foi rapidamente substituída pelo Athlon Thunderbird, que incorporou 256 KB de cache L2 full-speed e voltou a utilizar o formato soquete, dando início à era soquete A (soquete 462). Esse mesmo formato continuou sendo usado pelos Durons, Athlons XP e Semprons, até a introdução do Athlon 64, que passou a utilizar placas-mãe baseadas no soquete 754 ou 939.
O Duron substituiu o K6-2 como processador de baixo custo da AMD e prestou bons serviços, concorrendo com as diferentes versões do Celeron. Em todas as suas encarnações, o Duron possui apenas 64 KB de cache L2. Entretanto, ele conserva o massivo cache L1 de 128 KB do Athlon, o que cria uma configuração interessante, com mais cache L1 do que cache L2.
Assim como o Athlon, o Duron utiliza um sistema de cache "exclusivo", onde os dados armazenados no cache L1 são sempre diferentes dos armazenados no cache L2. O cache L1 do Celeron, por sua vez, armazena sempre cópias de informações já armazenadas no cache L2 de 128 KB. Graças a essa característica, o Duron acaba levando vantagem com relação ao cache, pois é capaz de armazenar um total de 196 KB de informações nos caches, contra apenas 128 KB no Celeron.
A versão inicial do Duron utilizava o core Spitfire (baseado no Athlon Thunderbird) e existia em versões de 600 a 950 MHz. Em seguida foi lançado o Duron Morgan (baseado no Athlon XP), que existiu em versões de até 1.3 GHz, quando foi substituído pelo Sempron.
As versões iniciais do Athlon Thunderbird utilizavam barramento de 100 ou 133 MHz, assim como o Pentium III. Entretanto, as versões seguintes (com core Thoroughbred e Barton) passaram a utilizar bus de 166 ou 200 MHz, memórias DDR e tensões mais baixas, quebrando a compatibilidade com as placas antigas. Com o uso de memória DDR, o barramento passa a realizar duas transferências por ciclo, por isso é comum que os fabricantes dobrem a freqüência na hora de divulgar as especificações, chegando aos 333 (166 x 2) ou 400 MHz (200 x 2).
Como citei anteriormente, a Intel patenteou o barramento GTL+ usados pelos processadores Pentium II em diante, assim como o slot 1 e o soquete 370, de forma que a AMD não podia utilizá-los em seus processadores. A AMD optou então por licenciar o barramento EV6, desenvolvido pela Alpha Digital. O EV6 possui uma vantagem importante sobre o barramento da Intel, que é o fato de ser um barramento ponto a ponto. Nele, cada processador tem seu barramento exclusivo de comunicação com o chipset, permitindo o desenvolvimento de placas para dois ou quatro processadores Athlon, trabalhando em SMP, cada um com o seu barramento exclusivo com a memória e outros componentes, resultando em um ganho considerável de desempenho em relação ao Pentium III. Embora a AMD não tenha conseguido tirar muito proveito deste recurso nos desktops, ele ajudou o Athlon a ganhar espaço nos servidores, onde máquinas com dois processadores são comuns.
A seguir temos uma foto que mostra como o Athlon é fisicamente. Essa foto foi cedida pela própria AMD e é bem interessante, pois ajuda a entender como os dados trafegam dentro do processador:

Veja que a foto está dividida em pequenos retângulos, cada um mostrando a área ocupada por cada componente do processador. Infelizmente tudo está em inglês, mas aqui vai uma breve legenda dos componentes mais importantes (na ordem em que cada componente aparece na ilustração, começando de cima)
Floating Point Execution Units: São as unidades de execução de ponto flutuante. Nada mais é do que a parte fundamental do coprocessador aritmético, fundamental em vários aplicativos.
Floating Point Control: Este componente controla a ordem em que as instruções serão executadas pelo co-processador aritmético, permitindo que as unidades de ponto flutuante fiquem ocupadas na maior parte do tempo.
Floating Point Scheduler: Armazena as próximas instruções que serão processadas pelo co-processador. Este componente é essencial para o trabalho do Floating Point Control.
64 Kbyte Data Cache: Os 128 KB de cache L1 do Athlon são divididos em dois blocos, 64 KB para dados e 64 KB para instruções. Esta divisão meio a meio é utilizada na maioria dos processadores atuais e melhora a velocidade de acesso, pois permite que os dois blocos sejam acessados simultaneamente. O Data Cache é a metade que armazena dados.
Integer Execution Unit: Composto pelas unidades de execução de inteiros, ele é o componente básico de qualquer processador. É aqui que são processadas as operações envolvendo números inteiros.
Instruction Control Unit: Circuito que controla o envio de instruções para as unidades de execução de inteiros. Também ordena as instruções, de forma que possam ser processadas mais rápido.
Bus Interface Units: É por aqui que os dados entram e saem do processador. Controla a comunicação do processador com o chipset e com os demais componentes do micro.
64 Kbyte Instruction Cache: É o segundo bloco do cache L1, o bloco que armazena instruções.
Branch Prediction: O circuito de Branch Prediction é um dos componentes mais importantes dos processadores atuais, responsável por organizar as instruções de forma a manter as unidades de execução do processador ocupadas. Além de procurar adiante no código por instruções que podem ser "adiantadas", ele "adivinha" o resultado de operações de tomada de decisão (levando em conta fatores como o resultado de operações similares executadas anteriormente), permitindo que o processador vá "adiantando o serviço" enquanto o resultado da primeira operação ainda não é conhecido. Como todo bom adivinho, ele às vezes erra, fazendo com que o processador tenha que descartar todo o trabalho feito. Apesar disso, o ganho é muito grande, pois nos processadores atuais o circuito de branch prediction acerta em mais de 90% dos casos.
Predecode Array: Esta é a porta de entrada do processador. O predecore array é composto pelos circuitos que convertem as instruções x86 enviadas pelos programas nas instruções simples que o processador executa internamente.
Até certo ponto, tanto o Pentium III quanto o Athlon e outros processadores x86 atuais trabalham da mesma maneira. Internamente, o processador é capaz de executar apenas instruções simples, para ser mais exato apenas quatro instruções: adição, atribuição, leitura e gravação.
Se você já estudou alguma linguagem de programação, aprendeu a importância das variáveis, que são pequenos espaços de memória reservados para guardar algum tipo de informação. Existem vários tipos de variáveis, de 8, 16, 32 bits, etc. que mudam de nome dependendo da linguagem de programação usada. A instrução de atribuição do processador é usada sempre que é necessário criar ou alterar o valor de uma variável.
Por exemplo, imagine que um programa qualquer criou uma variável de 8 bits com o número 5. A próxima instrução manda que o programa compare o valor da variável com o número 6 e, caso o número seja menor, altere o valor para 9. Como 5 é menor que 6, o programa decide fazer a alteração, utilizando a operação de atribuição do processador, que lê o valor 9 e grava-o no espaço de memória da variável, que passa a ter o valor 9 em vez de 5.
A instrução de soma é a operação básica que permite fazer todo tipo de processamento, enquanto as instruções de leitura e gravação permitem mover os dados. Basicamente é só isso que um processador atual sabe fazer. Operações mais complexas são executadas através da combinação de várias instruções simples.
Para calcular uma multiplicação, por exemplo, o processador utilizará seqüencialmente várias operações de soma. Na verdade, dentro do processador todas as operações, mesmo as mais complexas, são calculadas com base em várias operações de soma, feitas entre os valores binários processados pelo processador. Uma operação de subtração é obtida através de uma operação de atribuição, que transforma um dos valores em negativo, seguida por uma operação de soma.
Uma operação de divisão é obtida executando-se uma seqüência de operações de subtração e todos os demais cálculos, mesmo os cálculos mais complexos, executados pelo co-processador aritmético, são resolvidos usando apenas as quatro operações, obtidas a partir das simples instruções de soma e atribuição.
Pois bem, o conjunto de instruções x86, utilizadas pelos programas e com as quais qualquer processador destinado a micros PC deve ser compatível, é composto tanto por instruções simples (soma, subtração, leitura, gravação, comparação, etc.) quanto por instruções muito complexas, que devem ser quebradas em várias instruções simples para que possam ser executadas pelo processador.
Excluindo-se componentes de apoio, como o cache L1, deixando apenas a parte "funcional" do processador, podemos dividir o processador em três partes.
A primeira parte é o decodificador de instruções. Esse componente tem a função de converter as instruções x86 usadas pelos programas nas instruções simples que podem ser executadas pelo processador. As instruções simples vão então para uma unidade de controle (o circuito de branch prediction), que organiza as instruções da forma que possam ser executadas mais rapidamente. As instruções formam então uma fila (organizada pelo scheduler) a fim de permitir que a unidade de controle tenha tempo de fazer seu trabalho. Lembre-se de que os processadores atuais são superescalares, executam várias instruções por ciclo, simultaneamente, o que torna essencial a existência de algum circuito que as coloque numa ordem em que a execução de uma não dependa do resultado da execução de outra.
Finalmente, temos as unidades de execução, onde as instruções preparadas e organizadas são finalmente processadas. Veja que todos os circuitos trabalham simultaneamente, com o objetivo de manter as unidades de execução ocupadas:

A lógica é que quanto mais unidades de execução tivermos trabalhando ao mesmo tempo, mais instruções todas juntas serão capazes de processar e quanto mais circuitos de decodificação e controle tivermos, mais eficiente será a decodificação das instruções, resultando em um processador mais rápido.
O maior limitante é que a maioria dos programas são desenvolvidos esperando que o processador processe uma instrução de cada vez. Temos também um grande número de operações de tomada de decisão, onde o processador precisa resolver uma determinada operação para então poder decidir o que vai fazer depois. Graças aos circuitos de branch prediction, os processadores são capazes de ir "adiantando o serviço", processando outras instruções mais adiante, enquanto a operação de tomada de decisão é solucionada. De qualquer forma, existe um limite para quanto trabalho o processador é capaz de executar por ciclo.
Com mais do que três ou quatro unidades de execução, o processador acaba ficando ocioso grande parte do tempo, de forma que processadores muito mais complexos do que isso acabariam sendo um desperdício de recursos.
Em vez de adicionar mais e mais unidades de execução aos processadores, os fabricantes passaram, a partir de um certo ponto, a desenvolver processadores dual-core e quad-core, onde temos dois ou quatro processadores no mesmo encapsulamento, trabalhando como se fossem um único processador. Isto resulta num melhor desempenho ao rodar vários aplicativos simultaneamente (você pode jogar e ripar um DVD ao mesmo tempo, por exemplo) e é muito mais simples e barato para os fabricantes do que desenvolver um único e processo super-processador. Como atualmente é comum manter um grande número de aplicativos abertos simultaneamente, somados com o antivírus, antispyware, firewall e outros integrantes do "kit Windows", um processador dual-core acaba oferecendo um bom ganho na prática.
Aqui temos um diagrama da Intel, que mostra como isso funciona no Core 2 Duo. Veja que temos um grande bloco de cache L2, que é compartilhado por dois núcleos (cores). Tudo isso dentro do mesmo die, ou seja, dentro da mesma pastilha de silício:

Visão ampliada do Core 2 Duo
Outros processadores seguem um projeto mais convencional, onde temos dois núcleos completamente separados, cada um com seu próprio cache L2, ou mesmo processadores dual-core formados pela combinação de dois processadores separados, instalados dentro do mesmo encapsulamento, como no caso do Pentium D.
A partir do Phenom, a AMD passou a utilizar uma arquitetura com dois ou quatro núcleos por processador, cada um com seu próprio cache L1 e L2, que compartilham um grande bloco de cache L3. Tudo indica que a Intel utilizará uma arquitetura semelhante no Nehalem, cujo lançamento está agendado para o final de 2008.
by: Carlos Morimoto
fonte: www.guiadohardware.net
Nenhum comentário:
Postar um comentário