Organização de Computadores Professor conteudista: Renato Lellis Sumário Organização de Computadores Unidade I 1 INTRODUÇÃO .......................................................................................................................................................1 1.1 O que é um computador? ....................................................................................................................1 1.2 Máquinas multiníveis ............................................................................................................................2 2 HISTÓRIA DA ARQUITETURA DE COMPUTADORES ...............................................................................6 2.1 Geração zero – computadores mecânicos (1642 – 1945) ......................................................6 2.2 Primeira geração – válvulas (1945 – 1955) ............................................................................... 10 2.3 Segunda geração – transistores (1955 – 1965) ....................................................................... 13 2.4 Terceira geração – circuitos integrados (1965 – 1980) ........................................................ 15 2.5 Quarta geração – integração em larga escala (1980 – 2000)............................................ 16 2.6 Quinta geração – computação ubíqua (2000 em diante) ................................................... 20 Unidade II 3 AFINAL DE CONTAS, QUEM INVENTOU O COMPUTADOR? ............................................................. 23 4 OS RUMOS DA EVOLUÇÃO DO COMPUTADOR ................................................................................... 23 5 A ORGANIZAÇÃO DO COMPUTADOR ...................................................................................................... 26 5.1 Processadores......................................................................................................................................... 26 5.1.1 Princípios de projeto para computadores modernos ............................................................... 29 5.1.2 Paralelismo ................................................................................................................................................ 31 5.2 Memória primária ................................................................................................................................ 36 5.2.1 Bits, bytes e terabytes ........................................................................................................................... 36 5.2.2 Endereços de memória ......................................................................................................................... 37 5.2.3 Memória cache ........................................................................................................................................ 38 5.3 Memória secundária ........................................................................................................................... 39 5.3.1 Hierarquias de memória ....................................................................................................................... 40 5.3.2 Discos magnéticos .................................................................................................................................. 41 5.3.3 Demais dispositivos................................................................................................................................ 43 5.3.4 Conjuntos de caracteres ...................................................................................................................... 43 Unidade III 6 CIRCUITOS DIGITAIS ....................................................................................................................................... 47 6.1 Sistemas de numeração ..................................................................................................................... 47 6.2 Sistema de números-base ................................................................................................................ 48 6.3 Por que binário? .................................................................................................................................... 52 6.4 Conversão entre bases........................................................................................................................ 52 6.5 Soma e subtração em bases não decimais ................................................................................ 55 Unidade IV 7 ÁLGEBRA BOOLEANA E PORTAS LÓGICAS ............................................................................................ 58 7.1 Função E ................................................................................................................................................... 59 7.2 Função OU ............................................................................................................................................... 60 7.3 Função NÃO ............................................................................................................................................ 60 7.4 Funções derivadas ................................................................................................................................ 61 7.4.1 NAND ........................................................................................................................................................... 61 7.4.2 NOR .............................................................................................................................................................. 62 7.4.3 XOR ............................................................................................................................................................... 63 7.5 Precedência de funções ..................................................................................................................... 64 7.6 Equivalência entre expressões e circuitos .................................................................................. 64 7.7 Exemplos de circuitos básicos ......................................................................................................... 65 7.7.1 Comparador .............................................................................................................................................. 65 7.7.2 Semissomador .......................................................................................................................................... 66 7.7.3 Somador completo................................................................................................................................. 67 7.7.4 Relógios ...................................................................................................................................................... 69 ORGANIZAÇÃO DE COMPUTADORES Unidade I 1 INTRODUÇÃO 1.1 O que é um computador? Para estudarmos como um computador funciona, e como os seus vários componentes são organizados para possibilitar esse funcionamento, deveríamos primeiramente definir o que é um computador, o que não é uma tarefa simples. 5 Segundo o Dicionário Houaiss1, a definição de computador é: computador Datação 1789 cf. MS1 Acepções substantivo masculino 1 O que computa; calculador, calculista; 10 2 Rubrica: informática. Máquina destinada ao processamento de dados; dispositivo capaz de obedecer a instruções que visam produzir certas transformações nos dados, com o objetivo de alcançar um fim determinado. 15 É claro que quem utiliza um computador, seja ele um computador doméstico, parte de um grande ambiente corporativo ou mesmo um telefone celular, sabe que tal definição nem de Disponível em <http://houaiss.uol.com.br/>. Consultado em 30/11/2008. 1 1 Unidade I longe corresponde à capacidade que um desses dispositivos possui. O computador (de todos os portes imagináveis) hoje desempenha as funções mais diversas e se tornou parte do 5 cotidiano de boa parte da população (mesmo que ela não saiba disso). O problema é que, em seu interior, o computador é uma máquina que consegue fazer muito poucas coisas. Somar e comparar números, mover valores de uma área de memória 10 para outra e não muito mais que isso é o que o computador realmente consegue fazer, não importa o quão miraculoso ele nos pareça quando olhamos do lado de fora. Chega a ser paradoxal que um equipamento limitado como esse consiga ser capaz de ser usado em tantas aplicações. Mas 15 não existe mágica aqui, apenas um longo e constante processo evolucionário que começou no século XVII e ainda está longe de acabar. Explicar parte dos processos que tornam isso possível é objetivo desta apostila. 1.2 Máquinas multiníveis 20 Um computador é uma máquina que pode realizar um determinado conjunto de funções. As pessoas que utilizam os computadores desejam fazer certas atividades que não correspondem diretamente a esse conjunto de funções. Para que seja possível que os usuários consigam executar as 25 funções de que necessitam, é necessário que haja um processo de tradução. Os primeiros computadores que foram construídos só podiam ser utilizados pelos engenheiros que os construíram. 2 ORGANIZAÇÃO DE COMPUTADORES Era necessário saber exatamente como os circuitos eletrônicos (ou eletromecânicos) se interligavam para que se conseguisse realizar as atividades mais simples. À medida que surgiu a necessidade de expandir a utilização 5 dos computadores, foi necessário criar mecanismos que possibilitassem aos usuários realizar atividades sem que fosse necessário um conhecimento profundo da arquitetura desses mecanismos. Imaginemos que o computador possa realizar uma 10 quantidade limitada de instruções ou comandos. Chamemos esse conjunto de linguagem de máquina. Tradução Linguagem de Alto Nível Linguagem de Máquina Figura 1 Tradução entre os níveis de um computador A linguagem que os usuários utilizam não pode se limitar à linguagem de máquina, ela precisa se aproximar da linguagem humana para atender problemas do mundo real. Chamemos 15 esta segunda linguagem de linguagem de alto nível. Para que possa haver uma correspondência entre as duas linguagens, é necessário que o segundo conjunto seja traduzido para o conjunto inicial. Esse processo ocorre diversas vezes dentro de um 20 computador. A história da evolução dos computadores é um processo de adição de níveis de tradução. Se os primeiros computadores só podiam ser utilizados pelos engenheiros que os construíram, os computadores atuais podem ser utilizados por pessoas com um conhecimento técnico mínimo, se tanto. 25 Isso só é possível porque as necessidades desses usuários são submetidas a vários níveis de tradução até chegar a uma 3 Unidade I instrução que o computador consiga efetivamente executar por meio de impulsos elétricos. Esse processo de evolução nos levou ao computador contemporâneo, que possui diversos níveis, por isso o 5 denominamos máquina multiníveis. A interação entre cada um dos níveis corresponde a um tipo de tradução. O nível 0, chamado lógico digital, corresponde aos circuitos eletrônicos que efetivamente realizam o processamento de informações na forma de impulsos elétricos dentro do 10 processador. O nível 1 corresponde à microarquitetura do processador, que são elementos internos do processador: registradores (que são a memória de alta velocidade interna do processador) e a ULA – unidade lógica aritmética (que é o elemento do 15 processador que realiza operações aritméticas simples). Esses registradores são conectados à ULA para formar um caminho de dados, através do qual os dados transitam para dentro e para fora do processador. Uma operação normal do caminho de dados consiste em selecionar o conteúdo de um ou dois 20 registradores, submetê-lo à ULA e movimentar o resultado para outro registrador. O nível 2 corresponde ao conjunto de instruções suportado pelo processador. O conjunto de instruções corresponde aos comandos que o processador pode receber de fontes externas e 25 é determinado pelo projeto do processador, e normalmente não pode ser alterado. O conjunto de instruções também é comum entre os processadores de uma mesma família, permitindo assim a interoperabilidade de programas e sistemas operacionais dentro dessa família. 30 4 O nível 3 corresponde ao sistema operacional. O SO fornece uma plataforma que possibilita que os programas não tenham que interagir diretamente com o hardware. Aliás, isto é mandatório ORGANIZAÇÃO DE COMPUTADORES em se tratando de sistemas multitarefa. Não é possível existir um sistema multitarefa sem que exista um elemento arbitrando o acesso ao hardware – essa função é do sistema operacional. Em sistemas computacionais modernos, todo acesso ao hardware é 5 feito por meio do sistema operacional. O nível 4 corresponde à linguagem de montagem. A linguagem de montagem, ou assembly, é uma linguagem dependente da plataforma, ou seja, processadores diferentes ou de famílias diferentes possuem linguagens de montagem diferentes 10 incompatíveis entre si. Um programa escrito em linguagem de montagem só pode ser usado em uma determinada plataforma ou família de processadores. O nível 5 corresponde à linguagem orientada a problemas, ou linguagem de alto nível. Esse tipo de linguagem independe 15 da plataforma em que for usada; ela deve ser traduzida (compilada) para um formato que o sistema operacional consiga interpretar e enviar para os níveis mais baixos da máquina multiníveis. Tradução (compilação) Linguagem orientada a problemas Tradução (montagem) Linguagem de montagem Interpretação Sistema Operacional Interpretação Hardware Conjunto de instruções Microarquiterura Nível lógico digital Figura 2 Tradução entre os níveis de um computador contemporâneo 5 Unidade I 2 HISTÓRIA DA ARQUITETURA DE COMPUTADORES2 Para entender como um computador funciona, precisamos compreender como se deu sua evolução, pois um dispositivo sempre incorpora ao menos parte da tecnologia dos seus predecessores. Os computadores que usamos hoje incorporam 5 em seu design decisões que foram tomadas décadas atrás. 2.1 Geração zero – computadores mecânicos (1642 – 1945) As tentativas de criar mecanismos para processar dados remontam ao século XVII. Foi naquela época que os primeiros mecanismos capazes de realizar cálculos de forma automatizada surgiram. 10 Os equipamentos da época eram totalmente mecânicos, já que os dispositivos eletromecânicos surgiriam apenas no século XX. O primeiro dispositivo desse tipo foi construído por Blaise Pascal (1623 – 1662) em 1642 para auxiliar seu pai, que era coletor de impostos. Pascal tinha apenas 19 anos. Esse dispositivo 15 ficou conhecido como Pascalina. Figura 3 Uma das Pascalinas construídas por Blaise Pascal Essa primeira máquina criada por Pascal podia executar apenas somas e subtrações. Trinta anos depois, Gottfried Wilhelm Todas as fotografias utilizadas foram tiradas de <http://commons. wikimedia.org/wiki/templates:GFDL/pt>. 2 6 ORGANIZAÇÃO DE COMPUTADORES von Leibniz criou um dispositivo que podia executar as quatro operações básicas. Figura 4 Staffelwalze, uma das calculadoras mecânicas projetadas por Leibniz Esses dispositivos foram as primeiras tentativas de automatizar processos manuais, neste caso, cálculos. Mas eles 5 se limitavam a isso. A evolução desses equipamentos foi proposta apenas em 1822, por Charles Babbage (1792 – 1871). O novo dispositivo foi chamado de máquina diferencial e, ao contrário de seus predecessores, que apenas realizavam operações 10 simples, ele foi desenhado para executar um algoritmo. O objetivo dessa máquina e seu algoritmo era produzir tabelas úteis para a navegação naval, assunto estratégico para a época. A máquina diferencial podia executar apenas esse algoritmo. Figura 5 Máquina diferencial construída pelo Museu de Londres a partir de notas de Babbage 7 Unidade I Apesar da aceitação de suas ideias e do financiamento do governo britânico, Babbage tinha planos mais ambiciosos. Ele vislumbrou um dispositivo programável. Esta nova máquina foi batizada de máquina analítica, e continha vários conceitos 5 presentes ainda hoje nos computadores modernos, como um dispositivo de entrada (uma leitora de cartões perfurados), dispositivos de saída (impressora e perfuradora de cartões), memória (capaz de armazenar mil números) e uma unidade aritmética (chamada de moinho). 10 Babbage descreveu essa máquina pela primeira vez em 1837. Sob vários aspectos, a máquina diferencial antecipou o computador moderno em cem anos. No século XIX, diversas máquinas diferenciais foram construídas com base nas teorias e documentos de Babbage, 15 mas ele próprio nunca chegou a produzi-las, nem a máquina analítica. As suas ideias, entretanto, influenciariam diversos pioneiros da computação. Ele correspondeu-se com a condessa Ada Lovelace, que se interessou por suas propostas para a máquina 20 analítica e chegou a desenvolver um método de calcular números de Bernoulli utilizando a máquina analítica. Esse é considerado o primeiro programa de computador da história e a condessa Ada Lovelace, a primeira programadora. A linguagem ADA foi batizada em sua homenagem. 25 O problema que Babbage enfrentou é que a tecnologia do século XIX não podia fornecer a precisão que seria necessária para a construção de um mecanismo tão complexo e ambicioso quanto a máquina analítica. Mesmo nunca tendo concretizado sua visão, Charles Babbage é considerado o avô do computador, 30 e os equipamentos atuais ainda incorporam conceitos que ele anteviu mais de cem anos atrás. O passo seguinte no caminho do computador seria dado apenas na década de 1930, quando em vários pontos começaram 8 ORGANIZAÇÃO DE COMPUTADORES a surgir dispositivos calculadores eletromecânicos utilizando relés. Na Alemanha, Konrad Zuse construiu uma série de equipamentos para executar cálculos usando relés. Todos os seus 5 equipamentos foram destruídos durante a guerra, o que impediu que seus designs tivessem influências nos desenvolvimentos subsequentes. Pouco tempo depois de Zuse, na Universidade de Iowa, nos Estados Unidos, John Atanasoff projetou um equipamento para 10 fazer cálculos que utilizava aritmética binária e capacitores como memória de armazenamento. Da mesma forma que outros predecessores, o projeto de Atanasoff nunca se tornou operacional. Simultaneamente, também nos Estados Unidos, George 15 Stibbitz construiu um equipamento para fazer cálculos que realmente funcionava, apesar de ser menos sofisticado que o projeto de Atanasoff. Stibbitz fez uma grande demonstração de sua criação em 1940. Entre os que assistiram a essa demonstração estava John Mauchley, que depois daria suas 20 próprias contribuições à história do computador. Zuse, Stibbitz e Atanasoff estavam tentando criar máquinas calculadoras automáticas. Apesar de compartilharem componentes com os computadores, elas tinham um propósito único: realizar cálculos. Nenhum desses projetos tencionava ser 25 o que Babbage tinha almejado no século XIX: um equipamento programável. O próximo passo neste caminho foi dado também nos Estados Unidos em 1944: Howard Aiken construiu o Harvard Mark I, o primeiro computador digital da história. Ele era 30 capaz de realizar cálculos. Aiken baseou-se nos conceitos de Babbage para criar o Mark I. Apesar de ter sido bem-sucedido, o sucessor do Mark I, o Mark II, já estava obsoleto ao ser 9 Unidade I concluído. A era dos computadores eletromecânicos havia chegado ao fim. Começava a era dos computadores eletrônicos. 2.2 Primeira geração – válvulas (1945 – 1955) Os primeiros computadores eletrônicos surgiram na fase 5 final da Segunda Guerra Mundial. O interesse dos militares por computadores se dava em dois campos específicos: quebra de códigos criptográficos e cálculos de artilharia. Para este segundo propósito John Mauchley propôs a 10 construção de uma máquina para o Exército Americano, o que viria a se tornar o ENIAC. Durante muito tempo, o ENIAC (Electronic Numerical Integrator and Computer) foi considerado o primeiro computador eletrônico da história. O seu projeto, que foi patrocinado pelas 15 forças armadas dos Estados Unidos e conduzido por John Mauchley e J. Presper Eckert, iniciou-se em 1943. O ENIAC entrou em operação em 1946, tarde demais para seu propósito bélico original. Figura 6 O ENIAC em operação na década de 1940 10 ORGANIZAÇÃO DE COMPUTADORES Entretanto, décadas depois do final da guerra o trabalho de um grupo de cientistas britânico veio a público. No auge da Segunda Grande Guerra, a Alemanha nazista utilizava um equipamento eletromecânico para codificar mensagens de 5 forma muito mais eficiente do que os métodos manuais: trata-se da máquina Enigma. Figura 7 Um exemplar da máquina Enigma Para quebrar os códigos gerados por esse dispositivo, o governo britânico patrocinou a construção do que foi de fato o primeiro computador eletrônico, batizado de Colossus. Este 10 dispositivo entrou em operação em 1943, e o famoso matemático Alan Turing, criador de muitos dos conceitos do computador moderno, participou do projeto. Infelizmente, todo o projeto foi mantido em segredo pelo governo britânico e, por esse motivo, o trabalho pioneiro de Turing e seus colegas não pôde ser 15 compartilhado e não teve influência nas gerações posteriores de computadores. O ENIAC, por outro lado, teve descendentes diretos. O conhecimento do projeto de Mauchley e Eckert foi compartilhado com vários colegas cientistas que criaram seus 20 próprios computadores. Os próprios Mauchley e Eckert deixaram a Universidade da Pensilvânia, onde lecionavam, para fundar uma companhia, a Eckert-Mauchley Computer Corporation. 11 Unidade I Hoje, após uma série de fusões e aquisições, essa companhia é parte da Unisys Corporation. Naquela época de interesse florescente, um dos cientistas envolvidos no projeto do ENIAC deu uma contribuição 5 fundamental para a evolução do computador moderno. Seu nome era John von Neumann, e uma das coisas que ele percebeu nos computadores da época é que programar um computador usando quantidades enormes de cabos e chaves era uma tarefa demorada e tediosa. Ele também apontou a 10 vantagem de usar os dados armazenados em forma binária em vez de decimal (como o ENIAC fazia). O projeto básico que ele concebeu na década de 1940 foi utilizado na construção da máquina IAS. Essa arquitetura foi batizada de máquina de Von Neumann e é até hoje a estrutura básica de qualquer 15 computador comercial. Memória Unidade de controle Unidade lógico aritmética Acumulador Entrada Saída Figura 8 A estrutura da máquina de Von Neumann Enquanto tudo isso acontecia, a IBM lentamente despertava para o mercado de computadores comerciais. Apesar de ter parcialmente financiado o projeto de Howard Aiken, a IBM não estava muito interessada em computadores até que lançou o IBM 20 701, em 1953. Ele era um computador voltado para aplicações científicas, e em cerca de dez anos esse mercado seria dominado pela IBM. 12 ORGANIZAÇÃO DE COMPUTADORES 2.3 Segunda geração – transistores (1955 – 1965) O transistor foi inventado por John Bardeen, Walter Brattain e William Shockley em 1948, nos laboratórios Bell. Em pouco tempo o transistor mudou a face da computação (e de toda a incipiente indústria de eletrônica de consumo), 5 pois apresentava grandes vantagens em relação à válvula: era menor e tinha vida útil infinitamente maior. Dez anos após a invenção do transistor, os computadores com válvulas estavam obsoletos. O primeiro computador a usufruir da nova tecnologia foi o 10 TX-0 (Transistored Experimental Computer 0), construído no MIT (Massachusetts Institute of Technology). O objetivo desse projeto era servir como dispositivo de testes para um equipamento mais sofisticado, o TX-2. O TX-2 não foi um grande sucesso, mas um dos engenheiros 15 que participaram do projeto fundou uma companhia, a Digital Equipment Corporation – DEC em 1957, para construir um computador cujo projeto era baseado no TX-0. Esse computador foi batizado de PDP-1. Na época, a DEC demorou quatro anos para conseguir 20 financiamento para seu produto, pois os investidores tinham sérias dúvidas sobre a viabilidade do mercado de computadores comerciais. O PDP-1 foi finalmente lançado em 1961. Ele tinha cerca de metade da capacidade de processamento do IBM 7090, o 25 computador científico mais rápido do mundo na época, mas custava 120 mil dólares, enquanto o 7090 custava milhões. A DEC vendeu dezenas de PDP-1 e criou o mercado de minicomputadores. 13 Unidade I Alguns anos mais tarde, a DEC lançou uma nova máquina, o PDP-8. Além de ser mais barata que o PDP-1 (16 mil dólares), ela trouxe uma inovação importante: o uso de um barramento. Essa arquitetura representou uma mudança importante em relação 5 à da máquina IAS, que era centrada na memória e é usada em computadores até hoje. CPU Memória Terminal de Console E/S de fita de papel Outras E/S Omnibus Figura 9 Barramento Omnibus do PDP-8 Enquanto a DEC se consolidava no mercado de minicomputadores, a IBM produzia equipamentos de alto desempenho para aplicações científicas, como o 7090, já citado, 10 e sua versão melhorada, o 7094. Em outra frente, a IBM estava obtendo sucesso com outro tipo de equipamento, chamado 1401. Ele tinha um desempenho muito menor que o 7094 para aplicações científicas, mas era bastante adequado para aplicações comerciais, sem mencionar 15 que era muito mais barato. Em 1964, uma pequena companhia lançou um equipamento voltado para aplicações científicas batizado de 6600. O CDC 6600 conseguiu ser mais rápido que o IBM 7094 e qualquer outro computador da época, principalmente por introduzir paralelismo 20 em alta escala, além de pequenos computadores internos para reduzir a carga de processamento da CPU principal. Muitas ideias referentes a paralelismo presentes nos computadores modernos descendem diretamente do CDC 6600. O seu projetista, Seymour Cray, dedicou a vida à produção de 25 computadores (depois da CDC, ele criou sua própria empresa, a Cray Computing) cada vez mais rápidos, criando o mercado de supercomputadores no processo. 14 ORGANIZAÇÃO DE COMPUTADORES 2.4 Terceira geração – circuitos integrados (1965 – 1980) A invenção do circuito integrado de silício por Robert Noyce, em 1958, permitiu que dezenas de transistores fossem colocados em uma única pastilha (ou chip). Isso conduziu a produção de computadores a um novo patamar, totalmente impensável nas 5 gerações anteriores. Agora eles poderiam ser menores, mais rápidos e mais baratos do que jamais havia sido possível. Mas uma das maiores inovações daquele período não dependia de desenvolvimento de novas tecnologias. A IBM tinha na época dois equipamentos de sucesso, os já 10 citados 1401 e 7094. O problema é que eles eram totalmente incompatíveis entre si. Um cliente que possuísse os dois equipamentos teria que ter duas equipes distintas para fazer uso deles. Quando chegou a hora de lançar os substitutos desses 15 equipamentos, a IBM deu um passo revolucionário, lançando vários computadores em uma mesma linha, chamada System/360. O grande diferencial da linha 360 é que vários modelos de vários portes compartilhavam uma mesma arquitetura, 20 o que permitia que um mesmo programa fosse utilizado nos vários modelos da mesma família. Hoje isso parece óbvio, mas durante os anos 1950 o foco do desenvolvimento sempre foi o hardware. A família 360 foi a primeira vez em que se pensou em interoperabilidade e compatibilidade. 25 Outra novidade importante na família 360 era o conceito de multiprogramação. Esse conceito permitia que o computador mantivesse vários programas em memória e, enquanto um programa estivesse esperando uma operação de E/S, ele pudesse executar outro. Este conceito simples, uma das primeiras 15 Unidade I implementações de multitarefa, aumenta a utilização da CPU. E também torna mais importante uma figura até então desconhecida: o sistema operacional. O conceito de multitarefa só pode existir com a presença de um sistema operacional. 5 O mercado de minicomputadores também evoluiu, e o lançamento mais significativo foi o PDP-11 da DEC, que teve enorme sucesso, em especial em universidades. 2.5 Quarta geração – integração em larga escala (1980 – 2000) Na década de 1980, a VLSI (Very Large Scale Integration – Integração em Escala Muito Grande) possibilitou colocar 10 dezenas de milhares, depois centenas de milhares e por fim milhões de transistores em um único chip. Esse desenvolvimento levou a computadores menores e mais rápidos. Antes do PDP-1, os computadores eram tão grandes e caros que universidades e empresas precisavam ter departamentos dedicados à 15 sua operação. Com a chegada do minicomputador, cada departamento poderia ter seu próprio computador. No início dos anos 1980, o processo de barateamento e miniaturização dos computadores chegou a tal ponto que um indivíduo podia possuir seu próprio computador. Era o início da 20 era do computador pessoal, o microcomputador. Os primeiros microcomputadores não eram fabricados da mesma forma que os computadores comerciais da época. Eles eram vendidos como kits para serem montados em casa por hobistas na área de eletrônica ou computação. Um dos primeiros 25 foi o Altair 8800, mostrado na figura seguinte. Figura 10 Altair 8800, um dos primeiros microcomputadores comerciais 16 ORGANIZAÇÃO DE COMPUTADORES Esses primeiros computadores não tinham muita aplicação prática, pois, além de montar seus computadores, os usuários tinham que desenvolver seus próprios programas. Apesar das limitações desses equipamentos, diversas 5 empresas investiram no nascente mercado de computação pessoal. Uma das mais bem-sucedidas foi a Apple, fundada por Steve Jobs e Steve Wozniak, cujo modelo Apple II (lançado em 1977) foi um sucesso comercial. O sucesso do Apple II foi tão significativo na época de seu lançamento que a Apple se tornou 10 um grande fabricante de computadores praticamente da noite para o dia. Figura 11 O Apple II, um dos primeiros microcomputadores comerciais de sucesso Enquanto a Apple e outras pequenas empresas criavam todo um novo mercado de computadores para uso doméstico, os grandes fabricantes, como a IBM, estavam hesitantes quanto a 15 investir ou não nesse nicho. A IBM decidiu por fim entrar no mercado do computador pessoal, mas, ao contrário do que era seu hábito, decidiu utilizar componentes de mercado, em vez de desenvolver todo o projeto. 20 Como microprocessador foi escolhido o 8088 da Intel, e o IBM PC foi lançado em 1981. Um dos grandes erros da história da 17 Unidade I IBM foi cometido nessa época. Ela não resguardou seu produto por patentes; muito pelo contrário, ela divulgou publicamente os dados do projeto de seu microcomputador. O resultado foi o surgimento de toda uma indústria de “PC 5 Clones”, ou computadores-padrão IBM PC, da qual uma pequena parte apenas era fabricada e vendida pela IBM. Figura 12 Um dos primeiros IBM PC A IBM também se associou à Microsoft para o desenvolvimento do sistema operacional de seu microcomputador. Outro grande erro da IBM foi não enxergar o potencial do software para 10 essa plataforma. Na verdade, os executivos da IBM estavam interessados na venda de hardware. Como consequência, o MSDOS da Microsoft se tornou o sistema operacional padrão para os computadores padrão IBM PC, o que ajudou a Microsoft a ser tornar uma das empresas mais ricas do mundo nos anos 1990. 15 A arquitetura desenvolvida pela IBM se tornou o padrão para microcomputadores de uso comercial, e a maioria das empresas que fabricava microcomputadores com padrões distintos (Commodore, Atari, Sinclair, entre outras) desapareceu ou abandonou esse nicho de mercado. 20 A Apple conseguiu sobreviver, em parte por ter sido a primeira a introduzir uma interface gráfica utilizável. Essa característica foi introduzida inicialmente no Apple Lisa, mas encontrou sucesso no Apple Macintosh. 18 ORGANIZAÇÃO DE COMPUTADORES Figura 13 Apple Lisa O Apple Lisa fracassou devido ao alto preço, mas deixou claras as vantagens do uso de uma GUI (Graphical User Interface – Interface Gráfica com o Usuário). Esse tipo de interface usa um dispositivo apontador (normalmente um mouse) e 5 elementos gráficos como ícones e menus como meio principal para interação com o usuário. As outras gerações usavam principalmente comandos em shells ou prompts de comando, o que requeria um treinamento mais aprofundado para os usuários de computadores. 10 Com a introdução da interface gráfica e o aumento da facilidade de uso, a popularização dos microcomputadores se acelerou ainda mais. Figura 14 O Apple Macintosh original 19 Unidade I 2.6 Quinta geração – computação ubíqua (2000 em diante) Ao contrário das gerações anteriores, atualmente os equipamentos com capacidade de processamento não são mais necessariamente computadores. Desde o final dos anos 1990, diversos equipamentos passaram a possuir capacidade de 5 processamento, sem que necessariamente fossem computadores completos. Palmtops, telefones celulares e até mesmo automóveis e certos refrigeradores hoje possuem alguma capacidade de processamento, podendo até mesmo rivalizar com computadores de gerações anteriores. Como exemplo dessa evolução, podemos tomar o AGC (Apollo Guidance Computer), computador embarcado usado pela missão Apollo, responsável por levar os primeiros astronautas para a lua. Esse equipamento tinha menos de 64 KB de memória e 2 Mhz de velocidade de clock – se 15 compararmos esse equipamento (que era tecnologia de ponta no final do anos 1960) com um computador desktop padrão de mercado atual, que tem 1 ou 2 Gigabytes de memória e 2 Ghz de velocidade de clock, chegaremos à conclusão que o segundo é cerca de mil vezes mais rápido e possui mais de 20 32.000 vezes mais memória, sem mencionar a complexidade do equipamento. Isso pode servir como parâmetro para a velocidade de evolução da tecnologia de processamento de dados nas últimas três décadas. 10 Figura 15 Unidade de interface com o usuário do AGC 20 ORGANIZAÇÃO DE COMPUTADORES Mas, além do barateamento e aumento de capacidade de elementos como dispositivos de armazenamento (discos e afins) e memória, o desenvolvimento de várias tecnologias, como redes locais, Bluetooth e WiFi, e a popularização da 5 Internet permitiram o desenvolvimento de equipamentos que se apoiem em redes e recursos localizados em outros computadores para atender às necessidades de seus usuários. Os computadores das gerações anteriores precisavam manter 10 suas massas de dados acessíveis localmente e contar apenas com sua capacidade de processamento. Os computadores de quinta geração podem contar com a capacidade de armazenamento e de processamento de outros computadores através de redes de diversos tipos. Figura 16 Exemplo de smartphone: Motorola Q1 Esse tipo de capacidade pode criar ambientes tão complexos que pode se tornar difícil no futuro determinar onde começa e termina o computador e onde estão os dados que utilizamos, pois teremos à nossa volta diversos dispositivos interagindo entre si para atender às nossas 20 necessidades. 15 21 Unidade I Quando esse tipo de ambiente se tornar comum, talvez não tenhamos uma sexta geração de computadores, mas algo totalmente diferente. 22