A era 486

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í, alguns 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 polímeros (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.

A foto da direita é uma imagem de divulgação da Intel que mostra 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, o que significa que cada transistor media um milésimo de milí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 adotou o uso de um co-processador aritmético integrado, ao invés de um chip separado, como no 386. Em segundo, ele incorporou 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 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. Por oferecer tempos de latência muito baixos e ser instalado muito próximo aos registradores e às unidades de execução, o cache L1 oferece acesso quase instantâneo aos dados. Como comentei na introdução, mesmo sendo muito pequeno, o cache L1 é o responsável por cerca de 90% dos acessos.

Outra melhoria importante do 486 foi a introdução do processamento de instruções em etapas, recurso que é utilizado até os dias de hoje. A ideia central é a mesma usada nas linhas de produção: dividir o trabalho em etapas simples, que são executadas sequencialmente por unidades especializadas, cada uma capaz de executar seu trabalho em um único ciclo de clock:

A unidade de execução do 486 é composta por um pipeline de 5 estágios: fetch, decode, operands, execute e retire, os cinco passos básicos que continuam sendo usados mesmo nos processadores atuais.

Cada instrução passa sequencialmente pelos 5 estágios. O primeiro (fetch) carrega a instrução a partir do endereço correspondente do cache ou da memória, trazendo-a para os registradores do processador, onde ela pode ser processada. O segundo estágio (decode) se encarrega de decodificar a instrução, ou seja, carregar o bloco de código de máquina correspondente, que contém as operações que serão executadas.

Se o processador fosse um técnico de manutenção, a instrução poderia ser “troque o LCD do notebook” e o processo de decodificação poderia ser consultar um manual de procedimentos em busca dos passos que deveriam ser executados.

O terceiro estágio (operands) tem a função de carregar os operadores, ou seja, as informações que serão processadas pela instrução. Se a instrução manda somar A+B, o terceiro estágio consistiria em carregar os valores de A e B a partir do cache.

Com todas as informações em mãos, chegamos ao quarto estágio, onde as instruções são efetivamente executadas. O conjunto de instruções x86 é bastante variado e consiste tanto em instruções simples (um único passo, como somar dois valores) e instruções complexas, que executam um conjunto de operações. O 486 é capaz de processar a maioria das instruções simples (que são de longe as mais comuns) em uma única passagem, o que garante um IPC (instruções processadas por ciclo) quase duas vezes maior que o de um 386.

Concluindo, o último estágio (retire) se encarrega de gravar de volta o resultado das instruções depois de processadas. O 486 ainda utilizava uma arquitetura de cache write-through, onde as operações de leitura eram cacheadas, mas as escritas eram feitas diretamente na memória. A partir do Pentium os processadores passaram a utilizar cache write-back, que cacheiam também as operações de escrita, melhorando o desempenho em diversas situações.

Depois de passar pelo primeiro estágio, a primeira instrução vai para o segundo, deixando o primeiro estágio livre para carregar uma nova instrução. No ciclo seguinte, a primeira instrução passa para o terceiro estágio, e assim por diante, em um ciclo contínuo. Como as 5 unidades trabalham simultaneamente, o efeito prático é que o processador passa a executar muito mais processamento por ciclo de clock, como em uma linha de produção que passa a ter 5 trabalhadores em vez de um:

O uso do pipeline trouxe outra melhoria importante, que foi o suporte a frequências de clock mais altas. O motivo é simples: com mais estágios, cada um executa menos processamento, o que permite espremer mais ciclos de processamento no mesmo espaço de tempo.

Depois do 486, os fabricantes foram sucessivamente adicionando mais estágios de pipeline nos processadores, o que permitiu atingir frequências sucessivamente mais altas. O ponto máximo da corrida foi o Pentium 4, onde o uso de tantos estágios começou a se revelar contra-produtivo, como veremos em detalhes mais adiante.

O 486 foi vendido em três versões: o 486DX (a versão completa), o 486SX (uma versão de baixo custo, com o coprocessador aritmético desativado) 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.

O uso do pipeline e da memória cache prepararam o terreno para a introdução de outro recurso: a multiplicação de clock, onde o processador trabalha numa frequência mais alta que a placa-mãe. Isto parece natural hoje em dia, quando os processadores usam multiplicadores de 10x ou mais, mas na época foi uma grande mudança.

Até o 386, os processadores simplesmente operavam na mesma frequência da placa-mãe e dos módulos de memória. Como o desempenho do processador era limitado pelo acesso à memória e ao cache (que na época também fazia parte da placa-mãe), não fazia muito sentido pensar em aumentar a frequência do processador, já que ele simplesmente passaria mais tempo esperando pelos dados.

O cache L1 integrado tornou o 486 parcialmente independente do acesso à memória e ao cache L2, o que permitiu que o clock do processador passasse a crescer muito mais rápido que o da placa-mãe. De lá pra cá, o clock dos processadores cresceu até superar a faixa dos 3.0 GHz, enquanto o clock das placas-mãe e dos módulos de memória (descontando o uso de técnicas para realizar várias transferências por ciclo, como no caso do DDR) estacionaram na casa dos 266 MHz. Se não fosse a multiplicação de clock, a história dos processadores teria sido bem diferente.

O primeiro 486 a usar multiplicação de clock foi o DX-2 50, que trabalhava ao dobro da frequência da placa-mãe. 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 trabalhava ao triplo da frequê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 frequência da placa-mãe, multiplicador e tensão usados 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 frequê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 frequência da placa-mãe de 33 para 40 MHz.

Naturalmente, 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 sem precisar pagar por um processador mais caro. Na época, mesmo os PCs mais parrudos engasgavam ao executar tarefas simples (como carregar uma planilha do Excell com muitas fórmulas), de modo que qualquer desempenho adicional era bem-vindo.

A partir das placas para Pentium II, os ajustes passaram a ser feitos diretamente no 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 frequência do processador:

Mesmo depois do lançamento do Pentium 1, a plataforma 486 ainda teve uma sobrevida surpreendente graças aos processadores AMD 5×86, 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.

Além destes, tivemos também vários clones do 486 (nesse caso sem modificações em relação ao projeto da Intel), fabricados pela Texas Instruments, UMC e até mesmo pela IBM, que produziu os chips em pequenas quantidades para uso em seus próprios PCs. A guerra de preços promovidas por estes chips foi um dos principais motivos que levaram a Intel a cancelar as licenças de produção para outros fabricantes e a adotar uma postura mais hostil em relação aos concorrentes.

486 da Texas Instruments e um modelo produzido da IBM

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 na maioria das tarefas.

Um dos últimos suspiros da plataforma foi o AMD 5×86, 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. O 5×86 foi importante do ponto de vista histórico por ser o primeiro processador x86 onde a AMD realizou modificações significativas no projeto, em vez de simplesmente clonar o processador da Intel.

Apesar do clock de 133 MHz, o desempenho do 5×86 ficava entre o oferecido pelos Pentium de 60 e 75 MHz. Era comum que o 5×86 fosse overclocado para 160 MHz (aumentando a frequência da placa-mãe de 33 para 40 MHz), resultando em um desempenho proporcionalmente superior, próximo ao de um Pentium 90 em muitas tarefas.

Concorrendo com o 5×86, 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 5×86 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 foi lançado 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 5×86 de 133 MHz, com o vencedor variando de acordo com a aplicação usada. Apesar disso, o AMD 5×86 acabou sendo bem 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. Elas são bem diferentes da primeira safra de placas para 486, pois já possuem slots PCI e utilizam módulos de memória de 72 vias, assim como as placas para Pentium 1.

Placa mãe para 486, com um 5×86 e o módulo COAST instalado

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X