Os Primeiros Computadores Uma Breve Viagem Pela Evolução Da Informática (Morimoto, Carlos E.)

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 97

P refácio

Os eletrônicos se tornaram não apenas ubíquos, mas essenciais para as mais


básicas funções do nosso cotidiano. Eles estão presentes nas nossas mesas,
na forma de notebooks, laptops e tablets, nos nossos bolsos, na forma de
smartphones, nos nossos pulsos, como os smartwatches que crescem em
popularidade. Até mesmo os nossos cartões de crédito incluem um chip que
é capaz de processar dados, podendo ser assim considerados computadores,
embora bastante limitados em capacidade. Fazendas de servidores
espalhados pelo mundo processam quantidades impressionantes de
informações, operando coletivamente para manter o que chamamos de “a
nuvem”. Até mesmo dispositivos como interruptores e lâmpadas estão
ganhando processadores e sendo interligados em rede, dando origem à
“Internet das coisas”. Para o bem ou para o mal, estamos cercados de
eletrônicos em todas as direções. Mas como tudo isso começou? Nesta breve
obra viajaremos pela história dos primeiros computadores, mostrando como
a tecnologia evoluiu na segunda metade do século passado até chegar à era
atual. Por mais que você esteja informado, provavelmente existem muitos
detalhes que desconhece. Aperte o cinto.

A era analógica
Embora os eletrônicos sejam uma tecnologia relativamente recente, com
menos de um século, a história dos computadores começou muito antes.
Em 1901 um estranho artefato de bronze datado de 100 A.C. foi encontrado
no meio dos destroços de um antigo navio romano que naufragou próximo à
costa da Grécia. Ele era um pouco maior que uma caixa de sapatos e
aparentava ter partes móveis, mas a oxidação transformou tudo em uma peça
só, o que tornou a identificação quase impossível:
Em 2006 foi descoberto que ele era, na verdade, um computador mecânico,
destinado a calcular o movimento dos astros e prever eclipses, cujas
engrenagens competiam em sofisticação com o trabalho de relojoeiros da era
moderna.
Até mesmo os Astecas (que sequer usavam ferramentas de metal)
desenvolveram máquinas de calcular destinadas a calcular impostos, que
eram baseadas em cordas e polias. Infelizmente não se sabe muito sobre o
funcionamento delas, já que foram todas destruídas pelos colonizadores
espanhóis, que viriam a entender a utilidade das calculadoras apenas alguns
séculos depois...
No século XIX, o matemático inglês Charles Babbage trabalhou na
"Analytical Engine", que, caso tivesse sido realmente construída, teria sido o
primeiro computador moderno. Embora fosse inteiramente baseada no uso
de engrenagens, ela seria alimentada através de cartões perfurados (que
viriam a ser a mídia básica de armazenamento de dados durante as décadas
de 50, 60 e 70), teria memória para 1000 números de 50 dígitos decimais
cada um (equivalente a pouco mais de 20 KB no total) e seria capaz de
executar operações matemáticas com uma complexidade bem maior que a
dos primeiros computadores digitais (embora em uma velocidade mais
baixa, devido à natureza mecânica). Como se não bastasse, os resultados
seriam impressos em papel (usando um sistema similar ao das máquinas de
datilografar), antecipando o uso das impressoras.
É bem provável que a Analytical Engine pudesse ter sido realmente
construída usando tecnologia da época. Entretanto, o custo seria enorme e o
governo Inglês (a única organização com poder suficiente para financiar o
desenvolvimento na época) não se mostrou muito interessado no projeto.
Entretanto, uma versão mais simples, a "Difference Engine" foi construída
em 1991 por uma equipe do Museu de Londres, que se baseou nos projetos
de Babbage. Apesar do atraso de mais de um século, ela funcionou como
esperado:

Outros projetos de calculadoras mecânicas mais simples foram muito usados


ao longo do século XIX e na primeira metade do século XX. O ápice da
evolução foi a Curta, uma calculadora mecânica portátil lançada em 1948.
Ela é capaz de realizar operações de soma, subtração, multiplicação, divisão
e basicamente qualquer outro tipo de operação matemática a partir de
combinações de operações simples (potenciação, raiz quadrada, etc.), tudo
isso em um dispositivo inteiramente mecânico, do tamanho de um saleiro:
A Curta foi bastante popular durante as décadas de 50, 60 e 70 (foram
produzidas nada menos de 140.000 unidades, vendidas principalmente nos
EUA e na Alemanha), e o formato, combinado com o barulho característico
ao girar a manivela para executar as operações rendeu o apelido de "moedor
de pimenta". Ela era usada por engenheiros, pilotos, matemáticos e muitas
universidades as usavam nas cadeiras de cálculos.
A Curta era composta por um total de 605 peças e usava um sistema bastante
engenhoso, onde o dono inseria o número através de um conjunto de 8
chaves laterais (uma para cada dígito decimal), selecionava a operação
usando uma chave lateral e executava o cálculo girando a manivela superior,
uma vez para cada operação (para multiplicar um número por 4, por
exemplo, giraria 4 vezes).
Para operações com valores maiores (como multiplicar 57,456,567 por 998)
existia um segundo contador na parte superior, que servia como um
multiplicador de rotações (1, 10, 100, 1000, etc.). Com isso, em vez de girar
998 vezes, você selecionaria o número 4 (multiplicador 1000), giraria uma
vez para inserir o valor, mudaria o contador de volta para o 1, colocaria a
chave de operação na posição de subtração, giraria a manivela mais duas
vezes para reduzir até o 998, moveria a chave de operação de volta à posição
original e giraria a manivela mais uma vez para executar a operação.
Os resultados eram exibidos através de um visor na parte superior, que tinha
capacidade para 11 dígitos (as calculadoras de bolso atuais trabalham com
apenas 8 dígitos!) e, embora fosse complicada de usar em relação a uma
calculadora atual, era bastante confiável e usuários experientes eram capazes
de executar cálculos com uma velocidade impressionante. Como se não
bastasse, em 1953 foi lançada a Curta Type II, uma versão maior, que
permitia inserir números de até 11 dígitos e exibia resultados com até 15
dígitos.
Mesmo com a introdução das calculadoras eletrônicas, a Curta continuou
sendo usada por muitos, já que era muito mais leve e era capaz de trabalhar
com números maiores que os suportados pela maioria das calculadores
eletrônicas. Pesquisando no Ebay, é possível encontrar algumas unidades
funcionais da Curta à venda mesmo nos dias de hoje.
Apesar de impressionarem pela engenhosidade, calculadoras mecânicas
como a Curta e computadores mecânicos como a Analytical Engine
acabaram se revelando um beco sem saída, já que as engrenagens precisam
ser fabricadas individualmente e existe um limite para o nível de
miniaturização e para o número de componentes. Uma Curta não pode ir
muito além das operações básicas e a Analytical Engine custaria o
equivalente ao PIB de um pequeno país para ser construída. Uma nova
tecnologia era necessária e ela acabou se materializando na forma dos
circuitos digitais.
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é do início do século XX


Os relés podem ser considerados como uma espécie de antepassados dos
transistores. 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
(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 (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 Edison, inventor da
lâmpada elétrica, estava realizando testes com a sua invenção. Ele percebeu
que, ao ligar a lâmpada ao polo positivo de uma bateria e uma placa metálica
ao polo 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 frequê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 surgiram 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.

O ENIAC
Os primeiro computador digital programável foi o Colossus Mark 1, usado
pelos ingleses durante a segunda guerra para decodificar mensagens secretas
dos alemães. O Mark 1 foi seguido pelo Colossus Mark 2, que foi o primeiro
computador produzido em série, com 10 unidades no total.
O grande problema foi que o Colossus era um projeto secreto. Os inventores
não receberam crédito e o design não foi aproveitado em outros
computadores, o que tornou o Colossus uma página isolada na história, que
só se tornou pública na década de 70.
Por outro lado, os americanos foram muito mais liberais com relação ao
anúncio e compartilhamento de informações, o que fez com que o ENIAC
(Electronic Numerical Integrator Analyzer and Computer) se tornasse o
pontapé inicial na era dos computadores digitais.
O ENIAC foi construído entre 1943 e 1945 e entrou oficialmente em
operação em julho de 1946. Ele era composto por nada menos do que 17.468
válvulas, além de 1.500 relés e um grande número de capacitores, resistores
e outros componentes.
No total, ele pesava 30 toneladas e era tão volumoso que ocupava um grande
galpão. Outro grave problema era o consumo elétrico: um PC típico atual,
com um monitor LCD, consome cerca de 100 watts de energia, enquanto o
ENIAC consumia incríveis 200 kilowatts. Construir esse monstro custou ao
exército Americano 468.000 dólares da época, que correspondem a pouco
mais de US$ 10 milhões em valores corrigidos.
Porém, apesar do tamanho, o poder de processamento do ENIAC é
insignificante para os padrões atuais, suficiente para processar apenas 5.000
adições, 357 multiplicações ou 38 divisões por segundo. O volume de
processamento do ENIAC foi superado pelas calculadoras portáteis ainda na
década de 70 e, hoje em dia, mesmo as calculadoras de bolso são bem mais
poderosas do que ele.
A ideia era construir um computador para quebrar códigos de comunicação e
realizar vários tipos de cálculos de artilharia para ajudar as tropas aliadas
durante a Segunda Guerra Mundial. Porém, o ENIAC acabou sendo
finalizado depois do final da guerra e foi usado nos primeiros anos da Guerra
Fria, contribuindo, por exemplo, no projeto da bomba de hidrogênio.
ENIAC (foto do acervo do Exército dos EUA)
Se você acha que programar em C ou em Assembly é complicado, imagine
como era a vida dos programadores daquela época. A programação do
ENIAC era feita através de 6.000 chaves manuais e, ao invés de ser feita
através de teclas, toda a entrada de dados era feita através de cartões de
cartolina perfurados, que armazenavam poucas operações cada um.
Uma equipe preparava os cartões, incluindo as operações a serem realizadas,
formando uma pilha, outra ia trocando os cartões no leitor do ENIAC, e uma
terceira "traduzia" os resultados, também impressos em cartões.
O ENIAC também possuía sérios problemas de manutenção, já que as
válvulas se queimavam com frequência, fazendo com que ele passasse boa
parte do tempo inoperante. Boa parte das queimas ocorriam durante a
ativação e desativação do equipamento (quando as válvulas sofriam um
grande stress devido à mudança de temperatura) por isso os operadores logo
decidiram mantê-lo ligado continuamente, apesar do enorme gasto de
energia.
Válvulas
Vendo essa foto, é fácil imaginar por que as válvulas eram tão problemáticas
e caras: elas eram complexas demais. Mesmo assim, na época, as válvulas
eram o que existia de mais avançado, permitindo que computadores como o
ENIAC executassem, em poucos segundos, cálculos que um matemático
equipado com uma calculadora mecânica demorava horas para executar.

O transistor
Durante a década de 40 e início da de 50, a maior parte da indústria
continuou trabalhando no aperfeiçoamento das válvulas, obtendo modelos
menores e mais confiáveis. Porém, vários pesquisadores, começaram a
procurar alternativas menos problemáticas.
Muitas dessas pesquisas tinham como objetivo o estudo de novos materiais,
tanto condutores quanto isolantes. Os pesquisadores começaram então a
descobrir que alguns materiais não se enquadravam nem em um grupo nem
em outro, pois, de acordo com a circunstância, podiam atuar tanto como
isolantes quanto como condutores, formando uma espécie de grupo
intermediário que foi logo apelidado de grupo dos semicondutores.
Haviam encontrado a chave para desenvolver o transistor. O primeiro
protótipo surgiu em 16 de dezembro de 1947, consistindo em um pequeno
bloco de germânio (que na época era junto com o silício o semicondutor
mais pesquisado) e três filamentos de ouro. Um filamento era o polo
positivo, o outro, o polo negativo, enquanto o terceiro tinha a função de
controle:

O primeiro transistor
Aplicando uma carga elétrica apenas no polo positivo, nada acontecia: o
germânio atuava como um isolante, bloqueando a corrente. Porém, quando
era aplicada tensão também no filamento de controle, o bloco de germânio
se tornava condutor e a carga elétrica passava a fluir para o polo negativo.
Haviam criado um dispositivo que substituía a válvula, que não possuía
partes móveis, gastava uma fração da eletricidade e, ao mesmo tempo, era
muito mais rápido.
O primeiro transistor era muito grande, mas não demorou muito para que
esse modelo inicial fosse aperfeiçoado. Durante a década de 1950, o
transistor foi aperfeiçoado e passou a gradualmente dominar a indústria,
substituindo rapidamente as problemáticas válvulas. Os modelos foram
diminuindo de tamanho, caindo de preço e tornando-se mais rápidos. Alguns
transistores da época podiam operar a até 100 MHz. Naturalmente, essa era a
frequência que podia ser alcançada por um transistor sozinho; nos
computadores da época a frequência de operação era muito menor, já que em
cada ciclo de processamento o sinal precisa passar por vários transistores.
Entretanto, o grande salto foi a substituição do germânio pelo silício. Isso
permitiu miniaturizar ainda mais os transistores e baixar seu custo de
produção. Os primeiros transistores de junção comerciais (já similares aos
atuais) foram produzidos a partir de 1960 pela Crystalonics, decretando o
final da era das válvulas.
A ideia central no uso do silício para construir transistores é que,
adicionando certas substâncias em pequenas quantidades, é possível alterar
as propriedades elétricas do silício. As primeiras experiências usavam
fósforo e boro, que transformavam o silício em condutor por cargas
negativas ou em condutor por cargas positivas, dependendo de qual dos dois
materiais fosse usado. Essas substâncias adicionadas ao silício são chamadas
de impurezas, e o silício "contaminado" por elas é chamado de silício
dopado.
O funcionamento de um transistor é bastante simples, quase elementar. É
como naquele velho ditado "as melhores invenções são as mais simples". As
válvulas eram muito mais complexas que os transistores e, mesmo assim,
foram rapidamente substituídas por eles.
Um transistor é composto basicamente por três filamentos, chamados de
base, emissor e coletor. O emissor é o polo positivo, o coletor, o polo
negativo, enquanto a base é quem controla o estado do transistor, que como
vimos, pode estar ligado ou desligado. Veja como esses três componentes
são agrupados em um transistor moderno:

transistor
Quando o transistor está desligado, não existe carga elétrica na base, por
isso, não existe corrente elétrica entre o emissor e o coletor. Quando é
aplicada uma certa tensão na base, o circuito é fechado e é estabelecida a
corrente entre o emissor e o receptor.
Cada transistor funciona como uma espécie de interruptor, que pode estar
ligado ou desligado, como uma torneira que pode estar aberta ou fechada, ou
mesmo como uma válvula. A diferença é que o transistor não tem partes
móveis como uma torneira e é muito menor, mais barato, mais durável e
muito mais rápido que uma válvula.
A mudança de estado de um transistor é feita através de uma corrente
elétrica. Cada mudança de estado pode então comandar a mudança de estado
de vários outros transistores ligados ao primeiro, permitindo o
processamento de dados. Num transistor, essa mudança de estado pode ser
feita bilhões de vezes por segundo, porém, a cada mudança de estado é
consumida uma certa quantidade de eletricidade, que é transformada em
calor. É por isso que quanto mais rápidos tornam-se os processadores, mais
eles aquecem e mais energia consomem.
Um 386, por exemplo, consumia pouco mais de 1 watt de energia e podia
funcionar sem nenhum tipo de resfriamento. Um 486DX-4 100 consumia
cerca de 5 watts e precisava de um cooler simples, enquanto um Athlon X2
chegava a consumir 89 watts de energia (no X2 5600+) e precisa de, no
mínimo, um bom cooler para funcionar bem. Em compensação, a versão
mais rápida do 386 operava a apenas 40 MHz, enquanto o Pentium 4 foi o
primeiro a superar a barreira dos 3.5 GHz.

Os primeiros chips
O salto final aconteceu quando descobriu-se que era possível construir vários
transistores sobre o mesmo wafer de silício. Isso permitiu diminuir de forma
gritante o custo e tamanho dos computadores. Entramos então na era do
microchip.
O primeiro microchip comercial foi lançado pela Intel em 1971 e chamava-
se 4004. Como o nome sugere, ele era um processador que utilizava um
barramento de dados de apenas 4 bits, incrivelmente lento para os padrões
atuais.
Apesar disso, ele processava internamente instruções de 8 bits, o que
permitia que ele realizasse operações aritméticas relativamente complexas,
apesar do baixo desempenho. A frequência máxima de operação do 4004 era
de apenas 740 kHz (ou seja, apenas 740 mil ciclos por segundo) e cada
instrução demorava 8 ciclos para ser executada (3 ciclos para carregar os
endereços, 2 ciclos para carregar a instrução e mais 3 ciclos para finalmente
processá-la), o que fazia com que o 4004 não fosse capaz de processar mais
do que 92.500 instruções por segundo.
Em compensação, ele era um chip bastante simples, que era composto por
apenas 2300 transistores. Pode parecer piada que cada um deles media 10
micra (10.000 nanômetros, contra os 32 ou 45 nanômetros nos processadores
atuais), mas na época ele foi um grande feito de engenharia:

Intel 4004
Embora fosse muito limitado, ele foi muito usado em calculadoras, área em
que representou uma pequena revolução. Ele foi também usado em diversos
equipamentos científicos e até mesmo na sonda Pioneer 10 lançada pela
NASA em 1972. Ela foi a primeira a explorar o sistema solar e continuou a
se comunicar com a Terra até 1998, quando a distância se tornou grande
demais para que os sinais enviados pela sonda fossem captados.
Mais importante do que todos os feitos do pequeno chip, o sucesso do 4004
mostrou a outras empresas que os microchips eram viáveis, criando uma
verdadeira corrida evolucionária, em busca de processadores mais rápidos e
avançados, que potencializou todo o avanço tecnológico que tivemos desde
então.
Em 1972 surgiu o Intel 8008, o primeiro processador de 8 bits e, em 1974,
foi lançado o Intel 8080, antecessor do 8088, que foi o processador usado
nos primeiros PCs. Em 1977 a AMD passou a vender um clone do 8080,
inaugurando a disputa Intel x AMD, que continua até os dias de hoje.
O 8080 da AMD

O sistema binário

Existem duas maneiras de representar uma informação: analogicamente ou


digitalmente. Uma música gravada em uma velha fita K7 é armazenada de
forma analógica, codificada na forma de uma grande onda de sinais
magnéticos de diferentes frequências. Quando a fita é tocada, o sinal
magnético é amplificado e novamente convertido em som, gerando uma
espécie de "eco" do áudio originalmente gravado.
O grande problema é que o sinal armazenado na fita se degrada com o
tempo, e existe sempre uma certa perda de qualidade ao fazer cópias. Ao
tirar várias cópias sucessivas, cópia da cópia, você acaba com uma versão
muito degradada da música original.
Ao digitalizar a mesma música, transformando-a em um arquivo MP3, você
pode copiá-la do PC para o MP3 player, e dele para outro PC,
sucessivamente, sem causar qualquer degradação. Você pode perder alguma
qualidade ao digitalizar o áudio, ou ao comprimir a faixa original, gerando o
arquivo MP3, mas a partir daí pode reproduzir o arquivo indefinidamente e
fazer cópias exatas.
Isso é possível devido à própria natureza do sistema digital, que permite
armazenar qualquer informação na forma de uma sequencia de valores
positivos e negativos, ou seja, na forma de uns e zeros.
O número 181, por exemplo, pode ser representado digitalmente como
10110101; uma foto digitalizada é transformada em uma grande grade de
pixels e um valor de 8, 16 ou 24 bits é usado para representar cada um; um
vídeo é transformado em uma sequência de imagens, também armazenadas
na forma de pixels, e assim por diante.
A grande vantagem do uso do sistema binário é que ele permite armazenar
informações com uma grande confiabilidade, em praticamente qualquer tipo
de mídia; já que qualquer informação é reduzida a combinações de apenas
dois valores diferentes. A informação pode ser armazenada de forma
magnética, como no caso dos HDs; de forma óptica, como no caso dos CDs
e DVDs ou até mesmo na forma de impulsos elétricos, como no caso dos
chips de memória Flash.

Cada um ou zero processado ou armazenado é chamado de "bit", contração


de "binary digit" ou "dígito binário". Um conjunto de 8 bits forma um byte, e
um conjunto de 1024 bytes forma um kilobyte (ou kbyte).
O número 1024 foi escolhido por ser a potência de 2 mais próxima de 1000.
É mais fácil para os computadores trabalharem com múltiplos de dois do que
usar o sistema decimal como nós. Um conjunto de 1024 kbytes forma um
megabyte e um conjunto de 1024 megabytes forma um gigabyte. Os
próximos múltiplos são o terabyte (1024 gigabytes) e o petabyte (1024
terabytes), exabyte, zettabyte e o yottabyte, que equivale a
1.208.925.819.614.629.174.706.176 bytes.
É provável que, com a evolução da informática, daqui há algumas décadas
surja algum tipo de unidade de armazenamento capaz de armazenar um
yottabyte inteiro, mas atualmente ele é um número quase inatingível.
Para armazenar um yottabyte usando tecnologia atual, seria necessário
construir uma estrutura colossal de servidores. Imagine que, para manter os
custos baixos, fosse adotada uma estratégia estilo Google, usando PCs
comuns, com HDs SATA. Cada PC seria equipado com 5 HDs de 2 TB, o
que resultaria em pouco menos de 10 terabytes por PC (não seria possível
chegar a exatamente 10 terabytes, já que não existem HDs de 2 TB binários
no mercado, por isso vamos arredondar).
Estes PCs seriam então organizados em enormes racks, onde cada rack teria
espaço para 1024 PCs. Os PCs de cada rack seriam ligados a um conjunto de
switchs e cada grupo de switchs seria ligado a um grande roteador. Uma vez
ligados em rede, os 1024 PCs seriam configurados para atuar como um
enorme cluster, trabalhando como se fossem um único sistema.
Construiríamos então um enorme galpão, capaz de comportar 1024 desses
racks, construindo uma malha de switchs e roteadores capaz de ligá-los em
rede com um desempenho aceitável. Esse galpão precisa de um sistema de
refrigeração colossal, sem falar da energia consumida por mais de um
milhão de PCs dentro dele, por isso construímos uma usina hidrelétrica para
alimentá-lo, represando um rio próximo.
Com tudo isso, conseguiríamos montar uma estrutura computacional capaz
de armazenar 10 exabytes. Ainda precisaríamos construir mais 104.857
mega-datacenters como esse para chegar a 1 yottabyte. Se toda a
humanidade se dividisse em grupos de 600 pessoas e cada grupo fosse capaz
de construir um ao longo de sua vida, deixando de lado outras necessidades
existenciais, poderíamos chegar lá. :P
Voltando à realidade, usamos também os termos kbit, megabit e gigabit, para
representar conjuntos de 1024 bits. Como um byte corresponde a 8 bits, um
megabyte corresponde a 8 megabits e assim por diante. Quando você compra
uma placa de rede de "1000 megabits" está na verdade levando para casa
uma placa que transmite 125 megabytes por segundo, pois cada byte tem 8
bits.
Ao abreviar, também existe diferença. Quando estamos falando de kbytes ou
megabytes, abreviamos respectivamente como KB e MB, sempre com o B
maiúsculo. Por outro lado, quando estamos falando de kbits ou megabits
abreviamos da mesma forma, porém usando o B minúsculo: Kb, Mb e assim
por diante. Isso parece só um daqueles detalhes sem importância, mas é uma
fonte de muitas confusões. Se um fabricante anuncia a produção de uma
nova placa de rede de "1000 MB", está dando a entender que ela transmite a
8000 megabits e não a 1000.

Hardware x software
Os computadores são muito bons em armazenar informações e fazer
cálculos, mas não são capazes de tomar decisões sozinhos. Sempre existe um
ser humano orientando o computador e dizendo a ele o que fazer a cada
passo. Seja você mesmo, teclando e usando o mouse, ou, num nível mais
baixo, o programador que escreveu os programas que você está usando.
Chegamos então aos softwares, gigantescas cadeias de instruções que
permitem que os computadores façam coisas úteis. É aí que entra o sistema
operacional e, depois dele, os programas que usamos no dia a dia.
Um bom sistema operacional é invisível. A função dele é detectar e utilizar o
hardware da máquina de forma eficiente, fornecendo uma base estável sobre
a qual os programas que utilizamos no cotidiano possam ser usados. Como
diz Linus Torvalds, as pessoas não usam o sistema operacional, usam os
programas instalados. Quando você se lembra que está usando um sistema
operacional, é sinal de que alguma coisa não está funcionando como deveria.
O sistema operacional permite que o programador se concentre em adicionar
funções úteis, sem ficar se preocupando com que tipo de placa de vídeo ou
placa de som você tem. O aplicativo diz que quer mostrar uma janela na tela
e ponto; o modelo de placa de vídeo que está instalado e quais comandos são
necessários para mostrar a janela, são problema do sistema operacional.
Para acessar a placa de vídeo, ou qualquer outro componente instalado, o
sistema operacional precisa de um driver, que é um pequeno aplicativo que
trabalha como um intérprete, permitindo que o sistema converse com o
dispositivo. Cada placa de vídeo ou som possui um conjunto próprio de
recursos e comandos que permitem usá-los. O driver converte esses
diferentes comandos em comandos padrão, que são entendidos pelo sistema
operacional.
É comum que as várias camadas de softwares que compõem um sistema
atual sejam representadas através de uma pirâmide, cuja base é representada
pelo BIOS da placa-mãe, kernel do sistema operacional e drivers, e a parte
mais alta é representada pelos aplicativos gráficos, com os demais
componentes do sistema posicionados nas camadas intermediárias.
Isso deu origem à classificação de linguagens e softwares entre "baixo nível"
(os que estão mais diretamente relacionados ao hardware, como o Assembly
e os drivers de dispositivo) e "alto nível" (linguagens gráficas ou de scripts,
como o Visual Basic .Net ou o Ruby e aplicativos gráficos como o Firefox
ou o OpenOffice).
Embora as duas coisas sejam igualmente importantes, existe uma distinção
entre o "hardware", que inclui todos os componentes físicos, como o
processador, memória, placa-mãe, etc. e o "software", que inclui o sistema
operacional, os programas e todas as informações armazenadas. Como diz a
sabedoria popular, "hardware é o que você chuta, e software é o que você
xinga". :)

Década de 70: a evolução dos


computadores pessoais
Até aqui, falei sobre as primeiras máquinas de calcular e o início da história
da informática, com a evolução dos circuitos mecânicos para as válvulas e
em seguida para o transistor e o circuito integrado. Continuando, vou falar
agora um pouco sobre os primeiros computadores pessoais, que começaram
a fazer sua história a partir da década de 70.
Como comentei há pouco, o primeiro microchip, o 4004, foi lançado pela
Intel em 1971. Ele era um chip bastante primitivo, que processava instruções
de 8 bits, transferia os dados através de um barramento de apenas 4 bits e
operava a apenas apenas 740 kHz.
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, contra os
vários bilhões de instruções por segundo processadas por um chip atual.
Hoje em dia esses números parecem piada, mas na época era a última
palavra em tecnologia. O 4004 era cerca de 15 vezes mais rápido que o
ENIAC e permitiu o desenvolvimento das primeiras calculadoras eletrônicas
portáteis.
Pouco tempo depois, a Intel lançou um processador de 8 bits, o 8008, que foi
logo substituído pelo 8080, uma versão aperfeiçoada que fez sucesso durante
muitos anos.
Embora ainda fosse um processador de 8 bits, o 8080 era muito mais rápido
que o 8008 e oferecia suporte a algumas instruções de 16 bits, que podiam
ser carregadas com a ajuda de três pares de registradores. Ele operava a 2
MHz e era capaz de processar 500 mil instruções por segundo, o que na
época era um valor assombroso. Como se não bastasse, ele era capaz de
acessar incríveis 64 kbytes de memória, mais do que qualquer mortal poderia
sonhar... :)
O 8080 foi o chip usado no Altair 8800 que, lançado no final de 1974, é
considerado por muitos o primeiro computador pessoal da história. Na
época, computadores eram grandes e absurdamente caros, por isso poucos
tinham oportunidade de ter contato com um. Mesmo nos cursos de
programação, tudo era feito em papel e apenas os mais sortudos tinham a
chance de rodar os programas em um computador real. Tendo isso em
mente, não é difícil de imaginar o furor que o lançamento do Altair gerou:
Capa da
revista "Popular Electronics" e um anúncio do kit do Altair 8800
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 mil dólares, mas na época esse valor foi
considerado uma pechincha, tanto que foram vendidas 4000 unidades em
apenas 3 meses, depois que ele foi capa da revista Popular Eletronics .
Esse "modelo básico" consistia nas placas, luzes, chips, gabinete, chaves e a
fonte de alimentação, junto, claro, com o manual de montagem. Existia a
opção de comprá-lo já montado, mas custava 182 dólares (da época) a mais.
Ele 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, que custava US$ 264 na forma de kit. Em teoria, seria possível
instalar até 64 KB, mas o custo tornava o upgrade inviável.
Hoje em dia, com módulos de 4 GB custando menos de 100 reais, pode
parecer estranho que os computadores da época usassem tão pouca memória
RAM. Como pode imaginar, a questão central não era a vontade ou a
utilidade, mas sim a questão do preço. Em 1974 a memória RAM custava
cerca de US$ 50 por kbyte (4 GB de memória custariam 200 milhões de
dólares...), o que tornava impraticável o uso de mais do que 4 ou 8 KB em
computadores pessoais.
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 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
e Steve Wozniak, que apesar de não ser tão conhecido quanto o sócio, fez
quase todo o trabalho pesado de desenvolvimento. Uma curiosidade é que 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".
Apesar da fama, o Apple I passou longe de ser um grande sucesso de vendas.
Foram vendidas pouco mais de 200 unidades a 666 dólares cada uma (pouco
mais de US$ 5000 em valores corrigidos). 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", montada sobre uma tábua de madeira e embalada em uma caixa de
papelão, por isso era comum que os Apple I fossem instalados dentro de
caixas de madeira feitas artesanalmente.
O Apple I era baseado no processador MOS 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 o Apple I compensava a menor potência bruta
oferecendo espaçosos 8 KB de memória, suficientes para carregar o
interpretador BASIC (que ocupava 4 KB de memória), com 4 KB livres para
escrever e rodar programas.
Uma das vantagens é que o Apple I podia ser ligado diretamente à 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 taxas de leitura 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
software. 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, dando origem ao Apple II, lançado em
1977. Diferente do Apple I, que era produzido artesanalmente, o Apple II foi
produzido em escala industrial, com um gabinete de plástico injetado e um
teclado incorporado, bem mais parecido com um computador atual.
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
O preço era um pouco salgado: US$ 1298, que equivalem a quase 10.000
dólares em valores corrigidos. Apesar disso, ele fez um grande sucesso,
sendo inclusive adotado por várias universidades e escolas de segundo grau,
principalmente nos EUA.
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 (similar ao BIOS dos PCs atuais), 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). Ele 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 pelo interpretador, por isso não
contam). Ao desenvolver programas mais complexos você esbarrava
rapidamente na barreira da memória disponível, 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 as instruções do processador e endereços de memória,
de forma a extraírem o máximo do equipamento.
Não é muito diferente do que temos atualmente, onde os sistemas
operacionais e muitos softwares complexos são escritos em C ou C++,
enquanto aplicativos mais simples e jogos são escritos usando linguagens de
alto nível, que oferecem um desempenho mais baixo, mas permitem um
desenvolvimento mais rápido.
Voltando ao Apple II, a memória RAM podia ser expandida para 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 o uso de 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 (ou VisiCalc), ancestral das planilhas atuais:

Foto de um manual antigo que mostra a interface do Visual Calc


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", similar aos
drives atuais.
Outra inovação dos Apple I e Apple II em relação ao Altair e outros
computadores anteriores foi 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.
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:
Placa de memória core de 50 bytes e o detalhe da interligação dos anéis
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 do 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 de memória
SRAM (dois chips de 128 bytes cada um), que eram rápidos e confiáveis,
porém muito caros. Na memória SRAM, são usados de 4 a 6 transistores
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
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 transistor 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 dólares 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 chip 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 armazenava 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 chip Z80 surgiu como uma versão aprimorada do 8080, desenvolvido pela
Zilog. Ele e suas inúmeras variantes se tornaram incrivelmente populares,
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
frequê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, calculadoras, videogames
(incluindo o GameBoy e GameBoy Color), diversos modelos 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 uma
plataforma para jogos, 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 conviveu com o
Atari 2600 (o vídeogame) e 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.

O surgimento do PC
Depois dos dinossauros da primeira metade da década de 70, os
computadores pessoais finalmente começaram a atingir um nível de
desenvolvimento suficiente para permitir o uso de aplicativos sérios.
Surgiram então os primeiros aplicativos de processamento de texto, planilhas
e até mesmo programas de editoração e desenho, que aproveitavam ao
máximo os recursos oferecidos pelas máquinas de 8 bits da época. Esse
mercado crescente chamou a atenção da IBM, o que levou ao início da era
PC.
A IBM de 1980 era uma empresa especializada em mainframes e terminais
burros. Entretanto, percebendo a crescente demanda por computadores
pessoais, decidiram criar um pequeno grupo (que originalmente possuía
apenas 12 desenvolvedores) para desenvolver um computador pessoal, sem
grandes pretensões.
O PC era considerado um projeto menor dentro da IBM, apenas uma
experiência para testar a demanda do mercado. O projeto chegou a ser
marginalizado dentro da empresa, pois muitos executivos acreditavam que o
IBM PC poderia concorrer com outros produtos do portfólio da IBM,
canibalizando as vendas.
Depois de quase um ano de desenvolvimento, o projeto rendeu frutos e o
primeiro PC foi lançado em 12 de agosto de 1981:
O PC original
Para cortar custos e acelerar o desenvolvimento, a equipe decidiu que usaria
apenas componentes padronizados, que pudessem ser encontrados
facilmente no mercado. O processador escolhido foi o Intel 8088, uma
versão econômica do 8086, que havia sido lançado pela Intel em 1978.
Quando a IBM estava desenvolvendo seu computador pessoal, chegou a ser
cogitado o uso do 8086, mas acabou sendo escolhido o 8088 devido à
questão do custo.
Tanto o 8086 quanto o 8088 são processadores de 16 bits, considerados
bastante avançados para a época. Um processador de 16 bits é capaz de
endereçar mais memória (até 64 KB de memória de cada vez) e processar
instruções muito mais complexas que os processadores de 8 bits usados até
então.
A grande diferença entre os dois é que o 8086 é um processador de 16 bits
"puro", enquanto o 8088 se comunica com os demais periféricos usando um
barramento de 8 bits. Isso naturalmente prejudicava o desempenho, mas
trouxe uma vantagem importante: a possibilidade de usar os componentes de
8 bits usados em outros computadores da época, que eram muito mais
populares e baratos.
Essa arquitetura permitiu ao primeiro PC competir na mesma faixa de preço
dos computadores de 8 bits mais populares e, ao mesmo tempo, oferecer um
desempenho bem superior devido ao seu processador de 16 bits. O 8088 é
capaz de acessar até 1 MB de memória RAM (embora o PC original
suportasse apenas 256 KB, devido a limitações por parte da placa-mãe) e
funciona a 4.77 MHz, oferecendo um desempenho mais do que respeitável
para os padrões da época.
Para suportar o 1 MB de memória (mesmo sendo um processador de 16
bits), o 8088 usava a segmentação de endereços, usando 4 bits adicionais de
endereçamento para dividir a memória em 16 blocos de 64 KB cada um.
O grande problema com a segmentação é que o processador pode acessar um
único bloco de cada vez, constantemente chaveando entre eles. Se um
aplicativo está lendo dados no bloco 1 e subitamente precisa de informações
armazenadas no bloco 2, o processador precisa 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 é perdido. Como pode imaginar, esse sistema
resultava em uma grande penalidade do ponto de vista do desempenho.
Vendo por esse lado o PC original parecia realmente muito primitivo. Par a
colocar as coisas em perspectiva, é importante lembrar que o principal
concorrente do IBM PC na época de lançamento era o Apple II que, embora
fosse mais barato e contasse com mais softwares disponíveis, usava um
processador de 8 bits operando a apenas 1 MHz, com 4 KB de memória
RAM.
Entretanto, o aspecto técnico não foi o determinante para o sucesso do PC.
Ele era um bom computador para a época, mas era caro e não tinha nada que
os concorrentes não pudessem usar em seus produtos. Ele tinha tudo para ser
apenas mais um no mercado, se não fosse um diferencial importante: a
arquitetura aberta.
Diferente de outros computadores da época, qualquer fabricante podia
desenvolver e vender acessórios para o PC, sem pagar royalties ou fazer
acordos de licenciamento. Como todos os componentes podiam ser
encontrados no mercado, era possível também desenvolver clones,
computadores compatíveis com o PC, fabricados por outras empresas. Isso
lentamente fez com que toda a indústria passasse a orbitar em torno do PC, o
que levou a um crescimento assombroso da plataforma.
Voltando ao tema, o PC original tinha, em sua versão mais simples, apenas
16 KB de memória RAM, com direito apenas ao gabinete e teclado. A partir
daí, tudo era opcional, incluindo o monitor (você podia usar uma TV,
embora a qualidade da imagem fosse ruim), os drives de disquete e HD.
Também estava disponível um conector para um gravador de fitas K7
(localizado ao lado do conector para o teclado), mas ele nunca foi muito
usado e desapareceu a partir do XT.
Na configuração básica, o PC custava "apenas" 1.564 dólares da época, mas
incluindo mais 48 KB de memória, dois drives de disquete e um monitor
mono de 12", o preço chegava facilmente a 2.500 dólares, que equivalem a
mais de 7.000 dólares em valores atuais.
Na época, os HDs ainda eram um componente caro e exótico. Em 1981, um
Seagate ST-506 (o modelo mais popular até então) custava mais de mil
dólares (da época) e tinha apenas 5 MB de capacidade.
Este HD da foto a seguir é um ST-225 (também da Seagate), um modelo de
20 MB, lançado em 1984, que foi muito usado nos micros 286. Esses
primeiros modelos ainda utilizavam motores de passo para mover as cabeças
de leitura (como nos drives de disquete), por isso os problemas eram
comuns:
Seagate ST-225, de 20 MB
Ao usar um PC sem HD, o sistema operacional e todos os programas eram
carregados a partir de disquetes de 5¼". Inicialmente eram usados disquetes
de 180 KB, mas eles foram logo substituídos por disquetes de 360 KB (onde
eram usadas as duas faces do disco) e, alguns anos mais tarde, por disquetes
de "alta densidade", com 1.2 MB. Os disquetes de de 3.5" com 1.44 MB, que
usamos hoje em dia, passaram a ser usados nos PCs apenas em 1987, com o
lançamento do IBM PS/2. Existiu ainda um padrão de disquetes de 2.8 MB,
lançado nos anos 90, que acabou não pegando.
Disquetes de 5¼
O PC original era monotarefa, de forma que para carregar outro programa,
você precisava primeiro encerrar o primeiro e trocar o disquete dentro do
drive. O segundo drive de disquetes era um item popular (e necessário), pois
os disquetes de 5¼" eram muito frágeis e a mídia se degradava com o tempo,
de forma que você precisava copiar os discos frequentemente.
Conforme foram sendo lançados PCs com mais memória RAM, surgiu o
"macete" de criar um ramdisk (um pedaço da memória RAM usado como se
fosse um HD) e usá-lo para copiar disquetes sem precisar de um segundo
drive. Também era comum aparecerem versões "capadas" dos principais
programas, com componentes e bibliotecas desativados ou removidos, de
forma a rodar nos PCs com menos memória RAM. Naquela época, ainda não
existia memória swap, de forma que se o PC não tivesse memória suficiente,
os programas simplesmente não rodavam.
O sistema operacional usado no PC original era o MS-DOS 1.0 (na época
ainda chamado de PC-DOS), que foi desenvolvido às pressas pela Microsoft
com base num sistema operacional mais simples, o QDOS, que foi por sua
vez 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 desenvolvia
versões do seu CP/M para várias arquiteturas diferentes.
Na época, a IBM acreditava que ganharia dinheiro vendendo as máquinas e
não vendendo sistemas operacionais e softwares, o que era considerado um
negócio menor, que acabou sendo dado de bandeja para a Microsoft.
Com o passar do tempo, os executivos da IBM se arrependeram
amargamente da decisão, pois a concorrência entre os diversos fabricantes
derrubou os preços e as margens de lucro dos PCs, enquanto a Microsoft
conseguiu atingir um quase monopólio do sistema operacional e, sem
concorrentes de peso, passou a trabalhar com margens de lucro cada vez
maiores.
Um fabricante de memórias, como a Micron, trabalha normalmente com
margens de lucro abaixo de 1%; conseguem ganhar dinheiro apenas por
venderem quantidades muito grandes. Um integrador como a Dell trabalha
com margens de 3 a 5% (e leva prejuízo às vezes, nas unidades que ficam
muito tempo em estoque ou não vendem), enquanto a Microsoft (mesmo
com toda a pirataria) trabalha com margens superiores a 80% vendendo o
Windows e Office: um negócio da China.
Hoje em dia, a IBM sequer fabrica PCs. Mesmo os famosos notebooks
Thinkpad são agora fabricados e vendidos pela Lenovo, uma empresa
Chinesa que comprou os direitos sobre a marca em 2000.
Voltando à história, 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.
O XT se tornou um computador bastante popular, rapidamente clonado por
outros fabricantes, que passaram a vender versões modificadas, com mais
memória, HDs de maior capacidade, monitores coloridos e até mesmo
versões com processadores da AMD, que vendia uma versão do 8088 capaz
de operar a 10 MHz. Ele chegou a ser até mesmo fabricado no Brasil,
durante a época da reserva de mercado.
Placa-mãe de um clone do PC XT, com um 8088 da AMD

O 286
Depois do XT, o próximo passo foi o PC AT , que foi o primeiro PC
baseado no Intel 286. Ele usava uma versão de 6 MHz do processador
(depois surgiram versões mais rápidas, de 8, 12 e até 16 MHz), HD de 10
MB, monitor EGA (640x350, com 64 cores) e já usava disquetes de 5¼" de
1.2 MB.
Como a memória RAM ainda era um item muito caro, existiam versões com
de 256 KB a 2 MB de RAM. Embora fosse extremamente raro usar mais de
2 MB, existia a possibilidade de instalar até 16 MB:
PC AT
Uma curiosidade é que o 286 foi lançado pela Intel em fevereiro de 1982,
apenas 6 meses depois do PC original. Entretanto, o projeto do AT demorou
para decolar, já que foi necessário migrar todo o projeto para o barramento
de 16 bits utilizado por ele e esperar pela queda nos preços dos
componentes, uma demora que foi acentuada pela burocracia e um longo
período de testes antes do lançamento.
Atualmente, o período de desenvolvimento dos periféricos é muito mais
curto. Quase sempre, quando um novo processador é lançado, placas-mãe
para ele são disponibilizadas quase que imediatamente, pois o
desenvolvimento é feito de forma simultânea, com a Intel e a AMD
disponibilizando as especificações e versões de desenvolvimento dos chips
para os fabricantes de placas vários meses antes.
Voltando ao PC AT, o 286 trouxe vários avanços sobre o 8088. Além de
incorporar novas instruções, ele passou a utilizar um barramento de 16 bits,
que resultou em um ganho considerável de desempenho e trouxe a
possibilidade de usar periféricos mais avançados, incluindo placas de vídeo
VGA e controladoras de disco mais rápidas.
Para manter compatibilidade com os periféricos de 8 bits usados no PC
original e no XT, a IBM desenvolveu os slots ISA de 16 bits, que permitem
usar tanto placas de 8 bits, quanto de 16 bits. As placas de 8 bits são menores
e usam apenas a primeira série de pinos do slot, enquanto as placas de 16
bits usam o slot completo. Devido à sua popularidade, o barramento ISA
continuou sendo usado por muito tempo. Em 2004 (20 anos depois do
lançamento do PC AT) ainda era possível encontrar algumas placas-mãe
novas com slots ISA, embora atualmente eles estejam extintos.

Slots ISA de 8 e 16 bits, em uma placa-mãe de 286


Ao desenvolver o 286, a Intel enfrentou o velho problema da
compatibilidade retroativa, já que precisava introduzir novos recursos, mas
ao mesmo tempo manter a compatibilidade com os softwares escritos para o
8086 e o 8088. A solução foi oferecer dois modos de operação, baseados de
modo real e modo protegido.
No modo real, o 286 oferece as mesmas instruções suportadas pelo 8088,
mantendo compatibilidade com os softwares. Operando em modo real, o 286
é capaz de acessar apenas 1 MB de memória e sofre de todas as outras
limitações, mas o desempenho é melhor (o 286 é quase 4 vezes mais rápido
que um 8088 do mesmo clock), graças ao clock mais alto, ao barramento de
16 bits e às muitas melhorias na arquitetura do processador.
Ao chavear para o modo protegido, ele ganha suporte a até 16 MB de RAM
(apesar de ser um processador de 16 bits, o 286 usa um sistema de
endereçamento de memória de 24 bits), com suporte a multitarefa, uso de
memória swap e proteção de memória.
Devido à questão do BIOS, o processador usa o modo real por default,
chaveando para o modo protegido ao receber uma instrução específica. O
grande problema do 286 era que, ao chavear para o modo protegido, o
processador deixava de ser compatível com as instruções de modo real,
incluindo as rotinas de acesso a dispositivos do BIOS e do MS-DOS, o que
tornava necessário o desenvolvimento de novos sistemas operacionais e
novos drivers de acesso a dispositivos.
Para complicar, o 286 também não possuía uma instrução para voltar ao
modo real (era necessário reiniciar o micro), o que eliminava a possibilidade
de rodar aplicativos escritos para usar o modo protegido em conjunto com
aplicativos de legado, criando uma situação "tudo ou nada", que acabou
levando à inércia, fazendo com que os PCs baseados no 286 fossem usados
para rodar o MS-DOS e aplicativos de modo real (que também podiam ser
executados em um XT), aproveitando apenas a maior velocidade do
processador.
Mesmo as primeiras versões do Windows (do 1.0 ao 2.0) rodavam em modo
real, sem suporte a memória virtual nem multitarefa. Você podia abrir vários
aplicativos ao mesmo tempo, mas apenas um podia ser usado de cada vez.
Estas primeiras versões eram muito limitadas e acabavam sendo usadas
apenas como uma interface para facilitar o acesso aos aplicativos do MS-
DOS. Mesmo assim, a maioria preferia eliminar o intermediário e rodar os
aplicativos DOS diretamente, chamando-os através do prompt.
No final, o modo protegido do 286 foi suportado apenas por algumas versões
do Unix (o Linux começou a ser desenvolvido apenas em 1991) e uma
versão do OS/2, lançada posteriormente.

O 386 e a era dos 32 bits


Em outubro de 1985 a Intel lançou o 386, que marcou o início dos tempos
modernos, trazendo a primeira encarnação da arquitetura de 32 bits que
continua em uso basicamente até os dias de hoje.
Além de utilizar um barramento de 32 bits (o que resultou em um grande
ganho de desempenho no acesso à memória e a possibilidade de usar
barramentos mais rápidos que o ISA), o 386 adotou o uso de endereçamento
de 32 bits para acesso à memória, o que tornou possível acessar até 4 GB (2
elevado a 32ª potência), mesmo sem usar a segmentação de endereços, como
no caso 8088.
Assim como o 286, o 386 continua possuindo os dois modos de operação. A
diferença é que no 386 é possível alternar entre o modo real e o modo
protegido livremente. Isso fez toda a diferença, já que aplicativos que
rodavam sobre o MS-DOS passaram a poder chavear o processador para o
modo protegido (e assim se beneficiarem das novas instruções) e voltarem
ao modo real sempre que precisavam usar alguma sub-rotina do BIOS ou do
MS-DOS, de maneira rápida e inteiramente transparente.
Nesses casos, era usado um programa de DPMI ("DOS Protected Mode
Interface", ou "interface DOS de modo protegido") para fazer o
chaveamento entre os dois modos. Toda vez que o programa precisava usar
alguma sub-rotina do MS-DOS, ele passava o comando ao chaveador e
aguardava em segundo plano. O chaveador colocava o processador em modo
real, executava os comandos agendados, chaveava o processador para o
modo protegido e entregava o resultado ao aplicativo, que continuava
trabalhando como se nada tivesse acontecido.
Um bom exemplo de programa de DPMI é o DOS4GW, que é usado por
muitos jogos antigos que rodam sobre o MS-DOS, como o DOOM, SimCity
2000 e vários emuladores de videogames.
O esquema de chaveamento também era utilizado pelo Windows 3.x, que
incluía todas as rotinas necessárias, dispensando o uso do programa de
DPMI. O Windows 95/98 também pode chavear para o modo real caso
precise carregar algum driver de dispositivo de modo real.
A partir do Windows XP os aplicativos MS-DOS passaram a ser executados
dentro de um emulador, o que resolveu os problemas de estabilidade, mas
reduziu a compatibilidade do sistema com os aplicativos MS-DOS, o que
levou muitos a procurarem soluções alternativas, como o DOSBox.
Ter um processador 386 é o requisito mínimo para rodar qualquer sistema
operacional minimamente contemporâneo. Com um 386, memória RAM e
espaço em disco suficiente, seria possível rodar o Windows 95 e aplicativos,
embora bem lentamente devido à pouca potência do processador. Seria
possível também instalar distribuições Linux antigas, ou até mesmo instalar
o Windows 98.
Apenas o Athlon 64 e os processadores Intel com o EM64 (o conjunto de
instruções compatível com os processadores de 64 bits da AMD) vieram a
quebrar essa compatibilidade histórica. Os processadores de 64 bits atuais
são perfeitamente compatíveis com os aplicativos de 32 bits, mas programas
otimizados para eles não rodam mais nas máquinas antigas. Embora mais
suave e gradual, estamos assistindo a uma migração similar à que ocorreu na
transição do 286 para o 386.
Voltando ao lançamento do 386, embora o processador tenha sido lançado
em 1985, a IBM só foi capaz de lançar um PC baseado nele em 1987, dando
tempo para a Compaq sair na frente, marcando o fim do domínio da IBM
sobre a plataforma.
O primeiro 386 operava a apenas 16 MHz, o que permitia que o processador
operasse à mesma velocidade dos chips de memória, assim como nos
processadores anteriores. Quando foi lançada a versão de 20 MHz, o clock
do processador havia se tornado maior que o suportado pelos chips de
memória, o que obrigou os projetistas a introduzirem o uso de ciclos de
espera, prejudicando o desempenho. Para amenizar o problema, foi
introduzido o uso da memória cache.
Na foto a seguir temos um exemplo de placa para 386. A memória cache é
composta pelos cinco chips, posicionados entre o slot ISA e os pentes de
memória. Esta placa ainda utiliza módulos de memória de 30 vias e os 4
módulos instalados somam apenas 4 MB. Note ainda que ela possui apenas
slots ISA, sem nenhuma opção de barramento mais rápido:
4 MB de memória, com direito a coprocessador aritmético! :)
Outro componente exótico usado na época era o co-processador aritmético,
um processador adicional, que executava cálculos complexos, as famosas
operações de ponto flutuante. Até o 386, o coprocessador aritmético era um
componente opcional, que podia ser instalado em um soquete vago
disponível na placa-mãe. Ele era necessário para rodar programas de
engenharia, modelagem 3D e alguns jogos, mas não era muito popular, pois
custava quase tanto quanto o processador principal.
A partir do 486, o co-processador passou a ser incorporado diretamente ao
processador principal, eliminando o soquete separado. Com a miniaturização
dos transistores, os processadores passaram a trazer cada vez mais
componentes.
Os processadores atuais incluem várias unidades de execução, o que os torna
capazes de processar várias instruções por ciclo, quantidades generosas de
memória cache, componentes extras destinados a organizar e decodificar as
instruções que serão processadas, conjuntos de instruções extras e, no caso
dos Athlon 64, Phenoms e Core i3/i5/i7, também o controlador de memória,
que antes fazia parte da placa-mãe. Outra mudança importante é a
popularização dos processadores dual-core e quad-core, onde temos dois ou
quatro processadores completos dentro do mesmo encapsulamento, prontos
para dividirem o processamento.
Voltando ao 386, como as placas-mãe da época eram muito caras, existiam
várias opções de upgrade. O 386SX, por exemplo, podia ser instalado em
muitas placas para 286. Existiam também os processadores 486 DLC e 486
SLC (fabricados pela Texas Instruments), que podiam ser instalados em
placas para o 386, servindo como uma opção de upgrade.
A seguir temos um 486 DLC, instalado numa placa de 386. O soquete vago
ao lado do processador é o encaixe para o coprocessador aritmético. Note
que naquela época ainda eram usados módulos de memória de 30 vias. Eles
eram módulos de 8 bits, por isso era necessário instalar sempre 4 ou 8
módulos, para que eles fornecessem os 32 bits usados pelo processador:

O mais comum na época era usar módulos de 1 MB, totalizando 4 ou 8 MB.


A memória RAM era ainda extremamente cara, por isso era muito raro ver
alguém usando 16 MB ou mais. Para ter uma ideia, em 1990 cada megabyte
de memória custava mais de 100 dólares.
O Lisa e o Macintosh
Naturalmente, a Apple não ficou sentada durante este tempo todo. Além de
continuar aperfeiçoando a linha Apple II, a empresa começou a investir
pesadamente no desenvolvimento de computadores com interface gráfica e
mouse. A "inspiração" surgiu numa visita de Steve Jobs ao laboratório da
Xerox, onde computadores com interface gráfica eram desenvolvidos desde
a década de 70, embora sem sucesso comercial, devido ao custo proibitivo.
Em 1983, eles apresentaram uma grande novidade, o Lisa. Em sua
configuração original, o Lisa vinha equipado com um processador Motorola
68000 de 5 MHz, 1 MB de memória RAM, dois drives de disquete de 5¼"
de alta densidade (eram usados discos de 871 KB), HD de 5 MB e um
monitor de 12 polegadas, com resolução de 720x360. Era uma configuração
muito melhor do que os PCs da época, sem falar que o Lisa já usava uma
interface gráfica bastante elaborada e contava com uma suíte de aplicativos
de escritório à lá Office. O problema era o preço: 10 mil dólares da época
(suficiente para comprar 5 PCs).

Apple Lisa
Embora não houvesse nada melhor no mercado, o Lisa acabou não
atingindo o sucesso esperado. No total, foram produzidas cerca de cem mil
unidades em dois anos, porém a maior parte delas foram vendidas com
grandes descontos, muitas vezes abaixo do preço de custo (como um lote de
5000 unidades vendido para a Sun em 1987, depois que o Lisa já havia sido
descontinuado). Como a Apple investiu aproximadamente US$ 150 milhões
no desenvolvimento do Lisa, a conta acabou ficando no vermelho.
Apesar disso, o desenvolvimento do Lisa serviu de base para o Macintosh,
um computador mais simples, lançado em 1984. Ao contrário do Lisa, ele
fez um grande sucesso, chegando a ameaçar o império dos PCs. A
configuração era similar à dos PCs da época, com um processador de 8
MHz, 128 KB de memória e um monitor de 9 polegadas. A grande arma do
Macintosh era o MacOS 1.0 (derivado do sistema operacional do Lisa,
porém otimizado para consumir muito menos memória), um sistema
inovador sob vários pontos de vista.
Ao contrário do MS-DOS, ele era inteiramente baseado no uso da interface
gráfica e mouse, o que o tornava muito mais fácil de ser operado. O MacOS
continuou evoluindo e incorporando novos recursos, mas sempre mantendo a
mesma ideia de interface amigável.

MacOS 1.0, ainda monocromático


Depois do Macintosh original, a Apple lançou um modelo atualizado, com
512 KB de memória RAM. Para diferenciá-lo do primeiro, a Apple passou a
chamá-lo de Macintosh 512k. O modelo antigo continuou sendo vendido até
outubro de 1985 como uma opção de baixo custo, passando a ser chamado
de Macintosh 128k.
Pouco tempo depois foi lançado o Mac Rescue, uma placa de expansão que
ampliava os 128 ou 512k de memória para 4 MB (algo assustador para a
época) e dava "de brinde" um ramdisk de 2 MB para armazenamento de
arquivos e programas (as primeiras versões do Mac não possuíam HD). O
Mac já utilizava um recurso de hibernação, de forma que muita gente nunca
desligava o aparelho, apenas o colocava pra dormir, preservando os dados do
ramdisk. Embora fosse um upgrade muito bem vindo, o Mac Rescue não foi
muito popular, pois era caro demais.

As primeiras versões do Windows


Neste mesmo período, a Microsoft desenvolveu a primeira versão do
Windows, anunciada em novembro de 1983. Ao contrário do MacOS, o
Windows 1.0 era uma interface bastante primitiva, que fez pouco sucesso.
Ele rodava sobre o MS-DOS e podia executar tanto aplicativos Windows
quanto os programas para o DOS. O problema era a memória.
Os PCs da época vinham com quantidades muito pequenas de memória
RAM e na época ainda não existia a possibilidade de usar memória virtual
(que viria a ser suportada apenas a partir do 386). Para rodar o Windows, era
preciso primeiro carregar o MS-DOS. Os dois juntos já consumiam
praticamente toda a memória de um PC básico da época. Mesmo nos PCs
mais parrudos não era possível rodar muitos aplicativos ao mesmo tempo,
novamente por falta de memória.
Como os aplicativos Windows eram muito raros na época, poucos usuários
viram necessidade de utilizar o Windows para rodar os mesmos aplicativos
que rodavam (com muito mais memória disponível...) no MS-DOS. Sem
contar que a versão inicial do Windows era bastante lenta e tinha muitos
bugs.
O Windows começou a fazer algum sucesso na versão 2.1, quando os micros
286 com 1 MB ou mais de memória já eram comuns. Com uma configuração
mais poderosa, mais memória RAM e mais aplicativos, finalmente
começava a fazer sentido rodar o Windows. O sistema ainda tinha muitos
problemas e travava com frequência, mas alguns usuários começaram a
migrar para ele. O Windows 2.1 ganhou também uma versão destinada a
PCs com processadores 386, com suporte à proteção de memória e o uso do
modo virtual 8086 para rodar aplicativos do MS-DOS:

Windows 2.1
O Windows emplacou mesmo a partir da versão 3.11 (for Workgroups), que
foi também a primeira versão do Windows com suporte a compartilhamentos
de rede. Ele era relativamente leve do ponto de vista dos PCs da época (os
386 com 4 ou 8 MB de RAM já eram comuns), e suportava o uso de
memória swap, que permitia abrir vários aplicativos, mesmo que a memória
RAM se esgotasse. Na época, a base de aplicativos para o Windows já era
muito maior (os títulos mais usados eram o Word e o Excell, não muito
diferente do que temos em muitos desktops hoje em dia) e sempre existia a
opção de voltar para o MS-DOS quando alguma coisa dava errado.
Foi nesta época que os PCs começaram a recuperar o terreno perdido para os
Macintoshs da Apple. Embora fosse instável, o Windows 3.11 contava com
um grande número de aplicativos e os PCs eram mais baratos que os Macs.
Por estranho que possa parecer, o Windows 3.11 era ainda um sistema de 16
bits, que funcionava mais como uma interface gráfica para o MS-DOS do
que como um sistema operacional propriamente dito. Ao ligar o PC, o MS-
DOS era carregado e você precisava digitar "win" no prompt para carregar o
Windows. Naturalmente, era possível configurar o PC para carregar o
Windows por default, adicionando o comando no arquivo autoexec.bat, mas
muitos (possivelmente a maioria) preferiam chamá-lo manualmente, para ter
como arrumar as coisas pelo DOS caso o Windows passasse a travar durante
o carregamento.
Em agosto 1995 foi lançado o Windows 95, que marcou a transição da
plataforma para os 32 bits. Além de todas as melhorias na interface e da
nova API, o Windows 95 trouxe duas mudanças importantes, que eram o
suporte a multitarefa preemptiva e proteção de memória.
O Windows 3.11 usava um tipo primitivo de multitarefa, batizado de
multitarefa cooperativa. Nele, não é usada proteção de memória, não existe
multitarefa real e todos os aplicativos possuem acesso completo a todos os
recursos do sistema. A ideia é que cada aplicativo usasse o processador por
um certo tempo, passasse para outro programa e esperasse novamente chegar
sua vez para executar mais um punhado de operações.
Esse sistema anárquico dava margem para todo o tipo de problemas, já que
os aplicativos podiam monopolizar os recursos do processador e travar
completamente o sistema em caso de problemas. Outro grande problema era
que sem a proteção de memória, os aplicativos podiam invadir áreas de
memória ocupados por outros, causando um GPF ("General Protection
Falt"), o erro geral que gerava a famosa tela azul do Windows.
A proteção de memória consiste em isolar as áreas de memória utilizadas
pelos aplicativos, impedindo que eles acessem áreas de memória usadas por
outros. Além da questão da estabilidade, esta é também uma função básica
de segurança, já que impede que aplicativos maliciosos tenham acesso fácil
aos dados manipulados pelos demais aplicativos.
Embora fosse suportada desde o 386, a proteção de memória passou a ser
suportada apenas a partir do Windows 95, que introduziu também a já
comentada multitarefa preemptiva, isolando as áreas de memória ocupadas
pelos aplicativos e gerenciando o uso de recursos do sistema.
O grande problema era que embora fosse um sistema de 32 bits, o Windows
95 ainda conservava muitos componentes de 16 bits e mantinha
compatibilidade com os aplicativos de 16 bits do Windows 3.11. Enquanto
eram usados apenas aplicativos de 32 bits, as coisas funcionavam
relativamente bem, mas sempre que um aplicativo de 16 bits era executado,
o sistema voltava a utilizar a multitarefa cooperativa, o que dava margem
aos mesmos problemas.
Na época, o Windows enfrentava a concorrência do OS/2 da IBM, que
fulgurava como uma opção de sistema mais robusto, destinado sobretudo ao
público corporativo.
O OS/2 surgiu de uma parceria entre a IBM e a Microsoft para o
desenvolvimento de um novo sistema operacional para a plataforma PC,
capaz de suceder o MS-DOS (e também as primeiras versões do Windows,
que rodavam sobre ele). Inicialmente, o OS/2 foi desenvolvido para
aproveitar os recursos introduzidos pelo 286 (novas instruções, suporte a 16
MB de memória, etc.) mas ele foi logo reescrito como um sistema
operacional de 32 bits, capaz de aproveitar todos os recursos do 386 em
diante.
Entretanto, o sucesso do Windows 3.x fez com que a Microsoft mudasse de
ideia, passando a enxergar o Windows (e não o OS/2) como o futuro da
plataforma PC. As tensões foram aumentando, até que em 1991 a parceria
foi rompida, o que levou a Microsoft e a IBM a se tornarem concorrentes. A
IBM continuou investindo no desenvolvimento do OS/2, enquanto a
Microsoft usou o código desenvolvido para iniciar o desenvolvimento do
Windows NT, que passou a desenvolver paralelamente ao Windows 95.

OS/2 Warp 3
Embora o OS/2 fosse tecnicamente muito superior ao Windows 95, foi a
Microsoft quem acabou levando a melhor, pois o Windows 95 era mais fácil
de usar e contava com a familiaridade dos usuários com o Windows 3.11,
enquanto a IBM derrapava numa combinação de falta de investimento, falta
de apoio aos desenvolvedores e falta de marketing.
Graças aos termos do acordo anterior, a IBM foi capaz de incluir suporte aos
aplicativos Windows no OS/2. Entretanto, o tiro acabou saindo pela culatra,
pois desestimulou ainda mais o desenvolvimento de aplicativos nativos para
o OS/2, fazendo com que ele acabasse concorrendo com o Windows em seu
próprio território. Rodar aplicativos do Windows dentro do OS/2 era mais
problemático e o desempenho era inferior, fazendo com que mais e mais
usuários preferissem usar o Windows diretamente.
Embora esteja oficialmente morto, o OS/2 ainda é utilizado por algumas
empresas e alguns grupos de entusiastas. Em 2005 a Serenity comprou os
direitos sobre o sistema, dando origem ao eComStation.
Um sistema muito mais bem-sucedido, que começou a ser desenvolvido no
início da década de 90, é o Linux, que todos já conhecemos. O Linux tem a
vantagem de ser um sistema aberto, que atualmente conta com a colaboração
de milhares de desenvolvedores voluntários espalhados pelo globo, além do
apoio de empresas de peso, como a IBM, HP, Oracle e praticamente todas as
outras grandes empresas de tecnologia.
Apesar disso, no começo o sistema era muito mais complicado que as
distribuições atuais e não contava com as interfaces gráficas exuberantes que
temos hoje em dia. Embora o Linux seja forte em servidores desde o final da
década de 90, o uso do sistema em desktops vem crescendo em um ritmo
mais lento.
De volta à história do Windows, com o lançamento do NT a Microsoft
passou a manter duas árvores de desenvolvimento separadas, uma dela com
o Windows 95, destinada ao mercado de consumo e a outra com o Windows
NT, destinado ao público corporativo.
A árvore do Windows 95 deu origem ao Windows 98, 98 SE e ME, que
apesar dos avanços em relação à API e aos aplicativos, conservaram os
problemas fundamentais do Windows 95 em relação à estabilidade. Outro
grande problema é que estas versões do Windows foram desenvolvidas sem
um modelo de segurança, em uma época em que os arquivos eram trocados
através de disquetes e as máquinas eram acessadas apenas localmente. Isso
permitiu que o sistema fosse fácil de usar e rodasse com um bom
desempenho nas máquinas da época, mas começou a se tornar um pesado
fardo conforme o acesso à web se popularizava e o sistema passava a ser
alvo de todo tipo de ataques.
A árvore do Windows NT, por outro lado, teve muito mais sucesso em criar
um sistema operacional moderno, bem mais estável e com uma fundação
bem mais sólida do ponto de vista da segurança. O Windows NT 4 deu
origem ao Windows 2000, que por sua vez foi usado como fundação para o
Windows XP e o Windows 2003 Server, dando início à linhagem
subsequente, com o Vista (que devido a uma combinação de fatores acabou
compartilhando da má fama do Windows ME), o Windows 7 e o Windows
2008 Server.
A Apple, por sua vez, passou por duas grandes revoluções. A primeira foi a
migração do MacOS antigo para o OS X, que por baixo da interface polida, é
um sistema Unix, derivado do BSD. A segunda aconteceu em 2005, quando
a Apple anunciou a migração de toda a sua linha de desktops e notebooks
para processadores Intel, o que permitiu que se beneficiassem da redução de
custo nos processadores e outros componentes para micros PCs, mas ao
mesmo tempo conservassem o principal diferencial da plataforma, que é o
software.
Mac OS X
Do ponto de vista do hardware, os Macs atuais não são muito diferentes dos
PCs: você pode inclusive rodar Windows e Linux através do Boot Camp.
Entretanto, só os Macs são capazes de rodar o Mac OS X, devido ao uso do
EFI e de um chip TPM.

A lei de Moore
Em 1965, Gordon Moore (co-fundador da Intel) publicou um artigo
constatando que a miniaturização vinha permitindo dobrar o número de
transistores em circuitos integrados a cada ano (enquanto o custo permanecia
constante), uma tendência que deveria se manter por pelo menos mais 10
anos. Em 1975 (precisamente dez anos depois), ele atualizou a previsão,
profetizando que o número passaria a dobrar a cada 24 meses, cunhando a
célebre lei de Moore.
Na época ninguém poderia prever que em 2010 estaríamos usando PCs com
processadores Core i7 e módulos de memória DDR3 em dual-channel, mas a
previsão continua surpreendentemente apurada, acertando quase em cheio a
cada nova geração. Basta fazer as contas:

8088 (1979): 29.000 transistores


486 (1989): 1.200.000 transistores
Pentium III Coppermine 21.000.000 transistores
(1999):
Core i7 (2009): 731.000.000 transistores
Tamanha precisão pode soar realmente profética, mas a lei de Moore é mais
um plano de negócios do que uma profecia. A realidade é que fabricantes de
chips como a Intel precisam lançar novos processadores regularmente para
alimentar o ciclo dos upgrades e manter assim as vendas em alta.
Cada nova geração precisa ser consideravelmente mais potente que a
anterior, o que leva à busca por novos processos de fabricação. Por
coincidência, cada nova técnica de litografia tem por objetivo
aproximadamente dobrar o número de transistores no mesmo espaço (já que
com menos do que isso o avanço seria pequeno demais para justificar o
investimento) e, por questões econômicas (ciclo de lançamento dos produtos
e outros fatores), os fabricantes conseguem reunir os investimentos
necessários para atualizar as fábricas a cada dois anos.
Em outras palavras, a lei de Moore tem se mantido precisa pois ela é uma
fórmula simples, que cria um ciclo previsível de upgrades. Todo mundo
gosta de um pouco de previsibilidade (empresas precisam planejar upgrades,
fabricantes precisam planejar os próximos lançamentos, e assim por diante)
e os ciclos de 24 meses oferecem exatamente isso.
Originalmente, a Lei de Moore não falava nada sobre o desempenho, mas
apenas sobre o número de transistores em processadores, módulos de
memória e outros circuitos. Entretanto, a sofisticação dos circuitos anda de
mãos dadas com o desempenho, já que mais transistores significam mais
unidades de processamento, mais cores, mais memória cache e assim por
diante. Além disso, novas técnicas de fabricação permitem também
aumentar o clock, o que resulta em mais instruções por ciclo e mais ciclos
por segundo.
Isso levou funcionários da Intel a cunharem uma versão alternativa,
prevendo que o desempenho dos processadores dobraria a cada 18 meses,
outra previsão que vem se mantendo mais ou menos apurada, embora o uso
de mais núcleos e mais unidades de processamento tenha tornado cada vez
mais difícil extrair todo o desempenho dos processadores atuais.
Naturalmente, os ciclos de 24 meses não continuarão indefinidamente, já que
os processos de litografia irão eventualmente esbarrar nas leis da física, algo
que deve acontecer entre 2015 e 2020.
Conforme os transistores ficam menores, eles passam a ser formados por
menos átomos, o que torna cada vez mais difícil manter a integridade dos
sinais. Isso faz com que o desafio (e o investimento necessário) em criar a
próxima geração, seja exponencialmente maior que o da geração anterior.
Entretanto, não há motivo para pânico, já que existem outras tecnologias no
horizonte, como o uso de nanotubos e a eterna promessa dos computadores
quânticos. Soluções criativas tendem a aparecer quando existe muito
dinheiro em jogo.

Como são fabricados os processadores


O componente básico para qualquer chip é o wafer de silício que é obtido
através da fusão do silício junto com os materiais que permitirão sua
dopagem posteriormente. O silício é um dos materiais mais abundantes da
natureza (mesmo areia de construção possui 25% de silício). O grande
problema é que os wafers de silício precisam ser compostos de silício
99,9999% puro, o que demanda um caro e complicado processo de
purificação. Qualquer impureza que passe despercebida nessa fase acabará
resultando em um chip defeituoso mais adiante.
Inicialmente são produzidos cilindros (ingots) com de 20 a 30 centímetros de
diâmetro, que são posteriormente cortados em fatias bastante finas:
Essas "fatias" são polidas e tratadas, obtendo os wafers de silício. A
qualidade do wafer determinará o tipo de chip que poderá ser construído
com base nele.
Wafers de baixa qualidade, usados para construir circuitos rudimentares,
com poucos milhares de transistores, podem ser comprados a preços bastante
baixos, a partir de milhares de fornecedores diferentes. Entretanto, para
produzir um processador moderno, é preciso utilizar wafers de altíssima
qualidade, que são extremamente caros.
Toda a tecnologia necessária para produzir os wafers faz com que eles
estejam entre os produtos mais caros produzidos pelo homem. Cada wafer de
30 centímetros custa mais de 20 mil dólares para um fabricante como a Intel,
mesmo quando comprados em grande quantidade. Um invólucro de 25
unidades, como esse da foto, custa uma pequena fortuna:
Cada wafer é usado para produzir vários processadores, que no final da
produção são separados e encapsulados individualmente. Não seria possível
mostrar todos os processos usados na fabricação de um processador, mas
para lhe dar uma boa ideia de como eles são produzidos, vou mostrar passo a
passo a construção de um único transistor. Imagine que um Core 2 Duo
possui 291 milhões de transistores e cada wafer permite produzir algumas
centenas de processadores.

O processo de litografia

Tudo começa com o wafer de silício em seu estado original. A primeira


etapa do processo é oxidar a parte superior do wafer, transformando-a em
dióxido de silício. Isso é feito através da exposição do wafer a gases
corrosivos e a altas temperaturas. A fina camada de dióxido de silício que se
forma é que será usada como base para a construção dos transistores, que
ocupam apenas a superfície do wafer:
Em seguida é aplicada uma camada bastante fina de um material
fotossensível sobre a camada de dióxido de silício, cobrindo toda a
superfície do wafer. Ele passa então por um banho de luz ultra-violeta, que é
aplicada sobre uma máscara de litografia, que "imprime" um padrão sobre a
superfície, o que permite criar o desenho dos componentes:

A camada fotossensível é originalmente sólida, mas ao ser atingida pela luz


ultravioleta transforma-se numa substância gelatinosa, que pode ser
facilmente removida. Depois de remover as partes moles da camada
fotossensível (através de um banho químico), temos algumas áreas do
dióxido de silício expostas, e outras que continuam cobertas pelo que restou
da camada.
O wafer passa por um novo banho químico, baseado em compostos
diferentes, que remove as partes do dióxido de silício que não estão
protegidas pela camada fotossensível. Apesar disso, o restante continua
intacto:
Finalmente, é removida a parte que restou da camada fotossensível. Note
que, como temos substâncias diferentes, é possível remover uma camada de
cada vez, ora o dióxido de silício, ora a própria camada fotossensível. Com
isto é possível "desenhar" as estruturas necessárias para formar os
transistores:

Cada transistor é formado por várias camadas, dependendo do projeto do


processador. Neste exemplo, temos um transistor simples, mas os
processadores atuais utilizam um número muito maior de camadas, de
acordo com o projeto do chip.
Começa então a construção da segunda camada do transistor. Inicialmente o
wafer passa novamente pelo processo de oxidação inicial, sendo coberto por
uma nova camada (desta vez bem mais fina) de dióxido de silício. Note que
apesar da nova camada de dióxido de silício, o desenho anterior é mantido.
Em seguida é aplicada uma camada de cristal de silício sobre a estrutura
anterior. Sobre ela é aplicada uma nova camada de material fotossensível,
que será usado na fase seguinte.
O waffer passa novamente pelo processo de litografia, desta vez utilizando
uma máscara diferente. O processo de fabricação das diferentes camadas do
processador baseia-se justamente na repetição deste processo básico,
alternando o uso de diferentes máscaras de litografia e banhos químicos:

Novamente, a parte da camada fotossensível que foi exposta à luz é


removida, deixando à mostra partes das camadas de cristal de silício e
dióxido de silício, que são removidas em seguida. Como na etapa anterior, é
removido o que restou da camada fotossensível. Terminamos a construção
da segunda camada do transistor:

Chegamos a uma das principais etapas do processo de fabricação, que é a


aplicação das impurezas, que transformarão partes do wafer de silício em
material condutor. Essas impurezas também são chamadas de íons. Note que
os íons aderem apenas à camada de silício que foi exposta no processo
anterior e não às camadas de dióxido de silício ou à camada de cristal de
silício:

É adicionada então uma terceira camada, composta por um tipo diferente de


cristal de silício, e novamente é aplicada a camada fotossensível sobre todo o
material. O wafer passa novamente pelo processo de litografia, usando mais
uma vez uma máscara diferente:

As partes do material fotossensível expostas à luz são removidas, expondo


partes das camadas inferiores, que são removidas em seguida:

Temos agora pronta a terceira camada do transistor. Veja que a estrutura do


transistor já está quase pronta, faltando apenas os filamentos condutores:
Uma finíssima camada de metal é aplicada sobre a estrutura anterior, usando
um processo avançado de eletrolise. Nos processadores atuais, que são
produzidos através de uma técnica de produção de 45 nanômetros, essa
camada metálica tem o equivalente a apenas dois átomos de espessura.
O processo de aplicação da camada fotossensível, de litografia e de remoção
das camadas, é aplicado mais uma vez, com o objetivo de remover as partes
indesejadas da camada de metal:

Este processo é repetido mais algumas vezes, criando uma estrutura


tridimensional de filamentos metálicos, que interligam os transistores e
permitem a comunicação entre os diversos componentes internos do
processador, como nessa imagem de divulgação da Intel:
O número de camadas varia de acordo com o projeto do processador. A Intel
usava um processo de 8 camadas no Core 2 Duo, enquanto a AMD usava um
processo de 11 camadas no Phenom, por exemplo. Mais camadas permitem
melhorar a comunicação entre diferentes componentes do processador (o que
pode ser usado para criar um projeto mais eficiente), mas por outro lado
encarecem a produção e aumentam o índice de defeitos.
Cada processador é constituído por vários milhões de transistores, divididos
em diversos grupos de componentes, entre eles as unidades de execução
(onde as instruções são realmente processadas) e os caches. Como todo
processador atual processa várias instruções por ciclo, são incluídos diversos
circuitos adicionais, que organizam e ordenam as instruções, de forma a
aproveitar da melhor maneira possível os recursos disponíveis.
Como você viu, embora absurdamente mais avançado, o processo de
fabricação dos processadores é muito similar ao processo de revelação de
fotos, onde a imagem do negativo é impressa no papel fotográfico usando
luz. O "negativo" neste caso são as retículas (as máscaras de litografia).

Máscaras e steppers

Embora nesse exemplo tenha sido mostrada a produção de um único


transistor, na produção real são usadas máscaras contendo todos os
componentes do processador. No final do processo, teríamos um processador
inteiro pronto, em toda a sua complexidade, ao invés de um transistor
solitário.
No começo (início da década de 70), os filmes usados para produzir as
máscaras de litografia eram, literalmente, feitos a mão, usando rubylith, um
filme plástico de duas camadas, que é ainda usado por artistas gráficos. O
engenheiro cortava a camada superior usando um estilete, criando um
desenho das trilhas e outros componentes que seriam posteriormente
"impressos" no wafer de silício formando o chip. Eram usadas várias
máscaras diferentes, que deveriam combinar-se com precisão absoluta. Esta
é uma foto antiga, publicada no Intel Technology Journal , que mostra como
o trabalho era delicado:

Existiram inclusive histórias engraçadas, como a do Intel 3101, o primeiro


chip de memória da Intel. A primeira versão acabou ficando com apenas 63
bits (ao invés de 64) devido a um erro em uma das máscaras de litografia.
As máscaras feitas no rubylith eram depois transferidas para um filme,
através de um processo de redução, gerando as retículas usadas na produção.
Devido à enorme precisão envolvida, são empregados espectros de luz não-
visível, utilizando comprimentos de onda incrivelmente curtos, gerados a
partir de laser ou pulsos de descarga.
A técnica usada é chamada de litografia óptica. Existem atualmente diversas
variações da tecnologia, como a EUVL (Extreme Ultra Violet Lithography),
usada nos processadores atuais. Quanto mais avançada a técnica usada,
menores são os transistores, permitindo o desenvolvimento de processadores
mais complexos e rápidos.
Como pôde ver na ilustração anterior, as máscaras são fisicamente bem
maiores que os processadores que serão "impressos" no wafer, já que seria
impossível criar máscaras com o nível de detalhes necessário em uma
superfície tão pequena. Enquanto os processadores x86 atuais possuem uma
área de geralmente 90 a 180 milímetros quadrados, as máscaras são do
tamanho de um tablet. Cada máscara contém um dos padrões que são
impressos sucessivamente sobre o wafer, resultando em um processador
funcional. Dentro da linha de produção, os wafers passam sucessivamente
sobre vários steppers, cada um contendo uma máscara diferente:
Atualmente, o processo de produção das máscaras é completamente
automatizado. O próprio desenvolvimento dos processadores mudou. Ao
invés de projetar os circuitos manualmente, os engenheiros utilizam um
HDL (Hardware Description Language), como o VHDL ou o Verilog. Eles
são uma espécie de linguagem de programação para o desenvolvimento de
processadores, onde o engenheiro "programa" as instruções que devem ser
executadas e outras características do processador, e o HDL gera o projeto
do chip.
Naturalmente, ainda é possível desenvolver processadores (ou otimizar
componentes internos específicos) usando o processo manual (assim como é
possível programar em Assembly), mas o processo se torna muito mais lento
e trabalhoso. É comum que os processadores passem por diversas revisões
durante sua vida útil, onde a equipe de desenvolvimento começa com um
design produzido através de um HDL e depois trata de otimizá-lo
sucessivamente, obtendo assim ganhos de performance e outras melhorias.
No final do processo, temos um grande arquivo, que é enviado para a
fábrica, onde são produzidas as retículas e feitas as demais fases do
processo. Uma vez terminado o projeto, os engenheiros precisam esperar
várias semanas até que os primeiros chips funcionais sejam produzidos.
Qualquer erro que chegue até a fase de produção geraria um prejuízo de
vários milhões, por isso o projeto passa por inúmeras revisões.
As máquinas de produção (chamadas steppers) repetem a "impressão" várias
vezes, até cobrir toda a área do wafer de silício. Em seguida o wafer é
movido para a máquina com a máscara seguinte e assim continua, até que o
processo esteja completo. Todo o processo é feito em uma sala limpa, por
engenheiros usando os trajes de astronauta que aparecem nos comerciais da
Intel. Todo cuidado é pouco, já que cada wafer contém centenas de
processadores, que juntos valem algumas dezenas de milhares de dólares.
Temos aqui uma foto ilustrativa, cortesia da Intel:
Depois de pronto, o wafer é cortado, dando origem aos processadores
individuais. Desses, muitos acabam sendo descartados, pois qualquer
imperfeição na superfície do wafer, partícula de poeira, ou anomalia durante
o processo de litografia, acaba resultando em uma pequena área defeituosa,
suficiente para inutilizar setores inteiros de um processador. Como não é
possível produzir um wafer de silício quadrado, temos também os
processadores "incompletos", que ocupam as bordas do wafer e que também
são descartados no final do processo.
Processo de corte do wafer de silício (imagem cortesia da Micron)
Você poderia perguntar o porquê de não utilizarem retículas maiores para
imprimir todo o wafer de uma única vez, ao invés de ter que repetir o
processo para cada processador individual. O problema aqui reside no foco,
que é perfeito no centro e sensivelmente pior nas bordas.
Já é difícil desenvolver máquinas que consigam manter o foco na área do
chip, o que dizer então de mantê-lo em toda o wafer, que é uma superfície
muito maior. É por isso também que os processadores são quase sempre
mais ou menos quadrados, já que o formato permite obter o melhor foco. Em
geral, apenas processadores muito pequenos, como o Atom, usam formatos
retangulares.

Encapsulamento e binning

Terminado o processo de litografia, os processadores são testados


individualmente usando sondas elétricas, que permitem energizar e testar
cada núcleo dentro do wafer, em um processo automático. O wafer é então
cortado (processo chamado de "dicing") e os processadores funcionais são
encapsulados e rotulados, dando origem aos diferentes modelos dentro de
cada família:

A parte de teste e encapsulamento dos processadores é tipicamente feita em


instalações mais simples, construídas em países onde a mão de obra é mais
barata, como Malásia, Filipinas e Costa Rica.
No caso dos Phenom II da AMD, por exemplo, a difusão dos waffers era
feita em Dresden (Alemanha) e o encapsulamento é feito na Malásia, o que
deu origem ao "Made in Malaysia" impresso nos processadores:

Mesmo quando produzidos na mesma fábrica e sobre o mesmo wafer, não


existem dois processadores exatamente iguais. Pequenas diferenças no foco,
pequenos desvios no posicionamento das máscaras ao "imprimir" cada
camada e assim por diante, fazem com que alguns processadores sejam
capazes de operar a frequências mais elevadas, ou apresentem diferenças no
consumo elétrico.
Em geral, mesmo grandes fabricantes como a Intel e a AMD mantêm uma
única linha de produção para cada processador. Os processadores são
testados individualmente e vendidos de acordo com a frequência de operação
em que são capazes de trabalhar, um processo batizado de "binning".
Um Core Duo 6600 (2.4 GHz) não era diferente de um Core Duo 6800 (2.96
GHz), por exemplo. Ambos compartilhavam a mesma arquitetura e
passaram pela mesma linha de produção (pode ser que os dois tenham até
mesmo compartilhado o mesmo wafer!). A única diferença é que o 6800
teve a "sorte" de sair mais perfeito e, graças a isso, ser capaz de operar a
frequências mais altas.
Da mesma maneira, processadores que são capazes de operar com tensões
mais baixas eram vendidos como processadores mobile, ou dentro das séries
de baixo consumo e os processadores que possuem pequenos defeitos têm
parte dos núcleos desativados e são vendidos como modelos value. Essa
segmentação permite aproveitar melhor a produção de cada wafer, reduzindo
o número de núcleos descartados por problemas diversos.
Com o passar o tempo, o índice de aproveitamento das fábricas tende a
melhorar, fazendo com que mais e mais processadores sejam capazes de
operar nas frequências mais altas, até que finalmente é introduzida uma nova
técnica de produção, ou uma nova arquitetura, dando início a um novo ciclo.
O formato do encapsulamento varia de processador para processador.
Geralmente temos um spreader, ou seja, uma proteção de metal sobre o die
(núcleo) do processador, que fica entre ele e o cooler. Entretanto, em muitos
processadores, como os Athlons, Durons e Semprons antigos, era usado um
encapsulamento mais simples, em que a parte central é a própria parte
inferior do wafer de silício, exposta para melhorar a dissipação de calor.
Nesses casos era preciso redobrar os cuidados na hora de instalar e remover
o cooler, pois qualquer dano ao núcleo seria suficiente para inutilizar o
processador:
Sempron soquete A, exemplo de processador sem o spreader metálico
Só a título de curiosidade: o Intel 4004 era produzido usando uma técnica de
10 micra, em que cada transistor media o equivalente a 1/100 de milímetro.
Considerando que um fio de cabelo possui apenas 1/10 de milímetro de
espessura, transistores de 10 micra (micra é o plural de micron) podem
parecer pequenos, mas se comparados com os atuais, eles parecem
pirâmides, de tão grandes.
O 486 já foi produzido numa técnica de 1 micron, onde cada transistor ocupa
uma área 100 vezes menor. Enquanto o 4004 tinha apenas 2000 transistores,
o 486 tinha um milhão deles.
Como a velocidade de operação do transistor está diretamente relacionada a
seu tamanho, o 486 é também brutalmente mais rápido. Enquanto o 4004
opera a 740 kHz, o 486 atingiu 100 MHz (nas versões fabricados pela Intel).
Entretanto, isso não é nada se comparado aos processadores atuais, que
possuem bilhões de transistores e são capazes de operar a frequências de 2.0
GHz ou mais, oferecendo um desempenho milhares de vezes superior ao de
um 486.

Sistemas embarcados e FPGAs


Pergunte a algum amigo quantos computadores ele tem em casa.
Provavelmente ele vai responder "tenho só um", ou talvez "tenho dois".
Involuntariamente ele estará mentindo, pois na verdade ele tem 10, 20 ou
quem sabe 50. Os demais estão escondidos, dentro do celular, TV, aparelho
de som, modem ADSL, ponto de acesso, brinquedos, câmeras digitais,
players de áudio, fornos de microondas e outros aparelhos domésticos,
controles remotos e assim por diante. Até mesmo o carro que está na sua
garagem inclui vários deles, na forma do sistema de injeção eletrônica,
computador de bordo, etc.
Ao contrário de um PC, que pode executar os mais diversos programas e
alternar entre eles, desempenhando as mais diversas funções, os sistemas
embarcados são dispositivos "invisíveis", que se fundem no nosso cotidiano,
de forma que muitas vezes sequer percebemos que eles estão lá. Eles são
formados, fundamentalmente, pelos mesmos componentes de um PC:
processador, memória, algum dispositivo de armazenamento, interfaces e
assim por diante, que podem tanto seguir o design tradicional (um chip para
cada função) quanto serem todos agrupados em um único chip, agrupando
todos os circuitos.
A principal diferença é que, diferente de um PC ou de um smartphone, os
sistemas embarcados são especializados em executar uma única tarefa, seja
ela monitorar sensores no motor para decidir a melhor taxa de queima de
combustível, ou tocar arquivos de música colocados em um cartão de
memória.
O fato de ser um sistema embarcado, não diz muito sobre o tamanho ou a
importância do sistema, pode ser desde um brinquedo como o furby, até uma
máquina com centenas de processadores, destinada a criar previsões sobre
mercados de capitais ou controlar o tráfego aéreo. Basicamente, qualquer
equipamento autônomo que não é um PC, um Mac ou outro tipo de
computador pessoal, acaba se enquadrando nessa categoria.
Um bom exemplo são os modems ADSL e pontos de acesso Wi-Fi, que
incluem processadores relativamente poderosos (geralmente um chip ARM),
com chips de memória RAM, memória Flash para o firmware, processador
de sinais e outros componentes. Apesar disso, poucas vezes percebemos a
complexidade envolvida, já que eles funcionam praticamente sozinhos
depois de configurados com os parâmetros básicos:
É graças aos sistemas embarcados que o Z80 de 8 bits (em suas inúmeras
variações) é até hoje um dos processadores mais produzidos e que os
processadores ARM continuam a vender centenas de vezes mais unidades
que chips da Intel ou AMD, mesmo sendo muito menos conhecidos.
Não seria possível incluir um Core 2 Duo ou um Athlon X2 em um controle
remoto, por exemplo, mas um Z80 cumpre bem a função, já que é um
processador muito barato e que possui um baixíssimo consumo elétrico.
Dependendo do clock, eles podem até mesmo desempenhar funções
relativamente avançadas. Lembra do GameBoy? Ele era justamente baseado
num Z80, acompanhado de um controlador de áudio externo e outros
circuitos. Outro exemplo são os S1 Mp3 players, aqueles Mp3 players
genéricos em formato de pendrive, que no passado foram fabricados em
massa pelos mais diversos fabricantes.
Outro processador muito usado é o Motorola 68000, o mesmo chip de 32
bits utilizado nos primeiros Macintoshs. Naturalmente, não estamos falando
exatamente do mesmo chip introduzido em 1979, mas sim de versões
modernizadas dele, que conservam o mesmo design básico, mas são
produzidos usando tecnologia atual e operam a frequências mais altas. Um
exemplo é o chip DragonBall (usado nos primeiros Palms), que incluía um
processador 68000, controlador de vídeo e outros componentes, tudo no
mesmo wafer de silício:
Para dispositivos que precisam de mais processamento, temos as diversas
famílias de processadores ARM, chips RISC de 32 bits, produzidos por
diversos fabricantes, que vão da Samsung à nVidia.
Embora operem a frequências relativamente baixas se comparados aos
processadores x86, os chips ARM são baratos e possuem um baixo consumo
elétrico, por isso são extremamente populares em smartphones, pontos de
acesso, modems ADSL, centrais telefônicas, sistemas de automatização em
geral, videogames (como o GameBoy Advance) e assim por diante. Cerca de
75% de todos os processadores de 32 bits usados em sistemas embarcados
são processadores ARM, contra menos de 1% para os chips x86.
Além da família ARM e Z80, existem inúmeras outras famílias de chips e
controladores. Cada uma conta com um conjunto próprio de ferramentas de
desenvolvimento (SDK), que incluem compiladores, debuggers,
documentação e ferramentas úteis. Em alguns casos o SDK é distribuído
gratuitamente, mas em outros precisa ser comprado ou licenciado, o que
encarece o projeto.
Normalmente, o desenvolvedor roda as ferramentas de desenvolvimento em
um PC e transfere o software para o sistema embarcado que está projetando
apenas nos estágios finais do desenvolvimento. Em alguns casos isso é feito
através da porta USB (ou de uma porta serial), mas em outros é necessário
gravar um chip de EPROM ou memória Flash com a ajuda do gravador
apropriado e transferir o chip para o sistema embarcado para poder testar o
software.
Um bom exemplo é este MP4 da foto a seguir. Ele utiliza apenas três chips,
sendo um o controlador principal, outro um chip de memória Flash (usado
para armazenamento) e o terceiro um sintonizador de rádio AM/FM, que
poderia muito bem ser retirado do projeto sem prejuízo para as demais
funções do aparelho:
Isso é possível porque o chip principal (um Sigmatel STMP3510) é um
microcontrolador que desempenha sozinho todas as funções do aparelho,
incluindo controladores para as diversas funções disponíveis e até mesmo
uma pequena quantidade de memória RAM:

É esse tipo de microcontrolador que permite que modems ADSL, MP3


players, celulares e outros aparelhos que usamos no dia a dia sejam tão
baratos em relação ao que custavam há alguns anos. Com menos chips, o
custo cai proporcionalmente.
Existem no mercado os mais diversos tipos de microcontroladores, cada um
com um conjunto próprio de periféricos e funções. Ao invés de desenvolver
e fabricar seus próprios chips, as empresas passaram a cada vez mais utilizar
componentes disponíveis no mercado, que são fabricados em massa e
vendidos a preços incrivelmente baixos. Para você ter uma ideia, o
STMP3510 custa apenas 6 dólares se comprado em quantidade.
Microcontroladores mais simples podem custar menos de um dólar,
enquanto chips menores chegam a custar apenas alguns centavos.
A maior parte do custo de um processador ou outro chip qualquer, está em
seu desenvolvimento. Mesmo um microcontrolador relativamente simples
pode consumir vários milhões para ser desenvolvido. Entretanto, o custo de
produção por unidade é relativamente baixo, de forma que os chips mais
vendidos acabam tendo o custo inicial amortizado e passam a ser cada vez
mais baratos.
Muitos microcontroladores podem ser conectados a dispositivos analógicos,
permitindo o uso de sensores diversos. Isso permite a criação de dispositivos
simples, que monitoram temperatura, umidade, intensidade da luz,
aceleração, campos magnéticos e assim por diante, executando ações
predefinidas em caso de mudanças, como ligar o ar condicionado, abrir ou
fechar as persianas, ou mesmo disparar o airbag do seu carro em caso de
colisão.
Para aplicações em que um chip personalizado é essencial, existe ainda a
opção de usar chips programáveis, chamados de FPGAs (Field-
Programmable Gate Arrays) ou, mais raramente, de LCAs (Logic-Cell
Arrays). Como o nome sugere, eles são chips compostos por um enorme
número de chaves programáveis, que podem ser configurados para simular o
comportamento de qualquer outro circuito. É muito comum encontrá-los em
protótipos de periféricos e placas de desenvolvimento, desempenhando a
função de algum chip que ainda se encontra em fase de produção:
Chip FPGA em um SSD
Um único FPGA pode simular não apenas um processador simples, mas
também outros circuitos de apoio, como o controlador de vídeo, uma
interface serial e assim por diante. Os modelos recentes incluem inclusive
uma pequena quantidade de memória RAM e circuitos de apoio, de forma
que você pode ter um sistema completo usando apenas um chip FPGA
previamente programado, um chip de memória EPROM (ou memória Flash)
com o software, a placa de circuito com as trilhas e conectores e uma bateria
ou outra fonte de energia.
Os projetos dos chips são desenvolvidos usando ferramentas como o Quartus
II, que permitem desenvolver e modificar os circuitos através de uma
ferramenta gráfica. Com um FPGA de capacidade suficiente e as
ferramentas de desenvolvimento, você pode baixar o projeto de um chip,
fazer modificações, testar, fazer mais modificações e assim por diante, quase
da mesma maneira que com um software.
Assim como no caso dos softwares, existem alguns projetos de hardware
aberto, onde você pode obter projetos de livre distribuição. Dois exemplos
são o http://www.opencores.org/ (que disponibiliza um grande número de
projetos de processadores e controladores dedicados) e o
http://www.opensparc.net/ que oferece versões abertas de chips da família
Sun SPARC.
Os chips são programados transferindo o projeto para o chip, o que é feito
através de um cabo serial ou USB. Assim que recebe o projeto, o FPGA se
torna operacional e passa a desempenhar as funções programadas, assim
como um chip que acabou de ser ligado.
A programação do FPGA é volátil, por isso ela é perdida sempre que ele é
desligado. Para remediar o programa, é usado uma ROM programável, onde
o projeto é salvo e transferido para o FPGA sempre que ele é ligado. Como
de praxe, é necessário também um chip de memória RAM e interfaces
diversas (VGA, rede, etc.) para criar um sistema completo:

Placa FPGA com um Altera Cyclone II, chip de boot, RAM e interfaces
A possibilidade de fazer download de projetos de chips e gravá-los em um
FPGA pode parecer tentadora, mas é importante ter em mente que os FPGAs
são muito mais caros que chips produzidos em série, pois cada célula lógica
é um dispositivo relativamente complexo, que é usado para simular um
único componente.
O Altera Cyclone II usado na placa da foto anterior, por exemplo, possui
somente 68 mil elementos programáveis, o que é apenas uma pequena fração
do que seria necessário para simular um processador moderno, que são
formados por centenas de milhões de transistores. Apesar disso, ele é mais
do que suficiente para simular um chip 8088, um ARM7, ou outro projeto
moderadamente complexo.
Embora o custo unitário seja relativamente alto, os FPGAs são uma opção
muito usada em situações em que são necessárias apenas algumas centenas
de unidades de um design exclusivo, uma quantidade que não justificaria a
criação das máscaras de litografia e todo o caro processo de produção
comercial de um chip. Imagine o caso do ramo da automação industrial, por
exemplo.

Os supercomputadores
No outro extremo da escala de performance temos os supercomputadores,
que embora muito grandes e caros, oferecem um poder de processamento
milhares de vezes superior ao de qualquer desktop doméstico.
As aplicações são muitas, englobando principalmente pesquisas científicas,
aplicações militares e diversos tipos de aplicativos financeiros,
meteorológicos e simulações complexas; tarefas que envolvem um volume
absurdo de cálculos e são necessárias para governos e instituições que
podem pagar vários milhões por um computador o mais rápido possível.
O termo "supercomputador" começou a ser usado na década de 60 para
distinguir os sistemas de alto desempenho dos computadores de pequeno e
médio porte, destinados a tarefas secundárias. Antes disso, o termo não faria
muito sentido, já que todos os computadores eram "super" no sentido de
serem muito grandes e caros.
Na época existiam também os "minicomputadores", que eram sistemas do
tamanho de um armário, capazes de executar tarefas especializadas. Como
pode imaginar, o termo "microcomputador" foi cunhado com o surgimento
dos computadores pessoais, que eram muito menores. Hoje em dia esses
termos não fazem muito sentido (afinal, hoje em dia um notebook de 2 kg é
considerado "grande"), mas não deixam de ser uma curiosidade interessante.
Voltando ao tema central, o primeiro supercomputador de sucesso comercial
foi o CDC 6600, lançado em 1964. Ele oferecia um poder de processamento
de cerca de 3 megaflops (similar ao desempenho de um 486), um valor
impressionante para a época, considerando que ele ainda era baseado em
placas de circuito com transistores individuais e não em microchips.
Para atingir esse nível de desempenho, foi adotado o uso de um conjunto de
instruções bastante simples, que permitia que os circuitos de processamento
operassem a uma frequência de 10 MHz, compensando a falta de
flexibilidade com simplicidade e potência bruta. Esta filosofia levou ao
aparecimento dos processadores RISC, cujo legado pode ser encontrado
mesmo nos processadores atuais da Intel e AMD, que combinam unidades
de execução simplificadas com circuitos de apoio destinados a manter a
compatibilidade com as instruções x86.
Assim como outros supercomputadores da época, o CDC 6600 já rodava um
sistema operacional primitivo e era usado através de terminais burros, que
incluíam teclado e monitor. Isso permitia que ele fosse acessado por vários
usuários simultaneamente, ajudando a justificar o custo. Também eram
usadas unidades de armazenamento em fita, impressoras, leitores de cartões
(cartões perfurados, não cartões de memória... :) e diversos outros
periféricos.

Na década de 70 surgiu o microchip, que além de possibilitar o surgimento


dos computadores pessoais, fez com que o desempenho dos
supercomputadores crescesse assustadoramente. Um bom exemplo é o Cray-
1, lançado em 1976.
Ele utilizava uma unidade de processamento composta por cerca de 200 mil
transistores, que processava instruções de 64 bits, operava a 80 MHz e
utilizava um total de 8 MB de memória RAM. Ele oferecia um desempenho
estimado em 160 megaflops, o que é similar ao oferecido por um Pentium III
de 600 MHz, porém atingido 23 anos antes.
Como pode imaginar, usar um clock de 80 MHz em um supercomputador
composto por várias placas de circuito separadas não era uma tarefa simples.
A temporização dos ciclos de clock era tão curta que se aproximava do
tempo que o sinal elétrico demorava para percorrer o circuito. Isso levou ao
uso de um formato de semi-círculo (para permitir que os componentes
ficassem mais próximos) combinado com um sistema de refrigeração
baseado em um sistema de gás freon pressurizado. Apesar de tudo, ele era
relativamente compacto para um supercomputador, pesando apenas 5.5
toneladas:

O Cray-1 marcou época e deu origem à uma família bem-sucedida de


supercomputadores comerciais, incluindo o Cray XMP/4 de 1983 (que era
capaz de quebrar a barreira de 1 gigaflop rodando aplicativos bem
otimizados) e o Cray2/8 de 1985, que atingiu a impressionante marca de 2.4
gigaflops.
Durante a década de 90, os supercomputadores migraram para arquiteturas
de processamento distribuído (basicamente, eles se tornaram clusters de
grande escala), onde em vez de um único sistema (como no caso do Cray-1)
são usados vários pequenos servidores, baseados em processadores da Intel,
AMD ou (no caso de supercomputadores da IBM) em processadores
PowerPC ou PowerXCell:
Via de regra, cada nó utilizava de um a quatro processadores e uma
quantidade suficiente de memória RAM. Em geral, são utilizadas unidades
especializadas de armazenamento (cada uma com vários HDs em RAID e
grandes caches de dados) em vez de HDs em cada nó, mas isso não é uma
regra.
Um nó sozinho possuía poder de processamento similar ao de um servidor
(ou mesmo de um PC doméstico) high-end. O grande segredo é a forma
como eles eram interligados (usando interfaces de rede ou alguma interface
proprietária), o que os tornava partes do mesmo sistema de processamento,
assim como neurônios interligados para formar um cérebro. Com isso, o
grande limite passava a ser o capital disponível, já que é possível obter mais
processamento adicionando mais nós.
Essa abordagem permitiu simplificar o desenvolvimento e reduzir
drasticamente os custos por unidade de processamento. Embora
supercomputadores como o Roadrunner e o Jaguar custassem dezenas de
milhões de dólares, o custo por teraflop de processamento era muitas vezes
inferior ao de um PC doméstico. Basicamente, os supercomputadores se
tornaram uma opção de processamento "no atacado", contrabalançando o
sistema "de varejo" oferecido pelos desktops.
Outro efeito colateral é que com o processamento distribuído o poder de
processamento dos supercomputadores passou a avançar muito mais rápido,
com a diferença entre eles e os PCs domésticos aumentando rapidamente em
vez de diminuir.
Um bom lugar para se manter informado sobre os avanços na área é a lista
do Top500, que duas vezes por ano publica um ranking atualizado dos 500
supercomputadores mais poderosos do mundo: http://www.top500.org/
A performance é estimada através do HPL, uma versão especializada do
Linpack destinada a sistemas de processamento distribuído, que mede o
desempenho bruto em cálculos de ponto flutuante. Embora não seja perfeito,
o teste oferece uma boa estimativa do desempenho em situações reais, já que
(diferente do que temos nos PCs domésticos), os softwares usados são quase
sempre bem otimizados para cada arquitetura, extraindo o máximo de
desempenho do equipamento.
Entre novembro de 2004 e junho de 2008, o computador mais rápido do
planeta foi o IBM Blue Gene/L, um descendente do Deep Blue (que derrotou
Garry Kasparov no xadrez em 1997). Ele era originalmente composto por de
65.532 processadores Dual PowerPC 440 (131.072 núcleos no total), com 32
terabytes de memória RAM, 1.01 petabytes de armazenamento e um poder
de processamento bruto de 280.6 teraflops.
Em vez de utilizar chips x86 e placas-mãe para servidores, a IBM optou por
utilizar um layout especializado, privilegiando a densidade. O componente
básico são placas (batizadas de "compute cards") contendo dois
processadores PowerPC 440 dual-core (4 núcleos por placa no total) com 1
GB de memória DDR (512 MB por chip) e uma interface de comunicação.
Os chips operavam a apenas 700 MHz, o que foi uma decisão deliberada
para reduzir o consumo e permitir agrupar um maior número de chips por
gabinete:

As placas com os processadores eram espetadas em placas de interface


(batizadas de "node boards"), cada uma contendo 16 compute cards (ou seja,
32 chips) e mais dois nós de interface, destinados a coordenar a
comunicação e executar funções de gerenciamento:
As node boards são então montadas em racks, cada um contendo 32 placas
(1024 chips no total), com a comunicação entre as placas e entre os racks
sendo feita através de interfaces de rede.
A versão inicial do Blue Gene/L era composta por 64 destes racks,
organizados em filas de oito, o que formava um conjunto relativamente
pequeno (considerando o enorme número de placas e processadores), que
ocupava cerca de 230 metros quadrados. Esta foto de divulgação da IBM
mostra parte das instalações:
O Blue Gene/L foi atualizado em 2007, o que elevou os totais para 106.496
processadores, 69 TB de memória e 1.9 PB de armazenamento, com um
desempenho bruto de 478.2 teraflops. Isso aumentou bastante a sobrevida do
sistema, permitindo que ele continuasse por mais um ano no topo da lista.
Em 2008 o Blue Gene/L perdeu o posto de mais rápido para o Roadrunner,
outro sistema da IBM, dessa vez baseado em uma combinação de
processadores AMD Opteron 2210 e processadores PowerXCell, fabricados
pela própria IBM.
O Roadrunner incluiu um total de 19.440 processadores, sendo 6480
Opterons dual-core e 12960 PowerXCells, acompanhados por 103.6 TB de
memória RAM e processadores adicionais para gerenciamento de dados e
comunicação. Isso resultou em um desempenho bruto de 1.1 petaflops (1105
teraflops), mais que o dobro do oferecido pela versão atualizada do Blue
Gene/L.
Apesar disso, o Roadrunner não ficou muito tempo no topo da lista. Em
2009 ele foi superado pelo Cray XT5-HE (Jaguar), que ofereceu um
desempenho bruto de 1.76 petaflops
O XT5-HE foi também baseado em processadores da AMD, desta vez com o
Opteron de 6 núcleos, baseado no core Istambul. Ele incluiu um total de
nada menos que 37.376 processadores, ou seja, 224.256 núcleos (um quarto
de milhão!).
Diferente do Blue Gene/L e do Roadrunner que utilizaram uma arquitetura
própria, ele utilizou a arquitetura padrão para processadores AMD, com
links HyperTransport e chipsets regulares, com dois processadores e 16 GB
de memória RAM por nó. A única grande diferença em relação à arquitetura
de um servidor típico é que ele utilizava placas especiais, que agrupam 4 nós
em cada gabinete, aumentando a densidade. Na foto abaixo temos um dos
gabinetes usados no Jaguar, onde você pode notar os quatro pares de
processadores espetados na mesma placa:

O Jaguar incluiu nada menos que 4.672 gabinetes como este, ligados através
de uma topologia proprietária de rede, com um total de 300 TB de memória
e 10 PB de armazenamento centralizado.
Naturalmente, supercomputadores como este eram acessíveis apenas para
apenas algumas poucas empresas e governos. Uma opção mais barata para
instituições que precisavam de um supercomputador, mas não possuíam
muito dinheiro disponível, era usar um sistema de processamento
distribuído, ou cluster. Um cluster formado por vários PCs comuns ligados
em rede.
Um dos exemplos mais famosos de processamento distribuído é o projeto
Seti@Home , onde cada voluntário instala um pequeno aplicativo que utiliza
os ciclos de processamento ociosos da máquina para processar as
informações relacionadas ao projeto.
Esse tipo de sistema pode ser construído usando, por exemplo, a rede interna
de uma empresa. Rodando o software adequado, todos os PCs podem fazer
parte do sistema, alcançando juntos um poder de processamento equivalente
ao de um supercomputador. O mais interessante é que esses PCs poderiam
ser usados normalmente pelos funcionários, já que o aplicativo rodaria
utilizando apenas os ciclos ociosos do processador.
A tecnologia de cluster mais usada atualmente são os clusters Beowulf,
formados por vários computadores interligados em rede. Não é necessário
nenhum hardware muito sofisticado: um grupo de PCs parrudos, ligados
através de uma rede gigabit já é o suficiente para montar um cluster Beowulf
capaz de rivalizar com muitos supercomputadores em poder de
processamento. A ideia é criar um sistema de baixo custo, que possa ser
utilizado por universidades e pesquisadores com poucos recursos.
O primeiro cluster Beowulf foi criado em 1994 na CESDIS, uma subsidiária
da NASA. Ele era formado por 16 PCs 486 DX-100 ligados em rede. Para
manter a independência do sistema e baixar os custos, os desenvolvedores
optaram por utilizar o Linux.
Os clusters não servem para processar dados em tempo real (um jogo
qualquer por exemplo), mas apenas para processar grandes quantidades de
dados, que podem ser quebrados em pequenas partes e divididos entre os
vários computadores. Uma área onde são populares é na aplicação de efeitos
especiais e renderização de imagens para filmes de cinema. Há inclusive
casos de filmes como o Shrek e o Final Fantasy , que foram renderizados
inteiramente utilizando clusters Beowulf.
This le was downloaded from Z-Library project

Your gateway to knowledge and culture. Accessible for everyone.

z-library.se singlelogin.re go-to-zlibrary.se single-login.ru

O cial Telegram channel

Z-Access

https://wikipedia.org/wiki/Z-Library
ffi
fi

Você também pode gostar