A família 80x86

Última atualização: 09/09/2008

O PC

Visando agilidade na produção para inserção rápida no mercado, pela primeira vez a IBM "terceirizou" a produção dos componentes do seu novo computador para outras companhias. O processador escolhido foi o 8088 desenvolvido pela Intel e o sistema operacional foi o DOS (Disk Operating System), desenvolvido por uma companhia de 32 pessoas chamada Microsoft.

Graças a escolha da IBM pelo Intel 8088 para compor o IBM PC, e ao sucesso deste computador, o 8088 passou a ser mundialmente aceito. Muitas companhias (Compaq, Columbia Data Products,...) passaram a copiar a arquitetura do IBM PC e oferecer seus próprios sistemas baseados no 8088. Aí comecou o mercado de PCs. Com este sucesso a Intel passou a focar a maioria de seus investimentos em microprocessadores para PCs e não mais em chips de memória.

Intel 8086, 80186, 80286, 80386, 80486 e Pentium

8086: O primeiro x86

Uma máquina de 16 bits com largura de 16 bits no barramento de dados e 20 bits no barramento de endereços. Com 20 bits para endereços, possuía, portanto, um espaço de endereçamento de apenas 1MB (2^20 bytes). Apesar de os conjuntos de instruções evoluírem a cada novo modelo da família x86, o conjunto inicial (do 8086) é mantido. Portanto, um programa que roda no 8086 deve funcionar em qualquer outro processador da família x86. O inverso, programas para processadores mais modernos funcionarem no 8086, porém, pode não acontecer. O 8088 (processador do IBM PC) era muito semelhante ao 8086. A diferença é que o 8088 possuía um barramento de dados externo de 8 bits.

80186

Semelhante ao 8086. Continha hardware especial como temporizadores programáveis, contadores, controladores de interrupção e decodificadores de endereço.

80286

Não possuía controladores internos de DMA, temporizadores, entre outros. Suas características se voltavam para a implementação de MULTITAREFA, capacidade de um sistema operacional permitir vários programas executarem -aparentemente- de forma simultânea.

Com 24 bits de barramento de endereços, o processador teria capacidade de acessar 16MB de armazenamento. Contudo, o gerenciamento interno de memória possibilitou 1GB de memória virtual.

Grosseiramente, memória virtual consiste de uma forma de fazer com que a memória principal aparente ter uma capacidade maior, revezando os dados e código entre memória principal e secundária (ex.: disco rígido), conforme demanda do processador.

Assim, o 80286 poderia executar um programa muito maior que o limite de 16MB, ou até ter vários programas "carregados na memória", possibilitando o conceito de MULTITAREFA.

Para realizar os complicados cálculos de endereços no uso de memória virtual, desenvolveu-se uma unidade dedicada à esta tarefa. A unidade de endereço.

Esta unidade permitia até uma simulação do antigo 8086 (ausência de memória virtual e todas as novidades do 286). Quando o processador simula o 8086 diz-se que ele está no modo 8086 de endereço real ou simplesmente "Modo real". Durante seu funcionamento normal, usando toda a suas funcionalidades como a memória virtual, instruções adicionais e características de proteção (níveis de permissão, registradores de segmento...) diz-se que o processador está no seu Modo protegido de endereço virtual, ou simplesmente "Modo protegido".

80386

Um dos grandes fatores de sucesso da família x86 foi a compatibilidade de programas entre processadores antigos e novos. Como já mencionado, programas para o 8086 poderiam rodar no 80186, assim como no 80286, ou 80386. Da mesma forma, programas para o 80186 também rodavam no 286 e 386, e assim sucessivamente. Desta forma, os consumidores tinham a garantia que não teriam que gastar tanto dinheiro com aquisição e tempo para habituar-se aos novos softwares necessários ao adquirir uma nova máquina.

O 386 foi a primeira máquina 32-bits da família x86. Ela oferecia um barramento de dados de 32 bits e um de endereços com a mesma largura. Este barramento de endereços possibilitava acesso a uma memória física (principal) de até 4 gigabytes, coisa incomum de se encontrar em um PC doméstico até os dias de hoje (2008).

Embora os registradores de propósito geral tenham 16 bits nas máquinas anteriores, eles podem ser extendidos para 32 bits no 386. Os novos nomes para estes registradores vêm com um prefixo "E" adicionado ao seus nomes originais, significando "Extended" (Extendido). Os novos registradores foram nomeados EAX, EBX, ECX, e assim sucessivamente, mas ainda poderiam ser acessados seus 16 bits mais significativos através dos nomes antigos (AX, BX, CX,...).

Assim como o 286, o 386 também poderia simular o 8086, possuindo dois modos de operação: Modo real e Modo protegido.

As funções do 386 eram bastante parecidas com as do 286, excetuando o aumento de espaço para memória física e incrementos envolvendo manipulação de páginas no ambiente virtual.

Todos os processadores mencionados até aqui podiam se tornar mais funcionais, adicionando um co-processador opcional para operações de ponto flutuante. Todos os tipos de operações matemáticas poderiam ser executadas com os co-processadores de 80 bits de precisão. Estes co-processadores eram nomeados com um 7 no lugar do 6 para representar com qual processador ele era compatível. O 8087 foi desenvolvido para ser usado em conjunto com o 8086 ou 8088, assim como o 80187 para o 80186, 80287 para 80286 e 80387 para o 80386.

80486

O 486 é um 386 mais veloz. Há 3 diferenças entre o 386 e o 486 que contribuem para esta mudança.

Pentium

Por não ser possível registrar marcas feitas somente com números, a Intel decidiu chamar o sucessor do 80486 de Pentium, e não 80586.

As mudanças não param por aí. O Pentium possui uma arquitetura radicalmente diferente do 486. Não é a toa que consegue executar programas escritos para qualquer processador da linha 80x86 duas vezes mais rápido que o seu antecessor.

Todos os x86 anteriores ao Pentium, são máquinas CISC (Complex Instruction Set Computers). No Pentium, houve uma mistura das arquiteturas RISC (Reduced Instruction Set Computer) e CISC.

Máquinas RISC, como o próprio nome sugere, possuem um conjunto de instruções reduzido, menor do que o CISC, o que dificulta o trabalho dos programadores. Por outro lado, a simplicidade e o pequeno número de instruções implica em um melhor desempenho do processador, transferindo menos dados por instrução, diminuindo o tempo de decodificação da instrução, possibilitando o uso de pipelines, entre outras vantagens.

Mesmo possuindo um set de instruções característico da arquitetura CISC, o Pentium é capaz de aproveitar as vantagens da arquitetura RISC, "traduzindo" internamente suas instruções CISC para um conjunto menor e mais eficiente.

Além disso, o Pentium possui caches de 8kb separadas, uma para dados e outra para instruções. No 486 havia apenas uma cache para ambos. O Pentium também possui um pipeline duplo de inteiros e uma unidade de previsão de desvios, para auxiliá-lo.

Leia também:


Vídeo do primeiro PC, em funcionamento:

Voltar para Curiosidades

Referências:

Autor: Rodolfo Cesar de Avelar Ferraz