Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Capítulo 1: Histórico e Organização dos Computadores A Humanidade tem usado ao logo de sua história uma variedade de “ferramentas para apoio computacional”, tais como ábacos, tabelas, réguas de cálculo, calculadoras e, mais recentemente, computadores. As principais razões residem em duas limitações humanas: velocidade de cálculo e taxa de erros. Operações matemáticas elementares tais como multiplicação e divisão podem demandar vários segundos ou minutos, se feitas manualmente. A solução de problemas que requeiram milhares ou milhões destas operações não poderia ser feita em tempo e custo razoáveis sem o auxílio de computadores. Fatores como distração, fadiga, tensão, etc, estão entre as causas comuns de erros por parte dos seres humanos, principalmente em tarefas repetitivas, requerendo procedimentos elaborados de controle para a execução confiável destas tarefas. As máquinas são, por outro lado, sob condições razoáveis, imunes a erros. A Matemática antes dos Computadores: As Tabelas de Prony. Em 1794 cem pessoas, sob o comando de G. F. Prony e patrocínio do governo francês, foram incumbidas do cálculo manual de várias tabelas de números naturais, incluindo tabelas de logarítmos para números entre 1 e 200.000 com 19 casas decimais de precisão. A tarefa que incluia também tabelas para funções trigonométricas, demandou 2 anos, sendo cada resultado calculado duas vezes, por pessoas diferentes, para minimizar a ocorrência de erros. O resultado final, apenas para os logarítmos, foram tabelas que continham um total de 8 milhões de dígitos decimais. Para reduzir os custos, a maior parte da equipe era composta por pessoas que sabiam apenas executar operações de adição e subtração, supervisionadas por um pequeno time de matemáticos. Hoje, uma calculadora científica é capaz de fornecer qualquer dos dados das tabelas trigonométricas e de logarítmos, ainda que com precisão menor, em Segundos. A principal ferramenta de cálculo da atualidade é o computador. Desde seu surgimento, os computadores têm apresentado um desenvolvimento vertiginoso mesmo se comparados a outros ícones da sociedade industrial como, por exemplo, os automóveis. Apesar disso, os conceitos em que as máquinas atuais se baseiam remontam à década de 40, ou até ao século XIX. As chamadas gerações de computadores têm sido pautadas por avanços tecnológicos mais do que pela introdução de novos conceitos e modelos computacionais, conforme descrito a seguir. História dos Computadores O primeiro projeto de um computador de propósito geral de que se tem notícia foi a “Máquina Analítica” de Charles Babbage (1792-1871), um engenho mecânico cuja concepção estava completa por volta de 1840. Até então, como visto na Tabela 1, apenas calculadoras mecânicas� haviam sido projetadas por:: Wilheim Schickhard (1592-1635), na Universidade de Tübingen; Blaise Pascal (1623-1662); Gottfried Leibniz (1646-1716); D. E. Felt (1862-1930); e o próprio Babbage, com a “Máquina de Diferenças”. Tabela 1: Cronologia das primeiras calculadoras mecânicas. DATA INVENTOR CARACTERÍSTICAS 1623 Schickhard adição e subtração 1642 Pascal adição e subtração com “vai-um” automático 1671 Leibniz adição, subtração, multiplicação e divisão 1834 Babbage solução de polinômios por diferenças finitas. 1885 Felt uso de teclado para dados e comandos A máquina analítica de Babbage é considerada a precursora dos computadores atuais por envolver alguns conceitos ainda hoje em uso e por não ser restrita a aplicações dedicadas. A máquina de Babbage operava com dados decimais de 50 dígitos em notação de ponto fixo (embora fosse contemporâneo de Boole e DeMorgan, não houve influência destes no projeto da máquina analítica, fato que talvez explique o não uso de representação binária por Babbage), podendo armazenar até 1.000 destes dados. Uma soma ou subtração consumia um segundo enquanto que multiplicações e divisões eram feitas em um minuto, sendo o resultado das computações impresso em cartões perfurados. A estrutura interna da máquina, vista na Figura 1, previa além da memória para dados, unidades aritmética e de controle, e recursos de E/S. A unidade aritmética possuia operação em paralelo, com lógica de “carry” e indicação de “overflow”. A operação era controlada através de dois tipos de cartões perfurados: Cartões operacionais controlavam a execução de uma dentre as quatro operações aritméticas básicas (uma operação por cartão). Cartões de variáveis selecionavam locais da memória para os operandos e resultados. Constantes eram introduzidas através de cartões ou por inserção manual em contadores internos. Figura 1: visão figurada dos módulos da Máquina Analítica de Babbage. Os algorítmos e da linguagem de programação usados foram desenvolvidos por Ada Augusta Byron, que se tornou desta forma a primeira programadora, tendo criado a primeira linguagem de montagem. São características da linguagem criada por Ada o modo de endereçamento indexado para variáveis e o uso de um registrador de índice para o controle de execução de laços, além de permitir o aninhamento destes. Embora tendo características re-volucionárias para a época, o projeto da máquina analítica foi recebido com ceticismo por seus contemporâneos, não tendo sido nunca implementadoa totalmente, devido a dificuldades técnicas. As Gerações de Computadores A construção dos primeiros computadores ocorre apenas no século XX, a partir de pesquisas iniciadas na década de 30 por Alan Turing, Maurice Wilkes e F. C. Williams (Inglaterra); John Atanasoff, Howard Aiken, Wallace Eckert , J. W. Mauchly, John von Neumann, e Herman Goldstein (EUA); e Konrad Zuse (Alemanha), entre outros. Nesta época as pesquisas para a criação de um computador não eram mais feitas de forma isolada e com recursos próprios, por matemáticos ou engenheiros, sendo conduzidas em universidades e institutos de pesquisa, já que o computador era visto, por muitos governos, como um meio de obtenção de supremacia tecnológica e militar. A deflagração da Segunda Guerra Mundial levou a um rápido avanço no setor, com o desenvolvimento e uso de computadores para cálculos de criptografia e balística. A partir deste ponto devido a rápida evolução dos computadores, com mudanças importantes ocorrendo no espaço de uma ou duas décadas, costuma-se dividir a história do seu desenvolvimento em “gerações”, em função das tecnologias de hardware e software dominantes em cada época, e das evoluções ocorridas em arquitetura. O detalhamento desta classificação, feito a seguir, baseia-se em [�,�,�,�], não sendo entretanto a única existente. Considera-se que a primeira geração de computadores começa com a construção de computadores analógicos e digitais, a partir de 1938. São marcos desta fase, os computadores Z3, Mark I, ENIAC, EDVAC e EDSAC, todos da década de 40: Uso de Ferramentas Computacionais para cálculos em larga escala: O censo americano de 1890. Em 1880, o governo americano decidiu que o país seria recenseado a cada dez anos, a partir de 1890. Entretanto, com as técnicas existentes, estimava-se que o trabalho estatístico sobre os dados coletados levaria mais de 10 anos para ser feito! Herman Hollerith engenheiro e funcionário do departamento de censo, propôs um sistema para manipulação automática dos dados através de uma máquina para tabulação de cartões perfurados. Aplicando-se o sistema de Hollerith, os dados referentes aos 62 milhões de americanos foram processados em menos de 2 meses. Em 1896 Hollerith fundou a “Tabulating Machine Company”, mais tarde transformada, pela fusão com outras empresas, na “Computing-Tabulating-Recording Company”. Esta companhia foi rebatizada em 1924 para “International Business Machine Company (IBM)”. Em 1941 Konrad Zuze do “Technische Hochschule” (Alemanha), construiu o Z3, possivelmente o primeiro Computador Eletromecânico de propósito geral. O Z3 usava aritmética binária de ponto flutuante, armazenando até 64 palavras de 22 dígitos, com os cálculos sendo feitos através de 2.600 relés. Apesar do Z3 ser similar a “Máquina Analítica”, aparentemente Zuze não conhecia os trabalhos de Babbage. O governo alemão da época recusou-se a financiar o projeto a pesquisa foi interrompida. Em 1944 surge o Mark I, um computador eletromecânico construido pela IBM com base nas idéias propostas por Howard Aiken (1900-73), físico de Havard. O Mark I usava aritmética decimal, podendo armazenar até 72 números de 23 dígitos e realizar um produto em 3 segundos. Era similar a Máquina de Babbage, sendo programado via fita de papel perfurado. O protótipo do Mark I funcionou em Havard por 15 anos, estando operacional por 95% do tempo. As máquinas eletromecânicas limitavam a velocidade do processamento, tendo sido sucedidas pelos computadores eletrônicos. Em 1946 John Mauchly e Presper Eckert construíram na “Moore School” da Universidade da Pensilvânia o ENIAC (“Electronic Numerical Integrator and Calculator”). O projeto foi financiado pelas forças armadas americanas para ser usado em cálculos balísticos. O ENIAC tinha 18.000 válvulas, 1.500 relés, 20 posições de memória de 10 dígitos decimais cada, fazendo uma soma em 200 micro-segundos e um produto em 3 mili-segundos, sendo ainda capaz de ler até 800 cartões por minuto, consumindo 150kW. O uso de válvulas em computadores foi baseado nos trabalhos de John Atanasoff da Universidade Estadual de Iowa, que construíra com Clifford Berry, em 1939, uma máquina eletrônica para solução de equações lineares chamada ABC (“Atanasoff and Berry Computer”). Em 1945 John von Neumann (1903-57), consultor do projeto ENIAC, propôs o EDVAC (“Electronic Discrete VAriable Computer”), o primeiro Computador de Programa Armazenado. O EDVAC, terminado em 1952, já sem a presença de von Neumann, usava aritmética binária e processava os dados serialmente. Devido a atrasos no projeto, o EDVAC não foi o primeiro computador de programa armazenado a ser construído. Em 1949, Maurice Wilkes da Universidade de Manchester (Inglaterra) apresentou o EDSAC (“Electronic Delay Storage Automatic Calculator”), baseado nos princípios propostos pelo grupo da “Moore School”. Ao final desta fase estava sedimentado o modelo básico de um computador digital, visto na Figura 2, composto de três módulos dedicados: o processador usado para a execução dos programas, a memória para o armazenamento dos programas e dados, e as interfaces de entrada e de saída, para a comunicação com o usuário e outros equipamentos. Embora seja resultado dos esforços de muitos pioneiros, este modelo ficou conhecido como “Máquina de von Neumann” devido a ser John von Neumann quem primeiro propôs, em artigo, tal arquitetura. Figura 2: Diagrama de blocos da Máquina de von Neumann. Um sumário da evolução dos computadores em termos de gerações é visto na Tabela 2. As gerações se sucedem a partir principalmente de avanços tecnológicos, demandados pela busca contínua por maior desempenho. Ao ser implantada uma nova tecnologia seu custo é alto, o que reflete-se no preço final dos equipamentos que a utilizam. Após esta fase ocorre uma queda gradual do preço até que a tecnologia atinja seu limite de evolução, a partir do qual o custo de cada novo incremento em desempenho só é obtido as custas de investimentos crescentes. Neste ponto, em geral uma tecnologia é abandonada sendo substituída por outra, mais nova, que apresente uma curva de custo decrescente. Tabela 2: As gerações de computadores segundo a tecnologia , o software, e detalhes de arquitetura caracterísicos de cada fase. GERAÇÃO TECNOLOGIA SOFTWARE ARQUITETURA I (1938-54) válvulas, relés. Linguagem de montagem, equipamento mono-usuário Arquitetura sequen-cial, aritmética em ponto fixo II (1952-64) transistores, memórias de núcleo magnético, placas de circuito impresso. Linguagens de alto nível, sub-rotinas, processamento em lote. Processadores de E/S, registradores de índice, aritmética em ponto flutuante. III (1962-74) circuitos integrados, memórias semiconduto-ras, circuito impresso multi-camada Multiprogramação, aplicações multi-usuário. pipelining, microprogramas, memórias cache IV (1972-90) circuitos integrados LSI & VLSI. Sistemas operacionais para processamento paralelo. Processamento vetorial e paralelo V (1991- ...) escala de integração ULSI, circuitos integrados de arseneto de gálio Processamento paralelo em larga escala. Arquiteturas paralelas escaláveis. A literatura atual pára a classificação da evolução dos computadores na geração dos computadores de escala de integração ULSI, processamento paralelo em larga escala e de arquiteturas paralelas escaláveis. No momento atual, encontramos muitos desktops e notebooks que implementam o processamento paralelo, ao oferecerem mais de um processador, como por exemplo os modelos “dual core”. No entanto, podemos considerar que, a partir de 2000, tenha dado início a era da Internet e das comunicações móveis. Observamos que entre 2007 e 2010, tornou-se viável dispor de computadores compactos, portáteis, com praticamente todos os seus periféricos sem fio (wireless), discos rígidos baseados em mídias óptico-magnéticas, memórias de estado sólido (flash) de grandes capacidades de armazenamento, monitores de cristal líquido, controle por voz, reconhecimento de voz e escrita, reconhecimento de impressões digitais e acesso à Internet via tecnologia celular em banda larga. Por outro lado, as tecnologias do futuro apontam para a computação óptica, biológica e quântica. A tecnologia atual, baseada em transistores e que usa sinais elétricos e fios, deve durar pelo menos mais uma década, abrindo passagem para novas tecnologias, que possibilitarão a criação de computadores quânticos, baseados em átomos e energia. Essa mudança propiciará um salto tão grande que comparar um computador atual ao computador quântico seria o mesmo que comparar um ábaco a um computador atual. Evolução dos Computadores Os caminhos da evolução dos computadores podem ser melhor entendidos se olharmos o processo sob duas formas distintas, como visto a seguir: O Ponto de Vista da Aplicação O aumento de desempenho expandiu as áreas das aplicações dentro de quatro níveis ascendentes de abstração: dados, informação, conhecimento e inteligência, como visto na figura 3. Dados podem ser números sob vários formatos, símbolos, etc, sendo caracterizados como objetos não relacionados entre si. Informação é uma coleção de dados relacionados entre si. O processamento de dados e de informação são a principal aplicação dos computadores. conhecimento é composto de itens de informação ao qual se atribui algum significado semântico. Exemplos de aplicações associadas com o processamento de conhecimento são os “sistemas especialistas” para diagnóstico médico, prospeção de petróleo, mineração, etc e até mesmo os sistemas de B.I. (Business Intelligence), possíveis para qualquer ramo de negócios. Observe que aqui a palavra “inteligência” é usada no sentido de ferramenta ou metolodogia para obtenção de conhecimentos sobre os negócios do empreendimento. A Inteligência seria derivada de coleções de itens de conhecimento. Não existem computadores que operem neste nível de abstração. O Ponto de Vista Operacional Os computadores inicialmente executavam o processamento em lote (“batch”), onde cada usuário tinha seu programa executado completamente antes que o programa do usuário seguinte fosse iniciado. Com o tempo percebeu-se que um programa em geral contém fases em que o acesso as interfaces de E/S é intenso enquanto que em outras o uso do processador é predominante. Tal distribuição da computação pode ser usada com vantagem se o computador dispõe de “processadores de E/S”, os quais são processadores muito limitados que tratam exclusivamente do acesso aos periféricos enquanto o processador principal está executando o programa armazenado na memória., conforme visto no exemplo da figura 4, onde dois programas partilham o computador. Seja o exemplo da figura 4, onde vemos dois programas, P1 e P2, em execução no computador. Em relação a figura, E1, C1 e S1 são fases do programa 1, referentes a operações predominantemente de Entrada, Computação e Saída respectivamente. E2, C2 e S2 representam as mesmas fases para o programa 2. A figura 4.a mostra a forma de execução em “batch”, a única possível até os fins dos anos 50. A possibilidade de dividir as tarefas entre o processador principal e os processadores de E/S, levou a multiprogramação exemplificada na figura 4.b. Na figura 4.c vemos um tipo evoluído de multiprogramação desenvolvido a seguir, o “time-sharing”, onde os programas se revezam na posse do processador por intervalos de tempo definidos, sendo cada fase dividida em vários intervalos, facilitando o uso interativo do computador. No início do século 21, nos anos 2000, surgiram modelos de computadores comerciais, acessíveis às pessoas físicas, com múltiplos processadores principais que trabalham cooperativamente para a execução das tarefas, em um esquema conhecido como “processamento paralelo”. Cada processador se dedica a uma tarefa específica, comunicando-se com os demais sempre que necessário. Um programa pode ser visto como sendo uma tarefa única ou um conjunto de várias tarefas, algumas obrigatoriamente executadas em seqüência e outras podendo ocorrer em paralelo. Existem duas formas básicas de computadores paralelos: os multiprocessadores, com memória compartilhada, e os multicomputadores, com memória privativa, ambos vistos na figura 5. Em um multiprocessador com memória compartilhada, todos os processadores (P1 a Pn), têm igual direito de acesso a qualquer dos módulos de memória (M1 a Mn). Nos multicomputadores, cada processador tem sua memória particular, sendo chamadas mensagens as informações de controle trocadas entre os processadores. Classes de Computadores Nos gráficos da figura 6 podemos ver a evolução do número (em milhões) de transistores nas memórias RAM, demonstrando a famosa “lei de Moore”, que prevê o dobro de capacidade de armazenamento a cada nova geração lançada no mercado, em média a cada 1 ou 2 anos. Por outro lado, na mesma figura 6, o custo por megabit de memória RAM caminha no sentido contrário, ou seja, sofre uma significativa redução a cada geração. Decorrente desses fatores, observa-se nos últimos 25 anos que o desempenho das diferentes classes de computadores tem sofrido uma aproximação ou até mesmo sobreposição. A separação dos computadores em classes originalmente obedecia um critério técnico, com cada classe apresentando um desempenho da ordem de 10 vezes maior que o da classe imediatamente inferior. Entretanto hoje o custo tornou-se o fator diferenciador primordial, pois o impacto dos desenvolvimentos em microeletrônica, tecnologia de compiladores e de novas arquiteturas, têm sido desigual sobre as diversas classes. Além do custo e desempenho, as classes podem ser caracterizadas através de detalhes de concepção: Supercomputadores são projetados para aplicações que façam uso intensivo do processador, em classes de aplicações específicas, como pesquisa científica e tecnológica para áreas como meteorologia, militar, biologia e simulações em geral. Mainframes suportam um número bem maior de terminais e unidades de disco, além de serem usados em processamento centralizado ou como uma espécie de servidores dedicados a alguma função específica. Computadores-Servidores são máquinas de alto desempenho, semelhantes aos microcomputadores, mas que dispõem de uma capacidade de processamento muito maior, por usarem em larga escala a técnica de multiprocessadores e por possuírem memórias RAM e de Disco Rígido muito maiores que o usual. Também têm grande capacidade de conexão com dispositivos externos e justamente por tudo isso são adequados para a função de servidores de redes de alta velocidade, servidores de aplicações, de bancos de dados, servidores para web/internet, etc. Microcomputadores contemplam uma ampla classe de desktops e notebooks, que são projetados para uso doméstico, pessoal ou comercial, como estações de trabalho que podem ir desde uma configuração simples e de relativamente baixo desempenho e baixo custo, até configurações completas e de alto desempenho, para trabalhar em redes de alta velocidade, com capacidades extras de processamento gráfico, dentre outros recursos. Figura 6 : a seguir. Organização de Computadores Um computador sozinho não funciona. Na prática, um computador é parte de um sistema computacional, composto de: computadores, periféricos, programas, bancos de dados, pessoas e outros itens de infraestrutura, tais como alimentação de energia elétrica, redes de comunicação, sistemas de refrigeração ambiente, etc. Para distiguir estes componentes, eles são agrupados conforme suas características comuns: - hardware : componentes físicos do sistema: computador, periféricos, infraestrutura. - software : componentes lógicos do sistema (intangíveis): programas, documentação, projetos. - dataware : informações processadas, armazenadas em bancos de dados, num hardware. - peopleware: é o componente humano do sistema: desenvolvedores, usuários e suporte. Um computador, na sua forma mais simples, consiste de três partes principais funcionalmente independentes: interfaces de entrada e saída, memória, e processador (composto internamente pelas unidades aritmética e lógica, e de controle, e por registradores), como ilustrado na figura 7. As interfaces de entrada recebem informação codificada de operadores humanos, de dispositivos eletromecânicos, ou de outros computadores conectados a ele através de linhas de comunicação. A informação é então, armazenada na memória para ser usada depois ou manipulada imediatamente pelos circuitos de aritmética e lógica, que executam as operações desejadas. Os passos do processamento são determinados por um programa armazenado na memória. Finalmente, os resultados são enviados de volta ao mundo exterior através da unidade de saída. Todas essas ações são coordenadas pela unidade de controle. � Figura 7: Unidades Funcionais do Computador O Processador A CPU, Central Processing Unit, ou Unidade de Processamento Central, é responsável pelo gerenciamento de todas as funções do sistema, trabalhando em velocidades altíssimas, executando desde milhões até bilhões de instruções por segundo. Unidade Aritmética e Lógica Na CPU a execução de muitas operações tem lugar na unidade aritmética e lógica (Aritmetic and Logic Unit - ALU). Suponha dois números armazenados na memória e que devem ser somados. Eles são trazidos para a ALU onde a soma será realizada. O resultado pode então ser armazenado, de novo, na memória. Unidade de Controle As unidades fornecem as ferramentas necessárias para armazenar e processar a informação. As operações devem ser coordenadas e organizadas de alguma forma. A unidade de controle (Control Unit - CU) existe para isso. É o centro nervoso, usada para enviar sinais de controle para as outras unidades. Controla também a transferência de dados entre o processador e as memórias. Uma impressora imprimirá uma linha apenas se for instruída para fazê-lo. Para tanto, o processador precisa executar uma instrução de "WRITE". O processamento desta instrução envolve o envio de sinais de acionamento para a impressora, além dos dados a imprimir. Isso é função da unidade de controle. As Memórias Figura 8 - estrutura lógica da memória. Memória Principal A memória, cuja estrutura lógica é vista na fig.8, é um ente passivo, onde são armazenados dados e instruções para uso pelo processador. O acesso à memória é garantido através de um mecanismo conhecido com endereçamento, pelo qual a cada item de informação armazenado em uma “posição” da memória, é associado um único identificador chamado “endereço”. Do ponto de vista do processador e E/S, a memória é estruturada, como um local onde as informações estão armazenadas em posições com endereços lineares e seqüenciais (ex: endereços 0, 1, 2,...). Como as memórias são usadas para armazenamento de números em binário, costuma-se medir o tamanho das posições, chamado “largura”, em termos do número de dígitos binários. Deste modo, uma memória que pode armazenar em cada posição oito dígitos binários possui uma largura de oito bits (bit = "binary digit"). A “profundidade” da memória nada mais é do que o número de posições que esta possui. Profundidade e largura da memória estão associadas com sua capacidade de armazenar informação. Quanto maior a largura mais dígitos podem ser armazenados por posição, e quanto maior a profundidade, mais itens de informação podem ser armazenados na memória. A informação armazenada em uma posição de memória. é chamada genericamente de “palavra”, cujo conceito detalharemos ao final deste capítulo. Os programas e os dados que eles operam estão armazenados na memória principal (MP) do computador durante a execução. A velocidade de execução de instruções depende da velocidade em que os dados são transferidos para ou da MP. A MP dos computadores é organizada em locais de armazenamento. Cada local tem um endereço. Em muitos computadores modernos, a MP física não é tão grande quanto ao espaço de endereçamento do qual a CPU é capaz. Quando um programa não está totalmente na MP, partes dele que não estão sendo executadas no momento, são armazenadas em dispositivos de armazenamento secundário, como os discos magnéticos. É claro que, ao ser executado, toda parte do programa tem que ser primeiro, trazido à MP. O programador não deve se preocupar com os detalhes das transferências: os computadores modernos têm meios automáticos para gerenciar essas operações. Quando um programa tem trechos que são executados repetidamente, seria desejável que estes trechos estivessem armazenados numa memória mais rápida que a MP. Tal memória é chamada de memória cache (ou buffer). Ela é inserida entre a CPU e a MP, como mostrado na figura 3.3. Para este arranjo ser conveniente, é necessário que a memória cache seja bem mais rápida que a MP (de 5 a 10 vezes). Esta implementação é bem mais econômica que ter toda a MP com dispositivos de memória rápida. Figura 9: Uso da memória cache entre a CPU e a MP. Quando analisar um sistema, calcule qual a memória útil, que é a que estará disponível para a aplicação. Para chegar a memória útil deve-se subtrair da memória RAM a quantidade que será ocupada pelo sistema operacional e utilitários. O saldo poderá ser utilizado pelo aplicativo (programa e/ou dados). Unidades de Medida Tanto para especificar a memória principal do equipamento como para indicar a capacidade de armazenamento, são usados múltiplos de bytes: Símbolo Prefixo Unidade Potência de 2 > maior que a Potência de 10 abaixo ! K Kilo KB = Kilobytes 210 103 = mil M Mega MB = Megabytes 220 106 = milhão G Giga GB = Gigabytes 230 109 = bilhão T Tera TB = Terabytes 240 1012 = trilhão P Peta PB = Petabytes 250 1015 = quatrilhão E Exa EB = Exabytes 260 1018 Z Zetta ZB = Zettabytes 270 1021 Y Yotta YB = Yottabytes 280 1024 O sistema métrico de unidades de medidas emprega os mesmos prefixos para designar mil, milhão, bilhão, trilhão, etc, na base decimal. Entretanto em Informática, o valor exato é diferente. Devido ao sistema de contagem ser binário e toda a estrutura de endereçamento estar baseada neste sistema, por tradição usa-se potências de 2 para a contagem: 210 = 1024 bytes = 1 KB => observe que 103 = 1000 , portanto menor que 210 220 = 1.048.576 bytes = 1 MB, e assim por diante. ( 106 = 1.000.000 ) Ao final deste capítulo, apresentamos um padrão novo de definição destas grandezas, mas que não “pegou” no mercado. Tabela 3. Ordens de grandeza das unidades de medida. MEMÓRIA PRINCIPAL TÍPICO FAIXA relativa Uma página normal datilografada 2 Kbytes 1 a 10 Kbytes Dicionário completo (Aurélio) 24 Mbytes 10 a 50 Mbytes Enciclopédia completa 200 Mbytes 50 a 400 MBytes Filme .mpeg de +2 horas 700 Mbytes 400 MB a 8 GB Tecnologia de Construção de Memórias As memórias de semicondutores são disponíveis em uma larga faixa de velocidades (desde centenas de nanossegundos -10-9 segundos- até dezenas de nanossegundos). Quando introduzidas no final dos anos 60, elas eram bem mais caras que as memórias de núcleo magnético que acabaram substituindo. Por causa das vantagens da tecnologia VLSI (Very Large Scale Integration), o custo das memórias de semicondutores caiu bastante. Como resultado, elas são hoje usadas quase que exclusivamente na implementação de MPs. A memória principal ou memória central é composta por dois tipos de circuitos: a) Random Access Memory Memória de escrita e leitura usada para o armazenamento de dados e programas durante a operação da máquina. Perde seu conteúdo ao ser desligado o equipamento e o tempo de acesso para qualquer endereço é o mesmo. É subdividida em SRAM. ``Static RAM''. Memórias RAM que só perdem os dados ao se desligar a alimentação. DRAM. ``Dynamic RAM''. Ao contrário das SRAMs, uma DRAM perde seu conteúdo se este não for lido ou escrito de tempos em tempos, em geral a cada 2ms. Circuitos com memória dinâmica possuem além da lógica para controle de acesso, ``hardware'' dedicado para executar leituras automáticas de "refreshing'' nas posições não acessadas, evitando seu apagamento. As DRAMs são muito mais compactas e baratas que as SRAMs, sendo estas entretanto mais velozes. b) Read-Only Memory. Memórias que só admitem acessos para leitura durante a operação. Têm como vantagem o fato de serem não voláteis, com o conteúdo se mantendo mesmo quando a energia é desligada. Além das ROMs existem as PROMs (``Programmable ROMs'') e as EPROMs (``Erasable PROMs''). Para todos os tipos o conteúdo só pode ser gravado mediante um circuito especial que na maioria dos casos não faz parte do ``hardware'' do computador. As ROMs em geral vêm gravadas de fábrica e podem ser chamadas de “firmware” Elas contém instruções básicas de controle da placa-mãe e de operações de entrada e saída, chamada de BIOS (Basic Input-Output System). PROMs são ROMs que podem ser gravadas pelo usuário e as EPROMs são PROMs que podem ser apagadas, mediante exposição `a luz ultravioleta, para posterior re-gravação. Existem dois tipos de semicondutores usados na fabricação de chips - circuitos integrados - para RAM : MOS - Metal Oxide Semiconductor, e bipolar . A maioria dos sistemas usa a RAM dinâmica (DRAM - Dynamic RAM), que retém a informação num capacitor, que se descarregará com o tempo. O capacitor é um componente eletrônico que “armazena” uma carga elétrica. É necessário, portanto, uma recarga desse capacitor através de um circuito (refresh). Este tipo de RAM praticamente não consome energia. Algumas aplicações específicas utilizam uma um pouco diferente - RAM estática que consome mais energia para reter os dados. Calculadoras e micros portáteis tornam a RAM contínua com o uso de baterias. Isto é, mesmo com o equipamento desligado, uma bateria continuamente alimenta (de energia) a MP. Memória Secundária A memória secundária é a memória usada para armazenamento permanente. Por esta razão a memória secundária é não-volátil. Os tipos de memória secundária existentes são discutidos no capítulo 3 onde são vistos os periféricos de armazenamento: discos magnéticos, óticos e de estado sólido (flash-memory) . Unidades de Entrada e Unidades de Saída A CPU e a memória podem operar e produzir algum resultado útil, porém em forma binária. É necessário que este conjunto possa se comunicar com o mundo exterior, e de preferência de uma forma que nós, usuários, possamos entender. Unidades de Entrada e de Saída são periféricos responsáveis pela comunicação entre as pessoas e a máquina. Entra-se com informações através da unidade de entrada, que são armazenadas na memória e posteriormente processadas pela CPU. Os resultados são enviados para uma unidade de saída para que se possa analisá-los. Unidade de Entrada (UE) => teclado, mouse, microfone, scanner, drive CD-ROM, câmera, etc. Unidade de Saída (US) => vídeo, canhão, impressora, caixas de som, fax, etc. Em resumo, a operação de um computador pode ser descrita da seguinte forma: Ele recebe informação (programas e dados) através de uma unidade de entrada e a transfere para a memória. A informação armazenada na memória é levada, sob controle do programa, a uma unidade aritmética e lógica para ser processada. A informação processada deixa o computador através de uma unidade de saída. Todas as atividades dentro da máquina são dirigidas por uma unidade de controle. Como a informação é processada O funcionamento da CPU é coordenado pelos programas, que indicam o que e quando deve ser feito. Basicamente, a CPU executa cálculos muito simples, como soma e comparações entre números porém a uma velocidade extremamente elevada. A função da CPU é sempre a mesma. O que as diferenciam é sua estrutura interna, tipo de tecnologia empregada na fabricação e, o mais importante, cada uma tem o seu conjunto de instruções próprio. Isto torna incompatíveis os computadores. O conteúdo da memória principal é uma combinação de informações e instruções (que estão na linguagem de máquina da CPU). O processamento é feito pela CPU utilizando o ciclo busca-execução, regulado pelo relógio da CPU. Relógio (clock): todos os computadores trabalham de acordo com um padrão de tempo, com o qual pode gerenciar a troca de informações entre os dispositivos do sistema. (freqüência do clock em MHz - MegaHertz) A seqüência é: 1. buscar instrução na memória principal; 2. executar instrução; 3. buscar instrução seguinte; 4. executar a instrução seguinte; 5. e assim por diante (milhões de vezes por segundo). Barramentos Um barramento de computador: um conjunto de fios ou trilhas de circuito impresso (ou integrado), que interliga os elementos. Esses fios estão divididos em três conjuntos: via de dados: onde trafegam os dados; via de endereços: onde trafegam os endereços; via de controle: sinais de controle que sincronizam as duas anteriores. CPU clock via de dados memória via de endereços via de controle Figura 10. exemplo de barramentos conectando a cpu e a memória do computador Redes de Computadores Nos dias atuais, a operação de computadores, desde os micros até os supercomputadores, praticamente ocorre em rede na maior parte do tempo de uso. Os usuários planejam em geral obter os seguintes benefícios : Compartilhamento de Recursos. Os recursos de uma rede como por exemplo, base de dados, impressoras, etc, estão disponíveis a todos os usuários mesmo que não estejam fisicamente ao seu alcance. Assim, um recurso caro como um supercomputador pode ser usado por diversos pesquisadores desde que este esteja conectado a uma rede, mesmo que as informações tenham que percorrer milhares de km. Aumento de Confiabilidade. Se os recursos críticos em uma rede são duplicados, a falha em uma das cópias não impede a operação normal do sistema. O recurso crítico pode ser um servidor de banco de dados; pode ser uma conexão entre dois servidores; pode ser a conexão entre usuários importantes, etc. Tal duplicação é muito desejável, pois aumenta a segurança, a confiabilidade e a disponibilidade da rede. Economia no Hardware de Processamento. Computadores menores costumeiramente têm uma relação custo-desempenho mais favorável que os mainframes. Com o uso de redes, workstations podem conjuntamente atingir, ou até exceder, a capacidade de um computador de grande porte, em certas aplicações comerciais. Conectividade com a internet. Há muitos serviços disponíveis na web que interessam desde pessoas físicas até grandes corporações, além dos governos de modo geral. A conexão a um provedor de acesso à internet é portanto indispensável para poder usufruir desta rede mundial e participar dela, seja como fornecedor de conteúdo ou não. � Nesta época já eram usados instrumentos manuais de cálculo como o ábaco, desenvolvido na babilônia por volta de 2.000 AC; e a régua de cálculo, criada em 1621 por Oughtred, com base em trabalhos anteriores do matemático escocês J. Napier. 1 Kai Hwang, Advanced Computer Architecture: Paralelism, Scalability, 1993. "McGraw-Hill, Inc," � David Kuck, The Structure of Computers and Computations (Addison-Wesley Publishing Company, 1982) � Kai Hwang & Fayé Briggs, Computer Architecture and Parallel Processing (McGraw-Hill Publishing Company, 1985) � John P. Hayes, Computer Architecture and Organization (McGraw-Hill Publishing Company, 1978) ANEXOS: Resumo Histórico : 2000 - 3000 a.C. ( Ábacos (Babilônicos). Usados no oriente até hoje. Com o ábaco as pessoas utilizaram pela primeira vez um dispositivo para cálculos matemáticos. Acredita-se que o ábaco tenha sido originado na Mesopotâmia por volta de 3500 A.C com a utilização de pedras ou cálculos, o que originou o termo “calcular”, quando então era uma simples tábua provida de sulcos e contadores. A forma moderna do Ábaco apareceu na China no século 13 D.C.. A adição e a subtração são realizadas diretamente; a multiplicação e a divisão são adições e subtrações repetidas. Século 17 1617 ( Rodas de multiplicação de John Napier (escocês) 1621 ( Régua de Cálculo (influenciada pelas Rodas de Multiplicação) 1642 ( Máquina de Somar - Blaise Pascal. Odômetros (Pascaline). Blaise Pascal deu início à chamada Era Mecânica, produzindo uma calculadora mecânica para cálculos com números de 10 dígitos. Era um mecanismo baseado no giro de rodas dentadas. Uma roda ao completar um giro completo incrementava um dente na roda adjacente que representava a casa decimal superior à daquela roda. 1671 ( Gottfried von Leibnitz. Extensão da máquina de Pascal para dividir e multiplicar Século 18 1741 ( J. Vaucouson - propõe um método para controle de padrões em teares, através de furos em um cilindro de metal => cartão perfurado Século 19 1822 ( Charles Babbage - Máquinas de diferenças (série de somadores de Pascal) ( não chegou a funcionar 1832 ( Capacidade das máquinas: 1000 números de 50 dígitos 60 adições/subtrações por minuto 1 multiplicação por minuto programável (via cartões) instruções de desvio aproximadamente 50000 partes 1854 ( George Boole: Álgebra Booleana 1890 ( Censo U.S.A. - Herman Hollerith: Primeira utilização do cartão perfurado 25 orifícios circulares perfurador manual e máquina para contar Século 20 1900 ( Vannevar Bush: ferramenta para resolução de equações diferenciais 1936 ( Konrad Zuse: Calculador Binário Ponto flutuante - Z1 1937 ( Fase 0 (Não comercial) - Howard Aiken computador eletromecânico (1944) - MARK I da IBM (1943) trabalhava com números de até 23 digítos. Possuía entrada de cartão perfurado e realizava operações de adição e subtração em 6 segundos e uma divisão em 12 segundos. informação de controle - via fita de papel constantes: 60 chaves de 10 posições saída: cartão perfurado teletipo 1939 ( Konrad Zuse Computador Automático - Z2 Computador Controlado por programa - Z3 (1941). Foi o primeiro computador efetivamente operacional, utilizando controle por programa e numeração binária. 1943 ( Alan Turing - Colossus I - 2500 válvulas 1945 ( 1a. Geração de Computadores: válvulas eletrônicas (1938 a 1954) Baixa durabilidade Dispositivos de E/S primitivos Cálculos em milésimos de segundos Programados em Linguagem de máquina 20.000 válvulas Baixa confiabilidade Grande quantidade de energia consumida Ex.: UNIVAC I / EDVAC / IBM 650 1946 ( ENIAC - Electronic Numeric Integrator Analyzer and Computer 18000 válvulas 5000 adições/subtrações por segundo armazenamento: 20 números decimais de 10 algarismos programação através de 6000 chaves fiação para dar seqüência de programas 1949 ( John von Neumann Conceito de programa armazenado EDSAC-Electronic Delay Storage Automatic Computer EDVAC-Electronic Discrete Variable Automatic Computer O EDVAC usava 10 % do volume do ENIAC e tinha cem vezes mais memória. Curiosidade: Por volta de 1950 alguns cientistas afirmavam que toda necessidade de proces�samento de dados mundial seria atendida por 10 computadores ENIAC. Hoje, milhões de micro�computadores são vendidos anualmente, cada um com capacidade superior a dezenas de ENIACs. 1950 ( Fase I - Comercial UNIVAC I (Universal Automated Computer): o primeiro a usar os conceitos de Von Neumann e produzido em escala comercial 1953 ( IBM 701 1954 ( IBM 650 1958 ( 2a. Geração de Computadores Transistores (1952 a 1964) memórias de núcleo magnético (DRUM) circuito impresso e processadores de E/S registrador de índice e aritmética de ponto flutuante linguagens de programação “independentes de hardware” compiladores, bibliotecas de programas mais rápido, mais confiável e consumo menor de energia Cálculos em milionésimos de segundo 100 vezes menor que o computador à válvula Uso restrito (universidades, governos, empresas de grande porte) Ex.: PDP1 e 5 da DEC - Digital Equipment Corp., IBM1401 1960 ( Uso do computador em tempo real 1962 ( Discos magnéticos 1964 ( 3a. Geração de Comput. -Circuitos Integrados (1962- 1974) Circuito Integrado (CI) com miniaturização de componentes eletrônicos: muito mais confiáveis (não têm partes móveis) muito mais compacto e mais rápido baixíssimo consumo de energia muito menor custo memórias semicondutoras processadores microprogramados (projeto mais simples e flexível) circuitos impressos multi-camada multiprogramação e time-sharing Cálculos em bilionésimos de segundo Ex.: IBM /360, PDP-10 1970 ( É criado o PARC (Palo Alto Research Center), pela Xerox. Neste centro foi desenvolvida toda a base da comunicação visual que seria utilizada por computadores dali por diante - através de uma interface gráfica, usando componentes em forma de ícones e janelas. 1971 ( 4a. Geração de Computadores (1972 a 1990 ) Circuitos Integrados de Alta Integração (LSI e VLSI) Criação de novos periféricos para multimídia Desenvolvimento de Redes Locais, Regionais e Mundiais A Intel Corporation lança a primeira CPU em uma só pastilha de circuito integrado, o Intel – 4004. Era baseado na tecnologia VLSI (Very Large Scale Integration) possuindo 2300 transistores na pastilha. 1972 ( A Intel anuncia o chip 8008 de 200-Khz, o primeiro processador de 8 bits. Ele podia acessar 16 Kb de memória. Utilizava 3500 transistores e a velocidade era de 60.000 instruções por segundo. Bill Gates e Paul Allen desenvolvem um sistema baseado no processador 8008, para registrar o fluxo do tráfego de automóveis em uma via expressa. 1973 ( É lançado o 8080 pela Intel. Vendeu milhões de unidades e firmou a Intel como a grande fabricante de microprocessadores do mercado. Possuía 5000 transistores e podia endereçar até 64Kbytes de memória. A velocidade era de 0.64 MIPS (Milhões de Instruções por Segundo). A Motorola lança em seguida o microprocessador 6800, para concorrer com a Intel A Motorola lança em seguida o microprocessador 6800, para concorrer com a Intel. 1976 ( Um grupo de hobbistas (Steve Wozniak - HP e Steve Jobs - Atari) desenvolveram um microcomputador baseado no microprocessador 6502 (clone do 6800), não pela sua versatilidade, mas pelo preço. Nasce, então, o microcomputador batizado de Apple. Vendeu 175 unidades e foi um sucesso. Desenvolveram em seguida o Apple II, que foi o primeiro microcomputador pessoal com unidade de disco flexível e projetado para atender tanto ao mercado pessoal como profissional. 1979 ( A Apple inicia o desenvolvimento de outro microcomputador, o Lisa, baseado em tudo aquilo que Steve Jobs tinha visto em sua visita ao PARC: a interface gráfica. Através da interface gráfica, o microcomputador torna-se mais amigável. Funções antes disponíveis somente através de comandos complicados e de difícil memorização passaram a ser utilizadas através de símbolos (ou ícones) disponíveis na tela. A Intel anuncia o microprocessador 8088 de 4.77 Mhz. Foi criado como um progresso a partir do 8086. Operava internamente com 16 bits, mas suportava data bus de 8 bits, para utilizar os chips de controle de dispositivo de 8 bits. Continha 29.000 transistores e podia acessar 1Mb de memória. A velocidade era de 0.33 MIPS. Uma versão posterior operava a 8 MHz, numa velocidade de 0.75 MIPS. 1980 ( Início da Internet como rede acadêmica e de segurança militar estratégica nos Estados Unidos. 1981 ( A IBM anuncia o computador pessoal IBM 5150 em Nova York. O PC possuía uma CPU com o processador Intel 8088 (29.000 transistores) de 4.77 Mhz, 64Kb RAM, um drive de disquete de 5.25 polegadas (com capacidade de 160Kb), e o PC-DOS 1.0 (Microsoft MS-DOS), por aproximadamente 3.000 dólares. Uma versão com gráficos coloridos custava 6.000 dólares. 1983 ( Microsoft anuncia a versão 1.0 do editor de textos Word for MS-DOS. Microsoft lança seu primeiro mouse (copiado da Apple, que, por sua vez, copiou da Xerox). 1984 ( É lançado o MacIntosh, criado para ser um "Lisa para se ter em casa". A Apple obteve um sucesso estrondoso com o seu MacIntosh, partindo em outra direção, descartando um futuro maior para a linha Apple II. Para se ter uma idéia, somente 11 anos depois do lançamento do Macintosh a Microsoft conseguiu lançar um produto com interface gráfica similar. No mesmo ano é lançado o PC 286 (134.000 transistores) com velocidade de 6MHz, 256 Kbytes de RAM e disco rígido de 20 Mbytes. 1990 ( Internet Comercial (.com) e rede mundial (www). A Microsoft apresenta e vende o Microsoft Windows 3.0. A Microsoft gastou 3 milhões para o marketing de lançamento, como uma parte dos 10 milhões da campanha promocional. É lançado o PC 486 (1,2 milhão de transistores) com velocidade de 25MHz e disco rígido de 30Mbytes. 1991 ( 5a. Geração de Computadores (1991 ...) Processamento Paralelo: várias CPUs Circuitos Integrados ULSI Todas as gerações anteriores => processamento serial => uma única CPU Linus Torvalds cria o núcleo do sistema operacional LINUX. 1993 ( A Microsoft lança o Windows for Workgroups (3.11) e a Intel lança o processador Pentium. 1995 ( A Microsoft lança o Windows 95 e a Internet começa a decolar no Brasil. 1998 ( É lançado o Windows 98 e o navegador na Internet vem embutido no sistema. 1999 ( Intel anuncia o Pentium III, com 9,5 milhões de transistores e 1.000 Mips. 2000 ( Lançamento do Pentium 4. Chega a 500 milhões o número de computadores pessoais em todo o mundo. 2001 ( Era da Internet e Comunicações Móveis Em dia 12 de agosto de 2001, o PC comemora 20 anos de vida. Outros computadores para uso pessoal o antecederam, como o Apple II. Mas o que o brasileiro conhece como microcomputador pessoal, no trabalho ou em casa, veio ao mundo em 1981, pelas mãos da IBM. 2001 a 2010 e além : da história recente você faz parte e a conhece bem ! Descubra na internet ou relembre os fatos importantes desse período . Escala de Integração: quantos circuitos se pode colocar num único circuito integrado (chip): VLSI - Very Large Scale of Integration - contém de 1 milhão a 10 milhões de componentes ULSI – Ultra Large Scale of Integration – mais de 10 milhões de componentes. MEMÓRIA PRINCIPAL Posição e Endereçamento O tamanho máximo da MP que pode ser usado em um computador é determinado pelo esquema de endereçamento. Por exemplo, um computador de (palavra de) 16 bits que gera endereços de 16 bits é capaz de endereçar até 216 locais de memória. Cada local de memória armazena 16 bits, porque tem palavra de 16 bits. Da mesma forma, uma máquina cujas instruções geram endereços de 24 bits pode utilizar uma MP que contenha até 224 locais de memória. Este número representa o tamanho do espaço endereçado do computador. Em alguns computadores, a menor unidade endereçável de informação é uma palavra de memória ou uma célula de memória. Endereços sucessivos de memória referem a sucessivas palavras de memória, e a máquina é chamada de endereçável por palavra. De outra forma, a bytes individuais de memória podem ser atribuídos endereços distintos, levando a um computador endereçável por byte. É mais fácil e econômico escrever programas para um sistema com MP bastante grande, capaz de conter todo o programa e todos os dados necessários de uma só vez, apesar de se saber que o tamanho da MP afeta o custo e a velocidade da aplicação. Sempre que possível, é recomendável adquirir mais que o mínimo necessário, considerando-se que quanto mais o programa e os arquivos de dados tiverem que ser divididos, mais complexo se tornará o programa e consequentemente mais tempo o sistema deverá esperar por segmento de dados ou programas a serem carregados dos periféricos para a MP. Calcule qual a memória útil, que é a que estará disponível para a aplicação. Para chegar a memória útil deve-se subtrair da memória RAM a quantidade que será ocupada pelo sistema operacional e utilitários. O saldo poderá ser utilizado pelo aplicativo (programa e/ou dados). Sobre a terminologia “palavra” e “célula”, é importante destacar alguns aspectos históricos e padrões atuais, para evitar possíveis confusões: a) historicamente, a apresentação conceitual da CPU, descrita pela máquina de Von Neuman, contém o RDM (registrador de dados da memória), que tem exatamente o mesmo tamanho da palavra de memória. É neste registrador especial que está conectado o “barramento de dados”, por onde chegam e saem os dados do processador(CPU). Nesta máquina conceitual, o endereçamento é feito por palavra, ou seja, a unidade de armazenamento é chamada de “palavra”. Portanto, há um alinhamento entre as questões de armazenamento, transferência e processamento. b) atualmente, o termo “palavra” está associado apenas com aspectos de transferência (barramentos de dados) e processamento de dados (registradores e capacidade do processador) e o termo “célula” está associado apenas com o armazenamento de dados (memórias RAM e secundária/disco rígido). Resumidamente temos então : - palavra: quando se tratar de transferência ou processamento de dados. - célula: quando se tratar de armazenamento, ou seja, o tamanho de cada unidade de memória endereçável. Um exemplo prático: Os decodificadores de endereço apontam para endereços de bytes ou células de X bytes na memória. Portanto, para definirmos o tamanho efetivo de uma determinada memória, há dois fatores a considerar: a) a quantidade de bits do barramento de endereço, b) o tamanho da unidade de endereçamento de memória, que pode ser 1 byte, ou 2 bytes, ou 4 bytes, ou 1 célula de tamanho X bytes, etc. Considere um barramento de endereço de 32 bits. Pelo fator (a) apresentado acima, podemos ter neste computador uma memória de até 2 elevado à potência 32, o que totaliza 4.294.967.296 posições (unidades) de memória, ou seja, quase 4,3 bilhões de locais de armazenamento na memória. Pelo fator (b) acima, isso equivale a dizer que tal computador suporta 4 Giga células de memória, ou 4 Giga bytes , ou 4 Giga “alguma coisa” (entre 2 e 8 bytes provavelmente), dependendo do tamanho da unidade de armazenamento endereçável. Assim sendo, avalie: qual o principal fator determinante do tamanho da memória ? O fator (a) é “4 Giga” (de base binária e não decimal). O fator (b) é determinado por um valor entre 1 e 8 , referente ao tamanho da célula em bytes. Portanto o barramento de endereço é o principal determinante do tamanho máximo da memória. É certo que ele não é o único fator, mas é o seu principal fator e de grandeza mais significativa . Configuração e Expansão Uma configuração é a descrição do conjunto dos equipamentos que compõem o sistema, com todos os acessórios e periféricos qualificados e quantificados. Uma expansão da configuração atual pode incluir mais memória, se necessário, melhor monitor de vídeo com imagem mais nítida, etc. Uma nova nomenclatura para definir grandezas em computação O KibiByte (símbolo KiB, contração de kilo binary byte) é uma unidade de medida de � HYPERLINK "http://pt.wikipedia.org/wiki/Mem%C3%B3ria_(computador)" \o "Memória (computador)" �armazenamento eletrônico de informação�, que foi estabelecido em 2000 pela � HYPERLINK "http://en.wikipedia.org/wiki/International_Electrotechnical_Commission" \o "International Electrotechnical Commission" �International Electrotechnical Commission� (IEC) na norma IEC 60027-2 , depois consolidado no padrão ISO/IEC 80000 - (Quantities and Units) Part 13 – (Information science and technology) de 2008 e no padrão do IEEE(� HYPERLINK "http://en.wikipedia.org/wiki/Institute_of_Electrical_and_Electronics_Engineers" \o "Institute of Electrical and Electronics Engineers" �Institute of Electrical and Electronics Engineers�) denominado IEEE 1541 de 2002 . Ficou assim definido: 1 kibibyte = 1.024 bytes Foi criado com o objetivo de substituir o "quilobyte" em ciência da computação, que se refere a 1024 bytes, e que entra em conflito com a definição do prefixo "quilo" do � HYPERLINK "http://pt.wikipedia.org/wiki/Sistema_Internacional" \o "Sistema Internacional" �Sistema Internacional� de unidades de medida (SI), mantido pelo Bureau Internacional de pesos e medidas, em que Kilo é sempre 1000. Antes de mais nada, é preciso definir um padrão para as unidades usadas em eletrônica digital e computação: - bit (simbolo 'b') significa um dígito binário. - byte (simbolo 'B') significa um conjunto de bits adjacentes, normalmente 8 bits, (mas não necessariamente!), tratados em conjunto, como um agrupamento. - octeto (simbolo 'o'), significa um grupo de 8 bits. Múltiplos de � HYPERLINK "http://pt.wikipedia.org/wiki/Byte" \o "Byte" �bytes�� � � HYPERLINK "http://pt.wikipedia.org/wiki/Prefixo_bin%C3%A1rio" \o "Prefixo binário" �Prefixo binário� (� HYPERLINK "http://pt.wikipedia.org/wiki/Comiss%C3%A3o_Eletrot%C3%A9cnica_Internacional" \o "Comissão Eletrotécnica Internacional" �IEC�)� � � HYPERLINK "http://pt.wikipedia.org/wiki/Sistema_Internacional_de_Unidades" \o "Sistema Internacional de Unidades" �Prefixo decimal (SI)�� � Nome� Símbolo� Múltiplo� � Nome� Símbolo� Múltiplo� � � HYPERLINK "http://pt.wikipedia.org/wiki/Byte" \o "Byte" �byte�� B� 20� � � HYPERLINK "http://pt.wikipedia.org/wiki/Byte" \o "Byte" �byte�� B� 100� � kibibyte(� HYPERLINK "http://pt.wikipedia.org/wiki/Byte" \l "Quilobyte_.28kB.29" \o "Byte" �quilobyte�)� KiB� 210� � � HYPERLINK "http://pt.wikipedia.org/wiki/Byte" \l "Quantidades" \o "Byte" �Kilobyte�� KB� 103� � � HYPERLINK "http://pt.wikipedia.org/wiki/MebiByte" \o "MebiByte" �mebibyte�(� HYPERLINK "http://pt.wikipedia.org/wiki/Megabyte" \o "Megabyte" �megabyte�)� MiB� 220� � � HYPERLINK "http://pt.wikipedia.org/wiki/Megabyte" \o "Megabyte" �megabyte�� MB� 106� � � HYPERLINK "http://pt.wikipedia.org/wiki/Gibibyte" \o "Gibibyte" �gibibyte�(� HYPERLINK "http://pt.wikipedia.org/wiki/Gigabyte" \o "Gigabyte" �gigabyte�)� GiB� 230� � � HYPERLINK "http://pt.wikipedia.org/wiki/Gigabyte" \o "Gigabyte" �gigabyte�� GB� 109� � � HYPERLINK "http://pt.wikipedia.org/wiki/Tebibyte" \o "Tebibyte" �tebibyte�(� HYPERLINK "http://pt.wikipedia.org/wiki/Terabyte" \o "Terabyte" �terabyte�)� TiB� 240� � � HYPERLINK "http://pt.wikipedia.org/wiki/Terabyte" \o "Terabyte" �terabyte�� TB� 1012� � � HYPERLINK "http://pt.wikipedia.org/wiki/Pebibyte" \o "Pebibyte" �pebibyte�(� HYPERLINK "http://pt.wikipedia.org/wiki/Petabyte" \o "Petabyte" �petabyte�)� PiB� 250� � � HYPERLINK "http://pt.wikipedia.org/wiki/Petabyte" \o "Petabyte" �petabyte�� PB� 1015� � � HYPERLINK "http://pt.wikipedia.org/wiki/Exbibyte" \o "Exbibyte" �exbibyte�(� HYPERLINK "http://pt.wikipedia.org/wiki/Exabyte" \o "Exabyte" �exabyte�)� EiB� 260� � � HYPERLINK "http://pt.wikipedia.org/wiki/Exabyte" \o "Exabyte" �exabyte�� EB� 1018� � � HYPERLINK "http://pt.wikipedia.org/wiki/Zebibyte" \o "Zebibyte" �zebibyte�(� HYPERLINK "http://pt.wikipedia.org/wiki/Zettabyte" \o "Zettabyte" �zettabyte�)� ZiB� 270� � � HYPERLINK "http://pt.wikipedia.org/wiki/Zettabyte" \o "Zettabyte" �zettabyte�� ZB� 1021� � � HYPERLINK "http://pt.wikipedia.org/wiki/Yobibyte" \o "Yobibyte" �yobibyte�(� HYPERLINK "http://pt.wikipedia.org/wiki/Yottabyte" \o "Yottabyte" �yottabyte�)� YiB� 280� � � HYPERLINK "http://pt.wikipedia.org/wiki/Yottabyte" \o "Yottabyte" �yottabyte�� YB� 1024� � Entretanto, como este padrão não foi adotado pelo mercado, continuaremos usando apenas os nomes tradicionais (kilo, mega, giga, tera, etc) sempre em base binária . / �PAGE � �PAGE �1�