Vous êtes sur la page 1sur 38

Computao no mais sobre computadores. sobre viver...

.. Temos visto computadores se moverem para fora de grandes salas com ar condicionado para nossos gabinetes, depois para nossas escrivaninhas e agora para os nossos colos e nossos bolsos. Mas isto no o final... Como uma fora da natureza, a era digital no pode ser negada nem interrompida... A supervia da informao pode ser bastante exagerada hoje, mas ela uma indicao sobre o amanh. Ela ir existir alm das previses mais desvairadas das pessoas... No estamos aguardando nenhuma inveno. Ela est aqui. agora. Ela quase gentica em sua natureza, no sentido de que cada gerao se tornar mais digital que sua antecessora. Nicholas Negroponte, professor de mdia tecnolgica no MIT

CAPTULO

Introduo
1.1 VISO GERAL

O Dr. Negroponte est entre aqueles que veem a revoluo dos computadores como uma fora da natureza. Esta fora tem o potencial de transportar a humanidade para seu destino digital, nos permitindo resolver problemas que tm nos desconcertado por sculos, bem como todos os problemas que emergem medida que resolvemos os problemas originais. Computadores nos liberaram do tdio das tarefas rotineiras, liberaram nosso potencial criativo coletivo de modo que podemos, com certeza, construir computadores maiores e melhores. medida que observamos as profundas mudanas cientficas e sociais que os computadores nos trouxeram, fcil sentir-se esmagado pela complexidade disso tudo. Esta complexidade, no entanto, emana de conceitos que so fundamentalmente muito simples. Estas ideias simples so aquelas que nos trouxeram para onde estamos hoje e so os fundamentos dos computadores do futuro. Em que extenso elas vo sobreviver no futuro questo de adivinhao. Mas hoje elas so o fundamento de toda a cincia da computao como ns a conhecemos. Cientistas da computao so geralmente mais preocupados com a escrita de algoritmos complexos de programas do que com o projeto de hardware de computadores. Naturalmente, se queremos que nossos algoritmos sejam teis, em algum momento um computador ter que execut-los. Alguns algoritmos so to complicados que demorariam demais para ser executados nos computadores atuais. Estes tipos de algoritmos so considerados computacionalmente inexequveis. Certamente, na taxa atual de inovao, algumas coisas que so inexequveis hoje podem ser factveis amanh, mas parece que no importa quo grandes ou rpidos os computadores se tornem, algum vai pensar num problema que ir exceder os limites razoveis da mquina. Para entender por que um algoritmo inexequvel, ou para entender por que a implementao de um algoritmo exequvel executada to lentamente, voc deve estar apto a olhar para o programa sob o ponto de vista do computador. Voc deve entender o que faz um sistema de computao pulsar antes que possa pensar em otimizar os programas que ele executa. Tentar otimizar um sistema de computao sem primeiro

36

Captulo 1: Introduo

entender isto como tentar regular o seu carro despejando um elixir no tanque de gasolina: voc ter sorte se ele funcionar bem quando voc terminar. A otimizao de programas e a afinao de sistemas talvez a motivao mais importante para aprender como computadores funcionam. Existem, entretanto, muitas outras razes. Por exemplo, se voc quiser escrever compiladores, voc deve entender o ambiente de hardware dentro do qual o compilador ir funcionar. Os melhores computadores aproveitam caractersticas de hardware particulares (tais como pipelining) para alcanar maior velocidade e eficincia. Se voc alguma vez precisar modelar grandes, complexos sistemas do mundo real, precisar saber como a aritmtica de ponto-flutuante deveria funcionar e como ela realmente funciona na prtica. Se voc deseja projetar equipamentos perifricos ou o software que comanda equipamentos perifricos, voc tem que conhecer cada detalhe de como um determinado computador lida com sua entrada/sada (E/S). Se o seu trabalho envolve sistemas embarcados, voc precisa saber que estes sistemas so geralmente restritos quanto a recursos. Sua compreenso de tempo, espao, custo e seus comprometimentos, assim como arquiteturas de E/S, sero essenciais para a sua carreira. Todos os profissionais de computao devem estar familiarizados com os conceitos de testes de desempenho (benchmarks) e estar aptos a interpretar e apresentar os resultados de sistemas de testes de desempenho. Pessoas que fazem pesquisa envolvendo sistemas de hardware, redes ou algoritmos consideram as tcnicas de testes de desempenho cruciais para o seu trabalho no dia-a-dia. Gerentes tcnicos encarregados de comprar hardware tambm usam testes de desempenho para ajud-los a comprar o melhor sistema por um certo preo, tendo em mente os nodos como os testes de desempenho podem ser manipulados para fornecer resultados favorveis a certos sistemas. Os exemplos anteriores ilustram a ideia de que existe um relacionamento fundamental entre o hardware de computadores e muitos aspectos de programao e componentes de software em sistemas de computao. Portanto, no obstante a sua rea de especializao, como cientistas de computao imperativo que entendamos como o hardware interage com o software. Devemos nos tornar familiarizados com como os vrios circuitos e componentes se ajustam para criar sistemas de computao que funcionem. Fazemos isto por meio do estudo da organizao de computadores. A organizao de computadores trata de questes como sinais de controle (como o computador controlado), mtodos de sinalizao e tipos de memria; compreende todos os aspectos fsicos dos sistemas de computao e nos ajuda a responder pergunta: Como um computador funciona? O estudo da arquitetura de computadores, por outro lado, enfoca a estrutura e o comportamento do sistema de computao e se refere aos aspectos lgicos da implementao do sistema como visto pelo programador. A arquitetura de computadores inclui muitos elementos, tais como conjuntos de instrues e formatos, cdigos de operaes, tipos de dados, quantidade e tipos de registradores, modos de endereamento, mtodos de acesso memria principal e diversos mecanismos de E/S. A arquitetura de um sistema afeta diretamente a execuo lgica de programas. Estudar arquitetura de computadores nos ajuda a responder pergunta: Como eu projeto um computador? A arquitetura de computadores para uma dada mquina a combinao de seus componentes de hardware com a sua arquitetura de conjunto de instrues (ISA Instruction Set Architecture). A ISA a interface combinada entre todo o software executado na mquina e o hardware que o executa. A ISA permite que voc fale com a mquina.

1.2

Os Principais Componentes de um Computador

37

A distino entre organizao de computadores e arquitetura de computadores no bem delimitada. Pessoas no campo de cincia da computao e engenharia da computao possuem opinies diferentes sobre exatamente quais conceitos pertencem organizao de computadores e quais pertencem arquitetura de computadores. De fato, nem organizao de computadores nem arquitetura de computadores podem se manter sozinhas. Elas so inter-relacionadas e interdependentes. Podemos verdadeiramente entender cada uma delas somente aps termos compreendido ambas. Nossa compreenso de arquitetura e organizao de computadores nos conduz, enfim, a um conhecimento mais profundo de computadores e computao o corao e a alma da cincia de computadores.

1.2

OS PRINCIPAIS COMPONENTES DE UM COMPUTADOR


Embora seja difcil distinguir os conceitos pertencentes organizao de computadores daqueles que pertencem arquitetura de computadores, impossvel afirmar onde as questes de hardware terminam e as questes de software iniciam. Cientistas de computao projetam algoritmos que geralmente so implementados como programas escritos em alguma linguagem de programao, como Java ou C. Mas o que possibilita a execuo de um algoritmo? Outro algoritmo, com certeza! E um outro algoritmo executa esse algoritmo e assim at que voc chegue no nvel de mquina, que pode ser imaginado como um algoritmo implementado em um dispositivo eletrnico. Portanto, os computadores modernos so, na verdade, implementaes de algoritmos que executam outros algoritmos. Esta cadeia de algoritmos aninhados nos conduz ao seguinte princpio: Princpio de Equivalncia de Hardware e Software: Qualquer coisa que possa ser feita com software pode ser feita com hardware, e qualquer coisa que possa ser feita com hardware tambm pode ser feita com software.* Um computador de propsito especial pode ser projetado para realizar qualquer tarefa, tal como processar texto, analisar um oramento ou jogar amigavelmente o jogo Tetris. Consequentemente, programas podem ser escritos para realizar as funes de computadores de propsito especial, tais como sistemas embarcados localizados em seu carro ou micro-ondas. Existem vezes em que um simples sistema embarcado nos d uma performance muito melhor do que um programa complicado de computador, e existem vezes em que um programa a abordagem preferida. O Princpio de Equivalncia de Hardware e Software nos afirma que temos escolha. Nosso conhecimento de arquitetura e organizao de computadores vai nos ajudar a fazer a melhor delas. Iniciamos nossa discusso sobre hardware de computadores examinando os componentes necessrios para construir um sistema de computao. No nvel mais bsico, um computador um dispositivo que consiste de trs partes: 1. Um processador para interpretar e executar programas 2. Uma memria para armazenar dados e instrues 3. Um mecanismo para transferir dados de e para o mundo externo

* O que este princpio no trata a velocidade com a qual tarefas equivalentes so realizadas. Implementaes em hardware so sempre mais rpidas.

38

Captulo 1: Introduo

Vamos discutir estes trs componentes em detalhe nos captulos seguintes, medida que eles se relacionam com o hardware de computadores. Assim que voc entender computadores em termos de suas partes componentes, voc vai estar capacitado a entender o que um sistema est fazendo durante todo o tempo e como voc pode alterar este comportamento se isto for desejvel. Voc pode mesmo pensar que tem algumas coisas em comum com ele. Esta ideia no to absurda quanto parece ser. Imagine como um estudante sentado em sua cadeira representa os trs componentes de um computador: o crebro do estudante o processador, as anotaes que esto sendo feitas representam a memria e a caneta usada para tomar notas o mecanismo de E/S. Mas tenha sempre em mente que suas habilidades ultrapassam muito aquelas de qualquer computador hoje existente ou que venha a ser construdo em um futuro prximo.

1.3

UM SISTEMA-EXEMPLO: ENTRANDO NO JARGO


Este livro vai introduzir vocabulrio especfico de computadores. Este jargo pode ser confuso, impreciso e intimidante. Acreditamos que com uma pequena explicao, podemos clarear a neblina. Para fins de discusso, apresentamos cpia de um anncio de computador (ver Figura 1.1). O anncio um tpico exemplar daqueles que bombardeiam o leitor com frases como DDR SDRAM 256MB, placa de som 64-bit PCI e cache L1 32KB. Sem ter uma noo sobre tal terminologia, voc estaria em apuros para saber se o sistema anunciado uma boa compra ou mesmo se capaz de atender s suas ne-

PROMOO: COMPUTADOR ULTRAPASSADO BARATO! BARATO! BARATO!

Pentium 4 2.0 GHz DDR SDRAM 400MHz 256MB cache L1 32KB, cache L2 256KB disco fixo 80GB serial ATA (7200 RPM) 8 Portas USB, 1 porta serial, 1 porta paralela Monitor 19, .24mm AG, 1280 1024 a 75Hz unidade CD-RW 48X Placa de vdeo 128MB PCI Express data/fax modem 56K PCI placa de som 64-bit PCI Ethernet 10/100 integrada

FIGURA 1.1

Um anncio tpico de computador.

1.3

Um Sistema-Exemplo: Entrando no Jargo

39

cessidades. medida que avanarmos neste livro, voc vai aprender os conceitos que esto por trs destes termos. Entretanto, antes de explicarmos o anncio, precisamos discutir algo mais bsico ainda: a terminologia de medidas que voc vai encontrar ao longo de seu estudo sobre computadores. Parece que cada campo tem a sua prpria maneira de medir coisas. O campo de computao no exceo. Para que pessoas da computao possam dizer a outras quo grande algo ou quo rpido , elas devem usar as mesmas unidades de medidas. Os prefixos comuns usados com computadores so dados na Tabela 1.1. Nos anos 1960, algum decidiu que como as potncias de 2 eram similares s potncias de 10, os mesmos nomes de prefixos poderiam ser usados para ambas. Por exemplo, 10 3 2 prximo a 10 , e, assim, kilo usado para referir-se a ambos. O resultado foi uma grande confuso: o tal prefixo refere-se a uma potncia de 10 ou a uma potncia de 2? Um kilo significa 103 de algo ou 210 de algo? Embora no exista uma resposta definitiva para esta pergunta, so aceitos padres de uso. Prefixos de potncias de 10 so comumente usados para energia, voltagem eltrica, frequncia (tal como a velocidade de um relgio de computador) e mltiplos de bits (tal como velocidade de dados em nmero de bits por segundo). Se o seu modem antiquado transmite a 28,8 kb/s, ento ele transmite 28.800 bits por segundo (ou 28,8 103). Note o uso da letra minscula k para representar 103 e da letra minscula b para se referir a bits. Uma letra maiscula K usada para se referir ao prefixo de potncia de 2, ou 1024. Se um arquivo tem o tamanho de 2K, ento ele possui 2 210 ou 2048 bytes. Note que a letra maiscula B se refere a byte. Se um disco contm 1MB, ento ele contm 220 bytes (ou um megabyte) de informao. No saber se prefixos especficos se referem a potncias de 2 ou a potncias de 10 pode causar confuso. Por esta razo, a International Electrotechnical Commission, com o auxlio do National Institute of Standards and Technology, aprovou nomes e smbolos padronizados para prefixos binrios a fim de diferenci-los dos prefixos decimais. Cada prefixo derivado dos smbolos dados na Tabela 1.1, adicionando-se

TABELA 1.1
Pref. Smb. Kilo Mega Giga Tera Peta Exa Zetta Yotta K M G T P E Z Y

Prefixos comuns associados com arquitetura e organizao de computadores


Potncia de 10 1 mil 103 10 10
6 9

Potncia de 2 210 2 2
20 30

Pref.

Smb. m m n p f a z y

Potncia de 10 1 milsimo 10
3 6 9 12

Potncia de 2 2 2 2 2
15 18 10 20 30 40 50 60 70 80

1024 Mili Micro Nano Pico Femto Atto Zepto Yocto

1 milho 1 bilho 1 trilho

1 milionsimo 1 bilionsimo 1 trilionsimo

10 10 10

1012 1015 10 1021 1024


18

240 250 2
60

1 quadrilho 1 quintillho 1 sextilho 1 setilho

1 quadrilionsimo 1 quintilionsimo 1 sextilionsimo 1 setilionsimo

10 10 10 10

2 2 2 2

270 280

21 24

40

Captulo 1: Introduo

um i. Por exemplo, 210 foi renomeado como kibi (de kilobinary) e representado pelo smbolo Ki, 220 mebi, ou Mi, seguido por gibi (Gi), tebi (Ti), pebi (Pi), exbi (Ei) e assim por diante. Portanto, o termo mebibyte, que significa 220 bytes, substitui o que tradicionalmente chamamos de megabyte. Tem havido uma adoo limitada destes novos prefixos. Isto uma pena, porque, como usurio de computador, importante entender o verdadeiro significado destes prefixos. Um kilobyte (1KB) de memria normalmente 1024 bytes de memria em vez de 1000 bytes de memria. Entretanto, uma unidade de disco de 1 GB pode na realidade ter 1 bilho de bytes em vez de 230 (o que significa que voc est tendo menos memria do que voc pensa). Todos os discos flexveis de 3,5 so descritos como armazenamento de 1,44 MB de dados, quando, de fato, eles armazenam 1440 KB (ou 1440 210 1474560 bytes). Voc deve sempre ler as letras pequenas do fabricante para se assegurar sobre o que exatamente 1K, 1KB ou 1G representam. Veja o quadro Quando um Gigabyte no bem... para um bom exemplo de como isto importante.

Quando um Gigabyte no bem...


Comprar um novo conjunto de unidades de disco pode ser um processo relativamente direto, uma vez que voc determina suas necessidades tcnicas (p.ex., taxa de transferncia de disco, tipo de interface, etc.). A partir disso, voc deveria estar apto a tomar a sua deciso baseado em uma simples relao preo/capacidade, tal como custo por gigabyte, e, ento decidir. Bom, no to rpido. O primeiro empecilho no caminho de uma anlise direta que voc deve ter certeza de que as unidades que voc est comparando expressam suas capacidades em bytes formatados ou no formatados. Cerca de 16% do espao em disco consumido durante o processo de formatao. (Alguns vendedores fornecem este nmero como capacidade til.) Naturalmente, a relao preo-capacidade parece muito melhor quando bytes no formatados so usados, embora voc esteja mais interessado em saber a quantidade de espao usvel que um disco fornece. Seu prximo obstculo assegurar-se de que a mesma base usada na comparao de tamanhos de disco. cada vez mais comum capacidades de disco serem dadas na base 10 9 em vez de na base 2. Assim, uma unidade de disco de 1GB possui capacidade para 10 30 1.073.741.824 bytes uma reduo de cerca de 1.000.000.000 bytes, em vez de 2 7%. Isto pode fazer uma enorme diferena ao comprar sistemas empresariais de memria de muitos gigabytes. Como um exemplo concreto, suponha que voc est considerando comprar um conjunto de discos de dois fabricantes lderes do mercado. O fabricante x anuncia um conjunto de 12 discos de 250GB por um preo de $20.000. O fabricante y est oferecendo um conjunto de 12 discos de 212,5GB por $21.000. Todas as outras coisas sendo iguais, a taxa de custo surpreendentemente favorece o fabricante x: fabricante x: 20.000 (12 fabricante y: 21.000 (12 250GB) 212,5GB) 6,67 por GB 8,24 por GB
(continua)

1.3

Um Sistema-Exemplo: Entrando no Jargo

41

Sendo um pouco desconfiado, voc pode dar alguns telefonemas e descobrir que o fabricante x est fornecendo as capacidades em gigabytes sem formatao na base 10 e que o fabricante y est usando gigabytes na base 2 formatada. Estes fatos trazem para o problema uma luz inteiramente diferente, os discos do fabricante x no so realmente de 250GB no modo que normalmente pensamos em gigabytes. Em vez disso, eles so de cerca de 232,8 base 2 gigabytes. Aps a formatao, o nmero se reduz ainda mais, para cerca de 197,9GB. Assim, as taxas reais de custo so, de fato: fabricante x: 20.000 (12 fabricante y: 21.000 (12 197,9GB) 212,5GB) 8,42 por GB 8,24 por GB

Certamente alguns vendedores so bastante honestos ao fornecer as capacidades de seus equipamentos. Infelizmente, outros revelam os fatos somente quando diretamente questionados. Seu trabalho como um profissional treinado formular as perguntas certas.

Quando queremos falar sobre a rapidez de algo, falamos em termos de fraes de segundo geralmente milsimos, milionsimos, bilionsimos ou trilionsimos. Prefixos para estas medidas so dados no lado direito da Tabela 1.1. Geralmente potncias negativas se referem a potncias de 10, e no, a potncias de 2. Por esta razo, os novos padres de prefixos binrios no incluem quaisquer novos nomes para as potncias negativas. Note que os prefixos fracionrios possuem expoentes que so os recprocos dos prefixos do lado esquerdo da tabela. Portanto, se algum diz a voc que uma operao requer um microssegundo para terminar, voc deve entender que um milho destas operaes devem ser realizadas em um segundo. Quando voc precisa falar sobre quantas destas coisas acontecem em um segundo, voc deve usar o prefixo mega. Quando voc precisa falar sobre a rapidez de execuo de operaes, voc deve usar o prefixo micro. Agora, para explicar o anncio: o microprocessador a parte do computador que realmente executa as instrues do programa; ele o crebro do sistema. O microprocessador do anncio um Pentium 4, operando a 2,0GHz. Cada sistema de computao contm um relgio que mantm o sistema sincronizado. O relgio envia pulsos eltricos simultaneamente a todos os principais componentes, assegurando que dados e instrues estejam onde devem estar e quando devem estar l. O nmero de pulsaes emitidas a cada segundo pelo relgio a frequncia. Frequncias de relgio so medidas em ciclos por segundo, ou hertz. Se o relgio de um sistema de computao gera milhes de pulsos por segundo, dizemos que ele opera em intervalos de megahertz (MHz). Muitos computadores atuais operam em intervalos de gigahertz (GHz), gerando bilhes de pulsos por segundo. Visto que quase nada feito por um computador sem o envolvimento do processador, a taxa de frequncia do microprocessador crucial para a velocidade geral do sistema. O microprocessador do sistema

42

Captulo 1: Introduo

anunciado opera a 2 bilhes de ciclos por segundo, de modo que o vendedor diz que ele funciona a 2,0GHz. Entretanto, o fato de este processador operar a 2,0GHz no necessariamente significa que ele pode executar 2 bilhes de operaes por segundo, ou, equivalentemente, que cada instruo requer 0,5 nanossegundos para ser executada. Mais adiante, neste livro, voc vai ver que cada instruo de computador requer um nmero fixo de ciclos para ser executada. Algumas instrues requerem um ciclo de relgio; entretanto, a maioria das instrues requer mais do que um. O nmero de instrues por segundo que um microprocessador pode realmente executar proporcional velocidade de seu relgio. O nmero de ciclos de relgio necessrios para executar uma determinada instruo uma funo de sua arquitetura e de sua organizao. A prxima coisa que vamos ver no anncio DDR SDRAM 400MHz 256MB. O 400MHz refere-se velocidade do barramento do sistema, que um grupo de fios usado para mover os dados e as instrues para vrios lugares dentro do computador. Como o microprocessador, a velocidade do barramento tambm medida em MHz. Muitos computadores possuem um barramento local especial para dados que suporta velocidades de transferncia muito rpidas (tais como as exigidas pelo vdeo). Este barramento local um caminho de dados muito rpido que conecta a memria diretamente ao processador. A velocidade do barramento determina o limite superior da capacidade de transporte de informaes do sistema. O sistema em nosso anncio tambm alardeia uma capacidade de memria de 256 megabytes (MB), ou cerca de 256 milhes de caracteres. A capacidade da memria no apenas determina o tamanho dos programas que voc pode executar, mas tambm quantos programas voc pode executar ao mesmo tempo sem degradar o sistema. O fornecedor de sua aplicao ou sistema operacional ir normalmente recomendar quanta memria voc vai precisar para executar seus produtos. (Algumas vezes, estas recomendaes pode ser absurdamente conservadoras, de modo que voc deve ser cuidadoso sobre em quem acreditar!) Alm do tamanho da memria, nosso sistema anunciado indica o tipo de memria, SDRAM, abreviatura para memria dinmica sncrona de acesso randmico (synchronous dynamic random access memory). SDRAM muito mais rpida que a memria convencional (no sncrona) porque ela pode sincronizar a si mesma com o barramento do microprocessador. O sistema em nosso anncio possui DDR SDRAM, ou SDRAM com dupla taxa de dados (double data rate) (para mais informao sobre diferentes tipos de memria, ver o Captulo 6). A prxima linha do anncio, cache L1 32KB, cache L2 256KB tambm descreve um tipo de memria. No Captulo 6, voc vai aprender que independentemente da velocidade do barramento, sempre demorar algum tempo para levar dados da memria para o processador. Para fornecer um acesso ainda mais rpido aos dados, muitos sistemas contm uma memria especial denominada cache. O sistema em nosso anncio possui duas espcies de cache. A cache nvel 1 (L1) uma memria cache pequena e rpida que est dentro do chip do microprocessador e ajuda a aumentar

1.3

Um Sistema-Exemplo: Entrando no Jargo

43

Um olhar dentro do computador


Voc alguma vez j imaginou como um computador realmente se parece por dentro? O computador no exemplo descrito nesta seo d uma boa viso geral dos componentes de um computador pessoal moderno. Entretanto, abrir um computador e tentar encontrar e identificar as diversas peas pode ser frustrante, mesmo que voc esteja familiarizado com os componentes e suas funes.
Conectores de Conector udio e microfone de rede Porta Porta Conectores de paralela serial Conectores mouse e USB teclado

Conectores PCI Conector AGP Hub controlador de memria

Soquete do processador (UCP)

Hub controlador de E/S

Bancos de memria RAM

Bateria Conector de Conector IDE Conector disquete secundrio IDE principal Conector de alimentao

Cortesia de Intel Corporation Se voc remover a cobertura de seu computador, voc sem dvida ver uma grande caixa de metal com um ventilador junto a ela. Esta a fonte de alimentao. Voc tambm ver diversas unidades, incluindo uma unidade de disco e, talvez, uma unidade de disco flexvel e unidades de CD-ROM ou DVD. Existem diversos circuitos integrados pequenas caixas pretas com pernas. Voc tambm vai notar os caminhos eltricos, ou barramentos, do sistema. Existem placas de circuito impresso que se conectam em soquetes da placa-me, a grande placa no fundo de um PC padro, ou no lado de um PC configurado como torre ou minitorre. A placa-me a placa de circuito impresso que conecta todos os componentes do computador, incluindo a UCP, as memrias RAM e ROM, bem como diversos outros componentes essenciais. Os componentes da placa-me tendem a ser mais difceis de identificar. Acima, voc v uma placa-me Intel D850 com identificao dos componentes mais importantes. As portas de E/S no topo da placa-me permitem ao computador se comunicar com o mundo externo. O hub controlador de E/S permite que todos os dispositivos conectados funcionem sem conflito. Os conectores para componentes perifricos (PCI Peripheral Component Interconnect) se destinam a placas de expanso correspondentes aos diversos
(continua)

44

Captulo 1: Introduo

dispositivos PCI. O conector AGP para ligar a placa grfica AGP. Existem dois bancos de memria RAM e um hub controlador de memria. No existe nenhum processador ligado nesta placa-me, mas podemos ver o soquete onde a UCP deve ser colocada. Todos os computadores possuem uma bateria interna, como visto no canto inferior esquerdo. Esta placa-me possui dois conectores IDE e um para o controlador de disco flexvel. A fonte de alimentao se liga ao cabo de energia. Um aviso de precauo ao examinar o computador por dentro: existem muitas consideraes de segurana envolvidas com a remoo da cobertura, tanto para voc quanto para seu computador. Existem muitas coisas que voc pode fazer para minimizar os riscos. Primeiro e mais importante, certifique-se de que o computador esteja desligado. Muitas vezes, prefervel deix-lo ligado, pois isto oferece um caminho para a eletricidade esttica. Antes de abrir o seu computador e de tocar qualquer coisa ali dentro, certifique-se de que voc tem bom aterramento, de modo que a eletricidade esttica no danifique quaisquer componentes. Muitos cantos da cobertura e das placas de circuitos podem ser pontiagudos, portanto tome cuidado ao manipular as diversas peas. Tentar apertar placas desalinhadas nos soquetes pode danificar tanto a placa quanto a placa-me; assim, seja cuidadoso quando voc decidir adicionar uma nova placa ou remover e reinstalar uma j existente.

a velocidade de acesso a dados usados frequentemente. A cache de nvel 2 (L2) uma coleo de chips de memria embutidos, rpidos, situados entre o microprocessador e a memria principal. Note que a cache em nosso sistema possui uma capacidade de kilobytes (KB), que muito menor do que a memria principal. No Captulo 6 voc vai aprender como a cache funciona e que uma grande cache nem sempre melhor. Por outro lado, todo mundo concorda que quanto mais capacidade de disco voc tiver, melhor. O sistema anunciado possui um disco rgido de 80GB, o que era bastante na poca do anncio. No entanto, a capacidade de um disco fixo (ou rgido) no a nica coisa a se considerar. Um disco grande no muito til se ele for muito lento para seu sistema hospedeiro. O computador em nosso anncio possui um disco rgido com uma rotao de 7200 rotaes por minuto (RPM). Para o leitor bem informado, isto indica (mas no assegura completamente) que uma unidade bastante rpida. Geralmente velocidades de disco so apresentadas em termos de milissegundos requeridos (em mdia) para acessar dados no disco, alm da velocidade de rotao do disco. A velocidade de rotao apenas um dos fatores determinantes da performance geral de um disco. A maneira como ele se conecta ao ou tem interface com o resto do sistema tambm importante. O sistema anunciado usa uma interface de disco serial ATA (advanced technology attachment). Esta uma interface de armazenamento evolucionria que est substituindo a IDE (integrated drive electronics). Outra interface comum a EIDE (enhanced integrated drive electronics), uma interface de hardware alternativa de bom custo-benefcio para dispositivos de memria de massa.

1.3

Um Sistema-Exemplo: Entrando no Jargo

45

A EIDE contm circuitos especiais que permitem melhorar a conectividade, a velocidade e a capacidade de memria de um computador. A maioria dos sistemas ATA, IDE e EIDE compartilham o barramento principal do sistema com o processador e a memria, de modo que a movimentao de dados de e para o disco tambm dependente da velocidade do barramento do sistema. Considerando que o barramento do sistema responsvel por toda a movimentao interna de dados do computador, portas permitem o movimento de dados de e para dispositivos externos ao computador. Nosso anncio fala de trs diferentes portas na linha 8 Portas USB, 1 porta serial, 1 porta paralela. A maioria dos computadores de mesa vem com dois tipos de portas de dados: portas seriais e portas paralelas. Portas seriais transferem dados enviando sries de impulsos eltricos atravs de uma ou duas linhas de dados. Portas paralelas usam pelo menos oito linhas de dados que so energizadas simultaneamente para transmitir dados. Nosso sistema anunciado tambm vem equipado com conexes seriais especiais, denominadas portas USB (universal serial bus). USB um barramento externo popular que suporta Plug-and-Play (a habilidade de configurar dispositivos automaticamente), bem como hot plugging (a habilidade de adicionar e remover dispositivos com o computador em funcionamento). Alguns sistemas aumentam o seu circuito principal com barramentos dedicados de E/S. O PCI (Peripheral Component Interconnect) um dos tais barramentos de E/S que suporta a conexo de diversos dispositivos perifricos. O PCI, desenvolvido pela Intel Corporation, opera a altas velocidades e tambm suporta Plug-and-Play. Existem trs dispositivos PCI mencionados no anncio. O modem PCI permite ao computador conectar-se Internet. (Discutimos modems em detalhe no Captulo 12.) Um modem data/fax serve como um modem (se o usurio deseja conectar-se Internet atravs de um provedor de servios de Internet) e como uma mquina de fax (para enviar documentos). O segundo dispositivo PCI uma placa de som, que contm os componentes necessrios para o funcionamento dos alto-falantes estreo e do microfone do sistema. O terceiro dispositivo PCI a placa de vdeo, que discutida mais adiante. Voc vai aprender mais sobre diferentes tipos de E/S, barramentos de E/S e memria de disco no Captulo 7. Depois de nos informar sobre as portas do sistema, o anncio nos fornece algumas especificaes para o monitor, dizendo monitor 19", .24mm AG, 1280 1024 a 75Hz. Monitores tm pouca relao com a velocidade ou a eficincia de um sistema de computao, mas eles tm uma grande relao com o conforto do usurio. O monitor do anncio suporta uma taxa de restaurao de 75Hz. Isto significa que a imagem exibida no monitor repintada 75 vezes por segundo. Se a taxa de restaurao muito lenta, a tela pode exibir um comportamento irritante de sacolejo ou ondulaes. A fadiga ocular ocasionada por uma exibio em ondas faz as pessoas se cansarem facilmente; algumas pessoas podem mesmo ter dores de cabea aps perodos prolongados de uso. Outra fonte de fadiga ocular uma resoluo pobre. Um monitor de alta resoluo propicia uma visualizao melhor e grficos de melhor qualidade. A resoluo determinada pelo dot pitch do monitor, que a distncia entre um ponto (ou pixel) e o ponto mais prximo da mesma cor. Quanto menor o ponto, mais ntida a imagem. Neste caso, temos um dot pitch de 0,24 milmetros (mm) suportado por

46

Captulo 1: Introduo

um vdeo AG (aperture grill). Grades de abertura dirigem o feixe de eltrons que pinta a figura no monitor na cobertura de fsforo dentro do vidro do monitor. Os monitores AG produzem imagens mais ntidas do que a antiga tecnologia de mscara de sombra (shadow mask). luz da discusso anterior, voc pode estar imaginando por que a distncia entre pontos do monitor no pode ser arbitrariamente pequena para fornecer figuras com resoluo perfeita. Restaurar 100 pontos, por exemplo, requer mais tempo do que restaurar 50 pontos. Uma distncia entre pontos menor requer mais pontos para cobrir a tela. Quanto mais pontos a restaurar, mais tempo leva cada ciclo de restaurao. Especialistas recomendam uma taxa de restaurao de pelo menos 75Hz. Nosso sistema anunciado possui um CD-RW 48x, ou disco compacto regravvel. Esta unidade nos permite usar CDs que podem ser gravados e apagados muitas vezes. A medida de velocidade de unidade de CD 48x nos informa a velocidade com que esta unidade pode ler e gravar. Um x significa 153.000 bytes de dados por segundo. A placa de vdeo de nosso sistema uma placa de vdeo PCI express (PCIe). PCIe uma especificao de interface concebida para melhorar a performance do sistema grfico pelo aumento da largura total de banda. Muitos sistemas possuem em vez disso, placas grficas AGP (accelerated graphics port). Esta uma interface grfica projetada pela Intel especificamente para grficos 3D. Aumentando o fluxo de comunicao entre a UCP e o controlador grfico, a PCI permite que as aplicaes grficas sejam executadas mais rapidamente do que com AGP. Computadores so mais teis se puderem se comunicar com o mundo exterior. Uma forma de se comunicar usar um provedor de servios de Internet e um modem. Outra atravs de uma conexo direta com uma rede. Redes permitem a usurios compartilhar arquivos e dispositivos perifricos. Computadores podem se conectar a uma rede atravs de tecnologia com fio ou sem fio. Computadores conectados por fios usam a tecnologia Ethernet, um padro internacional de tecnologia para redes com fios. Neste caso, existem duas opes para a conexo. A primeira usar um carto de interface de rede (NIC network interface card), que se conecta placa-me atravs de um conector PCI. As NICs normalmente suportam Ethernet 10/100 (Ethernet com velocidade de 10Mbps e Ethernet rpida com velocidade de 100Mbps). Outra opo para rede com fio a Ethernet integrada, o que significa que a prpria placa-me contm todos os componentes necessrios para suportar a Ethernet 10/100; assim, no necessrio um conector PCI. Redes sem fio possuem as mesma opes. NICs sem fio so fornecidos por muitos fabricantes e esto disponveis para computadores de mesa e para laptops. Para instalao em computadores de mesa, voc precisa de uma placa interna que provavelmente ter uma antena pequena. Laptops normalmente usam um conector de expanso (PCMCIA) para a placa de rede sem fio, e os fabricantes esto integrando uma antena no gabinete, atrs da tela. Redes integradas sem fio (tais como as encontradas na tecnologia mvel Intel Centrino) eliminam a confuso de cabos e placas. O sistema em nosso anncio adota Ethernet integrada. No nos aprofundaremos em componentes de marcas especficas disponveis; ainda assim, depois de terminar este livro, voc dever entender como a maioria dos sistemas de computao funciona. Esta compreenso importante para usu-

1.4

Organizaes de Padronizao

47

rios leigos, bem como para programadores experientes. Como um usurio, voc precisa estar ciente das vantagens e das limitaes de seu sistema de computao para que possa tomar decises conscientes sobre aplicaes e assim usar seu sistema mais efetivamente. Como um programador, voc precisa entender exatamente como seu sistema de hardware funciona, de modo que possa escrever programas eficazes e eficientes. Por exemplo, algo to simples como o algoritmo que seu hardware usa para mapear a memria principal na cache ou o mtodo usado para intercalao de memria pode ter um tremendo impacto em sua deciso de acessar elementos de um array por ordem de linha ou por ordem de coluna. Ao longo deste livro estudamos grandes e pequenos computadores. Grandes computadores incluem mainframes, servidores empresariais e supercomputadores. Computadores pequenos incluem sistemas pessoais, estaes de trabalho e dispositivos portteis. Vamos mostrar que independentemente de eles realizarem pequenas tarefas ou executarem tarefas cientficas sofisticadas, os componentes destes sistemas so bastante similares. Tambm vamos abordar algumas arquiteturas que esto fora do que atualmente o fluxo principal da computao. Esperamos que o conhecimento que voc vai obter neste livro sirva definitivamente como um trampolim para continuar seus estudos nos vastos e entusiasmantes campos da arquitetura e organizao de computadores.

1.4

ORGANIZAES DE PADRONIZAO
Suponha que voc gostaria de ter um destes novos e elegantes monitores AG com distncia entre pontos de .24mm. Voc imagina que pode ir s compras e encontrar o melhor preo. Voc d alguns telefonemas, navega na Web e anda pela cidade at que encontra uma loja que d o mximo pelo seu dinheiro. Com sua experincia, voc sabe que pode comprar seu monitor em qualquer lugar e que ele provavelmente vai funcionar bem no seu sistema. Voc pode fazer esta suposio porque fabricantes de equipamentos de computao concordaram em atender s especificaes de conectividade e operacionais estabelecidas por diversas organizaes governamentais e empresariais. Algumas destas organizaes de estabelecimento de padres so associaes comerciais ad hoc ou consrcios criados por lderes industriais. Os fabricantes sabem que o estabelecimento de normas comuns para um determinado tipo de equipamento faz com que eles possam vender seus produtos para um pblico maior do que se eles tiverem especificaes prprias talvez incompatveis. Algumas organizaes de padronizao possuem patentes formais e so reconhecidas internacionalmente como a autoridade definitiva em certas reas de eletrnica e computadores. medida que continuar seus estudos em arquitetura e organizao de computadores, voc vai encontrar especificaes formuladas por estes grupos; logo, voc deve saber alguma coisa sobre eles. O Institute of Electrical and Electronic Engineers (IEEE) uma organizao dedicada ao avano das profisses de eletrnica e engenharia de computao. O IEEE fomenta ativamente os interesses da comunidade mundial de engenharia por meio da publicao de uma variedade de literatura tcnica. O IEEE tambm estabelece padres para vrios componentes de computadores, protocolos de sinalizao e re-

48

Captulo 1: Introduo

presentao de dados, apenas para relacionar algumas reas de seu envolvimento. O IEEE possui um procedimento democrtico, embora demorado, estabelecido para a criao de novos padres. Seus documentos finais so bem respeitados e geralmente duram muitos anos antes de requerer reviso. A International Telecommunications Union (ITU) baseada em Genebra, na Suia. A ITU era anteriormente conhecida como Comit Consultivo Internacional de Telegrafia e Telefonia (Comit Consultatif International Tlgraphique et Tlphonique). Como seu nome indica, o ITU se preocupa com a interoperabilidade dos sistemas de comunicao, incluindo telefone, telgrafo e sistemas de comunicao de dados. O brao de telecomunicaes do ITU, ou ITU-T, estabeleceu diversos padres que voc vai encontrar na literatura. Voc vai ver estes padres prefixados por ITU-T ou pelas antigas iniciais do grupo, CCITT. Muitos pases, incluindo a Comunidade Europeia, comissionaram organizaes abrangentes para representar seus interesses dentro dos diversos grupos internacionais. O grupo que representa os Estados Unidos o American National Standards Institute (ANSI). A Gr-Bretanha possui sua British Standards Institution (BSI) e integrante do CEN (Comit Europen de Normalisation), o comit europeu de padronizao. A International Organization for Standardization (ISO) a entidade que coordena mundialmente o desenvolvimento de padres, incluindo as atividades da ANSI com a BSI, entre outras. ISO no uma sigla, mas provm da letra grega isos, que significa igual. A ISO consiste de mais de 2800 comits tcnicos, cada um encarregado de alguma questo de padronizao global. Seus interesses variam do comportamento de filme fotogrfico largura de linhas de parafusos, incluindo o mundo complexo de engenharia de computao. A proliferao do comrcio mundial tem sido facilitada pela ISO. Atualmente, a ISO toca praticamente cada um dos aspectos da nossas vidas. Ao longo deste livro, mencionamos nomes de padres oficiais onde era apropriado. Informaes definitivas sobre muitos destes padres podem ser encontradas com mnimos detalhes nas pginas Web da organizao responsvel pelo estabelecimento do padro mencionado. Como um bnus extra, muitos padres contm referncias normativas e informativas que fornecem mais informao sobre reas relacionadas ao padro.

1.5

DESENVOLVIMENTO HISTRICO
Durante seus mais de 50 anos de vida, computadores se tornaram o exemplo perfeito da convenincia moderna. Esforos de memria fazem relembrar os dias de estenografia, papel carbono e mimegrafos. s vezes parece que estas mquinas mgicas de computao foram desenvolvidas instantaneamente na forma como as conhecemos hoje. Mas o caminho do desenvolvimento dos computadores pavimentado com descobertas acidentais, presso comercial e ideias extravagantes. Ocasionalmente, computadores podem mesmo ter melhorado por meio de slidas prticas de engenharia! Apesar de todas as guinadas, voltas e becos tecnolgicos sem sada, os computadores tm evoludo num ritmo que desafia a compreenso. Somente quando tivermos visto de onde viemos poderemos apreciar totalmente onde estamos hoje.

1.5 Desenvolvimento Histrico

49

Nas sees que seguem, dividimos a evoluo de computadores em geraes, cada gerao sendo definida pela tecnologia usada para construir a mquina. Fornecemos datas aproximadas para cada gerao somente como referncia. Existe pouca concordncia entre os especialistas sobre as datas exatas de incio e fim de cada poca tecnolgica. Cada inveno reflete a poca em que foi feita, de modo que se pode imaginar se isso teria sido chamado de computador se tivesse sido inventado no final dos anos 1990. Quanta computao atualmente vemos saindo das caixas misteriosas pousadas sobre ou abaixo de nossas escrivaninhas? At recentemente, computadores nos serviam somente realizando manipulaes matemticas alucinantes. No mais limitados a cientistas de jaleco branco, os computadores atuais nos ajudam a escrever documentos, a manter contato atravs do globo com pessoas queridas e a fazer nossas comprinhas. Computadores empresariais modernos gastam somente uma minscula parcela de seu tempo fazendo clculos contbeis. Seu principal objetivo dar aos usurios generosas informaes estratgicas para obter vantagens competitivas. Ser que a palavra computador se tornou inadequada? Um anacronismo? Como, ento, poderamos cham-los por outro nome que no computadores? No conseguimos apresentar a histria completa de computadores em poucas pginas. Livros inteiros tm sido escritos sobre este assunto e mesmo eles fazem seus leitores desejar mais detalhes. Se seu interesse foi aguado, recomendamos a leitura de alguns dos livros citados na lista de referncias no final deste captulo.

1.5.1

Gerao zero: Mquinas de clculo mecnicas (16421945)


Antes dos anos 1500, um tpico homem de negcios europeu usava um baco para calcular e registrava as cifras resultantes em numerais romanos. Aps o sistema de numerao decimal ter finalmente substitudo os nmeros romanos, diversas pessoas inventaram dispositivos para tornar os clculos decimais ainda mais rpidos e mais precisos. Wilhelm Schickard (15921635) foi reconhecido como o inventor da primeira calculadora mecnica, o Relgio Calculadora (data exata desconhecida). Este dispositivo podia adicionar e subtrair nmeros contendo at seis dgitos. Em 1642, Blaise Pascal (16231662) desenvolveu uma calculadora mecnica, denominada Pascaline, para ajudar seu pai no seu trabalho com impostos. A Pascaline podia fazer adio com transporte (vai-um) e subtrao. Ela foi provavelmente o primeiro dispositivo mecnico de soma realmente usado para objetivos prticos. De fato, a Pascaline foi to bem-concebida que o seu projeto bsico ainda estava sendo usado no incio do sculo XX, como evidenciado pelo Lightning Portable Adder, em 1908, e pelo Addometer, em 1920. Gottfried Wilhelm von Leibniz (16461716), um notvel matemtico, inventou uma calculadora conhecida como Stepped Reckoner, que podia adicionar, subtrair, multiplicar e dividir. Nenhum destes dispositivos podia ser programado ou tinha memria. Eles precisavam de interveno manual em cada passo de seus clculos. Embora mquinas como a Pascaline fossem usadas at o sculo XX, novos projetos de calculadoras comearam a emergir no sculo XIX. Um dos mais ambiciosos dentre estes novos projetos era a Mquina Diferencial (Difference Engine) de Charles Babbage (17911871). Algumas pessoas se referem a Babbage como o pai da com-

50

Captulo 1: Introduo

putao. De acordo com a opinio geral, ele foi um gnio excntrico que nos legou, entre outras coisas, a chave mestra e o pegador de boi, um dispositivo para empurrar bois e outros obstculos mveis para fora do caminho das locomotivas. Babbage construiu sua Mquina Diferencial em 1822. A Mquina Diferencial recebeu este nome porque usava uma tcnica de clculo chamada de mtodo das diferenas. A mquina foi projetada para mecanizar o clculo de funes polinomiais e era, na verdade, uma calculadora, e no, um computador. Babbage tambm projetou uma mquina de propsito geral em 1833, denominada Mquina Analtica. Embora Babbage tenha falecido antes de t-la construdo, a Mquina Analtica foi projetada para ser mais verstil do que sua antecessora, a Mquina Diferencial. A Mquina Analtica teria sido capaz de realizar qualquer operao matemtica. Ela inclua muitos dos componentes associados aos computadores modernos: uma unidade aritmtica para realizar clculos (Babbage se referia a ela como o moinho), uma memria (o depsito) e dispositivos de entrada e sada. Babbage tambm incluiu uma operao de desvio condicional onde a prxima instruo a ser executada era determinada pelo resultado da operao anterior. Ada, Condessa de Lovelace e filha do poeta Lord Byron, sugeriu que Babbage escrevesse um plano de como a mquina deveria calcular os nmeros. Isto reconhecido como sendo o primeiro programa de computador, e Ada considerada como sendo a primeira programadora de computadores. Tambm existem rumores de que ele teria sugerido o uso do sistema binrio de numerao, em vez do sistema decimal, para armazenar dados. Um problema perene que desafia os projetistas de mquinas tem sido a maneira de introduzir dados no computador. Babbage projetou a Mquina Analtica para usar um tipo de carto perfurado para entrada e programao. Usar cartes para controlar o comportamento de uma mquina no se originou com Babbage, mas sim com um de seus amigos, Joseph-Marie Jacquard (17521834). Em 1801, Jacquard inventou um tear de tecelagem programvel que poderia produzir padres complexos em roupas. Jacquard deu a Babbage uma tapearia que havia sido tecida neste tear usando mais de 10.000 cartes perfurados. Para Babbage, pareceu natural que, se um tear podia ser controlado por cartes, ento sua Mquina Analtica tambm poderia ser. Ada expressou seu encanto com esta ideia, escrevendo que A Mquina Analtica tece padres algbricos da mesma forma que o tear de Jacquard tece flores e folhas. O carto perfurado provou ser o meio mais resistente de fornecer entrada para um sistema de computao. A entrada de dados via teclado teve de esperar at que fossem feitas mudanas fundamentais na forma como as mquinas de calcular eram construdas. Na segunda metade do sculo XIX a maioria das mquinas usava mecanismos com engrenagens, difceis de integrar com os primitivos teclados porque eles eram mecanismos com alavancas. Mas mecanismos com alavancas poderiam facilmente perfurar cartes, e mecanismos com engrenagens poderiam l-los facilmente. Portanto, vrios dispositivos foram inventados para codificar e, depois, tabular dados perfurados em cartes. A mais importante das mquinas de tabulao do final do sculo XIX foi a inventada por Herman Hollerith (18601929). A mquina de Hollerith foi usada para codificar e compilar os dados do censo de 1890. Este censo foi completado em tempo recorde, impulsionando as finanas de Hollerith e a reputao de sua inveno. Hollerith, mais tarde, fundou uma empresa que se tornaria a IBM. Seu carto perfurado de 80 colunas, o carto Hollerith, foi uma marca de processamento automatizado de dados por mais de 50 anos.

1.5 Desenvolvimento Histrico

51

1.5.2

A primeira gerao: Computadores com vlvulas (19451953)


Embora Babbage seja frequentemente chamado de pai da computao, suas mquinas eram mecnicas, e no, eltricas ou eletrnicas. Na dcada de 1930, Konrad Zuse (19101995) partiu do ponto em que Babbage havia parado e adicionou tecnologia eltrica e outras melhorias ao projeto de Babbage. O computador de Zuse, o Z1, usava rels eletromecnicos em vez das engrenagens movidas a manivela de Babbage. O Z1 era programvel e possua uma memria, uma unidade aritmtica e uma unidade de controle. Visto que verbas e recursos eram escassos na Alemanha durante a guerra, Zuse usava filmes de cinema descartados em vez de cartes perfurados para a entrada. Embora esta mquina tenha sido projetada para usar vlvulas, Zuse, que estava construindo ele mesmo a sua mquina, no podia arcar com os custos das vlvulas. Assim, o Z1 corretamente pertence primeira gerao, embora no tivesse vlvulas. Zuse construiu o Z1 na sala da casa de seus pais, em Berlim, enquanto a Alemanha estava em guerra com a maior parte da Europa. Felizmente ele no conseguiu convencer os nazistas a comprar a sua mquina. Eles no perceberam a vantagem ttica que tal dispositivo poderia dar a eles. Bombas aliadas destruram todos os trs primeiros sistemas de Zuse, O Z1, o Z2 e o Z3. As impressionantes mquinas de Zuse no puderam ser refinadas at o final da guerra e foram mais um beco de evoluo na histria dos computadores. Computadores digitais, como os conhecemos hoje, so o fruto do trabalho realizado por diversas pessoas nas dcadas de 1930 e 1940. A calculadora mecnica bsica de Pascal foi projetada e modificada simultaneamente por muitas pessoas; o mesmo pode ser dito do moderno computador eletrnico. No obstante os continuados debates sobre quem foi o primeiro a fazer, trs pessoas claramente emergem como inventoras dos modernos computadores: John Atanasoff, John Mauchly e J. Presper Eckert. John Atanasoff (19041995) recebeu o mrito da construo do primeiro computador totalmente eletrnico. O Atanasoff Berry Computer (ABC) era uma mquina binria construda com vlvulas. Visto que este sistema foi construdo especificamente para resolver sistemas de equaes lineares, no podemos consider-lo um computador de uso geral. Existem, no entanto, algumas caractersticas que o ABC possui em comum com o computador de uso geral ENIAC (Electronic Numerical Integrator and Computer), que foi inventado poucos anos depois. Estas caractersticas comuns causaram considervel controvrsia a respeito de a quem deveria ser dado o crdito (e os direitos de patente) pela inveno do computador eletrnico digital. (O leitor interessado pode encontrar mais detalhes em um processo bastante volumoso envolvendo Atanasoff e o ABC em Mollenhoff [1988].) John Mauchly (19071980) e J. Presper Eckert (19291995) foram os dois principais inventores do ENIAC, apresentado ao pblico em 1946. O ENIAC reconhecido como sendo o primeiro computador digital de uso geral totalmente eletrnico. Esta mquina usava 17.468 vlvulas, ocupava 1800 metros quadrados de cho, pesava 30 toneladas e consumia 174 kilowatts de energia. O ENIAC tinha uma capacidade de memria de cerca de 1000 bits de informao (cerca de 20 nmeros de 10 dgitos decimais) e usava cartes perfurados para armazenar dados. A viso de John Mauchly de uma mquina de calcular eletrnica nasceu de seu interesse ao longo da vida de fazer previso do tempo matematicamente. Enquanto professor de fsica do Ursinus College, prximo a Filadlfia, Mauchly empregou d-

52

Captulo 1: Introduo

U.S. Army, 1946

1.5 Desenvolvimento Histrico

53

zias de mquinas de somar operadas por estudantes para mastigar montanhas de dados que ele acreditava poderem revelar as relaes matemticas existentes por trs dos padres de tempo. Ele percebeu que, se tivesse um poder computacional um pouco maior, atingiria o objetivo que parecia estar logo a seu alcance. Em conformidade com os esforos de guerra dos aliados e com motivos mais profundos para aprender sobre computao eletrnica, Mauchly fez-se voluntrio para um curso rpido em engenharia eltrica na Escola de Engenharia Moore, da Universidade da Pensilvnia. Depois de completar este programa, Mauchly tornou-se professor na Escola Moore, onde ensinou um jovem e brilhante aluno, J. Presper Eckert. Mauchly e Eckert encontraram um interesse mtuo na construo de um dispositivo eletrnico de clculo. A fim de assegurar as verbas necessrias para construir sua mquina, eles escreveram uma proposta formal a ser revisada pela escola. Eles retrataram a sua mquina de forma to conservadora quanto possvel, a enquadrando como uma calculadora automtica. Embora provavelmente soubessem que computadores poderiam funcionar mais eficientemente usando o sistema binrio de numerao, Mauchly e Eckert projetaram seu sistema para usar nmeros na base 10, mantendo a aparncia de uma enorme mquina de somar eletrnica. A universidade rejeitou a proposta de Mauchly e Eckert. Felizmente, o Exrcito dos Estados Unidos estava mais interessado. Durante a Segunda Guerra Mundial, o exrcito tinha uma insacivel necessidade de calcular trajetrias dos novos equipamentos balsticos. Milhares de computadores humanos foram empregados diuturnamente para trabalhar na aritmtica requerida por estas tabelas balsticas. Compreendendo que um dispositivo eletrnico poderia encurtar o clculo de tabelas balsticas de dias para minutos, o exrcito liberou fundos para o ENIAC. E o ENIAC realmente reduziu o tempo de clculo de uma tabela, de 20 horas para 30 segundos. Infelizmente, a mquina no ficou pronta antes do final da guerra. Mas o ENIAC mostrou que computadores com vlvulas eram rpidos e viveis. Durante a prxima dcada, sistemas a vlvula continuaram a melhorar e foram comercialmente bem-sucedidos.

O que uma vlvula?


Prato (Anodo) Grade de controle Catodo Envelope

O mundo conectado que conhecemos hoje nasceu da inveno de um dispositivo eletrnico simples denominado tubo de vcuo (vacuum tube) pelos americanos e mais precisamente vlvula (valve) pelos britnicos. Tubos de vcuo devem ser chamados de vlvulas porque eles controlam o fluxo de eltrons em sistemas eletrnicos de forma muito semelhante que vlvulas controlam o fluxo de gua em sistemas encanados. De fato, alguns tipos de tubos de eltrons da metade do sculo XX no contm vcuo, sendo eles preenchidos com gases condutivos, tal como vapor de mercrio, que podem fornecer o comportamento eltrico desejado.
(continua)

54

Captulo 1: Introduo

O fenmeno eltrico que faz os tubos funcionarem foi descoberto por Thomas A. Edison em 1883 enquanto ele tentava encontrar maneiras de fazer com que os filamentos de suas lmpadas no queimassem (ou oxidassem) poucos minutos aps ser aplicada a corrente eltrica. Edison ponderou corretamente que uma maneira de evitar a oxidao do filamento seria colocar o filamento no vcuo. Edison no entendeu imediatamente que o ar no apenas ajuda a combusto, mas tambm um bom isolante. Quando ele energizava os eletrodos segurando um novo filamento de tungstnio, o filamento logo se tornava quente e queimava como os outros haviam queimado antes dele. Desta vez, entretanto, Edison notou que a eletricidade continuava a fluir do terminal negativo aquecido para o terminal positivo frio dentro da lmpada. Em 1911, Owen Willans Richardson analisou este comportamento. Ele concluiu que quando um filamento carregado negativamente era aquecido, os eltrons ferviam como molculas de gua podem ferver para criar vapor. Ele apropriadamente denominou este fenmeno de emisso termoinica (thermionic emission). A emisso termoinica, como Edison a documentou, foi considerada por muitos como uma curiosidade eltrica. Mas, em 1905 um antigo assistente britnico de Edison, John A. Fleming, viu a descoberta de Edison como algo alm de uma novidade. Ele sabia que a emisso termoinica suportava o fluxo de eltrons em apenas uma direo: do catodo com carga negativa para o anodo com carga positiva, tambm chamado de prato. Ele compreendeu que este comportamento poderia retificar corrente alternada, isto , poderia mudar a corrente alternada para a corrente contnua que era essencial para a operao adequada do equipamento de telgrafo. Fleming usou suas ideias para inventar uma vlvula eletrnica, mais tarde chamada de tubo diodo (diode tube) ou retificador.

Retificador

O diodo era bem adequado para mudar de corrente alternada para corrente contnua, mas o maior poder do tubo de eltrons ainda estava por ser descoberto. Em 1907, um americano chamado Lee DeForest adicionou um terceiro elemento, chamado de grade de controle. A grade de controle, ao transportar uma carga negativa, pode reduzir ou evitar o fluxo de eltrons do catodo para o anodo de um diodo.
Carga negativa no catodo e grade de controle; positiva no anodo: eltrons permanecem perto do catodo. Carga negativa no catodo; positiva na grade de controle e no anodo: eltrons viajam do catodo para o anodo.

Quando DeForest patenteou seu dispositivo, ele o denominou audion tube. Mais tarde, ele tornou-se conhecido como triodo. O desenho a seguir mostra o smbolo esquemtico para o triodo.
(continua)

1.5 Desenvolvimento Histrico

55

Filamento

Um triodo pode atuar tanto como uma chave quanto como um amplificador. Pequenas alteraes na carga da grade de controle podem causar alteraes muito maiores no fluxo de eltrons entre o catodo e o anodo. Portanto, um sinal fraco aplicado na grade Anodo (placa) resulta em um sinal muito mais forte na placa de sada. Uma carga negativa suficientemente forte aplicada na placa interrompe a sada Catodo dos eltrons do catodo. Grades de controle adicionais so algumas vezes adicionadas ao triodo para permitir um controle mais preciso do fluxo de eltrons. Tubos com duas grades (quatro elementos) so chamados tetrodos; tubos com trs grades so denominados pentodos. Triodos e pentodos so os tubos mais comumente usados em comunicaes e aplicaes de computadores. Frequentemente, dois ou trs triodos ou pentodos podem ser combinados em um invlucro de modo que possam compartilhar um nico aquecedor, reduzindo assim o consumo de energia de um determinado dispositivo. Estes ltimos dispositivos eram chamados de tubos miniatura porque muitos mediam cerca de 2 polegadas (5 cm) de altura e meia polegada (1,5 cm) de dimetro. Diodos, triodos e pentodos de tamanho normal equivalentes eram somente um pouco menores do que o bulbo de uma lmpada domstica. Vlvulas no eram muito adequadas para construir computadores. Mesmo um sistema de computao a vlvulas mais simples exigia milhares de tubos. Enormes quantidades Diodo Triodo de energia eltrica eram necessrias para aquecer os catodos desses dispositivos. Para evitar derretimento, este calor tinha que ser removido do sistema o mais rapidamente possvel. O consumo de energia e a dissipao de calor podiam ser reduzidos fazendo os aquecedores de catodos funcionarem a baixa voltagem, mas isto reduzia a j lenta velocidade Tetrodo Pentodo de chaveamento do tubo. Apesar de suas limitaes e do grande consumo de energia, sistemas de computao a vlvulas, tanto analgicos quanto digitais, serviam a seus objetivos por muitos anos e formaram a base arquitetnica de todos os modernos sistemas de computao. Embora dcadas tenham decorrido desde que o ltimo computador a vlvula foi fabricado, vlvulas ainda so usadas em amplificadores de udio. Estes amplificadores high-end so os favoritos dos msicos, que acreditam que esses tubos fornecem um som ressonante e agradvel inatingvel pelos dispositivos de estado slido.
Grade

1.5.3 A segunda gerao: Computadores transistorizados (19541965)


A tecnologia de vlvulas da primeira gerao no era muito confivel. De fato, alguns crticos do ENIAC acreditavam que o sistema nunca iria funcionar porque as vlvulas queimariam mais rpido do que poderiam ser substitudas. Embora a confiabilidade do sistema no fosse to ruim quanto os pessimistas previam, os sistemas a vlvulas frequentemente passavam mais tempo sem funcionar do que funcionando.

56

Captulo 1: Introduo

Em 1948, trs pesquisadores do Bell Laboratories John Bardeen, Walter Brattain e William Shockley inventaram o transistor. Esta nova tecnologia no apenas revolucionou dispositivos como televises e rdios, mas tambm impulsionou a indstria de computadores para uma nova gerao. Visto que transistores consomem menos energia do que vlvulas, so menores e trabalham com mais confiabilidade, os circuitos de computadores consequentemente se tornaram menores e mais confiveis. Apesar do uso de transistores, os computadores desta gerao ainda eram grandes e bastante caros. Em geral, somente universidades, governos e grandes empresas poderiam justificar tais custos. Todavia, muitos fabricantes de computadores emergiram nesta gerao; IBM, Digital Equipment Corporation (DEC) e Univac (agora Unisys) dominaram a indstria. A IBM comercializou o 7094 para aplicaes cientficas e o 1401 para aplicaes comerciais. A DEC estava ocupada fabricando o PDP-1. Uma empresa fundada (mas logo vendida) por Mauchly e Eckert construiu os sistemas Univac. O mais bem-sucedido sistema Unisys desta gerao pertencia srie 1100. Outra empresa, a Control Data Corporation (CDC), sob a superviso de Seymour Cray, construiu o CDC 6600, o primeiro supercomputador do mundo. O CDC 6600, de 10 milhes de dlares, podia executar 10 milhes de instrues por segundo, usava palavras de 60 bits e tinha uma assombrosa memria principal de 128 k palavras.

O que um transistor?
O transistor, abreviatura de transfer resistor (resistor de transferncia), uma verso em estado slido de um triodo. No existe uma tal verso em estado slido para o tetrodo ou para o pentodo. Eltrons se comportam melhor em um meio slido do que no vazio aberto de um tubo de vcuo, de modo que no existe necessidade de grades de controle extras. Tanto o germnio (germanium) quanto o silcio (silicon) podem ser o slido bsico usado nestes dispositivos de estado slido. Em sua forma pura, nenhum destes elementos um bom condutor de eletricidade, mas quando eles so combinados com pequenas quantidades de elementos que so seus vizinhos na Tabela Peridica de Elementos, eles conduzem eletricidade de uma maneira efetiva e facilmente controlvel. O alumnio (aluminum) e o glio (gallium) podem ser encontrados esquerda do silcio e do germnio. Uma vez que se situam esquerda do silcio e do germnio, eles possuem um eltron a Emissor menos na sua camada externa de eltrons, ou vaBase lncia. Assim, se voc adicionar uma pequena Coletor quantidade de alumnio ao silcio, o silcio adquire um pequeno desequilbrio em sua camada externa de eltrons e, portanto, atrai eltrons de qualquer polo que tenha um potencial negativo (um excesso de eltrons). Quando modificados (ou dopados) desta maneira, o silcio e o germnio se tornam materiais do tipo P.
(continua)

1.5 Desenvolvimento Histrico

57

Similarmente, se adicionarmos um pouco de boro (boron), arsnio (arsenic) ou glio (gallium) ao silcio, teremos eltrons extras nas valncias de cristais de silcio. Isto nos fornece um material do tipo N. Uma pequena quantidade de corrente ir fluir atravs do material do tipo N se providenciarmos um lugar para os eltrons fracamente ligados do material do tipo N. Em outras palavras, se aplicarmos um potencial positivo a um material do tipo N, os eltrons iro fluir do polo negativo para o polo positivo. Se os plos forem invertidos, isto , se aplicarmos um potencial negativo ao material do tipo N e um potencial positivo ao material do tipo P, nenhuma corrente ir fluir. Isto significa que podemos fazer um diodo de estado slido a partir de uma simples juno de materiais dos tipos N e P. O triodo de estado slido, o transistor, consiste de trs camadas de material semicondutor. Ou uma fatia de material do tipo P colocada entre duas outras do tipo N, ou uma fatia de material do tipo N colocada entre duas de material do tipo P. A primeira chamada de transistor NPN e a segunda de transistor PNP. A camada interna do transistor chamada de base; as outras duas camadas so chamadas de coletor e de emissor. A figura abaixo mostra como a corrente flui atravs de transistores NPN e PNP. A base de um transistor funciona da mesma forma que a grade de controle em um tubo triodo: pequenas alteraes na corrente da base de um transistor resultam em um grande fluxo de eltrons do emissor para o coletor. Um transistor de componentes discretos Fonte de eltrons mostrado em um encapsulamento TO-50 na fiUns poucos gura inicial deste quadro. Existem somente trs Uns poucos eltrons eltrons fios (condutores) que conectam a base, o emissor retirados adicionados e o coletor do transistor ao resto do circuito. Transistores no so apenas pequenas vlvulas; eles tambm operam mais frios e so muito mais Grande sada confiveis. Filamentos de tubos de vcuo, como de corrente + filamentos de lmpadas, funcionam mais quentes e em algum momento queimam. Computadores que usam componentes transistorizados so naturalmente menores e funcionam em temperaturas menores do que suas vlvulas predecessoras. A miniaturizao final, entretanto, no realizada pela substituio de triodos individuais por transistores discretos, mas sim colocando circuitos inteiros em um pedao de silcio. Circuitos integrados, ou chips, contm centenas Emissor Contatos de milhares de transistores microscpicos. Muitas tcnicas diferentes so usadas para fabricar circuitos inteN N grados. Um dos mtodos mais simples envolve a criaBase P P o de um circuito usando software de projeto assistido N Coletor N por computador que pode imprimir grandes mapas de cada uma das vrias camadas de silcio que formam o chip. Cada mapa usado como um negativo fotogrfico onde alteraes induzidas por luz em uma substncia fotorresistente na superfcie do chip produz os delicados padres do circuito quando o chip de silcio imerso em uma soluo qumica que limpa as reas expostas do silcio. Esta tcnica chamada de fotomicrolitografia (photomicrolithography). Aps completar a gravao, uma camada de material do tipo N ou de material do tipo P depositada na superfcie rugosa do chip. Esta camada ento
(continua)

58

Captulo 1: Introduo

tratada com uma substncia fotorresistente, exposta luz e gravada como a camada antes dela. Este processo continua at que todas as camadas tenham sido gravadas. Os picos e vales de material N e de material P resultantes formam componentes eletrnicos microscpicos, incluindo transistores, que se comportam como outras verses maiores feitas com componentes discretos, exceto pelo fato de que funcionam muito mais rpido e consumem uma pequena frao da potncia.

1.5.4

A terceira gerao: Computadores com circuitos integrados (19651980)


A verdadeira exploso no uso de computadores veio com a gerao de circuitos integrados. Jack Kilby inventou o circuito integrado (CI), ou microchip, feito com germnio. Seis meses depois, Robert Noyce (que tambm havia trabalhado em projeto de circuitos integrados) criou um dispositivo similar usando silcio em vez de germnio. Este o chip de silcio sobre o qual foi construda a indstria de computadores. Os CIs pioneiros permitiam que dezenas de transistores existissem em um nico chip de silcio que era menor do que um transistor simples em componente discreto. Os computadores se tornaram mais rpidos, menores e mais baratos, trazendo imensos ganhos ao poder de processamento. A famlia de computadores IBM System/360 estava entre os primeiros sistemas disponveis comercialmente que foram construdos inteiramente com componentes de estado slido. A linha 360 de produtos tambm foi a primeira da IBM a oferecer compatibilidade entre todas as mquinas da famlia, significando que todas usavam a mesma linguagem simblica. Usurios de mquinas pequenas podiam migrar para sistemas maiores sem reescrever todo o seu software. Este foi um novo e revolucionrio conceito na poca. A gerao CI tambm viu a introduo de tempo compartilhado e multiprogramao (a habilidade de mais de uma pessoa usar o computador ao mesmo tempo). A multiprogramao, por sua vez, necessitou a introduo de novos sistemas operacionais para esses computadores. Minicomputadores de tempo compartilhado tais como o PDP-8 e o PDP-11 da DEC, tornaram a computao mais acessvel a pequenas empresas e universidades. A tecnologia de CI tambm permitiu o desenvolvimento de supercomputadores mais poderosos. Seymour Cray usou o que havia aprendido durante a construo do CDC 6600 e iniciou a sua prpria empresa, a Cray Research Corporation. Esta empresa produziu vrios supercomputadores, iniciando com o Cray-1, de 8 milhes de dlares, em 1976. O Cray-1, em forte contraste com o CDC 6600, podia executar mais de 160 milhes de instrues por segundo e suportava 8 megabytes de memria. Ver a Figura 1.2 para uma comparao de tamanhos de vlvulas, transistores e circuitos integrados.

1.5.5

A quarta gerao: Computadores VLSI (1980????)


Na terceira gerao de evoluo eletrnica, vrios transistores foram integrados em um chip. medida que as tcnicas de fabricao e as tecnologias de chip avanaram, um nmero crescente de transistores foram empacotados em um chip. Agora

1.5 Desenvolvimento Histrico

59

Cortesia de Linda Null

FIGURA 1.2 Comparao de Componentes de Computadores Sentido horrio, iniciando no topo:


1) Vlvula 2) Transistor 3) Chip contendo 3200 portas NAND de duas entradas 4) Encapsulamento de circuito integrado (o pequeno quadrado prateado no canto inferior esquerdo um circuito integrado)

existem diversos nveis de integrao: SSI (small scale integration integrao em pequena escala), na qual existem de 10 a 100 componentes por chip; MSI (medium scale integration integrao em mdia escala), na qual existem de 100 a 1.000 componentes por chip; LSI (large scale integration integrao em larga escala), na qual existem de 1.000 a 10.000 componentes por chip; e, finalmente, VLSI (very large scale integration integrao em muito larga escala), na qual existem mais de 10.000 componentes por chip. Este ltimo nvel, VLSI, marca o incio da quarta gerao de computadores. Para dar alguma perspectiva a estes nmeros, considere o ENIAC como um projeto em um chip. Em 1997, para comemorar o quinquagsimo aniversrio de sua primeira demonstrao em pblico, um grupo de estudantes da Universidade da Pensilvnia construiu um nico chip equivalente ao ENIAC. A fera de 1.800 ps quadrados e 30 toneladas, que devorava 174 kilowatts de potncia, no minuto em que ela era ligada, foi reproduzida em um chip do tamanho de uma unha de um polegar. Este chip

60

Captulo 1: Introduo

continha aproximadamente 174.569 transistores uma ordem de magnitude a menos do que o nmero de componentes normalmente colocados na mesma quantidade de silcio no final de dcada de 1990. A VLSI permitiu Intel, em 1971, criar o primeiro microprocessador do mundo, o 4004, que era plenamente funcional, com um sistema de 4 bits que funcionava a 108KHz. A Intel tambm introduziu o chip de memria de acesso randmico (RAM), que podia armazenar quatro kilobits de memria em um nico chip. Isto permitiu aos computadores de quarta gerao se tornarem menores e mais rpidos do que seus antecessores de estado slido. A tecnologia VLSI e seus incrveis circuitos diminutos disseminou o desenvolvimento de microcomputadores. Estes sistemas eram suficientemente pequenos e baratos para tornar os computadores disponveis e acessveis ao pblico em geral. O microcomputador pioneiro foi o Altair 8800, apresentado em 1975 pela empresa Microprocessor Instrumentation and Telemetry (MITS). O Altair 8800 foi seguido pelo Apple I e Apple II e pelos PET e Vic 20 da Commodore. Finalmente, em 1981 a IBM introduziu seu PC (personal computer computador pessoal). O Computador Pessoal foi a terceira tentativa da IBM de introduzir um sistema de computao inicial. Seus computadores de mesa Datamaster, bem como sua Srie 5100, fracassaram miseravelmente no mercado. Apesar destas falhas iniciais, John Opel, da IBM, convenceu sua gerncia a tentar novamente. Ele sugeriu formar uma unidade de negcios independente, quase autnoma, em Boca Raton, Flrida, distante da sede da IBM em Armonk, Nova York. Opel escolheu Don Estridge, um engenheiro capaz e cheio de energia, para liderar o desenvolvimento do novo sistema, de codinome Acorn. Face s falhas anteriores da IBM na rea de pequenos computadores, a gerncia corporativa colocou rdeas curtas nas finanas e prazos do Acorn. Opel pde iniciar o seu projeto somente aps prometer termin-lo em um ano, o que parecia ser uma faanha impossvel. Estridge sabia que a nica maneira possvel de entregar o PC dentro do prazo terrivelmente otimista de um ano seria romper as regras da IBM e usar tantas partes terceirizadas quanto possvel. Assim, desde o princpio, o IBM PC foi concebido com uma arquitetura aberta. Embora algumas pessoas na IBM tenham lamentado a deciso de manter a arquitetura do PC como no proprietria tanto quanto possvel, foi esta abertura que permitiu IBM estabelecer os padres para a indstria. Enquanto os competidores da IBM estavam ocupados processando companhias por copiar seus projetos de sistemas, os clones de PCs proliferaram. Em breve o preo dos microcomputadores compatveis com IBM se tornaram ao alcance de quase todas as empresas pequenas. Tambm graas aos fabricantes de clones, em seguida um grande nmero desses sistemas verdadeiramente de uso pessoal comeou a ser usado nas casas das pessoas. A IBM mais tarde perdeu o seu domnio do mercado de microcomputadores, mas o gnio havia sado da garrafa. Para o bem ou para o mal, a arquitetura da IBM continua sendo de fato o padro para a microcomputao, que cada ano anuncia sistemas maiores e mais rpidos. Hoje em dia, o computador de mesa mdio possui um poder de computao muitas vezes maior que o dos mainframes da dcada de 1960. Desde a dcada de 1960, os computadores mainframes tm apresentado surpreendentes melhorias na relao preo-performance graas tecnologia VLSI. Embora

1.5 Desenvolvimento Histrico

61

o IBM System/360 tenha sido um sistema inteiramente de estado slido, ele ainda era resfriado a gua, um monstro devorador de energia. Ele podia executar apenas 50.000 instrues por segundo e suportava somente 16 megabytes de memria (mas geralmente tinha kilobytes de memria fsica instalada). Estes sistemas eram to caros que somente grandes empresas e universidades podiam possu-los ou alug-los. Os mainframes atuais agora chamados de servidores empresariais ainda so cotados em milhes de dlares, mas suas capacidades de processamento cresceram milhares de vezes, passando a marca de um bilho de instrues por segundo no final da dcada de 1990. Estes sistemas, muitas vezes usados como servidores Web, suportam rotineiramente centenas de milhares de transaes por minuto! O poder computacional trazido pela VLSI aos supercomputadores desafia a compreenso. O primeiro supercomputador, o CDC 6600, podia executar 10 milhes de instrues por segundo e tinha 128 kilobytes de memria principal. Em contraste, supercomputadores atuais contm milhares de processadores, podem enderear terabytes de memria e logo podero executar um quatrilho de instrues por segundo. Qual tecnologia ir marcar o incio da quinta gerao? Alguns dizem que a quinta gerao ser marcada pela aceitao da computao paralela e pelo uso de redes e estaes de trabalho de nico usurio. Muitas pessoas acreditam que j entramos nesta gerao. Algumas pessoas caracterizam a quinta gerao como sendo a gerao de redes neurais, DNA ou sistemas de computao tica. possvel que no estejamos aptos a definir a quinta gerao at que tenhamos avanado para a sexta ou stima gerao e tudo o que estas eras traro.

1.5.6

Lei de Moore
E assim, onde isto terminar? Quo pequenos podemos tornar os transistores? Quo densamente podemos empacotar chips? Ningum pode dizer ao certo. A cada ano cientistas continuam a frustrar as tentativas de prognstico para definir os limites da integrao. De fato, mais de um ctico ergueu as sobrancelhas quando, em 1965, o fundador da Intel, Gordon Moore, afirmou que a densidade de transistores em um circuito integrado ir dobrar a cada ano. A verso atual da predio geralmente colocada como a densidade dos chips de silcio dobra a cada 18 meses. Esta assero se tornou conhecida como Lei de Moore. Moore pretendia que o seu postulado valesse por somente 10 anos. Entretanto, avanos nos processos de manufatura de chips permitiram que esta assero valesse por quase 40 anos (e muitos acreditam que ir valer at a dcada de 2010). Porm, usando a tecnologia atual, a Lei de Moore no pode ser aplicada para sempre. Existem limitaes fsicas e financeiras que devero entrar em jogo. Na atual taxa de miniaturizao, poderia levar cerca de 500 anos para colocar todo o sistema solar em um chip! Claramente, os limites ficam em algum lugar entre este e aquele. Os custos podem ser a restrio final. A Lei de Rock, proposta por um antigo capitalista da Intel, Arthur Rock, um corolrio para a Lei de Moore: O custo de capital de equipamentos para construir semicondutores ir dobrar a cada quatro anos. A Lei de Rock provm das observaes de um financista que disse que viu o preo de uma nova fbrica de chips passar de cerca de 12.000 dlares, em 1968, para 12 milhes no final dos anos 1990. Em 2005, o custo de construir uma nova fbrica de chips estava prximo de 3 bilhes de dlares. Nesta taxa, pelo ano 2035 no apenas o tamanho

62

Captulo 1: Introduo

de um elemento de memria ser menor do que um tomo, mas tambm ser preciso toda a riqueza do mundo para construir um nico chip! Assim, mesmo que se continue a fazer chips menores e mais rpidos, a questo final ser se poderemos arcar com os custos de constru-los. Certamente, se a Lei de Moore continuar valendo, a Lei de Rock dever cair. evidente que para estas duas coisas acontecerem os computadores devem mudar para uma tecnologia radicalmente diferente. As pesquisas sobre novos paradigmas de computao tm prosseguido com determinao na ltima metade da dcada. Prottipos de laboratrio construdos com base em computao orgnica, superconduo, fsica molecular e computao quntica tm sido demonstrados. Computadores qunticos, que utilizam as estranhas mecnicas qunticas para resolver problemas computacionais, so particularmente excitantes. Sistemas qunticos no apenas fariam computaes exponencialmente mais rpido do que qualquer mtodo anteriormente usado, mas tambm poderiam revolucionar a maneira como definimos problemas computacionais. Problemas que hoje so considerados absurdamente impraticveis podem estar ao alcance da prxima gerao de estudantes. Estes estudantes podero, na verdade, debochar de nossos sistemas primitivos da mesma maneira que somos tentados a debochar do ENIAC.

1.6

A HIERARQUIA DE NVEIS DO COMPUTADOR


Se uma mquina deve ser capaz de resolver uma grande variedade de problemas, ela deve poder executar programas escritos em diferentes linguagens, desde FORTRAN e C at Lisp e Prolog. Como veremos no Captulo 3, os nicos componentes fsicos com os quais temos que trabalhar so fios e portas. Existe um formidvel espao aberto o intervalo semntico entre esses componentes fsicos e uma linguagem de alto nvel como C . Para que um sistema seja prtico, o intervalo semntico deve ser invisvel para a maioria dos usurios do sistema. A experincia em programao nos ensina que quando um problema grande, devemos particion-lo e usar a abordagem dividir para conquistar. Em programao, dividimos um problema em mdulos e depois projetamos cada mdulo em separado. Cada mdulo realiza uma tarefa especfica, e os mdulos precisam saber somente como se ligar com outros mdulos para fazer uso deles. A organizao de um sistema de computao pode ser abordada de maneira similar. Por meio do princpio de abstrao, podemos imaginar a mquina como sendo construda em uma hierarquia de nveis, em que cada nvel tem um funo especfica e existe como uma mquina hipottica distinta. Denominamos o computador hipottico em cada nvel de mquina virtual. A mquina virtual de cada nvel executa seu prprio conjunto de instrues, solicitando s mquinas dos nveis mais baixos que realizem as tarefas quando necessrio. Estudando organizao de computadores, voc ver as bases lgicas do particionamento em hierarquia e como estas camadas so implementadas e fazem interface entre si. A Figura 1.3 mostra as camadas comumente aceitas para representar as mquinas virtuais abstratas. O nvel 6, o Nvel de Usurio, composto de aplicaes e o nvel com o qual todos esto mais familiarizados. Neste nvel executamos programas como processadores de textos, pacotes grficos ou jogos. Os nveis inferiores so praticamente invisveis no nvel de usurio.

1.6

A Hierarquia de Nveis do Computador

63

Nv Nv Nv Nv Nv Nv Nv

el 6 el 5 el 4 el 3 el 2 el 1 el 0

Usu

rio uag uag em em

Ling Ling Sof

Pro
de a lto-n ass emb stem

gra

xe as e , FO

cut

veis N, e tc.

vel C++ J

ava a

A RTR ler

twa

re d

ler

Cd Si

igo

mb sse

Mq Con Lg

o si

uina

a stem uite

ope

rac

l, b iona onju n

iblio

te

ec ca d u

dig

ei to d

nstr

es dwa re

trole digi

Arq

tu

oc ra d

ica

Mic
tal

roc uito

digo a

mp ou i

lem

enta

m do e

har

Circ

s, b

en rram

tos,

etc.

FIGURA 1.3

Os nveis abstratos dos modernos sistemas de computao.

O nvel 5, o Nvel de Linguagem de Alto Nvel, consiste em linguagens como C, C , FORTRAN, Lisp, Pascal e Prolog. Essas linguagens devem ser traduzidas (usando um compilador ou um interpretador) para uma linguagem que a mquina possa entender. Linguagens compiladas so traduzidas para linguagem simblica e ento so montadas em cdigo objeto. (Elas so traduzidas para o prximo nvel abaixo.) O usurio neste nvel v muito pouco dos nveis inferiores. Mesmo que um programador precise conhecer os tipos de dados e as instrues disponveis para estes tipos, ele ou ela no precisa saber como estes tipos so realmente implementados. O nvel 4, o Nvel de Linguagem Simblica, compreende algum tipo de linguagem simblica. Como anteriormente mencionado, linguagens compiladas de alto nvel so primeiro traduzidas para linguagem simblica a qual, ento, diretamente traduzida para linguagem de mquina. Esta uma traduo um-a-um, significando que uma instruo em linguagem simblica traduzida exatamente para uma instruo em linguagem de mquina. Ao termos nveis separados, reduzimos o intervalo semntico entre uma linguagem de alto nvel, como C , e a linguagem da mquina real (que consiste de 0s e 1s). O nvel 3, o Nvel de Software de Sistema, trata das instrues de operao do sistema. Este nvel responsvel por multiprogramao, proteo de memria, sin-

64

Captulo 1: Introduo

cronizao de processos e vrias outras funes importantes. Muitas vezes as instrues traduzidas da linguagem simblica para a linguagem de mquina so passadas por meio deste nvel sem modificao. O nvel 2, a Arquitetura do Conjunto de Instrues (ISA), ou Nvel de Mquina, consiste da linguagem de mquina reconhecida pela arquitetura particular do sistema de computao. Programas escritos na verdadeira linguagem de mquina do computador em um computador implementado em hardware (ver abaixo) podem ser executados diretamente pelos circuitos eletrnicos sem quaisquer interpretadores, tradutores ou compiladores. Vamos estudar em profundidade as arquiteturas de conjuntos de instrues nos Captulos 4 e 5. O nvel 1, o Nvel de Controle, onde a unidade de controle se assegura de que as instrues sejam decodificadas e executadas adequadamente e de que os dados sejam movidos para onde e quando eles devem ser. A unidade de controle interpreta as instrues de mquina passadas para ela, uma de cada vez, fazendo com que as aes requeridas sejam executadas. Unidades de controle podem ser projetadas de duas maneiras: elas podem ser implementadas em hardware (hardwired) ou microprogramadas. Em unidades de controle implementadas em hardware, os sinais de controle emanam de blocos de componentes de lgica digital. Estes sinais dirigem todo o trfego de dados e instrues para as partes apropriadas do sistema. Unidades de controle implementadas em hardware so geralmente muito rpidas porque so, na realidade, componentes fsicos. Entretanto, uma vez implementadas elas so muito difceis de ser modificadas, pela mesma razo. A outra opo para o controle implementar as instrues usando um microprograma. Um microprograma um programa escrito em uma linguagem de baixo nvel que implementada diretamente pelo hardware. As instrues de mquina produzidas no nvel 2 so alimentadas neste microprograma que, ento, interpreta as instrues pela ativao do hardware capaz de executar a instruo original. Uma instruo em linguagem de mquina , muitas vezes, traduzida para vrias instrues em microcdigo. Esta no a correlao um-a-um que existe entre linguagem simblica e linguagem de mquina. Microprogramas so populares porque podem ser modificados de forma relativamente fcil. A desvantagem da microprogramao , naturalmente, que uma camada adicional de traduo geralmente resulta em uma execuo de instruo mais lenta. O nvel 0, o Nvel de Lgica Digital, onde encontramos os componentes fsicos do sistema de computao: as portas e os fios. Estes so os blocos bsicos de construo, as implementaes da lgica matemtica, que so comuns a todos os sistemas de computao. O Captulo 3 apresenta o Nvel de Lgica Digital em detalhes.

1.7

O MODELO DE VON NEUMANN


Nas primeiras mquinas de computao eletrnicas, programar era sinnimo de conectar fios a pinos. No existia a arquitetura em camadas, de modo que programar um computador era muito mais uma faanha de engenharia eltrica do que um exerccio de projeto de algoritmos. Antes que seu trabalho com o ENIAC estivesse pronto, John W. Mauchly e J. Presper Eckert conceberam uma maneira mais fcil de alterar o comportamento de sua mquina de calcular. Eles consideraram que dispositivos de

1.7

O Modelo de Von Neumann

65

memria, na forma de linhas de retardo de mercrio, poderiam fornecer uma maneira de armazenar instrues de programas. Isto acabaria com o incmodo de refazer as conexes do sistema cada vez que houvesse um problema novo para resolver ou um antigo para corrigir. Mauchly e Eckert documentaram a sua ideia propondo-a como a base de seu prximo computador, o EDVAC. Infelizmente, como estavam envolvidos no projeto ultrassecreto do ENIAC durante a II Guerra Mundial, Mauchly e Eckert no puderam publicar imediatamente a sua descoberta. Entretanto estas restries no se aplicavam a diversas pessoas que trabalhavam na periferia do projeto ENIAC. Uma destas pessoas era um famoso matemtico hngaro de nome John von Neumann. Aps a leitura da proposta de Mauchly e Eckert para o EDVAC, von Neumann publicou e divulgou a ideia. Ele foi to efetivo na divulgao deste conceito que a histria deu crditos a ele por esta inveno. Todos os computadores com programas armazenados se tornaram conhecidos como sistemas de von Neumann, os quais usam a arquitetura de von Neumann. Embora sejamos compelidos pela tradio a dizer que computadores com programas armazenados usam a arquitetura de von Neumann, podemos no estar reconhecendo seus verdadeiros autores: John W. Mauchly e J. Presper Eckert. A verso atual da arquitetura de mquina com programa armazenado satisfaz pelo menos as seguintes caractersticas: Consiste em trs sistemas de hardware: uma unidade central de processamento (UCP) com uma unidade de controle, uma unidade de aritmtica e lgica (UAL), registradores (pequenas memrias) e um contador de programa; um sistema de memria principal, que armazena programas que controlam a execuo do computador; e um sistema de E/S. Tem capacidade de executar processamento sequencial de instrues. Contm um nico caminho, fsico ou lgico, entre o sistema de memria principal e a unidade de controle da UCP, forando a alternncia entre ciclos de instruo e execuo. Este caminho simples , muitas vezes, denominado gargalo de von Neumann. A Figura 1.4 mostra como estes recursos trabalham juntos nos modernos sistemas de computao. Observe que o sistema mostrado na figura faz passar toda a sua E/S atravs da unidade de aritmtica e lgica (na realidade, atravs do acumulador, que parte da UAL). Esta arquitetura executa programas no que conhecido como ciclo de execuo de von Neumann (tambm chamado de ciclo de busca-decodificao-execuo), que descreve como a mquina trabalha. Uma iterao do ciclo feita assim: 1. A unidade de controle busca a prxima instruo do programa na memria usando o contador de programa para determinar onde a instruo est localizada. 2. A instruo decodificada para uma linguagem que a UAL possa entender. 3. Qualquer operando de dados requerido para executar a instruo carregado da memria e colocados em registradores dentro da UCP. 4. A UAL executa a instruo e coloca os resultados em registradores ou na memria.

66

Captulo 1: Introduo

Unidade central de processamento Contador de programa

Registradores

Memria principal

Unidade de aritmtica e lgica

Unidade de controle

Sistema de Entrada/Sada

FIGURA 1.4 A arquitetura de von Neumann.

As ideias presentes na arquitetura de von Neumann foram estendidas de modo que programas e dados armazenados em meios de armazenamento de acesso mais lento, tais como discos rgidos, possam ser copiados para meios de memria voltil de acesso mais rpido, tais como a RAM, antes da execuo. Esta arquitetura tambm foi adaptada para aquilo que atualmente chamado de modelo com barramentos de sistema, que mostrado na Figura 1.5. O barramento de dados move dados da memria principal para os registradores da UCP (e vice-versa). O barramento de endereos armazena o endereo dos dados que o barramento de dados est acessando no momento. O barramento de controle carrega os sinais de controle necessrios que especificam como a transferncia de informaes deve ser feita. Outras melhorias na arquitetura de von Neumann incluem usar registradores de indexao para endereamento, adicionar dados de ponto-flutuante, usar interrupes e E/S assncrona, adicionar memria virtual e adicionar registradores gerais. Voc vai aprender bastante sobre estas melhorias nos captulos seguintes.

1.8

MODELOS DIFERENTES DO MODELO DE VON NEUMANN


At recentemente, quase todos os computadores de propsito geral seguiam o projeto de von Neumann. O modelo de von Neumann executa instrues sequencialmente e , portanto, extremamente adequado para processamento sequencial. Entretanto o gargalo de von Neumann continua a frustrar engenheiros que buscam maneiras de construir sistemas mais rpidos que sejam de baixo custo e compatveis com a grande

1.8

Modelos Diferentes do Modelo de Von Neumann

67

UCP (UAL, Registradores e Controle)

Memria

Entrada e Sada

Barramento de dados Barramento de endereo Barramento de controle

FIGURA 1.5 A arquitetura modificada de von Neumann, adicionando um barramento de sistema.

quantidade de software comercialmente disponvel. Engenheiros que no estejam limitados pela necessidade de manter compatibilidade com sistemas von Neumann esto livres para usar modelos de computao diferentes. Vrios diferentes subcampos caem na categoria de no von Neumann, incluindo redes neurais (usando ideias de modelos do crebro como paradigma de computao), algoritmos genticos (explorando ideias da biologia e da evoluo de DNA), computao quntica, computao de fluxo de dados e computadores paralelos. Todos estes possuem algo em comum a computao distribuda entre diferentes unidades de processamento que atuam em paralelo. Eles diferem em quo fracamente ou fortemente os vrios componentes so conectados. Destes, a computao paralela atualmente a mais popular. Hoje o processamento paralelo resolve alguns de nossos maiores problemas de modo parecido a como os colonizadores do Velho Oeste resolveram seus maiores problemas usando juntas de bois. Se eles usassem um boi para mover uma rvore, e o boi no fosse suficientemente grande ou suficientemente forte, eles certamente no tentariam criar um boi maior eles usavam dois bois. Se um computador no suficientemente rpido ou no suficientemente poderoso, em vez de desenvolver um computador mais rpido e mais poderoso por que no usar simplesmente vrios computadores? Isto precisamente o que a computao paralela faz. Os primeiros sistemas de processamento paralelo foram construdos no final dos anos 1960 e tinham somente dois processadores. Os anos 1970 viram a introduo de supercomputadores com at 32 processadores, e os anos 1980 trouxeram os primeiros sistemas com mais de 1.000 processadores. Finalmente, em 1999, a IBM anunciou a construo de um supercomputador, chamado Blue Gene. Este computador maciamente paralelo contm mais de um milho de processadores, cada qual com sua prpria memria. Sua primeira tarefa analisar o comportamento de molculas de protena. Entretanto, mesmo a computao paralela possui seus limites. medida que o nmero de processadores aumenta, tambm aumenta a sobrecarga de gerenciar a distribuio de tarefas entre estes processadores. Alguns sistemas de processamento paralelo requerem processadores extra somente para gerenciar os demais processadores e os recursos a eles atribudos. Sem importar quantos processadores sejam colocados

68

Captulo 1: Introduo

em um sistema ou como muitos recursos so atribudos a eles, de algum modo, em algum lugar, um gargalo est prestes a se desenvolver. O melhor que podemos fazer para remediar isto assegurar que as partes mais lentas do sistema sejam aquelas que so menos usadas. Esta a ideia por trs da Lei de Amdahl. Esta lei afirma que o acrscimo de desempenho possvel com uma dada melhoria limitado pela quantidade do uso daquele recurso melhorado. A premissa subjacente que cada algoritmo possui uma parte sequencial que, no final, limita o aumento de velocidade que pode ser obtido pela implementao de multiprocessadores. Se as mquinas paralelas no de von Neumann fornecem estes imensos acrscimos de velocidade de processamento, por que todo mundo no as usa? A resposta est em sua programabilidade. A maioria das nossas linguagens so linguagens de von Neumann, criadas para a arquitetura de von Neumann. Temos poucas linguagens de programao para plataformas diferentes da de von Neumann, e poucas pessoas que realmente sabem programar neste ambiente de forma eficiente. Exemplos de linguagens para tais plataformas incluem FP, J, NGL, ZPL, FL e Mercury.

RESUMO DO CAPTULO
Neste captulo apresentamos uma breve viso geral de organizao de computadores e de arquitetura de computadores e mostramos suas diferenas. Tambm introduzimos alguma terminologia no contexto de um anncio fictcio de um computador. Muito desta terminologia ser expandido em captulos posteriores. Historicamente, computadores eram simplesmente mquinas de calcular. medida que os computadores se tornaram mais sofisticados, eles se tornaram mquinas de uso geral, trazendo a necessidade de considerar cada sistema como uma hierarquia de nveis em vez de uma mquina gigantesca. Cada nvel desta hierarquia atende a um propsito especfico, e todos os nveis ajudam a minimizar o intervalo semntico entre uma linguagem de programao de alto nvel ou uma aplicao e as portas e circuitos que formam o hardware fsico. Talvez o mais importante desenvolvimento isolado na computao que nos afeta como programadores tenha sido a introduo do conceito de programa armazenado da mquina de von Neumann. Embora existam outros modelos arquitetnicos, a arquitetura de von Neumann predomina nos atuais computadores de uso geral.

LEITURA COMPLEMENTAR
Incentivamos voc a ampliar nossa breve apresentao da histria de computadores. Pensamos que voc vai achar este assunto intrigante porque tanto a respeito de pessoas quanto de mquinas. Voc pode ler a respeito do pai esquecido do computador, John Atanasoff, em Mollenhoff (1988). Este livro documenta o relacionamento curioso entre Atanasoff e John Mauchly e reconta a batalha jurdica de dois gigantes, Honeywell e Sperry Rand. Este processo, no final, deu a Atanasoff seu legtimo reconhecimento. Para um livro mais leve sobre histria de computadores, tente Rochester e Gantz (1983). A histria ilustrada de computadores de Augarten (1985) gostosa de ler e

Referncias

69

contm centenas de figuras, difceis de encontrar, de computadores e dispositivos de computao antigos. Para uma discusso completa sobre o desenvolvimento histrico de computadores, voc pode dar uma olhada nos trs volumes do dicionrio de Cortada (1987). Um relato particularmente considervel da histria da computao apresentado em Ceruzzi (1998). Se voc est interessado em um excelente conjunto de estudos de caso sobre computadores histricos, veja Blaauw e Brooks (1997). Voc tambm vai se sentir bastante recompensado pela leitura do livro de McCartney (1999) sobre o ENIAC, da crnica de Chopsky e Leonsis (1988) sobre o desenvolvimento do IBM PC e da biografia de Ada, Condessa de Lovelace, de Toole (1998). O artigo de Polachek (1997) mostra um cenrio realista da complexidade de calcular tabelas de trajetrias balsticas. Depois de ler este artigo, voc vai entender por que as foras armadas pagaram de bom grado por tudo o que prometia tornar o processo mais rpido e mais preciso. O livro de Maxfield e Brown (1997) contm uma viso fascinante das origens e da histria da computao, bem como explicaes minuciosas de como um computador funciona. Para mais informaes sobre a Lei de Moore, recomendamos a leitura de Schaller (1997). Para descries detalhadas dos computadores antigos e dos perfis e reminiscncias dos pioneiros da indstria, voc pode consultar o IEEE Annals of the History of Computing, que publicado trimestralmente. O Computer Museum History Center pode ser encontrado online em www.computerhistory.org. Ele contm vrias exposies, pesquisas, oportunidades e colees. Muitas cidades agora possuem museus de computao e permitem que os visitantes usem alguns dos computadores antigos. Uma grande quantidade de informaes pode ser encontrada nos sites das organizaes que estabelecem padres (bem como em outros sites no mencionados neste captulo). A IEEE pode ser encontrada em www.ieee.org; a ANSI em www.ansi.org; a ISO em www.iso.ch; a BSI em www.bsi-global.com; e a ITU-T em www.itu.int. O site da ISO oferece uma grande quantidade de informaes e materiais de referncia sobre padres. A pgina sobre arquitetura de computadores em www.cs.wisc.edu/~arch/www/ contm um ndice abrangente sobre informaes relacionadas arquitetura de computadores. Muitos grupos de notcias USENET so dedicados a estes tpicos, incluindo comp.arch e comp.arch.storage. A edio inteira de May/June 2000 da revista MITs Technology Review dedicada a arquiteturas que podem ser a base dos computadores do futuro. A leitura desta edio ser um tempo bem empregado. De fato, podemos dizer o mesmo de cada uma delas.

REFERNCIAS
Augarten, Stan. Bit by Bit: An Illustrated History of Computers. London: Unwin Paperbacks, 1985. Blaauw, G., & Brooks, F. Computer Architecture: Concepts and Evolution. Reading, MA: Addison-Wesley, 1997. Ceruzzi, Paul E. A History of Modern Computing. Cambridge, MA: MIT Press, 1998. Chopsky, James, & Leonsis, Ted. Blue Magic: The People, Power and Politics Behind the IBM Personal Computer. New York: Facts on File Publications, 1988. Cortada, J. W. Historical Dictionary of Data Processing, Volume 1: Biographies; Volume 2: Organization; Volume 3: Technology. Westport, CT: Greenwood Press, 1987.

70

Captulo 1: Introduo Maguire, Yael, Boyden III, Edward S., & Gershenfeld, Neil. Toward a Table-Top Quantum Computer. IBM Systems Journal 39: 3/4, June 2000, pp. 823839. Maxfield, Clive, & Brown, A. Bebop BYTES Back (An Unconventional Guide to Computers). Madison, AL: Doone Publications, 1997. McCartney, Scott. ENIAC: The Triumphs and Tragedies of the Worlds First Computer. New York: Walker and Company, 1999. Mollenhoff, Clark R. Atanasoff: The Forgotten Father of the Computer. Ames, IA: Iowa State University Press, 1988. Polachek, Harry. Before the ENIAC. IEEE Annals of the History of Computing 19: 2, June 1997, pp. 2530. Rochester, J. B., & Gantz, J. The Naked Computer: A Laypersons Almanac of Computer Lore, Wizardry, Personalities, Memorabilia, World Records, Mindblowers, and Tomfoolery. New York: William A. Morrow, 1983. Schaller, R. Lei de Moore: Past, Present, and Future. IEEE Spectrum, June 1997, pp. 5259. Tanenbaum, A. Structured Computer Organization, 4th ed. Upper Saddle River, NJ: Prentice Hall, 1999. Toole, Betty A. Ada, the Enchantress of Numbers: Prophet of the Computer Age. Mill Valley, CA: Strawberry Press, 1998. Waldrop, M. Mitchell. Quantum Computing. MIT Technology Review 103: 3, May/June 2000, pp. 6066.

REVISO DE TERMOS E CONCEITOS ESSENCIAIS


1. Qual a diferena entre organizao de computadores e arquitetura de computadores? 2. O que uma ISA? 3. Qual a importncia do Princpio da Equivalncia de Hardware e Software? 4. Indique trs componentes bsicos de um computador. 5. A qual potncia de 10 o prefixo giga se refere? Qual a potncia de 2 equivalente (aproximada)? 6. A qual potncia de 10 o prefixo micro se refere? Qual a potncia de 2 equivalente (aproximada)? 7. Qual unidade geralmente usada para medir a velocidade de um relgio de computador? 8. Relacione dois tipos de memria de computador. 9. Qual a misso da IEEE? 10. Qual o nome completo da organizao que usa as iniciais ISO? ISO uma sigla? 11. ANSI a sigla usada por qual organizao? 12. Qual o nome da organizao sua que se dedica a assuntos concernentes a telefonia, telecomunicaes e comunicao de dados? 13. Quem conhecido como o pai da computao e por qu? 14. Qual a importncia do carto perfurado? 15. Relacione dois fatores motivadores do desenvolvimento de computadores. 16. Qual o motivo de um transistor ter representado uma grande melhoria sobre o tubo de vcuo (vlvula)? 17. O que faz um circuito integrado se diferenciar de um transistor?

Exerccios 18. Explique as diferenas entre SSI, MSI, LSI e VLSI. 19. Qual tecnologia disseminou o desenvolvimento de microcomputadores? Por qu? 20. Qual o significado de uma arquitetura aberta? 21. Enuncie a Lei de Moore. 22. Como a Lei de Rock se relaciona Lei de Moore?

71

23. Relacione e explique os sete nveis comumente aceitos de uma hierarquia em nveis do computador. Como esta organizao nos ajuda a entender os sistemas de computao? 24. O que torna a arquitetura de von Neumann diferente de suas predecessoras? 25. Relacione as caractersticas presentes na arquitetura de von Neumann. 26. Como funciona o ciclo busca-decodificao-execuo? 27. O que significa computao paralela? 28. Qual a premissa por trs da Lei de Amdahl?

EXERCCIOS
1. Em que hardware e software se distinguem? Em que se assemelham? 2. a) Quantos milissegundos (ms) existem em 1 segundo? b) Quantos microssegundos (s) existem em 1 segundo? c) Quantos nanossegundos (ns) existem em 1 milissegundo? d) Quantos microssegundos existem em 1 milissegundo? e) Quantos nanossegundos existem em 1 microssegundo? f) Quantos kilobytes (KB) existem em 1 gigabyte (GB)? g) Quantos kilobytes existem em 1 megabyte (MB)? h) Quantos megabytes existem em 1 gigabyte (GB)? i) Quantos bytes existem em 20 megabytes? j) Quantos kilobytes existem em 2 gigabytes? 3. Em que ordem de magnitude algo que executado em nanossegundos mais rpido do que algo que executado em milissegundos? 4. Finja que voc est pronto para comprar um novo computador para uso pessoal. Primeiro, olhe os anncios de vrias lojas e de jornais e relacione os termos que voc no entendeu muito bem. Olhe estes termos e d uma breve explicao. Decida quais fatores so importantes para a sua deciso de comprar um computador e faa uma lista deles. Depois de voc selecionar o sistema que deseja comprar, identifique quais termos se referem a hardware e quais se referem a software. 5. Escolha sua linguagem de computao favorita e escreva um pequeno programa. Depois de compilar o programa, veja se voc pode determinar a relao entre instrues em cdigo fonte e as instrues em linguagem de mquina geradas pelo compilador. Se voc adicionar uma linha de cdigo fonte, como isto altera o programa em linguagem de mquina? Tente adicionar diferentes instrues ao cdigo fonte, como uma soma e depois uma multiplicao. Como se altera o arquitetura em cdigo de mquina com as diferentes instrues? Comente o resultado.

72

Captulo 1: Introduo 6. Responda ao comentrio mencionado na Seo 1.5: se fosse inventado hoje, que nome voc acha que poderia ser dado ao computador? D pelo menos uma boa razo para a sua resposta. 7. Suponha que um transistor em um circuito integrado tenha o tamanho de 2 microns. De acordo com a Lei de Moore, qual seria o tamanho deste transistor em 2 anos? De que modo a Lei de Moore relevante para programadores? 8. Quais circunstncias ajudaram o IBM PC a se tornar to bem-sucedido? 9. Relacione cinco aplicaes de computadores pessoais. Existe um limite para aplicaes de computadores? Voc pode imaginar aplicaes radicalmente diferentes e instigantes em um futuro prximo? Se sim, quais? 10. Na arquitetura de von Neumann um programa e seus dados so armazenados na memria. Portanto possvel que um programa, ao pensar que uma posio de memria guarda um dado quando na verdade guarda uma instruo de programa, acidentalmente (ou de propsito) modifique a si mesmo. Que implicaes esta possibilidade tem para voc como programador? 11. Leia um jornal local popular e pesquise ofertas de emprego. (Voc tambm pode pesquisar em sites de emprego populares.) Quais empregos requerem conhecimento especfico de hardware? Existe alguma correlao entre o conhecimento de hardware requerido e a empresa ou sua localizao? 12. Relacione e descreva alguns usos comuns e alguns usos no to comuns de computadores em negcios e em outros setores da sociedade. 13. A noo tecnolgica da Lei de Moore que o nmero de transistores por chip dobra a cada 18 meses aproximadamente. Nos anos 1990, a Lei de Moore comeou a ser descrita como dobrando a potncia do microprocessador a cada 18 meses. Dada esta nova variao da Lei de Moore, responda o seguinte: a) Depois de terminar com sucesso as suas disciplinas de arquitetura e organizao de computadores, voc tem uma ideia brilhante para um novo projeto de chip que poderia tornar um processador seis vezes mais rpido do que os mais rpidos atualmente existentes no mercado. Infelizmente, levar quatro anos e meio para conseguir a verba, criar o prottipo e construir um produto acabado. Se a Lei de Moore se aplica, voc deveria gastar seu dinheiro desenvolvendo e produzindo um chip ou investindo em algum outro empreendimento de risco? b) Suponha que voc tem um problema que atualmente gasta 100.000 horas de tempo de computao usando na sua soluo a tecnologia atual. Qual das seguintes alternativas poderia dar a soluo antes: (1) Substituir o algoritmo usado na soluo atual por um que seja executado duas vezes mais rpido e execut-lo na mesma tecnologia atual ou (2) Esperar 3 anos, assumindo que a Lei de Moore dobre o desempenho de um computador a cada 18 meses, e encontrar a soluo usando o algoritmo atual com a nova tecnologia? 14. Quais so as limitaes da Lei de Moore? Por que esta lei no pode continuar vlida para sempre? Explique. 15. Quais so algumas das implicaes tcnicas da Lei de Moore? Que efeito ela ter em seu futuro?