Prévia do material em texto
Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 1. A História do Computador “Conto os versos de um poema, calculo a altura de uma estrela, avalio o número de franjas, meço a área de um país, ou a força de uma torrente – aplico, enfim, fórmulas algébricas e princípios geométricos – sem me preocupar com os louros que possa tirar de meus cálculos e estudos!” Malba Tahan O Homem que Calculava 1.1. Introdução Neste capítulo apresentamos um breve histórico da computação, sua evolução desde a idade antiga até os nossos dias. Este capítulo tem como objetivo ambientar o estudante com os diversos tipos de computadores elaborados pelos cientistas e engenheiros para solucionar de forma automatizada diversos problemas da vida do homem moderno. Existem várias definições possíveis para o que seja um computador: “O computador é uma máquina capaz de coletar, manipular e fornecer de uma forma sistemática os resul- tados da manipulação de informações com um determinado objetivo”; “O computador é um equipamento capaz de aceitar elementos relativos a um problema, submetê-los a ope- rações predeterminadas e chegar ao resultado desejado” são algumas delas. Hoje em dia o computador é construído com circuitos eletrônicos capazes de reconhecer e executar diretamente apenas um conjunto limitado e simples de instruções de máquina, para a qual todo o programa, independentemente da linguagem de alto nível em que foi escrito, deve ser convertido antes de ser executado. Podemos dividir o computador em dois componentes básicos: o “hardware” e o “software”. O “hardware” é o conjunto for- mado pela parte física de um computador, ou seja, pelos seus circuitos eletrônicos e suas partes eletromecânicas e o “software” é o conjunto de programas introduzidos nas máqui- nas a fim de fazê-las operar e produzir os resultados desejados. Normalmente os progra- mas obedecem a um determinado algoritmo: um conjunto de etapas finitas, ordenadamente definidas, com o propósito de obter a solução de um determinado pro- blema. 1.2. Histórico da Evolução dos Computadores A necessidade de efetuar cálculos é tão antiga quanto os primórdios da civilização huma- na. O comércio com certeza foi um dos motivadores para a elaboração das primeiras “tá- buas de contar”, que deram origem ao ábaco, utilizado até hoje em países que não adotaram o sistema de numeração indo-arábico. Ábaco é uma palavra latina na que tem suas origens na palavra grega abax ou abakon (significando "mesa” ou "tabuleta”) o qual, por sua vez, se originou possivelmente da pa- lavra semítica abq, que significa "areia”. Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 O sobrevivente mais velho das tábuas de contar é a tábua de Salamina (que originalmen- te pensou-se ser um tabuleiro de jogo), usados pelos babilônios aproximadamente 300 a.C., descoberto em 1846 na ilha de Salamina, na Grécia. A tábua de contagem é um pedaço de madeira, pedra ou metal com encaixes esculpidos ou linhas pintadas entre as quais são movidos contas, seixos ou discos de metal, como mostrado na Figura 1. Figura 1 – Ábaco O ábaco moderno é um dispositivo, normalmente de madeira tendo uma armação que contém varetas e contas deslizantes que podem correr livremente nestas varetas. O ába- co, como nós conhecemos hoje, apareceu aproximadamente 1200 d.C. na China; onde é chamado de suan-pan. O ábaco russo, inventado no século XVII e ainda em uso hoje, é chamado “schoty”. Em japonês, o ábaco é chamado “soroban” e surgiu aproximadamente em 1600 D.C. A Figura 2 mostra o exemplo de um ábaco moderno. Figura 2 – Ábaco Moderno Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 O próximo evento marcante na história dos dispositivos de calcular ocorreu no ano de 1642. Nesta época, um jovem francês de 18 anos, Blaise Pascal, completou a construção de uma máquina de somar chamada Pascalina (Máquina Aritmética de Pascal), que foi a precursora das calculadoras mecânicas. Esta máquina, que realizava operações de soma e subtração, pode ser vista na Figura 3. Figura 3 – Pascalina Em meados do século XIX, mais precisamente em 1856, o cientista inglês Charles Bab- bage projetou uma máquina analítica capaz de executar as quatro operações, armazenar dados em uma memória e imprimir resultados. As máquinas de Babbage tinham capacidade para ler dados de entrada, armazenar esses dados, fazer cálculos, gerar dados de saída e automaticamente controlar a operação da máquina, funções básicas que são encontradas em quase todo o computador moderno. Entretanto, sua máquina analítica nunca seria concluída. Apenas a sua “máquina de dife- renças”, utilizada para imprimir tabelas matemáticas, astronômicas e contábeis foi cons- truída com sucesso, em 1854, pelo gráfico sueco George Scheutz. Também em 1854, George Boole, matemático inglês, desenvolveu a teoria da Álgebra de Boole, que permitiu a seus sucessores a representação de circuitos de comutação e o desenvolvimento da chamada Teoria dos Circuitos Lógicos. Boole fez contribuições signi- ficativas em várias áreas da matemática, mas foi imortalizado por dois trabalhos que pu- blicou em 1847 e 1854, nos quais ele representou expressões lógicas em uma forma matemática hoje conhecida como Álgebra de Boole. O trabalho de Boole era mais im- Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 pressionante porque, com exceção da escola primária e de pouco tempo em uma escola comercial, ele foi quase completamente autodidata. Ao mesmo tempo em que Boole, um outro matemático britânico, Augustus DeMorgan, formalizou um conjunto de operações lógicas conhecido hoje em dia como transforma- ções de DeMorgan. Podemos dizer que um renascimento dos estudos de lógica ocorreu quase que inteiramente por causa de Boole e DeMorgan. O surgimento dos primeiros computadores digitais, quase todos mecânicos ou eletrome- cânicos, ocorreu em torno de 1940 e teve contribuições de diversos autores: George Sti- bitz, Konrad Suze, Howard H. Aiken e John Atanasoff se destacam entre eles. O interesse de Stibitz pelos computadores surgiu em 1937 com um estudo que realizou sobre relés eletro-mecânicos para telefonia, que deu origem ao projeto de um circuito so- mador binário controlado por relés. No ano seguinte, com a ajuda de S.B. Williams dos Laboratórios Bell, ele desenvolveu uma calculadora aritmética completa. Seu computador, de nome Complex Computer, Model 1, se tornou operacional em 1939 e foi demonstrado em janeiro de 1940 com uso remoto entre Hanover, New Hampshire e Nova York. Diver- sos computadores binários de maior sofisticação se seguiram, com uso de aritmética de ponto flutuante e instruções de desvio. Sendo que o último da série, o Model 5, foi inaugu- rado pela Força Aérea dos Estados Unidos em 1946 e pesava 10 toneladas, ocupando uma área de 300 m2 e utilizando mais de 9000 relés. Konrad Suze era estudante de Engenharia Civil na Technische Hochshule de Berlim quando começou a trabalhar no desenvolvimento de uma nova máquina de calcular, cuja patente registrou em 1936. Esta máquina manipulava números expressos na base dois e era comandada por um programa codificado sobre uma fita de papel. Esta máquina, de- nominada de Z1, foi finalizada em 1938, era quase inteiramente mecânica, pouco confiá- vel e quase nunca funcionou. Um novo projeto, o Z2, realizado em parceria com o engenheiro Helmut Schreyer, teve sua construção interrompida pela convocação de Suze para a guerra. Depois que Schre- yer convenceu as autoridades militares da importância do projeto, iniciaram a construção do Z3 com uma pequena ajuda do governo alemão. A sua última máquina, a Z4, inteira- mente com relés, foi a única que sobreviveu aos bombardeios da segunda guerra e che- gou a ser alugada pela EscolaPolitécnica de Zurique em 1949, para ajudar na formação dos primeiros profissionais de informática suíços. Inicialmente conhecido como ASCC (Automated Sequence Controled Calculator), um ou- tro famoso computador digital foi concluído em 1944, por uma equipe de engenheiros da IBM liderados pelo professor Howard H. Aiken da Universidade de Harvard: chamava-se Mark I, um computador eletromecânico construído com chaves, relés, cabos e embrea- gens. A máquina tinha mais de 750,000 componentes, 80 Km de fios, cerca de 16 m de comprimento e 2,5 m de altura, pesando aproximadamente 5 toneladas! Além disto con- sumia vários quilos de gelo por dia destinados à sua refrigeração. Embora o Mark I (Figura 4) seja considerado por alguns como o primeiro computador digital, sua arquitetura era significativamente diferente das máquinas modernas. Mesmo assim, essa máquina, que utilizava números com 23 dígitos de largura, podia somar ou subtrair dois destes números em 0,3 segundos, multiplicá-los em 4 segundos, e dividi-los em 10 segundos. Uma façanha para a época! Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 Figura 4 – Computador Mark I Um dos primeiros programadores do Mark I era uma mulher, Grace Hopper. Hopper a- chou o primeiro “bug” de computador: uma traça morta que tinha entrado no Mark I e cu- jas asas estavam bloqueando a leitora de fita de papel (veja a Figura 5). A palavra "bug" já tinha sido usada para descrever um defeito desde pelo menos 1889, mas Hopper foi a primeira a usar a palavra “debugging” (depuração) para descrever o trabalho de eliminar falhas dos programas. Figura 5 – Primeiro “Bug” Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 John Atanasoff, matemático no Iowa State College, é geralmente considerado como o primeiro projetar uma calculadora eletrônica. Depois de ter estudado durante muito tem- po os diferentes meios de cálculo automático que existiam no início dos anos 30, iniciou em 1935 a construção de uma máquina eletrônica, mas em 1941 a sua máquina ainda não estava funcional, devido a um defeito na leitora de cartões. Convocado em 1942 para o esforço de guerra, Atanasoff abandonou o seu projeto. Não teria havido maiores problemas se em 1941 ele não tivesse discutido os planos de sua máquina com um físico, John Mauchly, que foi nomeado para a Moore School of Ele- trical Engineering da Universidade da Pensilvânia no ano seguinte. Lá chengado, Mauchly conheceu o engenheiro eletrônico J. Presper Eckert e, ainda em 1942, enviou ao governo americano um relatório onde sintetizava as idéias de Atanasoff, de Eckert e as suas pró- prias para a construção de uma calculadora eletrônica, que resultou em um contrato que foi assinado em 1943. Assim, surgiu o ENIAC (Electronic Numerical Integrator And Computer), considerado o primeiro computador eletrônico de uso geral totalmente funcional construído no mundo, financiado pelo Exército dos EUA, cujo projeto foi trazido a público em 1946. A atuação de duas de suas programadoras pode ser vista na Figura 6. A seguir alguns dados sobre o ENIAC: – Totalmente eletrônico; – 18.000 válvulas; – 500.000 conexões de solda; – 30 toneladas de peso; – 180 m2 de área construída; – Realizava uma operação de soma em 0,0002s. Figura 6 – Computador ENIAC Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 Em junho de 1944, o matemático húngaro-americano Johann (John) Von Neumann tomou conhecimento pela primeira vez do ENIAC. Von Neumann, que era um consultor no Pro- jeto Manhattan, imediatamente reconheceu o papel que poderia desempenhar um compu- tador como o ENIAC resolvendo as equações complexas envolvidas no projeto de armas atômicas. Von Neumann ficou tremendamente entusiasmado pelo ENIAC e rapidamente se tornou um consultor do projeto ENIAC e posteriormente do EDVAC. Em julho de 1945, ele publi- cou um artigo intitulado "Primeiro Rascunho do Relatório do Projeto EDVAC" no qual ele apresentava os elementos básicos de um computador baseado no conceito de programa armazenado: – Uma memória contendo dados e instruções. – Uma unidade de cálculo, capaz de realizar tanto operações lógicas como aritméticas nos dados. – Uma unidade de controle, que poderia interpretar uma instrução reti- rada da memória e selecionar alternativas baseadas nos resultados de operações anteriores. Esse artigo era um somatório brilhante dos conceitos envolvidos na computação por pro- grama-armazenado; que muitos acreditam que seja um dos documentos mais importantes na história da computação. Porém, embora não haja nenhuma dúvida que foi Von Neumann que fez as contribuições principais ao projeto EDVAC, o resultado desse artigo foi que Mauchly e Eckert não rece- beram quase nenhum crédito por estes conceitos novos, embora haja comprovação que eles discutiam esses conceitos meses antes de Von Neumann se juntar ao projeto do ENIAC. Novos projetos de computadores seguiram aperfeiçoando essas idéias precursoras. A tecnologia original com válvulas e relés foi substituída pelos transistores e posteriormente pelos circuitos integrados digitais, resultando no modernos computadores que utilizamos hoje em dia. A história do computador teve diversos outros capítulos importantes e emocionantes no século vinte, mas não vamos abordá-los. Os que tiverem interessados podem consultar as referências adicionais no final deste capítulo. Vamos agora abrir algum espaço e nos focalizar na história da computação no Brasil, já que a literatura a respeito é bastante va- ga e escassa. 1.3. História da Computação no Brasil O Brasil possui também um rico histórico de computadores projetados e construídos no país, seja a nível comercial ou acadêmico. As primeiras iniciativas foram acadêmicas, sendo a pioneira delas o projeto de um computador denominado “Zezinho” (Figura 7), Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 feito por quatro alunos do ITA, em São José dos Campos. José Ellis Ripper, Fernando Vieira de Souza, Alfred Wolkmer e Andras Vasarheyi, orientados pelo chefe de Divisão de Eletrônica do ITA, Richard Wallauschek, projetaram e construíram o Zezinho, um compu- tador didático que utilizava apenas componentes nacionais (cerca de 1500 transistores). Figura 7 – Computador Zezinho Em 1971, pós-graduandos do Laboratório de Sistemas Digitais (LSD) da Universidade de São Paulo (USP), orientados pelo professor Glen Jangdon Jr. especificaram e construí- ram um computador de 8 bits e 4Kb de memória, apelidado Patinho Feio. Nesta época, a Marinha — que comprava, na Inglaterra, modernas fragatas informatizadas — formou, com o Banco Nacional de Desenvolvimento Econômico (BNDE), um Grupo de Trabalho Especial (GTE), para executar um programa de preparação de engenheiros que enten- dessem de projeto, fabricação e manutenção de computadores. Em 24 de julho de 1972, o GTE assinou um documento com a USP e com a firma E.E. (Equipamentos Eletrônicos) para o desenvolvimento, em dois anos, do que se chamava na época de minicomputador. O projeto, que acabou sendo realizado entre a USP (na parte de hardware) e a PUC-RJ (no desenvolvimento do software), recebeu o nome de G-10. Em 1974 foi fundada no Rio de Janeiro a Cobra (Computadores Brasileiros S.A.) resulta- do da associação de capitais do Governo (BNDE), da iniciativa privada nacional (Equipa- mentos Eletrônicos — E.E.) e de um sócio estrangeiro (Ferranti, inglesa). A Cobra iniciou suas atividades produzindo o Cobra 700 (Figura 8), com aplicação em controle de siste- mas, com tecnologia da firma inglesa Ferranti. Lançou em seguida, para atender a neces- sidade dos bancos, que tinham grande necessidade de equipamentos de entrada de dados, a Cobra a adquiriu da Sycor, firma americana, a licença parafabricar o Sycor 440, um minicomputador baseado em microprocessadores 8080, da lntel, aqui denominado Cobra 400. Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 Figura 8 – Computador Cobra 700 Estas iniciativas só foram possíveis devido à criação da reserva de mercado pela Comis- são de Coordenação das Atividades de Processamento Eletrônico (Capre), organismo governamental que cuidava da política do setor, que estabeleceu que a faixa de mercado para minicomputadores, microcomputadores e seus periféricos seria reservada para pro- dutos fabricados com tecnologia nacional. No ano de 1980, quando a empresa exibiu no congresso da SUCESU, no Rio de Janeiro, o primeiro minicomputador totalmente projetado, desenvolvido e industrializado no Brasil, o Cobra 530. Essa linha evoluiu com o lançamento de outros modelos, todos com o sis- tema operacional SOD, também desenvolvido na Cobra. Outros produtos lançados pela Cobra incluíam também os microcomputadores de 8 bits - o Cobra 300 e o Cobra 210, seus terminais de vídeo da linha TD e TR. Um dos últimos projetos realizados na Cobra foi a linha X - micros e supermicrocomputadores baseados em processadores Motorola, que, nos modelos maiores X-3030 e X-3035, incorporavam arquitetura de multiprocessamento, uma grande novidade na época. Equipava essa famí- lia o sistema operacional SOX, compatível com o Unix e reconhecido internacionalmente pelo X-Open. Hoje em dia a Cobra ainda atua no mercado apenas como integradora de sistemas devido ao fim da reserva de mercado em 1992. Entretanto, os computadores desenvolvidos pela indústria nacional não se limitaram à experiência da Cobra. Diversas outras firmas foram criadas naquele período e diversos sistemas desenvolvidos, dos quais podemos relacionar: Microdigital, Prológica, Microtec, Scopus, Itautec, SID/Sharp, Edisa, Sisco, entre outras. Essas firmas, fundadas no final da década de 70 e início da década de 80, tinham produtos inicialmente baseados em micro- processadores de 8 bits, como o Z80 da Zilog e 8080 da Intel, rodando sistemas opera- cionais bastante simples, compatíveis com o CP/M, o padrão internacional naquele Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 momento. Posteriormente, passaram a utilizar micros de 16 bits, adotando o padrão IBM/PC e o sistema operacional DOS e posteriormente o Windows. Algumas firmas continuando atuando até hoje no mercado de microcomputadores, das quais podemos destacar a Microtec, que possui uma fábrica em Ilhéus-BA, com uma pro- dução de até 150.000 micros por ano; a Itautec, que atua também nas áreas de automa- ção bancária e comercial e a Scopus, com atuação na área de prestação de serviços de informática. A seguir uma tabela com os principais micro e minicomputadores produzidos pela indús- tria nacional em 1984, com os respectivos índices de nacionalização, ou seja, percentual de componentes produzidos no Brasil. Empresa Produto Índice Microcomputadores Cobra C-210 0,926 C-305 0,934 Edisa ED-281 0,860 Itautec I-7000 0,870 Labo 8221 0,897 Microtec PC 2001 0,879 Polymax MAXXI 0,902 Prológica CP-500 0,890 Scopus NEXUS-1600 0,939 SID SID-3000 0,960 Minicomputadores Cobra C-540 0,983 Edisa ED-381 0,850 Labo 8034 0,891 Medidata M.2001 0,891 SID SID 51/5200/5600/5800 0,890 Sisco S-10.000 0,955 Tabela 1 - Computadores Nacionais Dados obtidos do relatório A Política Nacional de Informática, a Indústria Nacional de De- senvolvimento Tecnológico - Abicomp/SBC, Maio/1984. Além dos produtos comerciais acima descritos, diversos protótipos foram desenvolvidos em laboratórios de pesquisa das universidades brasileiras. Além do próprio “Patinho Feio” e G-10, outros desenvolvimentos de destaque que podem relacionados são: Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 Início Departamen- to / Universi- dade Nome Descrição 1973 NCE / UFRJ PPF Processador de Ponto Flutuante para o computador modelo 1130 da IBM. 1976 NCE / UFRJ UCP de médio porte Computador de porte médio compatível com computador modelo PDP-11/70 da DIGITAL. 1982 NCE / UFRJ PEGASUS Primeiro sistema multiprocessador proje- tado no país, baseado em processado- res Motorola da família 680XX. 1989 NCE / UFRJ Multiplus Computador com arquitetura paralela do tipo NUMA utilizando “clusters” de pro- cessadores SPARC interligados com barramentos e rede de interconexão mul- tiestágio (Figura 9). 1991 COPPE / UFRJ NCP1 Arquitetura paralela com memória distri- buída com nós de processamento inter- conectados em topologia hipercúbica. 1995 COPPE / UFRJ NCP2 Computador com arquitetura paralela baseada em memória compartilhada distribuída por “software” com uso de suporte em “hardware” para acelerar os mecanismos de coerência de memória. 1995 LSI / USP SPADE (I e II) Computador com arquitetura paralela escalável com suporte para os modelos CC-NUMA e COMA. É baseada em ele- mentos de processamento comerciais e redes de interconexão comerciais. Tabela 2 – Projetos Acadêmicos Organização de Computadores Antônio Borges / Gabriel P. Silva Atualizado em 20/2/2004 13:22 Figura 9 – Computador Paralelo Multiplus (NCE/UFRJ) Esta lista não é exaustiva e se concentra nos projetos de maior expressão, sendo que ainda existem projetos em desenvolvimento nesta área, mas cada vez mais raros, por falta de uma indústria de computadores que possa aproveitar o resultado das pesquisas em produtos comerciais. This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. http://www.daneprairie.com