Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
17/05/1993

< A CPU do AT >


Após o 8088 as coisas ficaram calmas por um longo período: foi somente em fevereiro de 82, quase três anos depois, que a Intel criou seu sucessor, o 80286 - ou simplesmente 286, como é hoje conhecido. E passaram-se ainda mais dois anos até que a IBM lançasse o AT, o primeiro micro a usá-lo. AT vem de Advanced Technology. Quais seriam as vantagens desse novo microprocessador para justificar um nome assim pomposo?

Para começar, o 286 tem registros internos de dezesseis bits como o 8088. Porém, ao contrário deste, usa um barramento de dados também de dezesseis bits. O que não era novidade: o velho 8086 já fazia isso desde 1978. Então porque tanto alvoroço? Simples: devido à ampliação do campo de memória. Pois como vocês se lembram, tanto o 8088 como o 8086 somente enxergavam um megabyte. E isso é muito pouco. Pois o 286 endereçava um campo dezesseis vezes maior. Além disso, foi a primeira CPU capaz de manejar memória virtual, o que ampliava ainda mais seu universo: através dessa pequena prestidigitação, um 286 pode endereçar todo um Gigabyte, trocando "páginas" de 4K de memória RAM com o disco (para os esquecidos: um Gigabyte é igual a 1024Mbytes). Um avanço e tanto para quem estava limitado ao mísero primeiro mega.

Além disso, o 286 era rápido: foi lançado com uma frequência de operação de 6MHz, logo seguido pelas versões de 8MHz, 10MHz, 12MHz e 16MHz. E continha muito mais componentes: cento e trinta mil transistores. Curiosamente, no lançamento custava os mesmos US$360 que um 8088 - se bem que hoje pode ser comprado por US$8.

O 286 foi o único microprocessador da Intel que não foi "clonado" pelos concorrentes. Talvez por isso tenha sido seu maior sucesso de vendas: quase trinta e sete milhões de unidades. O que não quer dizer que tenha sido o mais eficiente. E, de fato, não foi, se bem que não por sua culpa, mas do DOS. Vejamos porque.

Quando a Intel lançou o 286, estabeleceu também uma diretriz que cumpre até hoje: toda sua linha de microprocessadores deve manter compatibilidade. Isso quer dizer que, por mais revolucionárias que venham a ser as novas características adicionadas, os programas desenvolvidos para as antigas CPU da Intel devem rodar nas novas. E o 286 incorporou conceitos até então inexistentes, como a multitarefa, ou execução de tarefas simultâneas.

Como isso pode ser possível se a CPU só processa instruções sequencialmente, jamais ao mesmo tempo? Não é difícil de entender: basta lembrar que ela é capaz de executar milhões de instruções por segundo. Imagine que você acabou de escrever um relatório em seu editor de textos e deseja imprimi-lo. E enquanto isso pretende consultar um banco de dados. Em um sistema multitarefas, basta mandar imprimir o arquivo, carregar o banco de dados e efetuar a consulta. O resto é com a CPU e com o sistema operacional. Este último informa à primeira que ela deve dedicar, digamos, cem milésimos de segundo à impressão do arquivo e os próximos cem milésimos ao banco de dados. E alternar entre um e outro. O intervalo é tão pequeno que a execução parece simultânea. É simples assim.

A questão é que a multitarefa não é compatível com as antigas CPU da Intel: o gerenciamento de memória é completamente diferente. E muito mais seguro, do contrário um programa pode acessar trechos de memória usados por outro, o que causaria um inevitável desastre. Para contornar o problema a Intel tornou o 286 capaz de operar em dois modos diferentes: o modo protegido, onde poderia acessar memória virtual e proteger os trechos de memória em uso por cada programa, e o modo real, no qual seria uma cópia exata do 8086. Mas uma cópia exata traz consigo todas as qualidades e defeitos. Inclusive o limite do campo da memória. Logo, um 286 rodando no modo real é pouco mais que um 8086 mais rápido.

O modo real foi implementado apenas por questões de compatibilidade. E sendo tão inferior ao modo protegido, imaginou-se que após sair dele, jamais alguém poderia desejar retornar. Por isso o 286 foi concebido de tal forma que permite passar do modo real para o protegido, mas uma vez neste, é impossível retornar a não ser reinicializando o sistema. E essa foi sua grande falha.

Não que a premissa fosse falsa. O modo protegido é mesmo infinitamente superior ao real. Mas acontece que ele mostrou-se incompatível com o DOS, um sistema operacional desenvolvido especialmente para o 8088, uma CPU muito mais limitada que o 286. Quando o DOS foi concebido, nem se sonhava com a possibilidade de multitarefa. E portanto ele não faz qualquer previsão relativa à proteção da memória. Na verdade, em um 286 é impossível rodar dois programas DOS ao mesmo tempo (se você achou essa afirmação estranha porque roda Windows no modo Standard em um 286, cuidado: não confunda multitarefa com alternância entre tarefas, onde um programa tem sua execução suspensa, passa o controle a outro e depois retoma a execução no mesmo ponto).

Quando o AT foi lançado já existia uma enorme base instalada de centenas de milhares de programas DOS. Que os usuários relutaram em abandonar. O resultado disso foi curioso: ao invés de explorar as potencialidades muito superiores do 286 com programas e sistemas operacionais especialmente desenvolvidos para ele, ocorreu exatamente o oposto. Os usuários continuaram com o DOS e seus programas, transformando seus inovadores AT 286 em XT mais rápidos, já que para usar DOS a CPU deve permanecer em modo real.

O panorama era esse até 85, quando afinal foi lançada uma nova CPU que permitiu algo muito próximo da multitarefa real mesmo sob DOS. Nosso assunto da próxima semana.

B. Piropo