sexta-feira, 2 de abril de 2010

Do 8086 ao Pentium

O primeiro microprocessador foi lançado pela Intel em 1971 e se chamava i4004. Este era um processador extremamente simples, formado por pouco mais de 2000 transístores, mas que foi o precursor dos processadores que temos actualmente. A chamada lei de Moore, que leva o nome do fundador da Intel, Gordon Moore, prega que a potência dos processadores dobra a cada 18 meses. Apesar desta previsão ter sido feita no final da década de 70, continuou mantendo-se verdadeira até os dias de hoje, com uma precisão notável.

De lá para cá, foi um longo caminho. Enormes investimentos foram feitos e muitos dos maiores génios do planeta trabalharam em busca de soluções para questões cada vez mais complexas.

Vamos agora examinar os avanços feitos desde o 8088, usado no XT, até o Pentium, onde estudaremos quando e porque recursos como o modo protegido e a multiplicação de clock foram introduzidos, e no que eles afectam o funcionamento do processador. Entendendo estes conceitos, você poderá facilmente entender as diferenças entre os processadores Pentium III, Athlon, K6-3 etc. que temos actualmente e veremos com mais detalhes adiante, assim como dos processadores que vierem a ser lançados futuramente que, pode ter certeza, continuarão utilizando os mesmos conceitos básicos.
 
8088

O 8088 era na verdade uma versão económica do processador 8086, que havia sido lançado pela Intel em 78. Quando a IBM estava desenvolvendo seu computador pessoal, chegou a ser cogitado o uso do 8086, mas acabou sendo escolhido o 8088 devido ao seu baixo custo.

Tanto o 8086 quanto o 8088 são processadores de 16 bits e eram considerados avançadíssimos para a época, apesar de serem extremamente simples para os padrões actuais. A diferença entre eles é que o 8088, apesar de internamente trabalhar com palavras binárias de 16 bits, usava um barramento de apenas 8 bits, o que permitiu à IBM utilizar os mesmos componentes usados nos computadores de 8 bits da época, que eram muito mais baratos do que os periféricos de 16 bits.

Esta arquitectura permitiu ao primeiro PC competir na mesma faixa de preço dos computadores de 8 bits mais populares e, ao mesmo tempo, possuir um desempenho bem superior devido ao seu processador de 16 bits. O 8088 é capaz de acessar até 1 MB de memória RAM, e funciona a 4.77 MHz, recursos incríveis para a época, já que estamos falando de um processador lançado no final de 1979.

Falando em recursos, só para matar sua curiosidade, o PC original da IBM, lançado em Agosto de 1981 possuía apenas 64 KB de memória RAM (a versão mais simples vinha com apenas 16 KB), monitor MDA mono de 12 polegadas, usava uma unidade de disquetes de 5 1/4 de apenas 160 KB e vinha sem disco rígido. O sistema operacional usado era o MS-DOS 1.0 (na época ainda chamado de PC-DOS), que foi desenvolvido pela Microsoft com base num sistema operacional mais simples, chamado QDOS, comprado da Seattle Computers, uma pequena empresa desenvolvedora de sistemas. Na verdade, a Microsoft foi a segunda opção da IBM, depois de ter sua proposta de licença recusada pela Digital Research, que na época desenvolvia versões do seu CP/M para várias arquitecturas diferentes.

Dois anos depois, foi lançado o PC XT, que apesar de continuar usando o 8088 de 4.77 MHz, vinha bem mais incrementado, com 256 KB de RAM, disco rígido de 10 MB, monitor CGA e o MS-DOS 2.0.

Mesmo com o surgimento dos microcomputadoress 286, o XT ainda continuou sendo bastante vendido, pois era mais barato. Fabricantes de clones criaram projectos de microcomputadores XTs mais avançados, equipados com processadores 8088 de 8 MHz, discos rígidos maiores e até 640 KB de memória RAM.
 
Segmentação de Endereços

Um recurso bem interessante, usado no 8088, é a segmentação de endereços, que permitiu aumentar a quantidade de memória RAM suportada pelo processador.

Para que o processador possa aceder à memória RAM, é preciso que a memória seja dividida em endereços. Cada byte depositado na memória recebe um endereço único, assim como cada rua tem um código postal diferente. Como o 8088 pode lidar apenas com palavras binárias de 16 bits, a princípio não seria possível para ele aceder mais do que 64 Kbytes de memória RAM, já que 16 bits permitem apenas 65,536 combinações diferentes (2 elevado à 16º potência).

Se o 8088 pudesse aceder apenas 64 KB de memória RAM, os microcomputadores baseados nele seriam muito limitados e poderiam apenas rodar programas muito simples. Para você ter uma ideia, 64 KB não dariam nem mesmo para carregar o DOS 3.0.

Para solucionar este problema, foi adoptada uma solução bastante engenhosa: apesar do processador continuar podendo aceder apenas 64 KB de memória de cada vez, foram criados mais 4 bits de endereçamento, que permitem o acesso a 16 blocos de memória. Como cada bloco possui 64 KB, chegamos a 1 MB inteiro de capacidade total. Basicamente criamos 16 áreas diferentes de memória, cada uma com 64 KB, que é o máximo que o 8088 pode endereçar.

O processador pode aceder a uma única área de cada vez. Se por exemplo, está sendo usado o bloco 1, e de repente é preciso ler um dado gravado no bloco 2, é preciso limpar todos os endereços relativos ao bloco 1 e carregar os endereços do bloco 2. Neste momento, o processador perde o acesso ao bloco 1 e passa a enxergar apenas o segundo bloco. Quando novamente for preciso ler ou gravar dados no bloco 1 (ou qualquer outro bloco), novamente são carregados os endereços relativos a ele, e o acesso ao bloco 2 será perdido. É mais ou menos como se você precisasse fazer anotações em várias páginas de um caderno. Como só é possível ler ou escrever em uma página de cada vez, você precisaria ficar continuamente virando as páginas.

 

Sem comentários: