Baixe o app para aproveitar ainda mais
Prévia do material em texto
1.1 VISÃO GERAL O Dr. Negroponte está entre aqueles que veem a revolução dos computadores como uma força da natureza. Esta força tem o potencial de transportar a humanidade para seu destino digital, nos permitindo resolver problemas que têm nos desconcertado por séculos, bem como todos os problemas que emergem à medida que resolvemos os problemas originais. Computadores nos liberaram do tédio das tarefas rotineiras, liberaram nosso potencial criativo coletivo de modo que podemos, com certeza, cons- truir computadores maiores e melhores. À medida que observamos as profundas mudanças científicas e sociais que os computadores nos trouxeram, é fácil sentir-se esmagado pela complexidade disso tudo. Esta complexidade, no entanto, emana de conceitos que são fundamentalmente muito simples. Estas ideias simples são aquelas que nos trouxeram para onde estamos hoje e são os fundamentos dos computadores do futuro. Em que extensão elas vão sobreviver no futuro é questão de adivinhação. Mas hoje elas são o fundamento de toda a ciência da computação como nós a conhecemos. Cientistas da computação são geralmente mais preocupados com a escrita de algoritmos complexos de programas do que com o projeto de hardware de computa- dores. Naturalmente, se queremos que nossos algoritmos sejam úteis, em algum mo- mento um computador terá que executá-los. Alguns algoritmos são tão complicados que demorariam demais para ser executados nos computadores atuais. Estes tipos de algoritmos são considerados computacionalmente inexequíveis. Certamente, na taxa atual de inovação, algumas coisas que são inexequíveis hoje podem ser factíveis amanhã, mas parece que não importa quão grandes ou rápidos os computadores se tornem, alguém vai pensar num problema que irá exceder os limites razoáveis da máquina. Para entender por que um algoritmo é inexequível, ou para entender por que a im- plementação de um algoritmo exequível é executada tão 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 computação pulsar antes que possa pensar em otimizar os programas que ele executa. Tentar otimizar um sistema de computação sem primeiro “Computação não é mais sobre computadores. É sobre viver... Temos visto computadores se moverem para fora de grandes salas com ar condicio- nado para nossos gabinetes, depois para nossas escrivaninhas e agora para os nossos colos e nossos bolsos. Mas isto não é o final... Como uma força da natureza, a era digital não pode ser negada nem interrompida... A supervia da informação pode ser bastante exagerada hoje, mas ela é uma indicação sobre o amanhã. Ela irá existir além das previsões mais desvairadas das pessoas... Não estamos aguardando nenhuma invenção. Ela está aqui. É agora. Ela é quase genética em sua natureza, no sentido de que cada geração se tornará mais digital que sua antecessora.” —Nicholas Negroponte, professor de mídia tecnológica no MIT CAPÍTULO 1Introdução Null_01.indd 35Null_01.indd 35 30/06/10 18:0830/06/10 18:08 36 � Capítulo 1: Introdução 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 otimização de programas e a afinação de sistemas é talvez a motivação mais importante para aprender como computadores funcionam. Existem, entretanto, mui- tas outras razões. Por exemplo, se você quiser escrever compiladores, você deve en- tender o ambiente de hardware dentro do qual o compilador irá funcionar. Os me- lhores computadores aproveitam características de hardware particulares (tais como pipelining) para alcançar maior velocidade e eficiência. Se você alguma vez precisar modelar grandes, complexos sistemas do mundo real, precisará saber como a aritmética de ponto-flutuante deveria funcionar e como ela real- mente funciona na prática. Se você deseja projetar equipamentos periféricos ou o soft- ware que comanda equipamentos periféricos, você tem que conhecer cada detalhe de como um determinado computador lida com sua entrada/saída (E/S). Se o seu trabalho envolve sistemas embarcados, você precisa saber que estes sistemas são geralmente restritos quanto a recursos. Sua compreensão de tempo, espaço, custo e seus compro- metimentos, assim como arquiteturas de E/S, serão essenciais para a sua carreira. Todos os profissionais de computação devem estar familiarizados com os concei- tos de testes de desempenho (benchmarks) e estar aptos a interpretar e apresentar os resultados de sistemas de testes de desempenho. Pessoas que fazem pesquisa envol- vendo sistemas de hardware, redes ou algoritmos consideram as técnicas de testes de desempenho cruciais para o seu trabalho no dia-a-dia. Gerentes técnicos encarregados de comprar hardware também usam testes de desempenho para ajudá-los a comprar o melhor sistema por um certo preço, tendo em mente os nodos como os testes de desem- penho podem ser manipulados para fornecer resultados favoráveis a certos sistemas. Os exemplos anteriores ilustram a ideia de que existe um relacionamento fun- damental entre o hardware de computadores e muitos aspectos de programação e componentes de software em sistemas de computação. Portanto, não obstante a sua área de especialização, como cientistas de computação é imperativo que entendamos como o hardware interage com o software. Devemos nos tornar familiarizados com como os vários circuitos e componentes se ajustam para criar sistemas de computação que funcionem. Fazemos isto por meio do estudo da organização de computadores. A organização de computadores trata de questões como sinais de controle (como o computador é controlado), métodos de sinalização e tipos de memória; compreende todos os aspectos físicos dos sistemas de computação e nos ajuda a responder à per- gunta: Como um computador funciona? O estudo da arquitetura de computadores, por outro lado, enfoca a estrutura e o comportamento do sistema de computação e se refere aos aspectos lógicos da im- plementação do sistema como visto pelo programador. A arquitetura de computadores inclui muitos elementos, tais como conjuntos de instruções e formatos, códigos de ope- rações, tipos de dados, quantidade e tipos de registradores, modos de endereçamento, métodos de acesso à memória principal e diversos mecanismos de E/S. A arquitetura de um sistema afeta diretamente a execução lógica de programas. Estudar arquitetura de computadores nos ajuda a responder à pergunta: Como eu projeto um computador? A arquitetura de computadores para uma dada máquina é a combinação de seus componentes de hardware com a sua arquitetura de conjunto de instruções (ISA – Ins- truction Set Architecture). A ISA é a interface combinada entre todo o software executa- do na máquina e o hardware que o executa. A ISA permite que você fale com a máquina. Null_01.indd 36Null_01.indd 36 30/06/10 18:0830/06/10 18:08 1.2 Os Principais Componentes de um Computador � 37 A distinção entre organização de computadores e arquitetura de computadores não é bem delimitada. Pessoas no campo de ciência da computação e engenharia da computação possuem opiniões diferentes sobre exatamente quais conceitos perten- cem à organização de computadores e quais pertencem à arquitetura de computado- res. De fato, nem organização de computadores nem arquitetura de computadores podem se manter sozinhas. Elas são inter-relacionadas e interdependentes. Podemos verdadeiramente entender cada uma delas somente após termos compreendido am- bas. Nossa compreensão de arquitetura e organização de computadores nos conduz, enfim, a um conhecimento mais profundo de computadores e computação – o cora- ção e a alma da ciência de computadores. 1.2 OS PRINCIPAIS COMPONENTES DE UM COMPUTADOR Embora seja difícil distinguir os conceitos pertencentes à organização de computadores daqueles que pertencem à arquitetura de computadores, é impossível afirmar onde as questõesde hardware terminam e as questões de software iniciam. Cientistas de compu- tação projetam algoritmos que geralmente são implementados como programas escritos em alguma linguagem de programação, como Java ou C. Mas o que possibilita a execu- ção de um algoritmo? Outro algoritmo, com certeza! E um outro algoritmo executa esse algoritmo e assim é até que você chegue no nível de máquina, que pode ser imaginado como um algoritmo implementado em um dispositivo eletrônico. Portanto, os compu- tadores modernos são, na verdade, implementações de algoritmos que executam outros algoritmos. Esta cadeia de algoritmos aninhados nos conduz ao seguinte princípio: Princípio de Equivalência 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 também pode ser feita com software.* Um computador de propósito especial pode ser projetado para realizar qualquer tare- fa, tal como processar texto, analisar um orçamento ou jogar amigavelmente o jogo Tetris. Consequentemente, programas podem ser escritos para realizar as funções de computadores de propósito 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 Princípio de Equi- valência de Hardware e Software nos afirma que temos escolha. Nosso conhecimento de arquitetura e organização de computadores vai nos ajudar a fazer a melhor delas. Iniciamos nossa discussão sobre hardware de computadores examinando os com- ponentes necessários para construir um sistema de computação. No nível mais básico, um computador é um dispositivo que consiste de três partes: 1. Um processador para interpretar e executar programas 2. Uma memória para armazenar dados e instruções 3. Um mecanismo para transferir dados de e para o mundo externo * O que este princípio não trata é a velocidade com a qual tarefas equivalentes são realizadas. Implementações em hardware são sempre mais rápidas. Null_01.indd 37Null_01.indd 37 30/06/10 18:0830/06/10 18:08 38 � Capítulo 1: Introdução Vamos discutir estes três componentes em detalhe nos capítulos 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 desejável. Você pode mesmo pensar que tem algumas coisas em comum com ele. Esta ideia não é tão ab- surda quanto parece ser. Imagine como um estudante sentado em sua cadeira repre- senta os três componentes de um computador: o cérebro do estudante é o processador, as anotações que estão sendo feitas representam a memória 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 construído em um futuro próximo. 1.3 UM SISTEMA-EXEMPLO: ENTRANDO NO JARGÃO Este livro vai introduzir vocabulário específico de computadores. Este jargão pode ser confuso, impreciso e intimidante. Acreditamos que com uma pequena explicação, podemos clarear a neblina. Para fins de discussão, apresentamos cópia de um anúncio de computador (ver Figura 1.1). O anúncio é um típico 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 noção 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- • 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 vídeo 128MB PCI Express • data/fax modem 56K PCI • placa de som 64-bit PCI • Ethernet 10/100 integrada PROMOÇÃO: COMPUTADOR ULTRAPASSADO – BARATO! BARATO! BARATO! FIGURA 1.1 Um anúncio típico de computador. Null_01.indd 38Null_01.indd 38 30/06/10 18:0830/06/10 18:08 1.3 Um Sistema-Exemplo: Entrando no Jargão � 39 cessidades. À medida que avançarmos neste livro, você vai aprender os conceitos que estão por trás destes termos. Entretanto, antes de explicarmos o anúncio, precisamos discutir algo mais básico ainda: a terminologia de medidas que você vai encontrar ao longo de seu estudo sobre computadores. Parece que cada campo tem a sua própria maneira de medir coisas. O campo de computação não é exceção. Para que pessoas da computação possam dizer a outras quão grande algo é ou quão rápido é, elas devem usar as mesmas unidades de me- didas. Os prefixos comuns usados com computadores são dados na Tabela 1.1. Nos anos 1960, alguém decidiu que como as potências de 2 eram similares às potências de 10, os mesmos nomes de prefixos poderiam ser usados para ambas. Por exemplo, 210 é próximo a 103, e, assim, “kilo” é usado para referir-se a ambos. O resultado foi uma grande confusão: o tal prefixo refere-se a uma potência de 10 ou a uma potência de 2? Um kilo significa 103 de algo ou 210 de algo? Embora não exista uma resposta definitiva para esta pergunta, são aceitos “padrões de uso”. Prefixos de potências de 10 são comumente usados para energia, voltagem elétrica, frequência (tal como a velocidade de um relógio de computador) e múltiplos de bits (tal como velocidade de dados em número de bits por segundo). Se o seu modem antiquado transmite a 28,8 kb/s, então ele transmite 28.800 bits por segundo (ou 28,8 �103). Note o uso da letra minúscula “k” para representar 103 e da letra minúscula “b” para se referir a bits. Uma letra maiúscula “K” é usada para se referir ao prefixo de potência de 2, ou 1024. Se um arquivo tem o tamanho de 2K, então ele possui 2 � 210 ou 2048 bytes. Note que a letra maiúscula “B” se refere a byte. Se um disco contém 1MB, então ele contém 220 bytes (ou um megabyte) de informação. Não saber se prefixos específicos se referem a potências de 2 ou a potências de 10 pode causar confusão. Por esta razão, a International Electrotechnical Commission, com o auxílio do National Institute of Standards and Technology, aprovou nomes e símbolos padronizados para prefixos binários a fim de diferenciá-los dos prefixos decimais. Cada prefixo é derivado dos símbolos dados na Tabela 1.1, adicionando-se TABELA 1.1 Prefixos comuns associados com arquitetura e organização de computadores Pref. Símb. Potência de 10 Potência de 2 Pref. Símb. Potência de 10 Potência de 2 Kilo K 1 mil � 103 210 � 1024 Mili m 1 milésimo � 10�3 2�10 Mega M 1 milhão � 106 220 Micro m 1 milionésimo � 10�6 2�20 Giga G 1 bilhão � 109 230 Nano n 1 bilionésimo � 10�9 2�30 Tera T 1 trilhão � 1012 240 Pico p 1 trilionésimo � 10�12 2�40 Peta P 1 quadrilhão � 1015 250 Femto f 1 quadrilionésimo � 10�15 2�50 Exa E 1 quintillhão � 1018 260 Atto a 1 quintilionésimo � 10�18 2�60 Zetta Z 1 sextilhão � 1021 270 Zepto z 1 sextilionésimo � 10�21 2�70 Yotta Y 1 setilhão � 1024 280 Yocto y 1 setilionésimo � 10�24 2�80 Null_01.indd 39Null_01.indd 39 30/06/10 18:0830/06/10 18:08 40 � Capítulo 1: Introdução um “i”. Por exemplo, 210 foi renomeado como “kibi” (de kilobinary) e é representado pelo símbolo 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 adoção limitada destes novos prefixos. Isto é uma pena, porque, como usuário de computador, é importante entender o verdadeiro significado destes prefixos. Um kilobyte (1KB) de memória é normalmente 1024 bytes de memória em vez de 1000 bytes de memória. Entretanto, uma unidade de discode 1 GB pode na realidade ter 1 bilhão de bytes em vez de 230 (o que significa que você está tendo menos memória do que você pensa). Todos os discos flexíveis de 3,5” são 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 não é bem...” para um bom exemplo de como isto é importante. Quando um Gigabyte não é bem... Comprar um novo conjunto de unidades de disco pode ser um processo relativamente dire- to, uma vez que você determina suas necessidades técnicas (p.ex., taxa de transferência de disco, tipo de interface, etc.). A partir disso, você deveria estar apto a tomar a sua decisão baseado em uma simples relação preço/capacidade, tal como custo por gigabyte, e, então decidir. Bom, não é tão rápido. O primeiro empecilho no caminho de uma análise direta é que você deve ter certeza de que as unidades que você está comparando expressam suas capacidades em bytes formatados ou não formatados. Cerca de 16% do espaço em disco é consumido durante o processo de formatação. (Alguns vendedores fornecem este número como “capacidade útil”.) Naturalmente, a relação preço-capacidade parece muito melhor quando bytes não formatados são usados, embora você esteja mais interessado em saber a quantidade de espaço usável que um disco fornece. Seu próximo obstáculo é assegurar-se de que a mesma base é usada na comparação de tamanhos de disco. É cada vez mais comum capacidades de disco serem dadas na base 10 em vez de na base 2. Assim, uma unidade de disco de “1GB” possui capacidade para 109 �1.000.000.000 bytes, em vez de 230 � 1.073.741.824 bytes – uma redução de cerca de 7%. Isto pode fazer uma enorme diferença ao comprar sistemas empresariais de memória de muitos gigabytes. Como um exemplo concreto, suponha que você está considerando comprar um conjun- to de discos de dois fabricantes líderes do mercado. O fabricante x anuncia um conjunto de 12 discos de 250GB por um preço 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 � 250GB) �6,67 por GB fabricante y: 21.000 ÷ (12 � 212,5GB) �8,24 por GB (continua) Null_01.indd 40Null_01.indd 40 30/06/10 18:0830/06/10 18:08 1.3 Um Sistema-Exemplo: Entrando no Jargão � 41 Quando queremos falar sobre a rapidez de algo, falamos em termos de frações de segundo – geralmente milésimos, milionésimos, bilionésimos ou trilionésimos. Prefixos para estas medidas são dados no lado direito da Tabela 1.1. Geralmente po- tências negativas se referem a potências de 10, e não, a potências de 2. Por esta razão, os novos padrões de prefixos binários não incluem quaisquer novos nomes para as potências negativas. Note que os prefixos fracionários possuem expoentes que são os recíprocos dos prefixos do lado esquerdo da tabela. Portanto, se alguém diz a você que uma operação requer um microssegundo para terminar, você deve entender que um milhão destas operações 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 execução de operações, você deve usar o prefixo micro. Agora, para explicar o anúncio: o microprocessador é a parte do computador que realmente executa as instruções do programa; ele é o cérebro do sistema. O micropro- cessador do anúncio é um Pentium 4, operando a 2,0GHz. Cada sistema de compu- tação contém um relógio que mantém o sistema sincronizado. O relógio envia pulsos elétricos simultaneamente a todos os principais componentes, assegurando que dados e instruções estejam onde devem estar e quando devem estar lá. O número de pul- sações emitidas a cada segundo pelo relógio é a frequência. Frequências de relógio são medidas em ciclos por segundo, ou hertz. Se o relógio de um sistema de compu- tação gera milhões de pulsos por segundo, dizemos que ele opera em intervalos de megahertz (MHz). Muitos computadores atuais operam em intervalos de gigahertz (GHz), gerando bilhões de pulsos por segundo. Visto que quase nada é feito por um computador sem o envolvimento do processador, a taxa de frequência do micropro- cessador é crucial para a velocidade geral do sistema. O microprocessador do sistema Sendo um pouco desconfiado, você pode dar alguns telefonemas e descobrir que o fabricante x está fornecendo as capacidades em gigabytes sem formatação 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 não são realmente de 250GB no modo que normalmente pensamos em gigabytes. Em vez disso, eles são de cerca de 232,8 base 2 gigabytes. Após a formatação, o número se reduz ainda mais, para cerca de 197,9GB. Assim, as taxas reais de custo são, de fato: fabricante x: 20.000 ÷ (12 � 197,9GB) �8,42 por GB fabricante y: 21.000 ÷ (12 � 212,5GB) �8,24 por GB Certamente alguns vendedores são 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. Null_01.indd 41Null_01.indd 41 30/06/10 18:0830/06/10 18:08 42 � Capítulo 1: Introdução anunciado opera a 2 bilhões 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 não necessariamente significa que ele pode executar 2 bilhões de operações por segundo, ou, equivalen- temente, que cada instrução requer 0,5 nanossegundos para ser executada. Mais adiante, neste livro, você vai ver que cada instrução de computador requer um número fixo de ciclos para ser executada. Algumas instruções requerem um ciclo de relógio; entretanto, a maioria das instruções requer mais do que um. O número de instruções por segundo que um microprocessador pode realmente executar é proporcional à velocidade de seu relógio. O número de ciclos de relógio necessá- rios para executar uma determinada instrução é uma função de sua arquitetura e de sua organização. A próxima coisa que vamos ver no anúncio é “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 instruções para vários lugares dentro do computador. Como o microprocessador, a velocidade do barramento também é medida em MHz. Muitos computadores possuem um barramento local especial para dados que suporta velocidades de transferência muito rápidas (tais como as exigidas pelo vídeo). Este barramento local é um caminho de dados muito rápido que conecta a memória dire- tamente ao processador. A velocidade do barramento determina o limite superior da capacidade de transporte de informações do sistema. O sistema em nosso anúncio também alardeia uma capacidade de memória de 256 megabytes (MB), ou cerca de 256 milhões de caracteres. A capacidade da me- mória não apenas determina o tamanho dos programas que você pode executar, mas também quantos programas você pode executar ao mesmo tempo sem degradar o sistema. O fornecedor de sua aplicação ou sistema operacional irá normalmente re- comendar quanta memória você vai precisar para executar seus produtos. (Algumas vezes, estas recomendações pode ser absurdamente conservadoras, de modo que você deve ser cuidadoso sobre em quem acreditar!) Além do tamanho da memória, nosso sistema anunciado indica o tipo de memó- ria, SDRAM, abreviatura para memória dinâmica síncrona de acesso randômi- co (synchronous dynamic random access memory). SDRAM é muito mais rápida que a memória convencional (não síncrona) porque ela pode sincronizar a si mesmacom o barramento do microprocessador. O sistema em nosso anúncio possui DDR SDRAM, ou SDRAM com dupla taxa de dados (double data rate) (para mais infor- mação sobre diferentes tipos de memória, ver o Capítulo 6). A próxima linha do anúncio, “cache L1 32KB, cache L2 256KB” também des- creve um tipo de memória. No Capítulo 6, você vai aprender que independentemente da velocidade do barramento, sempre demorará “algum tempo” para levar dados da memória para o processador. Para fornecer um acesso ainda mais rápido aos dados, muitos sistemas contém uma memória especial denominada cache. O sistema em nosso anúncio possui duas espécies de cache. A cache nível 1 (L1) é uma memória ca- che pequena e rápida que está dentro do chip do microprocessador e ajuda a aumentar Null_01.indd 42Null_01.indd 42 30/06/10 18:0830/06/10 18:08 1.3 Um Sistema-Exemplo: Entrando no Jargão � 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 seção dá uma boa visão geral dos componentes de um computador pessoal moderno. Entretanto, abrir um computador e tentar encontrar e identificar as diversas peças pode ser frustrante, mesmo que você esteja familiarizado com os componentes e suas funções. Conectores de áudio e microfone Conector de rede Porta paralela Porta serial Conectores de mouse e teclado Conectores USB Soquete do processador (UCP) Bancos de memória RAM Conector de alimentaçãoConector de disquete Conector IDE principal Conector IDE secundário Bateria Hub controlador de E/S Hub controlador de memória Conector AGP Conectores PCI Cortesia de Intel Corporation Se você remover a cobertura de seu computador, você sem dúvida verá uma grande caixa de metal com um ventilador junto a ela. Esta é a fonte de alimentação. Você também verá diversas unidades, incluindo uma unidade de disco e, talvez, uma unidade de disco flexível e unidades de CD-ROM ou DVD. Existem diversos circuitos integrados – pequenas caixas pre- tas com pernas. Você também vai notar os caminhos elétricos, ou barramentos, do sistema. Existem placas de circuito impresso que se conectam em soquetes da placa-mãe, a grande placa no fundo de um PC padrão, ou no lado de um PC configurado como torre ou minitorre. A placa-mãe é a placa de circuito impresso que conecta todos os componentes do compu- tador, incluindo a UCP, as memórias RAM e ROM, bem como diversos outros componentes essenciais. Os componentes da placa-mãe tendem a ser mais difíceis de identificar. Acima, você vê uma placa-mãe Intel D850 com identificação dos componentes mais importantes. As portas de E/S no topo da placa-mãe 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 periféricos (PCI – Peripheral Component Interconnect) se destinam a placas de expansão correspondentes aos diversos (continua) Null_01.indd 43Null_01.indd 43 30/06/10 18:0830/06/10 18:08 44 � Capítulo 1: Introdução a velocidade de acesso a dados usados frequentemente. A cache de nível 2 (L2) é uma coleção de chips de memória embutidos, rápidos, situados entre o microprocessador e a memória principal. Note que a cache em nosso sistema possui uma capacidade de kilobytes (KB), que é muito menor do que a memória principal. No Capítulo 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 rígido de 80GB, o que era bastan- te na época do anúncio. No entanto, a capacidade de um disco fixo (ou rígido) não é a única coisa a se considerar. Um disco grande não é muito útil se ele for muito lento para seu sistema hospedeiro. O computador em nosso anúncio possui um disco rígido com uma rotação de 7200 rotações por minuto (RPM). Para o leitor bem informado, isto indica (mas não assegura completamente) que é uma unidade bastante rápida. Geralmente velocidades de disco são apresentadas em termos de milissegundos re- queridos (em média) para acessar dados no disco, além da velocidade de rotação do disco. A velocidade de rotação é 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 também é importante. O sistema anunciado usa uma interface de disco se- rial ATA (advanced technology attachment). Esta é uma interface de armazenamen- to evolucionária 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-benefício para dispositivos de memória de massa. dispositivos PCI. O conector AGP é para ligar a placa gráfica AGP. Existem dois bancos de memória RAM e um hub controlador de memória. Não existe nenhum processador ligado nesta placa-mãe, 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-mãe possui dois conectores IDE e um para o controlador de disco fle- xível. A fonte de alimentação se liga ao cabo de energia. Um aviso de precaução ao examinar o computador por dentro: existem muitas consi- derações de segurança envolvidas com a remoção 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, é preferível deixá-lo ligado, pois isto oferece um caminho para a eletri- cidade estática. 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 estática não danifique quaisquer componentes. Muitos cantos da cobertura e das placas de cir- cuitos podem ser pontiagudos, portanto tome cuidado ao manipular as diversas peças. Tentar apertar placas desalinhadas nos soquetes pode danificar tanto a placa quanto a placa-mãe; assim, seja cuidadoso quando você decidir adicionar uma nova placa ou re- mover e reinstalar uma já existente. Null_01.indd 44Null_01.indd 44 30/06/10 18:0830/06/10 18:08 1.3 Um Sistema-Exemplo: Entrando no Jargão � 45 A EIDE contém circuitos especiais que permitem melhorar a conectividade, a velo- cidade e a capacidade de memória de um computador. A maioria dos sistemas ATA, IDE e EIDE compartilham o barramento principal do sistema com o processador e a memória, de modo que a movimentação de dados de e para o disco também é depen- dente da velocidade do barramento do sistema. Considerando que o barramento do sistema é responsável por toda a movimen- tação interna de dados do computador, portas permitem o movimento de dados de e para dispositivos externos ao computador. Nosso anúncio fala de três 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. Por- tas seriais transferem dados enviando séries de impulsos elétricos através de uma ou duas linhas de dados. Portas paralelas usam pelo menos oito linhas de dados que são energizadas simultaneamente para transmitir dados. Nosso sistema anunciado também vem equipado com conexões 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 conexão de diversos dispositivos periféricos. O PCI, desenvolvidopela Intel Corporation, opera a altas velocidades e também suporta Plug-and-Play. Existem três dispositivos PCI mencionados no anúncio. O modem PCI permite ao computador conectar-se à Internet. (Discutimos modems em detalhe no Capítulo 12.) Um modem data/fax serve como um modem (se o usuário deseja conectar-se à Inter- net através de um provedor de serviços de Internet) e como uma máquina de fax (para enviar documentos). O segundo dispositivo PCI é uma placa de som, que contém os componentes necessários para o funcionamento dos alto-falantes estéreo e do micro- fone do sistema. O terceiro dispositivo PCI é a placa de vídeo, que é discutida mais adiante. Você vai aprender mais sobre diferentes tipos de E/S, barramentos de E/S e memória de disco no Capítulo 7. Depois de nos informar sobre as portas do sistema, o anúncio nos fornece algu- mas especificações para o monitor, dizendo “monitor 19", .24mm AG, 1280 � 1024 a 75Hz”. Monitores têm pouca relação com a velocidade ou a eficiência de um sistema de computação, mas eles têm uma grande relação com o conforto do usuário. O mo- nitor do anúncio suporta uma taxa de restauração de 75Hz. Isto significa que a ima- gem exibida no monitor é repintada 75 vezes por segundo. Se a taxa de restauração é muito lenta, a tela pode exibir um comportamento irritante de sacolejo ou ondulações. A fadiga ocular ocasionada por uma exibição em ondas faz as pessoas se cansarem facilmente; algumas pessoas podem mesmo ter dores de cabeça após períodos pro- longados de uso. Outra fonte de fadiga ocular é uma resolução pobre. Um monitor de alta resolução propicia uma visualização melhor e gráficos de melhor qualidade. A resolução é determinada pelo dot pitch do monitor, que é a distância entre um ponto (ou pixel) e o ponto mais próximo da mesma cor. Quanto menor o ponto, mais nítida é a imagem. Neste caso, temos um dot pitch de 0,24 milímetros (mm) suportado por Null_01.indd 45Null_01.indd 45 30/06/10 18:0830/06/10 18:08 46 � Capítulo 1: Introdução um vídeo AG (aperture grill). Grades de abertura dirigem o feixe de elétrons que pinta a figura no monitor na cobertura de fósforo dentro do vidro do monitor. Os mo- nitores AG produzem imagens mais nítidas do que a antiga tecnologia de máscara de sombra (shadow mask). À luz da discussão anterior, você pode estar imaginando por que a distância entre pontos do monitor não pode ser arbitrariamente pequena para fornecer figuras com resolução perfeita. Restaurar 100 pontos, por exemplo, requer mais tempo do que restaurar 50 pontos. Uma distância entre pontos menor requer mais pontos para cobrir a tela. Quanto mais pontos a restaurar, mais tempo leva cada ciclo de restauração. Especialistas recomendam uma taxa de restauração de pelo menos 75Hz. Nosso sistema anunciado possui um CD-RW 48x, ou disco compacto regravá- vel. 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 vídeo de nosso sistema é uma placa de vídeo PCI express (PCIe). PCIe é uma especificação de interface concebida para melhorar a performance do sistema gráfico pelo aumento da largura total de banda. Muitos sistemas possuem em vez disso, placas gráficas AGP (accelerated graphics port). Esta é uma interface gráfica projetada pela Intel especificamente para gráficos 3D. Aumentando o fluxo de comunicação entre a UCP e o controlador gráfico, a PCI permite que as aplicações gráficas sejam executadas mais rapidamente do que com AGP. Computadores são mais úteis se puderem se comunicar com o mundo exte- rior. Uma forma de se comunicar é usar um provedor de serviços de Internet e um modem. Outra é através de uma conexão direta com uma rede. Redes permitem a usuários compartilhar arquivos e dispositivos periféricos. Computadores podem se conectar a uma rede através de tecnologia com fio ou sem fio. Computadores conec- tados por fios usam a tecnologia Ethernet, um padrão internacional de tecnologia para redes com fios. Neste caso, existem duas opções para a conexão. A primeira é usar um cartão de interface de rede (NIC – network interface card), que se conecta à placa-mãe através de um conector PCI. As NICs normalmente suportam Ethernet 10/100 (Ethernet com velocidade de 10Mbps e Ethernet rápida com velocidade de 100Mbps). Outra opção para rede com fio é a Ethernet integrada, o que significa que a própria placa-mãe contém todos os componentes necessários para suportar a Ethernet 10/100; assim, não é necessário um conector PCI. Redes sem fio possuem as mesma opções. NICs sem fio são fornecidos por muitos fabricantes e estão dispo- níveis para computadores de mesa e para laptops. Para instalação em computadores de mesa, você precisa de uma placa interna que provavelmente terá uma antena pequena. Laptops normalmente usam um conector de expansão (PCMCIA) para a placa de rede sem fio, e os fabricantes estão integrando uma antena no gabinete, atrás da tela. Redes integradas sem fio (tais como as encontradas na tecnologia móvel Intel Centrino) eliminam a confusão de cabos e placas. O sistema em nosso anúncio adota Ethernet integrada. Não nos aprofundaremos em componentes de marcas específicas disponíveis; ainda assim, depois de terminar este livro, você deverá entender como a maioria dos sistemas de computação funciona. Esta compreensão é importante para usuá- Null_01.indd 46Null_01.indd 46 13/07/10 09:4413/07/10 09:44 1.4 Organizações de Padronização � 47 rios leigos, bem como para programadores experientes. Como um usuário, você precisa estar ciente das vantagens e das limitações de seu sistema de computação para que possa tomar decisões conscientes sobre aplicações e assim usar seu siste- ma 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 tão simples como o algoritmo que seu hardware usa para mapear a memória principal na cache ou o método usado para intercalação de memória pode ter um tremendo impacto em sua decisão de aces- sar 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, estações de trabalho e dispositivos portáteis. Vamos mostrar que independentemente de eles realizarem pequenas tarefas ou exe- cutarem tarefas científicas sofisticadas, os componentes destes sistemas são bas- tante similares. Também vamos abordar algumas arquiteturas que estão fora do que atualmente é o fluxo principal da computação. 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 organização de computadores. 1.4 ORGANIZAÇÕES DE PADRONIZAÇÃO Suponha que você gostaria de ter um destes novos e elegantes monitores AG com distância entre pontos de .24mm. Você imagina que pode ir às compras e encontrar o melhor preço. Você dá alguns telefonemas, navega na Web e anda pela cidade até que encontra uma loja que dá o máximo pelo seu dinheiro. Com sua experiência, você sabe que pode comprar seu monitor em qualquer lugar e que ele provavelmen- te vai funcionar bem no seu sistema. Você pode fazer esta suposição porque fabri- cantes de equipamentos de computação concordaram em atender às especificações de conectividade e operacionais estabelecidas por diversas organizações governa- mentais e empresariais. Algumas destas organizações de estabelecimento de padrões são associações co- merciais ad hoc ou consórcios criados por líderes industriais. Os fabricantes sabem que o estabelecimento de normas comuns para um determinado tipo de equipamentofaz com que eles possam vender seus produtos para um público maior do que se eles tiverem especificações próprias – talvez incompatíveis. Algumas organizações de padronização possuem patentes formais e são reconhe- cidas internacionalmente como a autoridade definitiva em certas áreas de eletrônica e computadores. À medida que continuar seus estudos em arquitetura e organização de computadores, você vai encontrar especificações formuladas por estes grupos; logo, você deve saber alguma coisa sobre eles. O Institute of Electrical and Electronic Engineers (IEEE) é uma organização dedicada ao avanço das profissões de eletrônica e engenharia de computação. O IEEE fomenta ativamente os interesses da comunidade mundial de engenharia por meio da publicação de uma variedade de literatura técnica. O IEEE também estabelece padrões para vários componentes de computadores, protocolos de sinalização e re- Null_01.indd 47Null_01.indd 47 13/07/10 09:4413/07/10 09:44 48 � Capítulo 1: Introdução presentação de dados, apenas para relacionar algumas áreas de seu envolvimento. O IEEE possui um procedimento democrático, embora demorado, estabelecido para a criação de novos padrões. Seus documentos finais são bem respeitados e geralmente duram muitos anos antes de requerer revisão. A International Telecommunications Union (ITU) é baseada em Genebra, na Suiça. A ITU era anteriormente conhecida como Comitê Consultivo Internacional de Telegrafia e Telefonia (Comité Consultatif International Télégraphique et Téléphoni- que). Como seu nome indica, o ITU se preocupa com a interoperabilidade dos sis- temas de comunicação, incluindo telefone, telégrafo e sistemas de comunicação de dados. O braço de telecomunicações do ITU, ou ITU-T, estabeleceu diversos padrões que você vai encontrar na literatura. Você vai ver estes padrões prefixados por ITU-T ou pelas antigas iniciais do grupo, CCITT. Muitos países, incluindo a Comunidade Europeia, comissionaram organizações abrangentes para representar seus interesses dentro dos diversos grupos internacio- nais. 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é Européen de Normalisation), o comitê europeu de padronização. A International Organization for Standardization (ISO) é a entidade que coordena mundialmente o desenvolvimento de padrões, incluindo as atividades da ANSI com a BSI, entre outras. ISO não é uma sigla, mas provém da letra grega isos, que significa “igual.” A ISO consiste de mais de 2800 comitês técnicos, cada um encarregado de alguma questão de padronização global. Seus interesses variam do comportamento de filme fotográfico à largura de linhas de parafusos, incluindo o mundo complexo de engenharia de computação. A proliferação do comércio mundial tem sido facilitada pela ISO. Atualmente, a ISO toca praticamente cada um dos as- pectos da nossas vidas. Ao longo deste livro, mencionamos nomes de padrões oficiais onde era apropriado. Informações definitivas sobre muitos destes padrões podem ser encontradas com mí- nimos detalhes nas páginas Web da organização responsável pelo estabelecimento do padrão mencionado. Como um bônus extra, muitos padrões contêm referências “norma- tivas” e informativas que fornecem mais informação sobre áreas relacionadas ao padrão. 1.5 DESENVOLVIMENTO HISTÓRICO Durante seus mais de 50 anos de vida, computadores se tornaram o exemplo perfeito da conveniência moderna. Esforços de memória fazem relembrar os dias de esteno- grafia, papel carbono e mimeógrafos. Às vezes parece que estas máquinas mágicas de computação foram desenvolvidas instantaneamente na forma como as conhecemos hoje. Mas o caminho do desenvolvimento dos computadores é pavimentado com des- cobertas acidentais, pressão comercial e ideias extravagantes. Ocasionalmente, com- putadores podem mesmo ter melhorado por meio de sólidas práticas de engenharia! Apesar de todas as guinadas, voltas e becos tecnológicos sem saída, os computadores têm evoluído num ritmo que desafia a compreensão. Somente quando tivermos visto de onde viemos poderemos apreciar totalmente onde estamos hoje. Null_01.indd 48Null_01.indd 48 01/07/10 17:4501/07/10 17:45 1.5 Desenvolvimento Histórico � 49 Nas seções que seguem, dividimos a evolução de computadores em gerações, cada geração sendo definida pela tecnologia usada para construir a máquina. Forne- cemos datas aproximadas para cada geração somente como referência. Existe pouca concordância entre os especialistas sobre as datas exatas de início e fim de cada época tecnológica. Cada invenção 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 computação atualmente vemos saindo das caixas misteriosas pousa- das sobre ou abaixo de nossas escrivaninhas? Até recentemente, computadores nos serviam somente realizando manipulações matemáticas alucinantes. Não mais limi- tados a cientistas de jaleco branco, os computadores atuais nos ajudam a escrever documentos, a manter contato através do globo com pessoas queridas e a fazer nossas comprinhas. Computadores empresariais modernos gastam somente uma minúscula parcela de seu tempo fazendo cálculos contábeis. Seu principal objetivo é dar aos usuários generosas informações estratégicas para obter vantagens competitivas. Será que a palavra computador se tornou inadequada? Um anacronismo? Como, então, poderíamos chamá-los por outro nome que não computadores? Não conseguimos apresentar a história completa de computadores em poucas páginas. Livros inteiros têm sido escritos sobre este assunto e mesmo eles fazem seus leitores desejar mais detalhes. Se seu interesse foi aguçado, recomendamos a leitura de alguns dos livros citados na lista de referências no final deste capítulo. 1.5.1 Geração zero: Máquinas de cálculo mecânicas (1642–1945) Antes dos anos 1500, um típico homem de negócios europeu usava um ábaco para calcular e registrava as cifras resultantes em numerais romanos. Após o sistema de numeração decimal ter finalmente substituído os números romanos, diversas pessoas inventaram dispositivos para tornar os cálculos decimais ainda mais rápidos e mais precisos. Wilhelm Schickard (1592–1635) foi reconhecido como o inventor da primei- ra calculadora mecânica, o Relógio Calculadora (data exata desconhecida). Este dis- positivo podia adicionar e subtrair números contendo até seis dígitos. Em 1642, Blaise Pascal (1623–1662) desenvolveu uma calculadora mecânica, denominada Pascaline, para ajudar seu pai no seu trabalho com impostos. A Pascaline podia fazer adição com transporte (vai-um) e subtração. Ela foi provavelmente o primeiro dispositivo mecânico de soma realmente usado para objetivos práticos. De fato, a Pascaline foi tão bem-concebida que o seu projeto básico ainda estava sendo usado no início do século XX, como evidenciado pelo Lightning Portable Adder, em 1908, e pelo Addometer, em 1920. Gottfried Wilhelm von Leibniz (1646–1716), um notável matemático, inven- tou uma calculadora conhecida como Stepped Reckoner, que podia adicionar, subtrair, multiplicar e dividir. Nenhum destes dispositivos podia ser programado ou tinha me- mória. Eles precisavam de intervenção manual em cada passo de seus cálculos. Embora máquinas como a Pascaline fossem usadas até o século XX, novos pro- jetos de calculadoras começaram a emergir no século XIX. Um dos mais ambiciosos dentre estes novos projetos era a Máquina Diferencial (Difference Engine) de Charles Babbage (1791–1871). Algumas pessoas se referem a Babbage como “o pai da com- Null_01.indd 49Null_01.indd 49 30/06/10 18:0830/06/10 18:08 50 � Capítulo 1: Introdução putação”. De acordo com a opinião geral, ele foi um gênio excêntrico que nos legou, entre outras coisas, a chave mestra e o “pegador de boi,” um dispositivo para empur- rar boise outros obstáculos móveis para fora do caminho das locomotivas. Babbage construiu sua Máquina Diferencial em 1822. A Máquina Diferencial recebeu este nome porque usava uma técnica de cálculo chamada de método das di- ferenças. A máquina foi projetada para mecanizar o cálculo de funções polinomiais e era, na verdade, uma calculadora, e não, um computador. Babbage também projetou uma máquina de propósito geral em 1833, denominada Máquina Analítica. Embora Babbage tenha falecido antes de tê-la construído, a Máquina Analítica foi projetada para ser mais versátil do que sua antecessora, a Máquina Diferencial. A Máquina Analítica teria sido capaz de realizar qualquer operação matemática. Ela incluía mui- tos dos componentes associados aos computadores modernos: uma unidade aritméti- ca para realizar cálculos (Babbage se referia a ela como o moinho), uma memória (o depósito) e dispositivos de entrada e saída. Babbage também incluiu uma operação de desvio condicional onde a próxima instrução a ser executada era determinada pelo resultado da operação anterior. Ada, Condessa de Lovelace e filha do poeta Lord Byron, sugeriu que Babbage escrevesse um plano de como a máquina deveria calcu- lar os números. Isto é reconhecido como sendo o primeiro programa de computador, e Ada é considerada como sendo a primeira programadora de computadores. Também existem rumores de que ele teria sugerido o uso do sistema binário de numeração, em vez do sistema decimal, para armazenar dados. Um problema perene que desafia os projetistas de máquinas tem sido a maneira de introduzir dados no computador. Babbage projetou a Máquina Analítica para usar um tipo de cartão perfurado para entrada e programação. Usar cartões para controlar o comportamento de uma máquina não se originou com Babbage, mas sim com um de seus amigos, Joseph-Marie Jacquard (1752–1834). Em 1801, Jacquard inventou um tear de tecelagem programável que poderia produzir padrões complexos em rou- pas. Jacquard deu a Babbage uma tapeçaria que havia sido tecida neste tear usando mais de 10.000 cartões perfurados. Para Babbage, pareceu natural que, se um tear podia ser controlado por cartões, então sua Máquina Analítica também poderia ser. Ada expressou seu encanto com esta ideia, escrevendo que “A Máquina Analítica tece padrões algébricos da mesma forma que o tear de Jacquard tece flores e folhas”. O cartão perfurado provou ser o meio mais resistente de fornecer entrada para um sistema de computação. A entrada de dados via teclado teve de esperar até que fossem feitas mudanças fundamentais na forma como as máquinas de calcular eram construí- das. Na segunda metade do século XIX a maioria das máquinas usava mecanismos com engrenagens, difíceis de integrar com os primitivos teclados porque eles eram mecanismos com alavancas. Mas mecanismos com alavancas poderiam facilmente perfurar cartões, e mecanismos com engrenagens poderiam lê-los facilmente. Por- tanto, vários dispositivos foram inventados para codificar e, depois, “tabular” dados perfurados em cartões. A mais importante das máquinas de tabulação do final do sé- culo XIX foi a inventada por Herman Hollerith (1860–1929). A máquina de Hollerith foi usada para codificar e compilar os dados do censo de 1890. Este censo foi com- pletado em tempo recorde, impulsionando as finanças de Hollerith e a reputação de sua invenção. Hollerith, mais tarde, fundou uma empresa que se tornaria a IBM. Seu cartão perfurado de 80 colunas, o cartão Hollerith, foi uma marca de processamento automatizado de dados por mais de 50 anos. Null_01.indd 50Null_01.indd 50 30/06/10 18:0830/06/10 18:08 1.5 Desenvolvimento Histórico � 51 1.5.2 A primeira geração: Computadores com válvulas (1945–1953) Embora Babbage seja frequentemente chamado de “pai da computação”, suas máqui- nas eram mecânicas, e não, elétricas ou eletrônicas. Na década de 1930, Konrad Zuse (1910–1995) partiu do ponto em que Babbage havia parado e adicionou tecnologia elétrica e outras melhorias ao projeto de Babbage. O computador de Zuse, o Z1, usa- va relés eletromecânicos em vez das engrenagens movidas a manivela de Babbage. O Z1 era programável e possuía uma memória, uma unidade aritmética 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 cartões perfurados para a entra- da. Embora esta máquina tenha sido projetada para usar válvulas, Zuse, que estava construindo ele mesmo a sua máquina, não podia arcar com os custos das válvulas. Assim, o Z1 corretamente pertence à primeira geração, embora não tivesse válvulas. Zuse construiu o Z1 na sala da casa de seus pais, em Berlim, enquanto a Alema- nha estava em guerra com a maior parte da Europa. Felizmente ele não conseguiu convencer os nazistas a comprar a sua máquina. Eles não perceberam a vantagem tática que tal dispositivo poderia dar a eles. Bombas aliadas destruíram todos os três primeiros sistemas de Zuse, O Z1, o Z2 e o Z3. As impressionantes máquinas de Zuse não puderam ser refinadas até o final da guerra e foram mais um “beco de evolução” na história dos computadores. Computadores digitais, como os conhecemos hoje, são o fruto do trabalho reali- zado por diversas pessoas nas décadas de 1930 e 1940. A calculadora mecânica básica de Pascal foi projetada e modificada simultaneamente por muitas pessoas; o mesmo pode ser dito do moderno computador eletrônico. Não obstante os continuados debates sobre quem foi o primeiro a fazer, três pessoas claramente emergem como inventoras dos modernos computadores: John Atanasoff, John Mauchly e J. Presper Eckert. John Atanasoff (1904–1995) recebeu o mérito da construção do primeiro com- putador totalmente eletrônico. O Atanasoff Berry Computer (ABC) era uma máquina binária construída com válvulas. Visto que este sistema foi construído especificamen- te para resolver sistemas de equações lineares, não podemos considerá-lo um com- putador de uso geral. Existem, no entanto, algumas características 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 características comuns causaram considerável controvérsia a respeito de a quem deveria ser dado o crédito (e os direitos de patente) pela invenção do computador eletrônico digital. (O leitor inte- ressado pode encontrar mais detalhes em um processo bastante volumoso envolvendo Atanasoff e o ABC em Mollenhoff [1988].) John Mauchly (1907–1980) e J. Presper Eckert (1929–1995) foram os dois prin- cipais inventores do ENIAC, apresentado ao público em 1946. O ENIAC é reconhe- cido como sendo o primeiro computador digital de uso geral totalmente eletrônico. Esta máquina usava 17.468 válvulas, ocupava 1800 metros quadrados de chão, pesava 30 toneladas e consumia 174 kilowatts de energia. O ENIAC tinha uma capacidade de memória de cerca de 1000 bits de informação (cerca de 20 números de 10 dígitos decimais) e usava cartões perfurados para armazenar dados. A visão de John Mauchly de uma máquina de calcular eletrônica nasceu de seu interesse ao longo da vida de fazer previsão do tempo matematicamente. Enquanto professor de física do Ursinus College, próximo a Filadélfia, Mauchly empregou dú- Null_01.indd 51Null_01.indd 51 30/06/10 18:0830/06/10 18:08 52 � Capítulo 1: Introdução U.S. Army, 1946 Null_01.indd 52Null_01.indd 52 30/06/10 18:0830/06/10 18:08 1.5 Desenvolvimento Histórico � 53 zias de máquinas de somar operadas por estudantes para mastigar montanhas de dados que ele acreditava poderem revelar as relações matemáticas existentes por trás dos padrões 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 esforços de guerra dos aliados e com motivos mais profundos para aprender sobre computação eletrônica, Mauchly fez-se voluntário para umcurso rápido em engenha- ria elétrica na Escola de Engenharia Moore, da Universidade da Pensilvânia. Depois de completar este programa, Mauchly tornou-se professor na Escola Moore, onde en- sinou um jovem e brilhante aluno, J. Presper Eckert. Mauchly e Eckert encontraram um interesse mútuo na construção de um dispositivo eletrônico de cálculo. A fim de assegurar as verbas necessárias para construir sua máquina, eles escreveram uma pro- posta formal a ser revisada pela escola. Eles retrataram a sua máquina de forma tão conservadora quanto possível, a enquadrando como uma “calculadora automática”. Embora provavelmente soubessem que computadores poderiam funcionar mais efi- cientemente usando o sistema binário de numeração, Mauchly e Eckert projetaram seu sistema para usar números na base 10, mantendo a aparência de uma enorme máquina de somar eletrônica. A universidade rejeitou a proposta de Mauchly e Eckert. Feliz- mente, o Exército dos Estados Unidos estava mais interessado. Durante a Segunda Guerra Mundial, o exército tinha uma insaciável necessidade de calcular trajetórias dos novos equipamentos balísticos. Milhares de “computado- res” humanos foram empregados diuturnamente para trabalhar na aritmética requeri- da por estas tabelas balísticas. Compreendendo que um dispositivo eletrônico poderia encurtar o cálculo de tabelas balísticas de dias para minutos, o exército liberou fundos para o ENIAC. E o ENIAC realmente reduziu o tempo de cálculo de uma tabela, de 20 horas para 30 segundos. Infelizmente, a máquina não ficou pronta antes do final da guerra. Mas o ENIAC mostrou que computadores com válvulas eram rápidos e viá- veis. Durante a próxima década, sistemas a válvula continuaram a melhorar e foram comercialmente bem-sucedidos. O que é uma válvula? O mundo conectado que conhecemos hoje nasceu da invenção de um dispositivo eletrônico simples denominado tubo de vácuo (va- cuum tube) pelos americanos e – mais precisamente – válvula (val- ve) pelos britânicos. Tubos de vácuo devem ser chamados de válvu- las porque eles controlam o fluxo de elétrons em sistemas eletrônicos de forma muito semelhante à que válvulas controlam o fluxo de água em sistemas encanados. De fato, alguns tipos de tubos de elétrons da metade do século XX não contêm vácuo, sendo eles preenchidos com gases condutivos, tal como vapor de mercúrio, que podem for- necer o comportamento elétrico desejado. Prato (Anodo) Grade de controle Catodo Envelope (continua) Null_01.indd 53Null_01.indd 53 30/06/10 18:0930/06/10 18:09 54 � Capítulo 1: Introdução O fenômeno elétrico que faz os tubos funcionarem foi descoberto por Thomas A. Edi- son em 1883 enquanto ele tentava encontrar maneiras de fazer com que os filamentos de suas lâmpadas não queimassem (ou oxidassem) poucos minutos após ser aplicada a corrente elétrica. Edison ponderou corretamente que uma maneira de evitar a oxidação do filamento seria colocar o filamento no vácuo. Edison não entendeu imediatamente que o ar não apenas ajuda a combustão, mas também é um bom isolante. Quando ele energizava os eletrodos segurando um novo filamento de tungstênio, 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 lâmpada. Em 1911, Owen Willans Richardson analisou este comportamento. Ele concluiu que quando um filamento carregado negativamente era aquecido, os elétrons “ferviam” como moléculas de água podem ferver para criar vapor. Ele apropriadamente de- nominou este fenômeno de emissão termoiônica (thermionic emission). A emissão termoiônica, como Edison a documentou, foi considerada por muitos como uma curiosidade elétrica. Mas, em 1905 um antigo assistente britânico de Edison, John A. Fleming, viu a descoberta de Edison como algo além de uma novidade. Ele sabia que a emissão termoiônica suportava o fluxo de elétrons em apenas uma direção: do catodo com carga negativa para o anodo com carga positiva, também chamado de prato. Ele compre- endeu que este comportamento poderia retificar corrente alternada, isto é, poderia mudar a corrente alternada para a corrente contínua que era essencial para a operação adequada do equipamento de telégrafo. Fleming usou suas ideias para inventar uma válvula eletrônica, mais tarde chamada de tubo diodo (diode tube) ou retificador. Retificador � � O diodo era bem adequado para mudar de corrente alternada para corrente contínua, mas o maior poder do tubo de elétrons 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 elétrons do catodo para o anodo de um diodo. � � � � � � Carga negativa no catodo e grade de controle; positiva no anodo: elétrons permanecem perto do catodo. Carga negativa no catodo; positiva na grade de controle e no anodo: elétrons 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 símbolo esquemático para o triodo. (continua) Null_01.indd 54Null_01.indd 54 30/06/10 18:0930/06/10 18:09 1.5 Desenvolvimento Histórico � 55 1.5.3 A segunda geração: Computadores transistorizados (1954–1965) A tecnologia de válvulas da primeira geração não era muito confiável. De fato, alguns críticos do ENIAC acreditavam que o sistema nunca iria funcionar porque as válvulas queimariam mais rápido do que poderiam ser substituídas. Embora a confiabilidade do sistema não fosse tão ruim quanto os pessimistas previam, os sistemas a válvulas frequentemente passavam mais tempo sem funcionar do que funcionando. Um triodo pode atuar tanto como uma chave quanto como um amplificador. Pequenas alterações na carga da grade de controle podem causar alterações muito maiores no fluxo de elétrons entre o catodo e o anodo. Portanto, um sinal fraco aplicado na grade resulta em um sinal muito mais forte na placa de saída. Uma carga negativa suficientemente forte aplicada na placa interrompe a saída dos elétrons do catodo. Grades de controle adicionais são algumas vezes adicionadas ao triodo para permitir um controle mais preciso do fluxo de elétrons. Tubos com duas gra- des (quatro elementos) são chamados tetrodos; tubos com três grades são denominados pentodos. Triodos e pentodos são os tubos mais comumente usados em comunicações e aplicações de computadores. Frequentemente, dois ou três triodos ou pentodos podem ser combinados em um invólucro de modo que possam compartilhar um único aquecedor, redu- zindo assim o consumo de energia de um determinado dispositivo. Estes últimos dispositi- vos eram chamados de tubos “miniatura” porque muitos mediam cerca de 2 polegadas (5 cm) de altura e meia polegada (1,5 cm) de diâmetro. Diodos, triodos e pentodos de tama- nho normal equivalentes eram somente um pouco menores do que o bulbo de uma lâmpada doméstica. Válvulas não eram muito adequadas para construir com- putadores. Mesmo um sistema de computação a válvulas mais simples exigia milhares de tubos. Enormes quantidades de energia elétrica eram necessárias para aquecer os cato- dos desses dispositivos. Para evitar derretimento, este calor tinha que ser removido do sistema o mais rapidamente pos- sível. O consumo de energia e a dissipação de calor podiam ser reduzidos fazendo os aquecedores de catodos funciona- rem a baixa voltagem, mas isto reduzia a já lenta velocidade de chaveamento do tubo. Apesar de suas limitações e do grande consumo de energia, sistemas de computação a válvulas, tanto analógicos quanto digitais, serviam a seus objetivos por muitos anos e formaram a base arquitetônica de todos os modernos sistemas de computação. Embora décadas tenham decorrido desde que o último computador a válvulafoi fabri- cado, válvulas ainda são usadas em amplificadores de áudio. Estes amplificadores “high-end” são os favoritos dos músicos, que acreditam que esses tubos fornecem um som ressonante e agradável inatingível pelos dispositivos de estado sólido. Catodo GradeFilamento Anodo (placa) Diodo Triodo Tetrodo Pentodo Null_01.indd 55Null_01.indd 55 30/06/10 18:0930/06/10 18:09 56 � Capítulo 1: Introdução Em 1948, três pesquisadores do Bell Laboratories – John Bardeen, Walter Brat- tain e William Shockley – inventaram o transistor. Esta nova tecnologia não apenas revolucionou dispositivos como televisões e rádios, mas também impulsionou a in- dústria de computadores para uma nova geração. Visto que transistores consomem menos energia do que válvulas, são menores e trabalham com mais confiabilidade, os circuitos de computadores consequentemente se tornaram menores e mais confiáveis. Apesar do uso de transistores, os computadores desta geração ainda eram grandes e bastante caros. Em geral, somente universidades, governos e grandes empresas pode- riam justificar tais custos. Todavia, muitos fabricantes de computadores emergiram nesta geração; IBM, Digital Equipment Corporation (DEC) e Univac (agora Unisys) dominaram a indústria. A IBM comercializou o 7094 para aplicações científicas e o 1401 para aplicações 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 geração pertencia à série 1100. Outra empresa, a Control Data Corporation (CDC), sob a supervisão de Seymour Cray, construiu o CDC 6600, o primeiro supercomputador do mundo. O CDC 6600, de 10 milhões de dólares, podia executar 10 milhões de instruções por segundo, usava palavras de 60 bits e tinha uma assombrosa memória principal de 128 k palavras. O que é um transistor? O transistor, abreviatura de transfer resistor (resistor de transfe- rência), é uma versão em estado sólido de um triodo. Não existe uma tal versão em estado sólido para o tetrodo ou para o pentodo. Elétrons se comportam melhor em um meio sólido do que no vazio aberto de um tubo de vácuo, de modo que não existe necessidade de grades de controle extras. Tanto o germânio (germanium) quanto o silício (silicon) podem ser o “sólido” básico usado nestes dispositivos de estado sólido. Em sua forma pura, nenhum destes elementos é um bom condutor de eletricidade, mas quando eles são combinados com pequenas quantidades de elementos que são seus vizinhos na Tabela Periódica de Elementos, eles conduzem eletricidade de uma maneira efetiva e facilmente controlável. O alumínio (aluminum) e o gálio (gallium) po- dem ser encontrados à esquerda do silício e do germânio. Uma vez que se situam à esquerda do silício e do germânio, eles possuem um elétron a menos na sua camada externa de elétrons, ou va- lência. Assim, se você adicionar uma pequena quantidade de alumínio ao silício, o silício adquire um pequeno desequilíbrio em sua camada externa de elétrons e, portanto, atrai elétrons de qualquer polo que tenha um potencial negativo (um excesso de elétrons). Quando modificados (ou dopados) desta maneira, o silício e o germânio se tornam materiais do tipo P. Emissor Base Coletor (continua) Null_01.indd 56Null_01.indd 56 30/06/10 18:0930/06/10 18:09 1.5 Desenvolvimento Histórico � 57 Similarmente, se adicionarmos um pouco de boro (boron), arsênio (arsenic) ou gálio (gallium) ao silício, teremos elétrons extras nas valências de cristais de silício. Isto nos forne- ce um material do tipo N. Uma pequena quantidade de corrente irá fluir através do material do tipo N se providenciarmos um lugar para os elétrons fracamente ligados do material do tipo N. Em outras palavras, se aplicarmos um potencial positivo a um material do tipo N, os elétrons irão fluir do polo negativo para o polo positivo. Se os pólos 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 sólido a partir de uma simples junção de materiais dos tipos N e P. O triodo de estado sólido, o transistor, consiste de três 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 são chamadas de coletor e de emissor. A figura abaixo mostra como a corrente flui através de transistores NPN e PNP. A base de um transistor funciona da mesma forma que a grade de controle em um tubo triodo: pequenas alterações na corrente da base de um transistor resultam em um grande fluxo de elétrons do emissor para o coletor. Um transistor de componentes discretos é mostrado em um encapsulamento “TO-50” na fi- gura inicial deste quadro. Existem somente três fios (condutores) que conectam a base, o emissor e o coletor do transistor ao resto do circuito. Transistores não são apenas pequenas válvulas; eles também operam mais frios e são muito mais confiáveis. Filamentos de tubos de vácuo, como filamentos de lâmpadas, funcionam mais quentes e em algum momento queimam. Computadores que usam componentes transistorizados são naturalmente menores e funcionam em tempe- raturas menores do que suas válvulas predecessoras. A miniaturização final, entretanto, não é realizada pela substituição de triodos individuais por transistores discretos, mas sim colo- cando circuitos inteiros em um pedaço de silício. Circuitos integrados, ou chips, contêm centenas de milhares de transistores microscópicos. Muitas téc- nicas diferentes são usadas para fabricar circuitos inte- grados. Um dos métodos mais simples envolve a cria- ção de um circuito usando software de projeto assistido por computador que pode imprimir grandes mapas de cada uma das várias camadas de silício que formam o chip. Cada mapa é usado como um nega- tivo fotográfico onde alterações induzidas por luz em uma substância fotorresistente na super- fície do chip produz os delicados padrões do circuito quando o chip de silício é imerso em uma solução química que limpa as áreas expostas do silício. Esta técnica é chamada de fotomicroli- tografia (photomicrolithography). Após completar a gravação, uma camada de material do tipo N ou de material do tipo P é depositada na superfície rugosa do chip. Esta camada é então Grande saída de corrente Fonte de elétrons Uns poucos elétrons retirados Uns poucos elétrons adicionados +– N N P Coletor Base N N P Emissor Contatos (continua) Null_01.indd 57Null_01.indd 57 30/06/10 18:0930/06/10 18:09 58 � Capítulo 1: Introdução 1.5.4 A terceira geração: Computadores com circuitos integrados (1965–1980) A verdadeira explosão no uso de computadores veio com a geração de circuitos inte- grados. Jack Kilby inventou o circuito integrado (CI), ou microchip, feito com ger- mânio. Seis meses depois, Robert Noyce (que também havia trabalhado em projeto de circuitos integrados) criou um dispositivo similar usando silício em vez de germâ- nio. Este é o chip de silício sobre o qual foi construída a indústria de computadores. Os CIs pioneiros permitiam que dezenas de transistores existissem em um único chip de silício que era menor do que um transistor simples em “componente discreto”. Os computadores se tornaram mais rápidos, menores e mais baratos, trazendo imensos ganhos ao poder de processamento. A família de computadores IBM System/360 es- tava entre os primeiros sistemas disponíveis comercialmente que foram construídos inteiramente com componentes de estado sólido. A linha 360 de produtos também foi a primeira da IBM a oferecer compatibilidade entre todas as máquinas da família, significando que todas usavam a mesmalinguagem simbólica. Usuários de máquinas pequenas podiam migrar para sistemas maiores sem reescrever todo o seu software. Este foi um novo e revolucionário conceito na época. A geração CI também viu a introdução de tempo compartilhado e multiprogra- mação (a habilidade de mais de uma pessoa usar o computador ao mesmo tempo). A multiprogramação, por sua vez, necessitou a introdução de novos sistemas operacio- nais para esses computadores. Minicomputadores de tempo compartilhado tais como o PDP-8 e o PDP-11 da DEC, tornaram a computação mais acessível a pequenas empresas e universidades. A tecnologia de CI também permitiu o desenvolvimento de supercomputadores mais poderosos. Seymour Cray usou o que havia aprendido durante a construção do CDC 6600 e iniciou a sua própria empresa, a Cray Resear- ch Corporation. Esta empresa produziu vários supercomputadores, iniciando com o Cray-1, de 8 milhões de dólares, em 1976. O Cray-1, em forte contraste com o CDC 6600, podia executar mais de 160 milhões de instruções por segundo e suportava 8 megabytes de memória. Ver a Figura 1.2 para uma comparação de tamanhos de vál- vulas, transistores e circuitos integrados. 1.5.5 A quarta geração: Computadores VLSI (1980–????) Na terceira geração de evolução eletrônica, vários transistores foram integrados em um chip. À medida que as técnicas de fabricação e as tecnologias de chip avança- ram, um número crescente de transistores foram empacotados em um chip. Agora tratada com uma substância 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 eletrônicos microscópicos, incluin- do transistores, que se comportam como outras versões maiores feitas com componentes dis- cretos, exceto pelo fato de que funcionam muito mais rápido e consumem uma pequena fração da potência. Null_01.indd 58Null_01.indd 58 13/07/10 09:4413/07/10 09:44
Compartilhar