Buscar

NP1 Organização de Computadores Introdução UNIP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Introdução 
 
Para estudarmos como um computador funciona, e como os seus vários 
componentes são organizados para possibilitar este funcionamento deveríamos 
primeiramente definir o que é um computador, o que não é uma tarefa simples. 
 
Segundo o dicionário Houaiss, a definição de computador é: 
 
computador 
 
Datação 
 
1789 cf. MS1 
 
Acepções 
 
¦ substantivo masculino 
 
1 o que computa; calculador, calculista 
 
2 Rubrica: informática. 
 
máquina destinada ao processamento de dados; dispositivo capaz 
de obedecer a instruções que visam produzir certas transformações 
nos dados, com o objetivo de alcançar um fim determinado 
 
 
É claro que quem utiliza um computador, seja de um computador doméstico, 
parte de um grande ambiente corporativo ou mesmo um telefone celular, sabe 
que tal definição nem de longe corresponde à capacidade que um destes 
dispositivos possui. 
 
O computador (de todos os portes imagináveis) hoje desempenha as funções 
mais diversas e se tornou parte do cotidiano de boa parte da população 
(mesmo que elas não saibam disso). 
 
O problema, é que em interior o computador é uma máquina que consegue 
fazer muito poucas coisas. Somar e comparar números, mover valores de uma 
área de memória para outra e não muito mais que isso é o que o computador 
realmente consegue fazer, não importa o quão miraculoso ele nos pareça 
quando olhamos do lado de fora. 
 
Chega a ser paradoxal que um equipamento limitado como esse consiga ser 
capaz de ser usado em tantas aplicações. Mas não existe mágica aqui, apenas 
um longo e constante processo evolucionário que começou no século XVII e 
ainda está longe de acabar. 
Explicar parte dos processos que tornam isso possível é objetivo desta matéria. 
Máquinas multiníveis 
 
Um computador é uma máquina que pode realizar um determinado conjunto de 
funções. As pessoas que utilizam estes computadores desejam fazer certas 
atividades que não correspondem diretamente a este conjunto de funções. 
Para que seja possível que os usuários consigam executar as funções que 
necessitam, é necessário que haja um processo de tradução. 
 
Os primeiros computadores que foram construídos só podiam ser utilizados 
pelos engenheiros que os construíram. Era necessário saber exatamente o 
como os circuitos eletrônicos (ou eletromecânicos) se interligavam para que se 
conseguisse realizar as atividades mais simples. 
 
À medida que surgiu a necessidade de expandir a utilização dos 
computadores, foi necessário criar mecanismos que possibilitassem aos 
usuários realizar atividades sem que fosse necessário um conhecimento 
profundo da arquitetura destes mecanismos. 
 
Imaginemos que o computador possa realizar uma quantidade limitada de 
instruções ou comandos. Chamemos este conjunto de linguagem de 
máquina. 
 
 
 
A linguagem que os usuários utilizam não pode se limitar à linguagem de 
máquina, ela precisa se aproximar da linguagem humana para atender 
problemas do mundo real, chamemos esta segunda linguagem de linguagem 
de alto nível. Para que possa haver uma correspondência entre as duas 
linguagens é necessário que o segundo conjunto seja traduzido para o conjunto 
inicial. 
 
Este processo ocorre diversas vezes dentro de um computador. A história da 
evolução dos computadores é um processo de adição de níveis de tradução. 
Se os primeiros computadores só podiam ser utilizados pelos engenheiros que 
os construíram, os computadores atuais podem ser utilizados por pessoas com 
um conhecimento técnico mínimo, se tanto. Isto só é possível por que as 
necessidades destes usuários são submetidas a vários níveis de tradução até 
chegar até uma instrução que o computador consiga efetivamente executar 
através de impulsos elétricos. 
 
Este processo de evolução nos levou ao computador contemporâneo, que 
possui diversos níveis, por isso o denominamos máquina multiníveis. A 
interação entre cada um dos níveis corresponde a um tipo de tradução. 
 
O nível 0 chamado lógico digital, corresponde aos circuitos eletrônicos que 
efetivamente realizam o processamento de informações na forma de impulsos 
elétricos dentro do processador . 
 
O nível 1 corresponde à microarquitetura do processador, que são elementos 
internos do processador: registradores (que são a memória de alta velocidade 
interna do processador) e a ULA (unidade lógica aritmética) que é o elemento 
do processador que realiza operações aritméticas simples. Estes registradores 
são conectados à ULA para formar um caminho de dados, através do qual os 
dados transitam para dentro e fora do processador. Uma operação normal do 
caminho de dados consiste em selecionar o conteúdo de um ou dois 
registradores e submetê-los à ULA e movimentar o resultado para outro 
registrador. 
 
O nível 2 corresponde ao conjunto de instruções suportado pelo processador. 
O conjunto de instruções corresponde aos comandos que o processador pode 
receber de fontes externas. Este conjunto de instruções é determinado pelo 
projeto do processador e normalmente não pode ser alterado. O conjunto de 
instruções também é comum entre os processadores de uma mesma família, 
permitindo assim a interoperabilidade de programas e sistemas operacionais 
dentro desta família. 
 
O nível 3 corresponde ao sistema operacional. O SO fornece uma plataforma 
que possibilita que programas não tenham que interagir diretamente com o 
hardware. Aliás, isto é mandatório em se tratando de sistemas multitarefa. Não 
é possível existir um sistema multitarefa sem que exista um elemento 
arbitrando o acesso ao hardware essa função é do sistema operacional. Em 
sistemas computacionais modernos, todo acesso ao hardware é feito através 
do sistema operacional. 
 
O nível 4 corresponde à linguagem de montagem. A linguagem de montagem 
ou assembly é uma linguagem dependente da plataforma, ou seja, 
processadores diferentes ou de famílias diferentes possuem linguagens de 
montagem diferentes incompatíveis entre si. Um programa escrito em 
linguagem de montagem só pode ser usado em uma determinada plataforma 
ou família de processadores. 
 
O nível 5 corresponde à linguagem orientada a problemas ou linguagem de 
alto nível. Este tipo de linguagem independe da plataforma em for usada, ela 
deve ser traduzida (compilada) para um formato que o sistema operacional 
consiga interpretar e enviar para os níveis mais baixos da máquina multiníveis. 
 
 
História da arquitetura de computadores 
 
Para entender como um computador funciona, precisamos compreender como 
se deu sua evolução, pois um dispositivo sempre incorpora ao menos parte da 
tecnologia dos seus predecessores. Os computadores que usamos hoje 
incorporam em seu design decisões que foram tomadas décadas atrás. 
 
 
Geração Zero – Computadores Mecânicos (1642 – 1945) 
 
As tentativas de criar mecanismos para processar dados remontam ao século 
XVII. Foi nesta época que os primeiro mecanismos capazes de realizar 
cálculos de forma automatizada surgiram. 
 
Os equipamentos desta época eram totalmente mecânicos, já que os 
dispositivos eletromecânicos surgiriam apenas no século XX. 
 
O primeiro dispositivo deste tipo foi construído por Blaise Pascal (1623 – 1662) 
em 1642. Este dispositivo foi criado por Pascal para auxiliar seu pai, que era 
coletor de impostos. Pascal tinha apenas 19 anos. Este dispositivo ficou 
conhecido como Pascalina. 
 
 
 
Uma das Pascalinas construídas por Blaise Pascal 
 
Esta primeira máquina criada por Pascal podia executar apenas somas e 
subtrações. Trinta anos depois, Gottfried Wilhelm Von Liebniz criou um 
dispositivo que podia executar as quatro operações básicas. 
 
 
 
Staffelwalze, uma das calculadoras mecânicas projetadas por Liebniz 
 
Estes dispositivos foram as primeiras tentativas de automatizar processos 
manuais, neste casocálculos. Mas eles se limitavam a isso. 
 
A evolução destes equipamentos foi proposta apenas em 1822, por Charles 
Babbage (1792 – 1871). 
 
Este novo dispositivo foi chamado de Máquina Diferencial, e ao contrário de 
seus predecessores que apenas realizavam operações simples, ele foi 
desenhado para executar um algoritmo. O objetivo desta máquina e seu 
algoritmo era produzir tabelas úteis para a navegação naval, assunto 
estratégico para a época. A Máquina Diferencial podia executar apenas este 
algoritmo. 
 
 
Máquina Diferencial construída pelo Museu de Londres a partir de notas de 
Babbage 
 
Apesar da aceitação de suas idéias e do financiamento do governo britânico, 
Babbage tinha planos mais ambiciosos. Ele vislumbrou um dispositivo 
programável. Esta nova máquina foi batizada de Máquina Analítica, e continha 
vários conceitos presentes ainda hoje nos computadores modernos, como um 
dispositivo de entrada (uma leitora de cartões perfurados), dispositivos de 
saída (impressora e perfuradora de cartões), memória (capaz de armazenar 
1.000 números) e uma unidade aritmética (chamada de moinho). 
Babbage descreveu esta máquina pela primeira vez em 1837. Sob vários 
aspectos, a Máquina Diferencial antecipou o computador moderno em 100 
anos. 
 
No século XIX, diversas Máquinas Diferenciais foram construídas com base 
nas teorias e documentos de Babbage, mas o próprio Babbage nunca chegou 
a produzi-las, nem a Máquina Analítica. 
 
As suas idéias, entretanto, influenciariam diversos pioneiros da computação. 
Ele correspondeu-se com a Condessa Ada Lovelace, que se interessou por 
suas propostas para a máquina analítica e chegou a desenvolver um método 
calcular números de Bernoulli utilizando a Máquina Analítica. Este é 
considerado o primeiro programa de computador da história e a Condessa Ada 
Lovelace, a primeira programadora. A linguagem ADA foi batizada em sua 
homenagem. 
O problema que Babbage enfrentou é que a tecnologia do século XIX não 
podia fornecer a precisão que seria necessária para a construção de um 
mecanismo tão complexo e ambicioso quanto a Máquina Analítica. Mesmo 
nunca tendo concretizado sua visão, Charles Babbage é considerado o avô do 
computador e os equipamentos atuais ainda incorporam conceitos que ele 
anteviu mais de 100 anos atrás. 
 
O próximo passo no caminho do computador seria dado apenas na década de 
1930, quando em vários pontos começaram a surgir dispositivos calculadores 
eletromecânicos utilizando relés. 
 
Na Alemanha Konrad Zuse construiu uma série de equipamentos para executar 
cálculos usando relés. Todos os seus equipamentos foram destruídos durante 
a guerra, o que impediu que seus designs tivessem influências nos 
desenvolvimentos subseqüentes. 
 
Pouco tempo depois de Zuse, na Universidade de Iowa nos EUA, John 
Atanasoff projetou um equipamento para fazer cálculos que utilizava artimética 
binária e capacitores como memória de armazenamento. Da mesma forma que 
outros predecessores, o projeto de Atanasoff nunca se tornou operacional. 
Simultaneamente, também nos EUA, George Stibbitz construiu um 
equipamento para fazer cálculos que realmente funcionava, apesar de ser 
menos sofisticado que o projeto de Atanasoff. Stibbitz fez uma grande 
demonstração de sua criação em 1940, entre os que assistiram esta 
demonstração estava John Mauchley, que depois daria suas próprias 
contribuições à história do computador. 
 
Zuse, Stibbitz e Atanasoff estavam tentando criar máquinas calculadoras 
automáticas. Apesar de compartilharem componentes com os computadores, 
elas tinham um propósito único: realizar cálculos. Nenhum destes projetos 
tencionava ser o que Babbage tinha almejado no século XIX: um equipamento 
programável. 
 
O próximo passo neste caminho foi dado nos também nos EUA em 1944: 
Howard Aiken construiu o Harvard Mark I, o primeiro computador digital da 
história. Ele era capaz de realizar cálculos Aiken baseou-se nos conceitos de 
Babbage para criar o Mark I. Apesar de ter sido bem sucedido, o sucessor do 
Mark I, o Mark II já estava obsoleto ao ser concluído. A era dos computadores 
eletromecânicos havia chegado ao fim. 
Começava a era dos computadores eletrônicos. 
 
 
Primeira Geração– Válvulas (1945 – 1955) 
 
Os primeiros computadores eletrônicos surgiram na fase final da Segunda 
Guerra Mundial. 
O interesse dos militares por computadores se dava em dois campos 
específicos: quebra de códigos criptográficos e cálculos de artilharia. 
Para este segundo propósito John Mauchley propôs a construção de uma 
máquina para o Exército Americano, o que viria a se tornar o ENIAC. 
Durante muito tempo, o ENIAC (Eletronic Numerical Integrator and Computer) 
foi considerado primeiro computador eletrônico da história. O seu projeto que 
foi patrocinado pelas forças armadas dos EUA e conduzido por John Mauchley 
e J. Presper Eckert iniciou-se em 1943. O ENIAC entrou em operação em 
1946, tarde demais para seu propósito bélico original. 
 
 
O ENIAC em operação na década de 1940 
 
Entretanto, décadas depois do final da guerra que o trabalho de um grupo de 
cientistas britânico veio a público. No auge da Segunda Grande Guerra, a 
Alemanha nazista utilizava um equipamento eletromecânico para codificar 
mensagens de forma muito mais eficiente do que os métodos manuais: trata-se 
da máquina ENIGMA. 
 
 
 
Um exemplar da máquina ENIGMA 
 
Para quebrar os códigos gerados por este dispositivo, o governo britânico 
patrocinou a construção do que foi de fato o primeiro computador eletrônico, 
batizado de COLOSSUS. Este dispositivo entrou em operação em 1943 e o 
famoso matemático Alan Turing, criador de muitos dos conceitos do 
computador moderno participou deste projeto. Infelizmente todo o projeto foi 
mantido em segredo pelo governo britânico e por este motivo, o trabalho 
pioneiro de Turing e seus colegas não pôde ser compartilhado e não teve 
influência nas gerações posteriores de computadores 
 
O ENIAC, por outro lado teve descendentes diretos. O conhecimento do projeto 
de Mauchley e Eckert foi compartilhado com vários colegas cientistas que 
criaram seus próprios computadores. Os próprios Mauchley e Eckert deixaram 
a Universidade da Pensilvânia onde lecionavam para fundar uma companhia, a 
Eckert-Mauchley Computer Corporation. Hoje, após uma série de fusões e 
aquisições, esta companhia é parte da Unisys Corporation. 
 
Nesta época de interesse florescente, um dos cientistas envolvidos no projeto 
do ENIAC deu uma contribuição fundamental para a evolução do computador 
moderno. Seu nome era John Von Neumann, e uma das coisas que ele 
percebeu nos computadores da época é que programar um computador 
usando quantidades enormes de cabos e chaves era uma tarefa demorada e 
tediosa, Ele também apontou a vantagem de se usar os dados armazenados 
em forma binária ao invés de decimal (como o ENIAC fazia). O projeto básico 
que ele concebeu na década de 1940 foi utilizado na construção da máquina 
IAS. Esta arquitetura foi batizada de máquina de Von Neumann e é até hoje a 
estrutura básica de qualquer computador comercial. 
 
 
A estrutura da máquina de Von Neumann 
 
Enquanto tudo isso acontecia, a IBM lentamente despertava para o mercado de 
computadores comerciais. Apesar de ter parcialmente financiado o projeto de 
Howard Aiken, a IBM não estava muito interessada em computadores até que 
lançou o IBM 701 em 1953. Ele era um computador voltado para aplicações 
científicas e em cerca de dez anos esse mercado seria dominado pela IBM. 
 
 
Segunda Geração – Transistores (1955 – 1965) 
 
O transistor foi inventado por John Bardeen, Walter Brattain e William Shockley 
em 1948, nos laboratórios Bell. 
 
Em pouco tempo o transistor mudou a face da computação (e de toda a 
incipiente indústria de eletrônica de consumo), pois apresentava grandes 
vantagens frente à válvula:era menor e tinha vida útil infinitamente maior. Dez 
anos após a invenção do transistor, os computadores com válvulas estavam 
obsoletos. 
 
O primeiro computador a usufruir da nova tecnologia foi o TX-0 (Transistored 
Experimental Computer 0), construído no MIT (Massachucets Institute of 
Technology). 
O objetivo deste projeto era servir como dispositivo de testes para um 
equipamento mais sofisticado, o TX-2. 
 
O TX-2 não foi um grande sucesso, mas um dos engenheiros que participaram 
do projeto fundou uma companhia, a Digital Equipment Corporation – DEC em 
1957, para construir um computador cujo projeto era baseado no TX-0. Esse 
computador foi batizado de PDP-1. 
 
Na época a DEC demorou quatro anos para conseguir financiamento para seu 
produto, pois os investidores tinham sérias dúvidas sobre a viabilidade do 
mercado de computadores comerciais. 
 
O PDP-1 foi finalmente lançado em 1961. Ele tinha cerca de metade da 
capacidade de processamento do IBM 7090, o computador científico mais 
rápido do mundo na época, mas ele custava 120 mil dólares enquanto que o 
7090 custava milhões. A DEC vendeu dezenas de PDP-1 e criou o mercado de 
minicomputadores. 
 
Alguns anos mais tarde, a DEC lançou uma nova máquina o PDP-8. Além de 
ser mais barata que o PDP-1 (16 mil dólares), ela trouxe uma inovação 
importante, o uso de um barramento. Esta arquitetura representou uma 
mudança importante em relação à da máquina IAS que era centrada na 
memória e é usada em computadores até hoje. 
 
 
Barramento Omnibus do PDP-8 
 
Enquanto a DEC se consolidava no mercado de minicomputadores, a IBM 
produzia equipamentos de alto desempenho para aplicações científicas como o 
7090 já citado e sua versão melhorada, o 7094. 
 
Em outra frente, a IBM estava obtendo sucesso com outro tipo de 
equipamento, chamado 1401. Ele tinha um desempenho muito menor que o 
7094 para aplicações científicas, mas era bastante adequado para aplicações 
comerciais, sem mencionar que era muito mais barato. 
 
Em 1964 uma pequena companhia lançou um equipamento voltado para 
aplicações científicas batizado de 6600. O CDC 6600 conseguiu ser mais 
rápido que o IBM 7094 e qualquer outro computador da época, principalmente 
por introduzir paralelismo em alta escala, além de pequenos computadores 
internos para reduzir a carga de processamento da CPU principal. 
 
Muitas idéias referentes a paralelismo presentes nos computadores modernos 
descendem diretamente do CDC 6600. O seu projetista Seymour Cray dedicou 
sua vida à produção de computadores (depois da CDC ele criou sua própria 
empresa, a Cray Computing) cada vez mais rápidos e criando o mercado de 
supercomputadores no processo. 
 
 
Terceira Geração – Circuitos Integrados (1965 – 1980) 
 
A invenção do circuito integrado de silício por Robert Noyce em 1958 permitiu 
que dezenas de transistores fossem colocados em uma única pastilha (ou 
chip). Isso conduziu a produção de computadores a um novo patamar, 
totalmente impensável nas gerações anteriores. Agora eles poderiam ser 
menores, mais rápidos e mais baratos do que jamais havia sido possível. 
 
Mas uma das maiores inovações deste período não dependia de 
desenvolvimento de novas tecnologias. 
 
A IBM nesta época tinha dois equipamentos de sucesso, os já citados 1401 e 
7094. O problema é que eles eram totalmente incompatíveis entre si. Um 
cliente que possuísse os dois equipamentos teria que ter duas equipes distintas 
para fazer uso deles. 
 
Quando chegou a hora de lançar os substitutos destes equipamentos, a IBM 
deu um passo revolucionário, lançando vários computadores em uma mesma 
linha chamada System/360. 
 
O grande diferencial da linha 360 é que vários modelos de vários portes 
compartilhavam uma mesma arquitetura, o que permitia que um mesmo 
programa fosse utilizado nos vários modelos da mesma família. Hoje isso 
parece óbvio, mas durante os anos 1950, o foco do desenvolvimento sempre 
foi o hardware. A família 360 foi a primeira vez que se pensou em 
interoperabilidade e compatibilidade. 
 
Outra novidade importante na família 360 era o conceito de multiprogramação. 
Este conceito permitia que o computador mantivesse vários programas em 
memória e enquanto um programa estivesse esperando uma operação de E/S 
ele pudesse executar outro. Este conceito simples, uma das primeiras 
implementações de multitarefa aumenta a utilização da CPU. E também torna 
mais importante uma figura até então desconhecida: o sistema operacional. O 
conceito de multitarefa só pode existir com a presença de um sistema 
operacional. 
 
O mercado de minicomputadores também evoluiu e o lançamento mais 
significativo foi o PDP-11 da DEC que teve enorme sucesso, em especial em 
universidades. 
 
 
Quarta Geração – Integração em Larga Escala (1980 – 2000) 
 
Na década de 1980 a VLSI (Very Large Scale Integration – Integração em 
Escala Muito Grande) possibilitou colocar dezenas de milhares, depois 
centenas de milhares e por fim milhares de transistores em um único chip. 
Esse desenvolvimento levou a computadores menores e mais rápidos. Antes 
do PDP-1, computadores eram tão grandes e caros que universidades e 
empresas precisavam ter departamentos dedicados à sua operação. Com a 
chegada do minicomputador, cada departamento poderia ter seu próprio 
computador. 
 
No início dos anos 1980, o processo de barateamento e miniaturização dos 
computadores chegou a tal ponto que um indivíduo podia possuir seu próprio 
computador. Era o início da era do computador pessoal, o microcomputador. 
 
Os primeiros microcomputadores não eram fabricados da mesma forma que os 
computadores comerciais da época. Eles eram vendidos como kits para serem 
montados em casa por hobistas na área de eletrônica ou computação. Um dos 
primeiros foi o Altair 8800, mostrado na figura abaixo. 
 
 
Altair 8800, um dos primeiros microcomputadores comerciais 
 
Estes primeiros computadores não tinham muita aplicação prática, pois além 
de montar seus computadores, os usuários tinham que desenvolver seus 
próprios programas. 
Apesar das limitações destes equipamentos, diversas empresas investiram no 
nascente mercado de computação pessoal. Uma das mais bem sucedidas foi a 
Apple, fundada por Steve Jobs e Steve Wozniak, cujo modelo Apple II (lançado 
em 1977) foi um sucesso comercial. O sucesso do Apple II foi tão grande na 
época de seu lançamento que a Apple se tornou um grande fabricante de 
computadores praticamente da noite para o dia. 
 
 
 
O Apple II, um dos primeiros microcomputadores comerciais de sucesso 
 
Enquanto a Apple e outras pequenas empresas criavam todo um novo 
mercado de computadores para uso doméstico, os grandes fabricantes como a 
IBM estavam hesitantes quanto a investir ou não nesse nicho. 
 
A IBM decidiu por fim entrar no mercado do computador pessoal, mas ao 
contrário do que era seu hábito, decidiu utilizar componentes de mercado, ao 
invés de desenvolver todo o projeto. 
 
Como microprocessador foi escolhido o 8088 da Intel e o IBM PC foi lançado 
em 1981. Um dos grandes erros da história da IBM foi cometido nesta época. 
Ela não resguardou seu produto por patentes, muito pelo contrário, ela divulgou 
publicamente os dados do projeto de seu microcomputador. 
 
O resultado foi o surgimento de toda uma indústria de “PC Clones” ou 
computadores padrão IBM PC, da qual uma pequena parte apenas era 
fabricada e vendida pela IBM. 
 
 
Um dos primeiros IBM PC 
 
A IBM também se associou à Microsoft para o desenvolvimento do sistema 
operacional de seu microcomputador. Outro grande erro da IBM foi não 
enxergar o potencial do software para esta plataforma. Na verdade, os 
executivos da IBM estavam interessados na venda de hardware. Como 
conseqüência, o MS-DOS da Microsoft se tornou o sistema operacional padrão 
para os computadores padrão IBM PC o que ajudoua Microsoft a ser tornar 
uma das empresas mais ricas do mundo nos anos 1990. 
 
A arquitetura desenvolvida pela IBM se tornou o padrão para 
microcomputadores de uso comercial e a maioria das empresas que 
fabricavam microcomputadores com padrões distintos (Commodore, Atari, 
Sinclari, entre outras) desapareceu ou abandonou esse nicho de mercado. 
 
A Apple conseguiu sobreviver, em parte por ter sido a primeira a introduzir uma 
interface gráfica utilizável. Esta característica foi introduzida inicialmente no 
Apple Lisa, mas encontrou sucesso no Apple Macintosh. 
 
 
Apple Lisa 
 
O Apple Lisa fracassou devido ao alto preço, mas deixou claro as vantagens do 
uso de uma GUI (Graphical User Interface – Interface Gráfica com o Usuário). 
Este tipo de interface usa um dispositivo apontador (normalmente um mouse) e 
elementos gráficos como ícones e menus como meio principal para interação 
com o usuário. As gerações usavam principalmente comandos em shells ou 
prompts de comando, o que requeria um treinamento mais aprofundado para 
os usuários de computadores. 
Com a introdução da interface gráfica e aumento da facilidade de uso a 
popularização dos microcomputadores se acelerou ainda mais. 
 
 
 
O Apple Macintosh original 
 
 
 
Quinta Geração – Computação Ubíqua (2000 em diante) 
 
Ao contrário das gerações anteriores, atualmente onde os equipamentos com 
capacidade processamento não são mais necessariamente computadores. 
Desde o final dos anos 1990, diversos equipamentos passaram a possuir 
capacidade de processamento, sem que necessariamente fossem 
computadores completos. Palmtops, telefones celulares e até mesmo 
automóveis e certos refrigeradores hoje possuem alguma capacidade de 
processamento, podendo até mesmo rivalizar com computadores de gerações 
anteriores. 
Como exemplo desta evolução, podemos tomar como exemplo o AGC (Apollo 
Guidance Computer), computador embarcado usado pela missão Apollo, 
responsável por levar os primeiros astronautas para a Lua. Este equipamento 
tinha menos de 64 KB de memória e 2Mhz de velocidade de clock, se 
compararmos este equipamento (que era tecnologia de ponta no final do anos 
1960) com um computador desktop padrão de mercado atual, que tem 1 ou 2 
Gigabytes de memória e 2Ghz de velocidade de clock, chegaremos à 
conclusão que o segundo é cerca de 1.000 vezes mais rápido e possui mais de 
32.000 vezes mais memória, sem mencionar a complexidade de equipamento. 
Isto pode servir como parâmetro para a velocidade de evolução da tecnologia 
de processamento de dados nas últimas três décadas. 
 
 
 
Unidade de interface com o usuário do AGC 
 
Mas, além do barateamento e aumento de capacidade de elementos como 
dispositivos de armazenamento (discos e afins) e memória, o desenvolvimento 
de várias tecnologias como redes locais, Bluetooth e WiFi e popularização da 
internet permitiu o desenvolvimento de equipamentos que se apóiem em redes 
e recursos localizados em outros computadores para atender às necessidades 
de seus usuários. 
 
Os computadores das gerações anteriores precisavam manter suas massas de 
dados acessíveis localmente e contar apenas com sua capacidade de 
processamento, os computadores de quinta geração podem contar com a 
capacidade de armazenamento e de processamento de outros computadores 
através de redes de diversos tipos. 
 
 
 
Exemplo de Smartphone: Motorola Q1 
 
Este tipo de capacidade pode criar ambientes tão complexos que pode se 
tornar difícil no futuro determinar onde começa e termina o computador e onde 
estão os dados que utilizamos, pois teremos à nossa volta diversos dispositivos 
interagindo entre si para atender às nossas necessidades. 
 
Quando este tipo de ambiente se tornar comum, talvez não tenhamos uma 
sexta geração de computadores, mas algo totalmente diferente. 
 
 
 
A organização do computador 
 
Um computador digital consiste em um sistema interconectado de 
processadores, memórias e dispositivos de entrada e saída. 
Estas são as três categorias básicas de componentes de um computador 
moderno. Cada elemento de um computador qualquer se encaixará em uma 
destas classificações. Vamos analisar em seguida cada um deles. 
 
Processadores 
 
A unidade central de processamento (UCP ou CPU – Central Processing Unit) 
é o centro do computador. 
 
A execução de um programa normalmente consiste em trazer um programa de 
um dispositivo de armazenamento (disco, por exemplo) para a memória 
principal. Da memória principal, o programa é transferido para a CPU, uma 
instrução por vez. Dentro da CPU é que o verdadeiro processamento ocorre, 
onde as instruções serão interpretadas e executadas. 
 
Como podemos ver na figura seguinte, todos estes elementos se comunicam 
através de um barramento. 
 
 
A organização de um computador simples 
 
 
Como podemos ver também na figura, a CPU internamente e composta por 
várias partes distintas. A unidade de controle é responsável por buscar 
instruções na memória e determinar se tipo. A unidade lógica e aritmética 
executa operações matemáticas simples como adição e E booleano. 
 
A CPU também contém uma pequena quantidade de alta velocidade, que é 
utilizada na execução de instruções. Essa memória é organizada em 
registradores. Cada registrador tem um tamanho fixo (comprimento em bits) e 
um propósito específico, como o Contador de Programa (PC – Program 
Counter). A função de PC é identificar qual a próxima instrução a ser trazida 
para a CPU do programa em execução. 
 
A organização da CPU é detalhada na figura abaixo. 
 
Os registradores e a ULA formam um caminho de dados. 
 
 
 
 
Um exemplo de caminho de dados 
 
Os dados são movimentados dos registradores para um ou dois registradores 
que alimentam a ULA e deles para a própria ULA através de um barramento 
que interconecta estes elementos. 
 
A ULA ira realizar as operações matemáticas mais básicas, como soma e 
comparação e mover o resultado para um registrador de saída. 
Posteriormente o conteúdo deste registrador será movido para outro registrador 
e de lá para a memória principal. 
 
Neste ponto, podemos estabelecer a distinção entre dois tipos diferentes de 
instruções: instruções registrador-registrador e instruções registrador-memória. 
As primeiras dependem apenas dos dados que estão armazenados na CPU e 
as segundas precisam buscar dados da memória principal, através do 
barramento. 
 
O processo de submeter dois valores à ULA e obter um resultado é chamado 
de ciclo do caminho de dados. Este ciclo é o núcleo da maioria das CPUs, 
pois determina o que ela pode fazer. Quanto mais rápido a CPU conseguir 
executar este ciclo, mais rápido se dará o processamento. 
 
Além do ciclo do caminho de dados, interno à CPU, temos o ciclo externo, que 
determina como a CPU interage com os dados que estão fora da CPU, na 
memória principal. 
A CPU executa cada instrução em uma série de pequenos passos. 
 
1- Trazer a próxima instrução da memória até o registrador 
2- Alterar o contador de programa para indicar a próxima instrução 
3- Determina o tipo da instrução 
4- Se a instrução necessitar de uma palavra da memória, determinar onde 
esta palavra está 
5- Trazer a palavra para dentro de um registrador da CPU, se necessário 
6- Executar a instrução 
7- Voltar à etapa 1 para iniciar a execução da instrução seguinte 
 
Esta seqüência costuma ser denominada ciclo buscar-decodificar-executar. 
É fundamental para a operação de todos os computadores. 
 
Lembre que o programa é armazenado na memória na forma instruções que o 
processador consiga interpretar. Voltando à máquina multiníveis, o programa 
escrito originalmente em linguagem de alto nível sofreu vários níveis de 
tradução antes que pudesse ser executado diretamente pelo processador.Memória primária 
 
A memória é a parte do computador onde são armazenados programas e 
dados. A memória primária também é chamada de memória principal ou RAM. 
 
A memória principal é utilizada para armazenar os programas em execução e 
os dados em uso por estes programas. 
 
A memória principal é costumeiramente volátil, ou seja, mantém os dados 
armazenados apenas enquanto o equipamento está energizado. 
 
 
Bits, bytes e terabytes 
 
A unidade básica de memória é o dígito binário ou bit. Um bit consegue 
armazenar apenas o valor 0 ou 1, e é o bloco básico de informações. 
Um dos agrupamentos mais comuns de bits é o byte, que tem 8 bits de 
comprimento. 
 
Quando se trata de bits e bytes, existe certa confusão quanto aos múltiplos que 
podem ser usadas para expressar estas quantidades. 
 
Como o bit é um valor binário, os múltiplos são potências de 2. 
 
Um kilobyte, portanto não são exatamente 1.000 bytes (103), mas 1.024 (210). 
De modo semelhante 1 MB contém 1.048.576 bytes (220) e não 1.000.000 de 
bytes (106). 
 
Os outros sufixos mais comuns em se tratando de memória são Giga: 1 GB 
equivale a 230 – 1.073.741.824 bytes e Tera: 1 TB equivale a 240 – 
1.099.511.627.776 bytes. 
Na tabela abaixo temos os prefixos decimais mais comuns, lembrando que em 
se tratando de memória, devemos usar a base binária ao invés da base 10. 
 
 
 Os principais sufixos métricos 
 
Endereços de memória 
 
Para que seja possível utilizar a memória, deve ser possível gravar e ler 
informações nela. 
 
E para que isto seja possível, a memória deve ser organizada de modo que 
cada unidade utilizável de memória tenha um endereço único. 
 
Os bits de memória são organizados em células, e cada célula tem um 
endereço único. O tamanho da célula varia de acordo com o sistema, mas o 
mais comum é que a célula tenha 8 bits (1 byte) de comprimento. 
 
A célula é a menor unidade endereçável de memória. 
 
Três formas de organizar 96 bits de memória 
 
Outro conceito importante é a palavra. Uma palavra é o tamanho da unidade de 
dados que é transferida da memória para o processador. Quando falamos que 
um computador é de 32bits ou 64bits, estamos nos referindo ao tamanho da 
palavra deste processador. 
 
Ou seja, um computador de 32 bits consegue transmitir 4 bytes entre a 
memória e o processador, enquanto que um computador de 64 bytes transmite 
8 bytes. 
 
Este conceito é importante, por que se o processador recebe um valor de 8 
bytes da memória, todos os seus registradores tem que ter no mínimo este 
comprimento. 
Isso implica também na quantidade de memória que um computador pode 
suportar. 
 
Se o registrador dedicado a tratar endereços de memória tem 1 bit de 
comprimento, o computador só suportará 2 endereços ou duas células (0 e 1). 
 
Se este registrador tiver 32bits, a quantidade de células endereçáveis será de 
4.294.967.295. Em um computador com células de 1 byte, isso equivale a 4GB 
de memória. 
 
Se este registrador tiver 64bits, a quantidade de endereços possíveis sobre 
para 18.446.744.073.709.551.615 ou aproximadamente 18,45 Exabytes, uma 
quantidade de memória impensável nos padrões tecnológicos atuais. 
 
 
Memória Cache 
 
A memória cache (e não cachê) é uma área de memória intermediária entre o 
processador e a memória principal. 
 
O termo cache é amplamente usado para dispositivos que servem como área 
intermediária entre um meio mais rápido e outro mais lento (cache de disco, 
cache de impressão, etc). 
 
A memória cache, conforme a definição aqui adotada, é uma área de memória 
localizada entre o barramento e a CPU. 
 
Como já falamos antes, o tempo de acesso à memória principal a partir do 
processador é lento, em termos de velocidade de processamento então se o 
processador não precisar percorrer o barramento para buscar uma 
determinada informação, mas a uma área mais próxima, o computador ganha 
em desempenho. 
 
Normalmente a memória cache faz parte da mesma embalagem que o próprio 
processador, mas não faz parte da arquitetura interna dele, onde se localizam 
os registradores e demais componentes da CPU. 
 
A localização lógica da memória cache 
 
Existem várias formas de implementar a memória cache de processador, cache 
específicos para instruções e dados, cache de múltiplos níveis, mas o conceito 
básico é o mesmo: ao deparar com uma necessidade de uma informação da 
memória principal, o cache será consultado antes, se a informação estiver lá 
ela já é devolvida para o processador (cache hit). Se a informação não estiver 
no cache (cache miss), ela é trazida da memória principal para o cache e de lá 
para o processador. 
 
A memória cache, assim como a memória principal, também é volátil. 
 
 
Memória Secundária 
 
Independente da quantidade de memória principal que o computador disponha, 
ela nunca será suficiente para armazenar todos os dados que são necessários. 
Para isso usam-se os meios de armazenamento de massa ou memória 
secundária. 
 
Para se ter uma idéia de ordem de grandeza, um computador comercial 
comum atualmente possui cerca de 2GB de memória principal enquanto que 
um disco rígido comum hoje possui em torno de 160GB, sendo que já existem 
discos para uso em computadores comerciais comuns com 1TB de 
capacidade. 
 
Hierarquias de memória 
 
Um computador possui vários tipos de memória, desde os registradores até os 
discos óticos (DVD, Blu Ray, etc). 
Existe uma hierarquia entre estes vários tipos de memória, conforme a figura 
abaixo. 
 
 
Hierarquia de memória de cinco níveis 
 
Quanto mais alto vamos na pirâmide acima, maior é a velocidade da memória, 
maior o custo por byte e menor a quantidade de memória disponível no 
computador. 
Quanto mais para baixo vamos, menor a velocidade, menor o custo e maior a 
quantidade disponível em um computador. 
 
A maior parte dos meios de memória secundária atualmente é não volátil, ou 
seja, mantém os dados gravados até que um usuário apague estes dados. 
 
Devemos ter cuidado em usar o termo “permanente” ao se tratar de meios de 
armazenamento, pois nenhum meio de armazenamento atual consegue 
garantir a preservação dos dados após um período de alguns anos. 
 
Discos magnéticos 
 
O disco magnético é o meio mais comum de armazenamento atualmente. Isso 
se deve ao fato de que o disco hoje é o que fornece melhor relação custo 
benefício. 
Isto talvez mude no futuro próximo, graças à popularização dos discos de 
estado sólido (SSD – Solid State Disk) baseados em memória flash. Hoje já é 
comum encontrarmos este tipo de dispositivo com cerca de 4GB a 16GB. Ainda 
é pouco se comparado aos 160GB que um disco magnético possui, mas com o 
aumento de capacidade e barateamento destes tipos de dispositivo, em breve 
ele poderá superar o disco magnético em popularidade. 
 
Um disco magnético sem a proteção metálica 
 
Como podemos ver na imagem acima, o disco magnético é composto por 
discos e braços de acesso, além de motores responsáveis por girar os discos e 
movimentar o braço de acesso. 
 
O princípio básico de funcionamento do disco magnético é simples: os discos 
giram um único sentido em velocidade constante, e as cabeças de leitura e 
gravação se aproximam e afastam do centro do disco, de modo que eles 
conseguem atingir toda a área útil do disco. 
 
Área esta que é coberta por um material magnético que é pode ser 
sensibilizado pelo campo gerado pela cabeça de leitura. Dependendo da 
direção em que estiverem direcionadas estas partículas, elas podem simbolizar 
um bit 0 ou um bit 1. 
 
A área útil do disco é dividida em setores. Um setor normalmente corresponde 
a 512bytes é separado do próximo setor por uma área não utilizada chamada 
lacuna. Como estamos lidando com campos magnéticos, nem toda a superfície 
pode ser utilizada, pois corremoso risco de afetar outros setores além do 
desejado, se eles estiverem muito próximos. Os setores são agrupados em 
círculos concêntricos denominados trilhas. 
 
 
Representação da geometria do disco magnético 
 
Além de trilhas e setores, o outro conceito importante na geometria do disco 
magnético é o cilindro. Um disco magnético normalmente é composto por 
vários discos, denominados platters. 
 
Cada superfície de cada disco possui uma cabeça de leitura e gravação 
própria. Como todos os braços de todas as cabeças de leitura e gravação se 
movimentam ao mesmo tempo, quando a cabeça de leitura da primeira 
superfície estiver sobre a trilha n, todas as cabeças de leitura estarão sobre as 
trilhas n de suas respectivas superfícies. 
 
A este conjunto de trilhas que pode acessada sem que seja necessário 
movimentar a cabeça de leitura e gravação se dá o nome de cilindro. 
 
Este é um conceito importante quando se tenta aumentar o desempenho de 
discos, pois por se tratar de um dispositivo mecânico, o tempo que a cabeça de 
leitura leva para se mover pela superfície do disco é extremamente lento. 
 
Se um determinado conjunto de dados estiver num mesmo cilindro, o tempo de 
acesso a estes dados será menor. 
 
Conjuntos de caracteres 
 
É claro que os computadores têm que lidar com todo tipo de informações, e 
não apenas números, mas como veremos na seção sobre circuitos digitais, o 
computador só consegue de fato lidar com valores binários. 
 
A solução para permitir que os computadores consigam lidar com informações 
não numéricas é a criação de tabelas de conversão. Estas tabelas são 
chamadas de conjuntos de caracteres. 
 
Um dos padrões mais conhecidos é o ASCII (American Standard Code for 
Information Interchange – código padrão americano para intercâmbio de 
informações). 
 
O ASCII usa sete bits para descrever os caracteres, o que permite 128 
combinações. 
 
 
Parte do padrão ASCII 
Conforme podemos perceber, este padrão é bastante limitado, ele contém 
apenas os caracteres da língua inglesa, não contém os acentos necessários 
par ao português e nem podemos começar a pensar nos idiomas que usam 
alfabetos diferentes como o russo ou o árabe. 
 
Como os computadores hoje são usados em todo mundo e fabricantes 
desejam que seus produtos sejam usados globalmente, o ASCII não pode mais 
ser considerado como um padrão aceitável. 
 
Por este motivo, foi criado outro padrão, chamado UNICODE, patrocinado por 
um grupo de empresas. O UNICODE usa 16 bits para descrever cada 
caractere, o que permite até 65.536 caracteres diferentes. 
 
Mesmo essa quantidade é insuficiente para abarcar todos os idiomas falados 
na Terra. Lingüistas estimam que seriam necessários cerca de 200.000 
caracteres para suportar todos os idiomas falados atualmente. 
 
O padrão UNICODE hoje cobre cerca de 75 alfabetos. Além dos caracteres 
latinos, são suportados cirílico, grego, armênio, hebraico, devanágari, 
gurmuqui, oriá, telugu e kanada, entre outros.

Outros materiais