organizacao_computadores

76
Organização de Computadores

Upload: rildexter1

Post on 07-Nov-2015

215 views

Category:

Documents


0 download

DESCRIPTION

apostila computação

TRANSCRIPT

  • Organizao de Computadores

  • Professor conteudista: Renato Lellis

  • SumrioOrganizao de ComputadoresUnidade I

    1 INTRODUO .......................................................................................................................................................11.1 O que um computador? ....................................................................................................................11.2 Mquinas multinveis ............................................................................................................................2

    2 HISTRIA DA ARQUITETURA DE COMPUTADORES ...............................................................................62.1 Gerao zero computadores mecnicos (1642 1945) ......................................................62.2 Primeira gerao vlvulas (1945 1955) ............................................................................... 102.3 Segunda gerao transistores (1955 1965) ....................................................................... 132.4 Terceira gerao circuitos integrados (1965 1980) ........................................................ 152.5 Quarta gerao integrao em larga escala (1980 2000) ............................................ 162.6 Quinta gerao computao ubqua (2000 em diante) ................................................... 20

    Unidade II

    3 AFINAL DE CONTAS, QUEM INVENTOU O COMPUTADOR? ............................................................. 234 OS RUMOS DA EVOLUO DO COMPUTADOR ................................................................................... 235 A ORGANIZAO DO COMPUTADOR ...................................................................................................... 26

    5.1 Processadores ......................................................................................................................................... 265.1.1 Princpios de projeto para computadores modernos ............................................................... 295.1.2 Paralelismo ................................................................................................................................................ 31

    5.2 Memria primria ................................................................................................................................ 365.2.1 Bits, bytes e terabytes ........................................................................................................................... 365.2.2 Endereos de memria ......................................................................................................................... 375.2.3 Memria cache ........................................................................................................................................ 38

    5.3 Memria secundria ........................................................................................................................... 395.3.1 Hierarquias de memria ....................................................................................................................... 405.3.2 Discos magnticos .................................................................................................................................. 415.3.3 Demais dispositivos ................................................................................................................................ 435.3.4 Conjuntos de caracteres ...................................................................................................................... 43

    Unidade III

    6 CIRCUITOS DIGITAIS ....................................................................................................................................... 476.1 Sistemas de numerao ..................................................................................................................... 476.2 Sistema de nmeros-base ................................................................................................................ 486.3 Por que binrio? .................................................................................................................................... 526.4 Converso entre bases ........................................................................................................................ 526.5 Soma e subtrao em bases no decimais ................................................................................ 55

  • Unidade IV

    7 LGEBRA BOOLEANA E PORTAS LGICAS ............................................................................................ 587.1 Funo E ................................................................................................................................................... 597.2 Funo OU ............................................................................................................................................... 607.3 Funo NO ............................................................................................................................................ 607.4 Funes derivadas ................................................................................................................................ 61

    7.4.1 NAND ........................................................................................................................................................... 617.4.2 NOR .............................................................................................................................................................. 627.4.3 XOR ............................................................................................................................................................... 63

    7.5 Precedncia de funes ..................................................................................................................... 647.6 Equivalncia entre expresses e circuitos .................................................................................. 647.7 Exemplos de circuitos bsicos ......................................................................................................... 65

    7.7.1 Comparador .............................................................................................................................................. 657.7.2 Semissomador .......................................................................................................................................... 667.7.3 Somador completo ................................................................................................................................. 677.7.4 Relgios ...................................................................................................................................................... 69

  • 1ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Unidade I

    5

    10

    15

    1 INTRODUO

    1.1 O que um computador?

    Para estudarmos como um computador funciona, e como os seus vrios componentes so organizados para possibilitar esse funcionamento, deveramos primeiramente denir o que um computador, o que no uma tarefa simples.

    Segundo o Dicionrio Houaiss1, a denio de computador :

    computador

    Datao 1789 cf. MS1Acepessubstantivo masculino

    1 O que computa; calculador, calculista;

    2 Rubrica: informtica.

    Mquina destinada ao processamento de dados; dispositivo capaz de obedecer a instrues que visam produzir certas transformaes nos dados, com o objetivo de alcanar um m determinado.

    claro que quem utiliza um computador, seja ele um computador domstico, parte de um grande ambiente corporativo ou mesmo um telefone celular, sabe que tal denio nem de

    1Disponvel em . Consultado em 30/11/2008.

  • 2Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    longe corresponde capacidade que um desses dispositivos possui.

    O computador (de todos os portes imaginveis) hoje desempenha as funes mais diversas e se tornou parte do cotidiano de boa parte da populao (mesmo que ela no saiba disso).

    O problema que, em seu interior, o computador uma mquina que consegue fazer muito poucas coisas. Somar e comparar nmeros, mover valores de uma rea de memria para outra e no muito mais que isso o que o computador realmente consegue fazer, no importa o quo miraculoso ele nos parea quando olhamos do lado de fora.

    Chega a ser paradoxal que um equipamento limitado como esse consiga ser capaz de ser usado em tantas aplicaes. Mas no existe mgica aqui, apenas um longo e constante processo evolucionrio que comeou no sculo XVII e ainda est longe de acabar.

    Explicar parte dos processos que tornam isso possvel objetivo desta apostila.

    1.2 Mquinas multinveis

    Um computador uma mquina que pode realizar um determinado conjunto de funes. As pessoas que utilizam os computadores desejam fazer certas atividades que no correspondem diretamente a esse conjunto de funes.

    Para que seja possvel que os usurios consigam executar as funes de que necessitam, necessrio que haja um processo de traduo.

    Os primeiros computadores que foram construdos s podiam ser utilizados pelos engenheiros que os construram.

    5

    10

    15

    20

    25

  • 3ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Era necessrio saber exatamente como os circuitos eletrnicos (ou eletromecnicos) se interligavam para que se conseguisse realizar as atividades mais simples.

    medida que surgiu a necessidade de expandir a utilizao dos computadores, foi necessrio criar mecanismos que possibilitassem aos usurios realizar atividades sem que fosse necessrio um conhecimento profundo da arquitetura desses mecanismos.

    Imaginemos que o computador possa realizar uma quantidade limitada de instrues ou comandos. Chamemos esse conjunto de linguagem de mquina.

    Traduo Linguagem de Alto Nvel

    Linguagem de Mquina

    Figura 1 Traduo entre os nveis de um computador

    A linguagem que os usurios utilizam no pode se limitar linguagem de mquina, ela precisa se aproximar da linguagem humana para atender problemas do mundo real. Chamemos esta segunda linguagem de linguagem de alto nvel. Para que possa haver uma correspondncia entre as duas linguagens, necessrio que o segundo conjunto seja traduzido para o conjunto inicial.

    Esse processo ocorre diversas vezes dentro de um computador. A histria da evoluo dos computadores um processo de adio de nveis de traduo. Se os primeiros computadores s podiam ser utilizados pelos engenheiros que os construram, os computadores atuais podem ser utilizados por pessoas com um conhecimento tcnico mnimo, se tanto. Isso s possvel porque as necessidades desses usurios so submetidas a vrios nveis de traduo at chegar a uma

    5

    10

    15

    20

    25

  • 4Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    instruo que o computador consiga efetivamente executar por meio de impulsos eltricos.

    Esse processo de evoluo nos levou ao computador contemporneo, que possui diversos nveis, por isso o denominamos mquina multinveis. A interao entre cada um dos nveis corresponde a um tipo de traduo.

    O nvel 0, chamado lgico digital, corresponde aos circuitos eletrnicos que efetivamente realizam o processamento de informaes na forma de impulsos eltricos dentro do processador.

    O nvel 1 corresponde microarquitetura do processador, que so elementos internos do processador: registradores (que so a memria de alta velocidade interna do processador) e a ULA unidade lgica aritmtica (que o elemento do processador que realiza operaes aritmticas simples). Esses registradores so conectados ULA para formar um caminho de dados, atravs do qual os dados transitam para dentro e para fora do processador. Uma operao normal do caminho de dados consiste em selecionar o contedo de um ou dois registradores, submet-lo ULA e movimentar o resultado para outro registrador.

    O nvel 2 corresponde ao conjunto de instrues suportado pelo processador. O conjunto de instrues corresponde aos comandos que o processador pode receber de fontes externas e determinado pelo projeto do processador, e normalmente no pode ser alterado. O conjunto de instrues tambm comum entre os processadores de uma mesma famlia, permitindo assim a interoperabilidade de programas e sistemas operacionais dentro dessa famlia.

    O nvel 3 corresponde ao sistema operacional. O SO fornece uma plataforma que possibilita que os programas no tenham que interagir diretamente com o hardware. Alis, isto mandatrio

    5

    10

    15

    20

    25

    30

  • 5ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    em se tratando de sistemas multitarefa. No possvel existir um sistema multitarefa sem que exista um elemento arbitrando o acesso ao hardware essa funo do sistema operacional. Em sistemas computacionais modernos, todo acesso ao hardware feito por meio do sistema operacional.

    O nvel 4 corresponde linguagem de montagem. A linguagem de montagem, ou assembly, uma linguagem dependente da plataforma, ou seja, processadores diferentes ou de famlias diferentes possuem linguagens de montagem diferentes incompatveis entre si. Um programa escrito em linguagem de montagem s pode ser usado em uma determinada plataforma ou famlia de processadores.

    O nvel 5 corresponde linguagem orientada a problemas, ou linguagem de alto nvel. Esse tipo de linguagem independe da plataforma em que for usada; ela deve ser traduzida (compilada) para um formato que o sistema operacional consiga interpretar e enviar para os nveis mais baixos da mquina multinveis.

    Traduo(compilao)

    Interpretao

    Linguagem orientada a problemas

    Linguagem de montagem

    Sistema Operacional

    Conjunto de instrues

    Microarquiterura

    Nvel lgico digital

    Traduo(montagem)

    Interpretao

    Hardware

    Figura 2 Traduo entre os nveis de um computador contemporneo

    5

    10

    15

  • 6Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    2 HISTRIA DA ARQUITETURA DE COMPUTADORES2

    Para entender como um computador funciona, precisamos compreender como se deu sua evoluo, pois um dispositivo sempre incorpora ao menos parte da tecnologia dos seus predecessores. Os computadores que usamos hoje incorporam em seu design decises que foram tomadas dcadas atrs.

    2.1 Gerao zero computadores mecnicos (1642 1945)

    As tentativas de criar mecanismos para processar dados remontam ao sculo XVII. Foi naquela poca que os primeiros mecanismos capazes de realizar clculos de forma automatizada surgiram.

    Os equipamentos da poca eram totalmente mecnicos, j que os dispositivos eletromecnicos surgiriam apenas no sculo XX.

    O primeiro dispositivo desse tipo foi construdo por Blaise Pascal (1623 1662) em 1642 para auxiliar seu pai, que era coletor de impostos. Pascal tinha apenas 19 anos. Esse dispositivo cou conhecido como Pascalina.

    Figura 3 Uma das Pascalinas construdas por Blaise Pascal

    Essa primeira mquina criada por Pascal podia executar apenas somas e subtraes. Trinta anos depois, Gottfried Wilhelm

    5

    10

    15

    2 Todas as fotograas utilizadas foram tiradas de .

  • 7ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    von Leibniz criou um dispositivo que podia executar as quatro operaes bsicas.

    Figura 4 Staffelwalze, uma das calculadoras mecnicas projetadas por Leibniz

    Esses dispositivos foram as primeiras tentativas de automatizar processos manuais, neste caso, clculos. Mas eles se limitavam a isso.

    A evoluo desses equipamentos foi proposta apenas em 1822, por Charles Babbage (1792 1871).

    O novo dispositivo foi chamado de mquina diferencial e, ao contrrio de seus predecessores, que apenas realizavam operaes simples, ele foi desenhado para executar um algoritmo. O objetivo dessa mquina e seu algoritmo era produzir tabelas teis para a navegao naval, assunto estratgico para a poca. A mquina diferencial podia executar apenas esse algoritmo.

    Figura 5 Mquina diferencial construda pelo Museu de Londres a partir de notas de Babbage

    5

    10

  • 8Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Apesar da aceitao de suas ideias e do nanciamento do governo britnico, Babbage tinha planos mais ambiciosos. Ele vislumbrou um dispositivo programvel. Esta nova mquina foi batizada de mquina analtica, e continha vrios conceitos presentes ainda hoje nos computadores modernos, como um dispositivo de entrada (uma leitora de cartes perfurados), dispositivos de sada (impressora e perfuradora de cartes), memria (capaz de armazenar mil nmeros) e uma unidade aritmtica (chamada de moinho).

    Babbage descreveu essa mquina pela primeira vez em 1837. Sob vrios aspectos, a mquina diferencial antecipou o computador moderno em cem anos.

    No sculo XIX, diversas mquinas diferenciais foram construdas com base nas teorias e documentos de Babbage, mas ele prprio nunca chegou a produzi-las, nem a mquina analtica.

    As suas ideias, entretanto, inuenciariam diversos pioneiros da computao. Ele correspondeu-se com a condessa Ada Lovelace, que se interessou por suas propostas para a mquina analtica e chegou a desenvolver um mtodo de calcular nmeros de Bernoulli utilizando a mquina analtica. Esse considerado o primeiro programa de computador da histria e a condessa Ada Lovelace, a primeira programadora. A linguagem ADA foi batizada em sua homenagem.

    O problema que Babbage enfrentou que a tecnologia do sculo XIX no podia fornecer a preciso que seria necessria para a construo de um mecanismo to complexo e ambicioso quanto a mquina analtica. Mesmo nunca tendo concretizado sua viso, Charles Babbage considerado o av do computador, e os equipamentos atuais ainda incorporam conceitos que ele anteviu mais de cem anos atrs.

    O passo seguinte no caminho do computador seria dado apenas na dcada de 1930, quando em vrios pontos comearam

    5

    10

    15

    20

    25

    30

  • 9ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    a surgir dispositivos calculadores eletromecnicos utilizando rels.

    Na Alemanha, Konrad Zuse construiu uma srie de equipamentos para executar clculos usando rels. Todos os seus equipamentos foram destrudos durante a guerra, o que impediu que seus designs tivessem inuncias nos desenvolvimentos subsequentes.

    Pouco tempo depois de Zuse, na Universidade de Iowa, nos Estados Unidos, John Atanasoff projetou um equipamento para fazer clculos que utilizava aritmtica binria e capacitores como memria de armazenamento. Da mesma forma que outros predecessores, o projeto de Atanasoff nunca se tornou operacional.

    Simultaneamente, tambm nos Estados Unidos, George Stibbitz construiu um equipamento para fazer clculos que realmente funcionava, apesar de ser menos sosticado que o projeto de Atanasoff. Stibbitz fez uma grande demonstrao de sua criao em 1940. Entre os que assistiram a essa demonstrao estava John Mauchley, que depois daria suas prprias contribuies histria do computador.

    Zuse, Stibbitz e Atanasoff estavam tentando criar mquinas calculadoras automticas. Apesar de compartilharem componentes com os computadores, elas tinham um propsito nico: realizar clculos. Nenhum desses projetos tencionava ser o que Babbage tinha almejado no sculo XIX: um equipamento programvel.

    O prximo passo neste caminho foi dado tambm nos Estados Unidos em 1944: Howard Aiken construiu o Harvard Mark I, o primeiro computador digital da histria. Ele era capaz de realizar clculos. 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

    5

    10

    15

    20

    25

    30

  • 10

    Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    concludo. A era dos computadores eletromecnicos havia chegado ao fim.

    Comeava a era dos computadores eletrnicos.

    2.2 Primeira gerao vlvulas (1945 1955)

    Os primeiros computadores eletrnicos surgiram na fase nal da Segunda Guerra Mundial.

    O interesse dos militares por computadores se dava em dois campos especcos: quebra de cdigos criptogrcos e clculos de artilharia.

    Para este segundo propsito John Mauchley props a construo de uma mquina para o Exrcito Americano, o que viria a se tornar o ENIAC.

    Durante muito tempo, o ENIAC (Electronic Numerical Integrator and Computer) foi considerado o primeiro computador eletrnico da histria. O seu projeto, que foi patrocinado pelas foras armadas dos Estados Unidos e conduzido por John Mauchley e J. Presper Eckert, iniciou-se em 1943. O ENIAC entrou em operao em 1946, tarde demais para seu propsito blico original.

    Figura 6 O ENIAC em operao na dcada de 1940

    5

    10

    15

  • 11

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Entretanto, dcadas depois do nal da guerra o trabalho de um grupo de cientistas britnico veio a pblico. No auge da Segunda Grande Guerra, a Alemanha nazista utilizava um equipamento eletromecnico para codicar mensagens de forma muito mais eficiente do que os mtodos manuais: trata-se da mquina Enigma.

    Figura 7 Um exemplar da mquina Enigma

    Para quebrar os cdigos gerados por esse dispositivo, o governo britnico patrocinou a construo do que foi de fato o primeiro computador eletrnico, batizado de Colossus. Este dispositivo entrou em operao em 1943, e o famoso matemtico Alan Turing, criador de muitos dos conceitos do computador moderno, participou do projeto. Infelizmente, todo o projeto foi mantido em segredo pelo governo britnico e, por esse motivo, o trabalho pioneiro de Turing e seus colegas no pde ser compartilhado e no teve inuncia nas geraes posteriores de computadores.

    O ENIAC, por outro lado, teve descendentes diretos. O conhecimento do projeto de Mauchley e Eckert foi compartilhado com vrios colegas cientistas que criaram seus prprios computadores. Os prprios Mauchley e Eckert deixaram a Universidade da Pensilvnia, onde lecionavam, para fundar uma companhia, a Eckert-Mauchley Computer Corporation.

    5

    10

    15

    20

  • 12

    Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Hoje, aps uma srie de fuses e aquisies, essa companhia parte da Unisys Corporation.

    Naquela poca de interesse orescente, um dos cientistas envolvidos no projeto do ENIAC deu uma contribuio fundamental para a evoluo 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 tambm apontou a vantagem de usar os dados armazenados em forma binria em vez de decimal (como o ENIAC fazia). O projeto bsico que ele concebeu na dcada de 1940 foi utilizado na construo da mquina IAS. Essa arquitetura foi batizada de mquina de Von Neumann e at hoje a estrutura bsica de qualquer computador comercial.

    Memria

    Unidade de controle

    Unidade lgicoaritmtica

    Acumulador

    Entrada Sada

    Figura 8 A estrutura da mquina de Von Neumann

    Enquanto tudo isso acontecia, a IBM lentamente despertava para o mercado de computadores comerciais. Apesar de ter parcialmente nanciado o projeto de Howard Aiken, a IBM no estava muito interessada em computadores at que lanou o IBM 701, em 1953. Ele era um computador voltado para aplicaes cientcas, e em cerca de dez anos esse mercado seria dominado pela IBM.

    5

    10

    15

    20

  • 13

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    2.3 Segunda gerao transistores (1955 1965)

    O transistor foi inventado por John Bardeen, Walter Brattain e William Shockley em 1948, nos laboratrios Bell.

    Em pouco tempo o transistor mudou a face da computao (e de toda a incipiente indstria de eletrnica de consumo), pois apresentava grandes vantagens em relao vlvula: era menor e tinha vida til innitamente maior. Dez anos aps a inveno do transistor, os computadores com vlvulas estavam obsoletos.

    O primeiro computador a usufruir da nova tecnologia foi o TX-0 (Transistored Experimental Computer 0), construdo no MIT (Massachusetts Institute of Technology). O objetivo desse projeto era servir como dispositivo de testes para um equipamento mais sosticado, o TX-2.

    O TX-2 no foi um grande sucesso, mas um dos engenheiros 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 nanciamento para seu produto, pois os investidores tinham srias dvidas sobre a viabilidade do mercado de computadores comerciais.

    O PDP-1 foi nalmente lanado em 1961. Ele tinha cerca de metade da capacidade de processamento do IBM 7090, o computador cientco mais rpido do mundo na poca, mas custava 120 mil dlares, enquanto o 7090 custava milhes. A DEC vendeu dezenas de PDP-1 e criou o mercado de minicomputadores.

    5

    10

    15

    20

    25

  • 14

    Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Alguns anos mais tarde, a DEC lanou uma nova mquina, o PDP-8. Alm de ser mais barata que o PDP-1 (16 mil dlares), ela trouxe uma inovao importante: o uso de um barramento. Essa arquitetura representou uma mudana importante em relao da mquina IAS, que era centrada na memria e usada em computadores at hoje.

    Omnibus

    CPU MemriaTerminal

    de Console

    E/S de ta de papel

    Outras E/S

    Figura 9 Barramento Omnibus do PDP-8

    Enquanto a DEC se consolidava no mercado de minicomputadores, a IBM produzia equipamentos de alto desempenho para aplicaes cientcas, como o 7090, j citado, e sua verso 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 aplicaes cientcas, mas era bastante adequado para aplicaes comerciais, sem mencionar que era muito mais barato.

    Em 1964, uma pequena companhia lanou um equipamento voltado para aplicaes cientcas batizado de 6600. O CDC 6600 conseguiu ser mais rpido que o IBM 7094 e qualquer outro computador da poca, principalmente por introduzir paralelismo em alta escala, alm 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 produo de computadores (depois da CDC, ele criou sua prpria empresa, a Cray Computing) cada vez mais rpidos, criando o mercado de supercomputadores no processo.

    5

    10

    15

    20

    25

  • 15

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    2.4 Terceira gerao circuitos integrados (1965 1980)

    A inveno do circuito integrado de silcio por Robert Noyce, em 1958, permitiu que dezenas de transistores fossem colocados em uma nica pastilha (ou chip). Isso conduziu a produo de computadores a um novo patamar, totalmente impensvel nas geraes anteriores. Agora eles poderiam ser menores, mais rpidos e mais baratos do que jamais havia sido possvel.

    Mas uma das maiores inovaes daquele perodo no dependia de desenvolvimento de novas tecnologias.

    A IBM tinha na poca dois equipamentos de sucesso, os j citados 1401 e 7094. O problema que eles eram totalmente incompatveis entre si. Um cliente que possusse os dois equipamentos teria que ter duas equipes distintas para fazer uso deles.

    Quando chegou a hora de lanar os substitutos desses equipamentos, a IBM deu um passo revolucionrio, lanando vrios computadores em uma mesma linha, chamada System/360.

    O grande diferencial da linha 360 que vrios modelos de vrios portes compartilhavam uma mesma arquitetura, o que permitia que um mesmo programa fosse utilizado nos vrios modelos da mesma famlia. Hoje isso parece bvio, mas durante os anos 1950 o foco do desenvolvimento sempre foi o hardware. A famlia 360 foi a primeira vez em que se pensou em interoperabilidade e compatibilidade.

    Outra novidade importante na famlia 360 era o conceito de multiprogramao. Esse conceito permitia que o computador mantivesse vrios programas em memria e, enquanto um programa estivesse esperando uma operao de E/S, ele pudesse executar outro. Este conceito simples, uma das primeiras

    5

    10

    15

    20

    25

  • 16

    Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    implementaes de multitarefa, aumenta a utilizao da CPU. E tambm torna mais importante uma gura at ento desconhecida: o sistema operacional. O conceito de multitarefa s pode existir com a presena de um sistema operacional.

    O mercado de minicomputadores tambm evoluiu, e o lanamento mais signicativo foi o PDP-11 da DEC, que teve enorme sucesso, em especial em universidades.

    2.5 Quarta gerao integrao em larga escala (1980 2000)

    Na dcada de 1980, a VLSI (Very Large Scale Integration Integrao em Escala Muito Grande) possibilitou colocar dezenas de milhares, depois centenas de milhares e por m milhes de transistores em um nico chip. Esse desenvolvimento levou a computadores menores e mais rpidos. Antes do PDP-1, os computadores eram to grandes e caros que universidades e empresas precisavam ter departamentos dedicados sua operao. Com a chegada do minicomputador, cada departamento poderia ter seu prprio computador.

    No incio dos anos 1980, o processo de barateamento e miniaturizao dos computadores chegou a tal ponto que um indivduo podia possuir seu prprio computador. Era o incio da era do computador pessoal, o microcomputador.

    Os primeiros microcomputadores no 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 eletrnica ou computao. Um dos primeiros foi o Altair 8800, mostrado na gura seguinte.

    Figura 10 Altair 8800, um dos primeiros microcomputadores comerciais

    5

    10

    15

    20

    25

  • 17

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Esses primeiros computadores no tinham muita aplicao prtica, pois, alm de montar seus computadores, os usurios tinham que desenvolver seus prprios programas.

    Apesar das limitaes desses equipamentos, diversas empresas investiram no nascente mercado de computao pessoal. Uma das mais bem-sucedidas foi a Apple, fundada por Steve Jobs e Steve Wozniak, cujo modelo Apple II (lanado em 1977) foi um sucesso comercial. O sucesso do Apple II foi to signicativo na poca de seu lanamento que a Apple se tornou 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 domstico, os grandes fabricantes, como a IBM, estavam hesitantes quanto a investir ou no nesse nicho.

    A IBM decidiu por m entrar no mercado do computador pessoal, mas, ao contrrio do que era seu hbito, decidiu utilizar componentes de mercado, em vez de desenvolver todo o projeto.

    Como microprocessador foi escolhido o 8088 da Intel, e o IBM PC foi lanado em 1981. Um dos grandes erros da histria da

    5

    10

    15

    20

  • 18

    Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    IBM foi cometido nessa poca. Ela no resguardou seu produto por patentes; muito pelo contrrio, ela divulgou publicamente os dados do projeto de seu microcomputador.

    O resultado foi o surgimento de toda uma indstria de PC Clones, ou computadores-padro IBM PC, da qual uma pequena parte apenas era fabricada e vendida pela IBM.

    Figura 12 Um dos primeiros IBM PC

    A IBM tambm se associou Microsoft para o desenvolvimento do sistema operacional de seu microcomputador. Outro grande erro da IBM foi no enxergar o potencial do software para essa plataforma. Na verdade, os executivos da IBM estavam interessados na venda de hardware. Como consequncia, o MS-DOS da Microsoft se tornou o sistema operacional padro para os computadores padro IBM PC, o que ajudou a Microsoft a ser tornar uma das empresas mais ricas do mundo nos anos 1990.

    A arquitetura desenvolvida pela IBM se tornou o padro para microcomputadores de uso comercial, e a maioria das empresas que fabricava microcomputadores com padres distintos (Commodore, Atari, Sinclair, entre outras) desapareceu ou abandonou esse nicho de mercado.

    A Apple conseguiu sobreviver, em parte por ter sido a primeira a introduzir uma interface grca utilizvel. Essa caracterstica foi introduzida inicialmente no Apple Lisa, mas encontrou sucesso no Apple Macintosh.

    5

    10

    15

    20

  • 19

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Figura 13 Apple Lisa

    O Apple Lisa fracassou devido ao alto preo, mas deixou claras as vantagens do uso de uma GUI (Graphical User Interface Interface Grca com o Usurio). Esse tipo de interface usa um dispositivo apontador (normalmente um mouse) e elementos grcos como cones e menus como meio principal para interao com o usurio. As outras geraes usavam principalmente comandos em shells ou prompts de comando, o que requeria um treinamento mais aprofundado para os usurios de computadores.

    Com a introduo da interface grca e o aumento da facilidade de uso, a popularizao dos microcomputadores se acelerou ainda mais.

    Figura 14 O Apple Macintosh original

    5

    10

  • 20

    Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    2.6 Quinta gerao computao ubqua (2000 em diante)

    Ao contrrio das geraes anteriores, atualmente os equipamentos com capacidade de processamento no so mais necessariamente computadores. Desde o nal dos anos 1990, diversos equipamentos passaram a possuir capacidade de processamento, sem que necessariamente fossem computadores completos. Palmtops, telefones celulares e at mesmo automveis e certos refrigeradores hoje possuem alguma capacidade de processamento, podendo at mesmo rivalizar com computadores de geraes anteriores.

    Como exemplo dessa evoluo, podemos tomar o AGC (Apollo Guidance Computer), computador embarcado usado pela misso Apollo, responsvel por levar os primeiros astronautas para a lua. Esse equipamento tinha menos de 64 KB de memria e 2 Mhz de velocidade de clock se compararmos esse equipamento (que era tecnologia de ponta no nal do anos 1960) com um computador desktop padro de mercado atual, que tem 1 ou 2 Gigabytes de memria e 2 Ghz de velocidade de clock, chegaremos concluso que o segundo cerca de mil vezes mais rpido e possui mais de 32.000 vezes mais memria, sem mencionar a complexidade do equipamento. Isso pode servir como parmetro para a velocidade de evoluo da tecnologia de processamento de dados nas ltimas trs dcadas.

    Figura 15 Unidade de interface com o usurio do AGC

    5

    10

    15

    20

  • 21

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Mas, alm do barateamento e aumento de capacidade de elementos como dispositivos de armazenamento (discos e afins) e memria, o desenvolvimento de vrias tecnologias, como redes locais, Bluetooth e WiFi, e a popularizao da Internet permitiram o desenvolvimento de equipamentos que se apoiem em redes e recursos localizados em outros computadores para atender s necessidades de seus usurios.

    Os computadores das geraes anteriores precisavam manter suas massas de dados acessveis localmente e contar apenas com sua capacidade de processamento. Os computadores de quinta gerao podem contar com a capacidade de armazenamento e de processamento de outros computadores atravs de redes de diversos tipos.

    Figura 16 Exemplo de smartphone: Motorola Q1

    Esse tipo de capacidade pode criar ambientes to complexos que pode se tornar difcil no futuro determinar onde comea e termina o computador e onde esto os dados que utilizamos, pois teremos nossa volta diversos dispositivos interagindo entre si para atender s nossas necessidades.

    5

    10

    15

    20

  • 22

    Unidade I

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Quando esse tipo de ambiente se tornar comum, talvez no tenhamos uma sexta gerao de computadores, mas algo totalmente diferente.

  • 23

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Unidade II

    5

    10

    15

    20

    3 AFINAL DE CONTAS, QUEM INVENTOU O COMPUTADOR?

    Conforme vimos no histrico, a inveno do computador no se deu em apenas um passo.

    No caso de algumas tecnologias, como o avio, somos tentados a eleger o pai desse invento, mas no caso do computador no desponta uma gura com essa caracterstica. Alguns dos principais visionrios nunca conseguiram transformar suas vises em equipamentos funcionais. Em outros casos, esses equipamentos nunca chegaram a pblico.

    Por outro lado, os construtores de computadores que se tornaram operacionais e chegaram a pblico no podem descartar a inuncia de seus predecessores. Howard Aiken, por exemplo, sempre armou ter se baseado no trabalho de Babbage.

    A concluso a que podemos chegar que o computador no tem um pai ou me, mas fruto de diversos passos, alguns maiores, outros menores, mas cada um com sua importncia na histria.

    4 OS RUMOS DA EVOLUO DO COMPUTADOR

    Com base no histrico visto na seo anterior, podemos determinar algumas dimenses na evoluo do computador. Desde os primeiros dispositivos mecnicos do sculo XVII at os computadores de mo atuais, podemos denir algumas

  • 24

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    linhas sobre as quais se deu (e ainda se d) a evoluo dos computadores.

    Miniaturizao

    Os primeiros computadores eletrnicos, como o ENIAC, ocupavam andares inteiros e pesavam toneladas. Hoje a capacidade de processamento daqueles equipamentos largamente superada por dispositivos de bolso.

    Na dcada de 1980, todas as empresas tinham um CPD (centro de processamento de dados), onde residiam todos os seus computadores e perifricos. Hoje uma tarefa das mais trabalhosas em uma grande empresa localizar onde esto todos os seus computadores.

    A miniaturizao tornou possvel o minicomputador, depois o computador pessoal, a computao mvel e a eletrnica embarcada.

    Sem o extremo progresso que a miniaturizao alcanou, o mundo seria muito diferente hoje, pois os computadores estariam connados nos CPDs, em vez de estarem nossa volta em toda parte.

    Barateamento

    Os primeiros computadores comerciais custavam milhes de dlares. Hoje um microcomputador bsico acessvel maioria das pessoas.

    O computador j faz parte do cotidiano da maior parte das pessoas, mas de uma forma muito maior do que podemos ver. O barateamento de microprocessadores e ans possibilitou a implantao de dispositivos com capacidade de processamento em carros, elevadores e eletrodomsticos. A eletrnica embarcada, como chamada, fruto direto do barateamento

    5

    10

    15

    20

    25

  • 25

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    de computadores e dispositivos eletrnicos, pois possibilitou a substituio de funes executadas por elementos eltricos ou mecnicos por dispositivos eletrnicos e a incluso de novas funes, que no seriam possveis sem esses dispositivos.

    Facilidade de uso

    Os primeiros computadores s podiam ser utilizados pelos engenheiros que os construram, pois, para obter algum resultado, era necessrio conhecer detalhes precisos sobre a interconexo de seus componentes.

    Com a popularizao da computao comercial, surgiu a necessidade de uma utilizao mais diversicada dos computadores. Para atender a essa demanda surgiram as primeiras linguagens de programao. Um programador podia extrair resultados do computador sem ter necessariamente um conhecimento detalhado de seu funcionamento. Este primeiro degrau de popularizao tambm foi um primeiro degrau na facilidade de uso do computador.

    Outros degraus vieram depois, sendo que um dos mais recentes foi a introduo da interface grca, que dispensou os usurios da necessidade de conhecer ou decorar comandos para utilizar o computador.

    Talvez estejamos experimentando mais um degrau nesta evoluo atualmente, que a migrao de toda a interao entre o usurio e o computador para o browser. Dessa forma, atualmente no temos apenas todo um universo de usurios que no tm conhecimento do funcionamento interno do computador, como tambm eles no precisam sequer ter conhecimento de que o computador existe. Para esses usurios, a interao se d com o navegador, independentemente de onde ele est sendo executado (computador, smartphone ou o que quer que seja).

    5

    10

    15

    20

    25

    30

  • 26

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Esse possivelmente o primeiro passo no caminho do computador invisvel, ou computao ubqua.

    5 A ORGANIZAO DO COMPUTADOR

    Um computador digital consiste em um sistema interconectado de processadores, memrias e dispositivos de entrada e sada. Essas so as trs categorias bsicas de componentes de um computador moderno. Cada elemento de um computador qualquer se encaixar em uma dessas classicaes. Vamos analisar em seguida cada uma delas.

    5.1 Processadores

    A unidade central de processamento (UCP ou CPU Central Processing Unit) o centro do computador.

    A execuo de um programa normalmente consiste em trazer um programa de um dispositivo de armazenamento (disco, por exemplo) para a memria principal. Da memria principal, o programa transferido para a CPU, uma instruo por vez. Dentro da CPU que o verdadeiro processamento ocorre, onde as instrues sero interpretadas e executadas.

    Como podemos ver na gura seguinte, todos esses elementos se comunicam por meio de um barramento.

    Registradores

    Memria principal

    Unidade de controle

    Unidade lgica e

    aritmtica (ULA)

    Barramento

    Disco Impressora

    Dispositivos de E/S

    Figura 17 A organizao de um computador simples

    5

    10

    15

  • 27

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Como podemos ver tambm na gura, internamente a CPU composta por vrias partes distintas. A unidade de controle responsvel por buscar instrues na memria e determinar seu tipo. A unidade lgica e aritmtica executa operaes matemticas simples como adio e E booleano.

    A CPU tambm contm uma pequena quantidade de memria de alta velocidade, que utilizada na execuo de instrues. Essa memria organizada em registradores. Cada registrador tem um tamanho xo (comprimento em bits) e um propsito especco, como o contador de programa (PC program counter). A funo do PC identicar qual a prxima instruo a ser trazida para a CPU do programa em execuo.

    A organizao da CPU detalhada na gura abaixo. Os registradores e a ULA formam um caminho de dados.

    ULA

    A B

    A + B

    A + B

    A

    B

    Registradores

    Registradores de entrada da ULA

    Barramento de entrada da ULA

    Registrador de sada da ULA

    Figura 18 Um exemplo de caminho de dados

    5

    10

  • 28

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Os dados so movimentados dos registradores para um ou dois registradores que alimentam a ULA e deles para a prpria ULA atravs de um barramento que interconecta esses elementos.

    A ULA realizar as operaes matemticas mais bsicas, como soma e comparao, e mover o resultado para um registrador de sada. Posteriormente, o contedo desse registrador ser movido para outro registrador e de l para a memria principal.

    Neste ponto, podemos estabelecer a distino entre dois tipos diferentes de instrues: instrues registrador-registrador e instrues registrador-memria. As primeiras dependem apenas dos dados que esto armazenados na CPU, e as segundas precisam buscar dados da memria principal, pelo barramento.

    O processo de submeter dois valores ULA e obter um resultado chamado de ciclo do caminho de dados. Esse ciclo o ncleo da maioria das CPUs, pois determina o que ela pode fazer. Quanto mais rpido a CPU conseguir executar esse ciclo, mais rpido se dar o processamento.

    Alm do ciclo do caminho de dados, interno CPU, temos o ciclo externo, que determina como a CPU interage com os dados que esto fora dela, na memria principal.

    A CPU executa cada instruo em uma srie de pequenos passos:

    1- Trazer a prxima instruo da memria at o registrador;

    2- Alterar o contador de programa para indicar a prxima instruo;

    3- Determinar o tipo da instruo;

    5

    10

    15

    20

    25

  • 29

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    4- Se a instruo necessitar de uma palavra da memria, determinar onde essa palavra est;

    5- Trazer a palavra para dentro de um registrador da CPU, se necessrio;

    6- Executar a instruo;

    7- Voltar etapa 1 para iniciar a execuo da instruo seguinte.

    Essa sequncia costuma ser denominada ciclo buscar-decodicar-executar. fundamental para a operao de todos os computadores.

    Lembre-se de que o programa armazenado na memria na forma de instrues que o processador consiga interpretar. Voltando mquina multinveis, o programa escrito originalmente em linguagem de alto nvel sofreu vrios nveis de traduo antes que pudesse ser executado diretamente pelo processador.

    5.1.1 Princpios de projeto para computadores modernos

    Os computadores modernos compartilham uma srie de caractersticas de design que visam maximizar o seu desempenho. No importa se se trata de um computador de mo ou um computador para ns cientcos; sempre se deseja a maior velocidade de processamento possvel.

    claro que estas linhas se aplicam ao estado atual da tecnologia. Atualmente estamos sujeitos a certas limitaes, como velocidade de clock, quantidade de transistores que podem ser embutidos em uma pastilha de silcio e outras.

    Se o cenrio tecnolgico atual se alterar, talvez algum dos pontos a seguir no seja mais aplicado.

    5

    10

    15

    20

    25

  • 30

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Todas as instrues so executadas diretamente pelo hardware

    No passado houve uma tendncia de design de computadores que adicionava uma camada de software entre o hardware e o conjunto de instrues, providenciando um novo nvel de interpretao. Esse tipo de implementao chamado de microcdigo e oferecia algumas vantagens como a possibilidade de incluir ou alterar instrues sem alterar o hardware. Apesar de prover mais exibilidade, esse tipo de design no considerado uma boa prtica. O nvel adicional de traduo acarreta uma perda de desempenho, que no compensa as novas instrues que possam ser adicionadas.

    Em resumo, a recomendao que as instrues correspondam diretamente a elementos de hardware, sem que haja nveis adicionais de traduo.

    Maximize a taxa de execuo de instrues

    Um dos caminhos para se maximizar a performance do computador maximizar a taxa de execues de instrues por segundo.

    Existem vrios meios para se conseguir isso. Um simplesmente aumentar a velocidade de clock do computador. Outra forma fazer com que o processador realize atividades em paralelo. Se um computador puder realizar duas instrues em paralelo, ele ter teoricamente um desempenho duas vezes superior a um computador sem paralelismo.

    Neste design, um cuidado especial deve ser tomado para que no seja alterada a ordem de execuo do programa.

    As instrues devem ser fceis de decodicar

    Conforme visto anteriormente, o ciclo de execuo de instrues tem impacto direto na velocidade de processamento

    5

    10

    15

    20

    25

    30

  • 31

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    do computador como um todo. Se o tempo de traduo de uma instruo for demorado, o tempo de execuo como um todo ser degradado.

    Por esse motivo, uma instruo no deve ter muitas opes de execuo ou formatos alternativos. Se a instruo tiver poucos formatos, o tempo de identicao da instruo ser reduzido e, consequentemente, o tempo de processamento ser otimizado.

    Somente load e store devem referenciar a memria

    O acesso memria principal uma operao demorada, sob a tica da velocidade do processador, claro. Se muitas instrues tiverem acesso direto memria principal, o tempo de execuo das instrues pode se tornar imprevisvel.

    Por esse motivo, recomendado que apenas as instrues load (leitura) e store (gravao) tenham acesso memria.

    Providencie bastantes registradores

    Se o processador no tiver um registrador para armazenar um valor resultante, ele ter que transferir esse valor para a memria principal.

    Conforme j vimos, a transferncia de dados entre o processador e a memria principal um processo mais lento que a movimentao de dados dentro do processador.

    Se o processador no tiver registradores sucientes, o tempo de processamento ser degradado.

    5.1.2 Paralelismo

    Conforme vimos, um dos melhores recursos para otimizar a velocidade de processamento de um computador a capacidade

    5

    10

    15

    20

    25

  • 32

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    de executar vrias atividades ao mesmo tempo. Existem vrias formas de implementar paralelismo, no nvel de instruo e no nvel de processador.

    A seguir descreveremos cinco formas de paralelismo. Pipelining e arquiteturas superescalares so exemplos de paralelismo no nvel de instruo. Computadores matriciais, multiprocessadores e multicomputadores so exemplos de paralelismo no nvel de processador.

    Pipelining

    O processo de decodicao e execuo de instrues, como foi visto anteriormente, um elemento crtico no desempenho do computador.

    Se o processo de identicao e execuo de uma instruo puder ser modularizado, haver um ganho de performance, pois, enquanto uma instruo estiver em execuo, os passos iniciais da prxima instruo podero ser executados.

    Na gura a seguir temos o exemplo de um pipeline de cinco estgios. Cada instruo passar por cinco mdulos antes de ser concluda.

    Observe que, quando a instruo 1 for concluda, as instrues 2, 3, 4 e 5 estaro em execuo.

    Unidade de busca de instruo

    Unidade de decodicao de instruo

    Unidade de busca de operando

    Unidade de execuo de

    instruo

    Unidade de gravao

    S1 S2 S3 S4 S5

    S1:S2:S3:S4:S5:

    1

    1

    21

    2

    321

    3

    4321

    4

    543215

    654326

    765437

    876548

    987659

    TempoFigura 19 Exemplo de um pipeline de cinco estgios

    5

    10

    15

    20

  • 33

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Arquiteturas superescalares

    O princpio da arquitetura superescalar que nem todas as instrues demoram o mesmo tempo para serem executadas.

    Ao executar certas instrues, como as que leem ou gravam na memria principal, o tempo de execuo maior que em instrues que acessem apenas dados dentro do processador (armazenados em registradores).

    Se o mdulo de execuo pudesse executar vrias tarefas em paralelo, o tempo de execuo das instrues mais lentas seria compensado pela execuo de outras instrues.

    Na gura a seguir temos o exemplo de uma arquitetura superescalar com duas ALU, uma unidade para tratar operaes de ponto utuante e um mdulo para ler, e outra para gravar na memria principal.

    Novamente deve ser tomado cuidado neste tipo de design para que as instrues sejam executadas na ordem correta.

    Unidade de busca de instruo

    Unidade de decodicao de instruo

    Unidade de gravao

    S1 S2 S3 S5

    LOAD

    ALU

    STORE

    ALU

    Ponto utuante

    Unidade de busca de operando

    S4

    Figura 20 Exemplo de arquitetura superescalar

    5

    10

    15

  • 34

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Esses dois tipos de paralelismo so implementados dentro do processador, ou seja, no dependem de mais de um processador. Os designs seguintes dependem de vrios processadores.

    Sempre existe demanda por processadores mais rpidos, mas em muitos casos mais simples e barato dispor de vrios processadores que trabalhem harmonicamente do que tentar conseguir um nico processador mais rpido.

    Esse tipo de concluso j chegou at os computadores de uso comercial e domstico, com as conguraes com processadores de dois, trs, quatro ou mais ncleos.

    Computadores matriciais

    Um computador matricial aquele com um grande nmero de processadores que executam o mesmo conjunto de instrues em conjuntos diferentes de dados.

    Esse tipo de arranjo encontra uso em aplicaes cientcas, em que um grande conjunto de dados deve ser submetido a um mesmo conjunto de frmulas. Ele no comum em computadores comerciais, mas muitos supercomputadores (especialmente os fabricados pela Cray Computing) usam um tipo especial de arranjo desse tipo, chamado processador vetorial.

    Multiprocessadores

    Uma forma simples de aumentar a capacidade de processamento de um computador adicionar outro processador. Essa a ideia do multiprocessador, mas isso no to simples.

    Sempre que fazemos algum tipo de paralelismo, deve haver alguma gura fazendo a arbitragem das tarefas que sero executadas por cada processador. Alm disso, no multiprocessador, todas as CPUs compartilham uma mesma quantidade de memria.

    5

    10

    15

    20

    25

  • 35

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    O acesso a essa memria deve ser controlado tambm, para que um processador no tente utilizar um espao que esteja sendo usado por outro. Normalmente essa funo desempenhada pelo sistema operacional.

    Memria CompartilhadaCPUCPUCPUCPU

    BarramentoFigura 21 Multiprocessador com barramento nico

    A maioria dos sistemas operacionais de mercado atualmente tem alguma capacidade de multiprocessamento.

    Multicomputadores

    A diferena entre o multicomputador e o multiprocessador que no multicomputador cada CPU tem uma memria local que s acessada por aquele processador.

    Memria CompartilhadaCPUCPUCPUCPU

    Barramento

    MemriaMemriaMemriaMemria

    Figura 22 Multicomputador com memrias locais

    No multicomputador, pode ou no haver uma quantidade de memria compartilhada entre os processadores.

    Um dos problemas desses tipos de arranjo conectar todos os processadores memria. Por esse motivo, muitos

    5

    10

  • 36

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    projetistas abandonam a ideia da memria compartilhada e criam computadores apenas com processadores com memrias privadas.

    Este tipo de arranjo normalmente chamado de fracamente acoplado, em contraste com o arranjo fortemente acoplado, que o multiprocessador.

    5.2 Memria primria

    A memria a parte do computador onde so armazenados programas e dados. A memria primria tambm chamada de memria principal ou RAM.

    A memria principal utilizada para armazenar os programas em execuo e os dados em uso por esses programas. Ela costumeiramente voltil, ou seja, mantm os dados armazenados apenas enquanto o equipamento est energizado.

    5.2.1 Bits, bytes e terabytes

    A unidade bsica de memria o dgito binrio, ou bit. Um bit consegue armazenar apenas o valor 0 ou 1, e o bloco bsico de informaes.

    Um dos agrupamentos mais comuns de bits o byte, que tem 8 bits de comprimento. Quando se trata de bits e bytes, existe certa confuso quanto aos mltiplos que podem ser usados para expressar essas quantidades.

    Como o bit um valor binrio, os mltiplos so potncias de 2. Um kilobyte, portanto, no so exatamente 1.000 bytes (103), mas 1.024 (210). De modo semelhante, 1 MB contm 1.048.576 bytes (220), e no 1.000.000 de bytes (106).

    Os outros prexos mais comuns, em se tratando de memria, so giga (1 GB equivale a 230 1.073.741.824 bytes) e tera: 1 TB equivale a 240 1.099.511.627.776 bytes.

    5

    10

    15

    20

    25

  • 37

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Na tabela a seguir temos os prexos decimais mais comuns, lembrando que, em se tratando de memria, devemos usar a base binria em vez da base 10.

    Expoente Explcito Prexo Expoente Explcito Prexo

    10-3 0,001 mili 103 1.000 Kilo

    10-6 0,000001 micro 106 1.000.000 Mega

    10-9 0,000000001 nano 109 1.000.000.000 Giga

    10-12 0,000000000001 pico 1012 1.000.000.000.000 Tera

    10-15 0,000000000000001 femto 1015 1.000.000.000.000.000 Peta

    10-18 0,000000000000000001 ato 1018 1.000.000.000.000.000.000 Exa

    10-21 0,000000000000000000001 zepto 1021 1.000.000.000.000.000.000.000 Zeta

    10-24 0,000000000000000000000001 iocto 1024 1.000.000.000.000.000.000.000.000 Iota

    Figura 23 Os principais suxos mtricos

    5.2.2 Endereos de memria

    Para que seja possvel utilizar a memria, deve ser possvel gravar e ler informaes nela. Para que isso seja possvel, a memria deve ser organizada de modo que cada unidade utilizvel de memria tenha um endereo nico.

    Os bits de memria so organizados em clulas, e cada clula tem um endereo nico. O tamanho da clula varia de acordo com o sistema, mas o mais comum que ela tenha 8 bits (1 byte) de comprimento.

    A clula a menor unidade enderevel de memria.

    012345

    16 bits

    01234567

    12 bits

    01234567891011

    8 bitsFigura 24 Trs formas de organizar 96 bits de memria

    5

    10

  • 38

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Outro conceito importante a palavra. Uma palavra o tamanho da unidade de dados que transferida da memria para o processador. Quando falamos que um computador de 32 bits ou 64 bits, estamos nos referindo ao tamanho da palavra desse processador. Ou seja, um computador de 32 bits consegue transmitir 4 bytes entre a memria e o processador, enquanto um computador de 64 bits transmite 8 bytes.

    Esse conceito importante porque, se o processador recebe um valor de 8 bytes da memria, todos os seus registradores tm que ter no mnimo esse comprimento. Isso implica tambm a quantidade de memria que um computador pode suportar.

    Se o registrador dedicado a tratar endereos de memria tem 1 bit de comprimento, o computador s suportar dois endereos ou duas clulas (0 e 1).

    Se esse registrador tiver 32 bits, a quantidade de clulas endereveis ser de 4.294.967.295. Em um computador com clulas de 1 byte, isso equivale a 4 GB de memria.

    Se esse registrador tiver 64 bits, a quantidade de endereos possveis sobe para 18.446.744.073.709.551.615, ou aproximadamente 18,45 exabytes, uma quantidade de memria impensvel nos padres tecnolgicos atuais.

    5.2.3 Memria cache

    A memria cache (e no cach) uma rea de memria intermediria entre o processador e a memria principal. O termo cache amplamente usado para dispositivos que servem como rea intermediria entre um meio mais rpido e outro mais lento (cache de disco, cache de impresso etc.).

    A memria cache, conforme a denio aqui adotada, uma rea de memria localizada entre o barramento e a CPU.

    5

    10

    15

    20

    25

  • 39

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Como j falamos antes, o tempo de acesso memria principal a partir do processador lento, em termos de velocidade de processamento. Ento, se o processador no precisar percorrer o barramento para buscar uma determinada informao, mas uma rea mais prxima, o computador ganha em desempenho.

    Normalmente a memria cache faz parte da mesma embalagem que o prprio processador, mas no faz parte da arquitetura interna dele, onde se localizam os registradores e demais componentes da CPU.

    BarramentoMemria

    Cache

    Memria PrincipalCPU

    Figura 25 A localizao lgica da memria cache

    Existem vrias formas de implementar a memria: cache de processador, cache especco para instrues e dados, cache de mltiplos nveis, mas o conceito bsico o mesmo ao se deparar com a necessidade de uma informao da memria principal, o cache ser consultado antes. Se a informao estiver l, ela j devolvida para o processador (cache hit). Se a informao no estiver no cache (cache miss), ela trazida da memria principal para o cache e de l para o processador.

    A memria cache, assim como a memria principal, tambm voltil.

    5.3 Memria secundria

    Independentemente da quantidade de memria principal que o computador disponha, ela nunca ser suciente para armazenar todos os dados que so necessrios. Para isso usam-se os meios de armazenamento de massa ou memria secundria.

    5

    10

    15

    20

  • 40

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Para se ter uma ideia de ordem de grandeza, um computador comercial comum atualmente possui cerca de 2 GB de memria principal, enquanto um disco rgido comum hoje possui em torno de 160 GB, sendo que j existem discos para uso em computadores comerciais comuns com 1 TB de capacidade.

    5.3.1 Hierarquias de memria

    Um computador possui vrios tipos de memria, desde os registradores at os discos ticos (DVD, Blu-Ray etc.). Existe uma hierarquia entre esses vrios tipos de memria, conforme a gura a seguir.

    Registradores

    Memria Cache

    Memria Primria

    Fita Magntica Meios ticos

    Figura 26 Hierarquia de memria de cinco nveis

    Quanto mais alto vamos na pirmide acima, maior a velocidade da memria, maior o custo por byte e menor a quantidade de memria disponvel no computador.

    Quanto mais para baixo vamos, menor a velocidade, menor o custo e maior a quantidade disponvel em um computador.

    A maior parte dos meios de memria secundria atualmente no voltil, ou seja, mantm os dados gravados at que um usurio os apague.

    Devemos ter cuidado em usar o termo permanente ao tratar de meios de armazenamento, pois nenhum meio de armazenamento atual consegue garantir a preservao dos dados aps um perodo de alguns anos.

    5

    10

    15

    20

  • 41

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    5.3.2 Discos magnticos

    O disco magntico o meio mais comum de armazenamento atualmente. Isso se deve ao fato de que o disco hoje o que fornece melhor relao custo-benefcio.

    Isso talvez mude no futuro prximo, graas popularizao dos discos de estado slido (SSD solid state disk) baseados em memria ash. Hoje j comum encontrarmos esse tipo de dispositivo com cerca de 4 GB a 16 GB. Ainda pouco se comparado aos 160 GB que um disco magntico possui, mas, com o aumento de capacidade e barateamento desse tipo de dispositivo, em breve ele poder superar o disco magntico em popularidade.

    Figura 27 Um disco magntico sem a proteo metlica

    Como podemos ver na imagem acima, o disco magntico composto por discos e braos de acesso, alm de motores responsveis por girar os discos e movimentar o brao.

    O princpio bsico de funcionamento do disco magntico simples: os discos giram em um nico sentido com velocidade constante, e as cabeas de leitura e gravao se aproximam e se afastam do centro do disco, de modo que conseguem atingir toda a sua rea til.

    Essa rea coberta por um material magntico que pode ser sensibilizado pelo campo gerado pela cabea de leitura. Dependendo da direo em que estiverem direcionadas essas partculas, elas podem simbolizar um bit 0 ou um bit 1.

    5

    10

    15

    20

  • 42

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    A rea til do disco dividida em setores. Um setor normalmente corresponde a 512 bytes e separado do prximo setor por uma rea no utilizada chamada lacuna. Como estamos lidando com campos magnticos, nem toda a superfcie pode ser utilizada, pois corremos o risco de afetar outros setores alm do desejado, se eles estiverem muito prximos. Os setores so agrupados em crculos concntricos denominados trilhas.

    Trilha / Cilindro

    Setor

    Cabeas de leitura e gravao

    8 cabeas4 platters

    Figura 28 Representao da geometria do disco magntico

    Alm de trilhas e setores, o outro conceito importante na geometria do disco magntico o cilindro. Um disco magntico normalmente composto por vrios discos, denominados platters.

    Cada superfcie de cada disco possui uma cabea de leitura e gravao prpria. Como todos os braos de todas as cabeas de leitura e gravao se movimentam ao mesmo tempo, quando a cabea de leitura da primeira superfcie estiver sobre a trilha n, todas as cabeas de leitura estaro sobre as trilhas n de suas respectivas superfcies.

    A esse conjunto de trilhas que podem ser acessadas sem que seja necessrio movimentar a cabea de leitura e gravao se d o nome de cilindro.

    Este um conceito importante quando se tenta aumentar o desempenho de discos, pois, por se tratar de um dispositivo

    5

    10

    15

    20

  • 43

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    mecnico, o tempo que a cabea de leitura leva para se mover pela superfcie do disco extremamente lento.

    Se um determinado conjunto de dados estiver num mesmo cilindro, o tempo de acesso a esses dados ser menor.

    5.3.3 Demais dispositivos

    Alm de processador, memrias e discos, um computador moderno dispe de uma gama de dispositivos de entrada e sada de dados. Todos eles se comunicam de alguma forma com o barramento para que os dados possam ser transferidos deles para a memria principal e vice-versa.

    Podemos destacar, entre eles, os CD-ROMs (permitem apenas leitura) e CDs gravveis e regravveis (que permitem a gravao uma ou muitas vezes), DVDs e Blu-Ray, teclados e mouses (e outros tipos de dispositivo apontadores como trackballs), monitores CRT (que usam o tubo de raios catdicos) e LCD (display de cristal lquido), as impressoras de todos os tipos (laser, jato de tinta e matriciais so as mais comuns) e os dispositivos de telecomunicaes como modem de linha discada, DSL (digital subscriber line) e cable modem.

    5.3.4 Conjuntos de caracteres

    claro que os computadores tm que lidar com todo tipo de informaes, e no apenas nmeros, mas, como veremos na seo sobre circuitos digitais, o computador s consegue de fato lidar com valores binrios.

    A soluo para permitir que os computadores consigam lidar com informaes no numricas a criao de tabelas de converso. Essas tabelas so chamadas de conjuntos de caracteres.

    Um dos padres mais conhecidos o ASCII (American Standard Code for Information Interchange Cdigo Padro Americano para Intercmbio de Informaes).

    5

    10

    15

    20

    25

  • 44

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    O ASCII usa sete bits para descrever os caracteres, o que permite 128 combinaes. As tabelas abaixo mostram essas combinaes.

    Binrio Decimal Hexa Abreviao Descrio

    0000 0000 00 00 NUL Null - nulo

    0000 0001 01 01 SOHStart of header - incio do cabealho

    0000 0010 02 02 STX Start of text - incio do texto

    0000 0011 03 03 ETX End of text - m do texto

    0000 0100 04 04 EOT End of tape - m de ta

    0000 0101 05 05 ENQEnquire - interroga identidade do terminal

    0000 0110 06 06 ACK Acknowledge - reconhecimento

    0000 0111 07 07 BEL Bell - campainha

    0000 1000 08 08 BS Back-space - espao atrs

    0000 1001 09 09 HTHorizontal tabulation - tabulao horizontal

    0000 1010 10 0A LF Line-feed - alimenta linha

    0000 1011 11 0B VTVertical tabulation - tabulao vertical

    0000 1100 12 0C FF Form-feed - alimenta formulrio

    0000 1101 13 0D CRCarriage-return - retorno do carro (enter)

    0000 1110 14 0E SO Shift-out - sada do shift

    0000 1111 15 0F SI Shift-in - entrada no shift

    0001 0000 16 10 DLE Data-link escape

    0001 0001 17 11 DC1 Device-control 1

    0001 0010 18 12 DC2 Device-control 2

    0001 0011 19 13 DC3 Device-control 3

    0001 0100 20 14 DC4 Device-control 4

    0001 0101 21 15 NAKNeg-acknowledge - no reconhecimento

    0001 0110 22 16 SYN Synchronous idle

    0001 0111 23 17 ETB End-of-transmission block

    0001 1000 24 18 CAN Cancel

    0001 1001 25 19 EM End-of-medium

    0001 1010 26 1A SUB Substitute

    0001 1011 27 1B ESC Escape

    0001 1100 28 1C FS File separator

    0001 1101 29 1D GS Group separator

    0001 1110 30 1E RS Record separator

    0001 1111 31 1F US Unit separator

    0111 1111 127 7F DEL DeleteTabela 1 Caracteres de controle ASCII

  • 45

    ORGANIZAO DE COMPUTADORES

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    Binrio Decimal Hexa Caracter Binrio Decimal Hexa Caracter Binrio Decimal Hexa Caracter

    0010 0000 32 20 0100 0000 64 40 @ 0110 0000 96 60 `

    0010 0001 33 21 ! 0100 0001 65 41 A 0110 0001 97 61 a

    0010 0010 34 22 0100 0010 66 42 B 0110 0010 98 62 b

    0010 0011 35 23 # 0100 0011 67 43 C 0110 0011 99 63 c

    0010 0100 36 24 $ 0100 0100 68 44 D 0110 0100 100 64 d

    0010 0101 37 25 % 0100 0101 69 45 E 0110 0101 101 65 e

    0010 0110 38 26 & 0100 0110 70 46 F 0110 0110 102 66 f

    0010 0111 39 27 0100 0111 71 47 G 0110 0111 103 67 g

    0010 1000 40 28 ( 0100 1000 72 48 H 0110 1000 104 68 h

    0010 1001 41 29 ) 0100 1001 73 49 I 0110 1001 105 69 i

    0010 1010 42 2A * 0100 1010 74 4A J 0110 1010 106 6A j

    0010 1011 43 2B + 0100 1011 75 4B K 0110 1011 107 6B k

    0010 1100 44 2C , 0100 1100 76 4C L 0110 1100 108 6C l

    0010 1101 45 2D - 0100 1101 77 4D M 0110 1101 109 6D m

    0010 1110 46 2E . 0100 1110 78 4E N 0110 1110 110 6E n

    0010 1111 47 2F / 0100 1111 79 4F O 0110 1111 111 6F o

    0011 0000 48 30 0 0101 0000 80 50 P 0111 0000 112 70 p

    0011 0001 49 31 1 0101 0001 81 51 Q 0111 0001 113 71 q

    0011 0010 50 32 2 0101 0010 82 52 R 0111 0010 114 72 r

    0011 0011 51 33 3 0101 0011 83 53 S 0111 0011 115 73 s

    0011 0100 52 34 4 0101 0100 84 54 T 0111 0100 116 74 t

    0011 0101 53 35 5 0101 0101 85 55 U 0111 0101 117 75 u

    0011 0110 54 36 6 0101 0110 86 56 V 0111 0110 118 76 v

    0011 0111 55 37 7 0101 0111 87 57 W 0111 0111 119 77 w

    0011 1000 56 38 8 0101 1000 88 58 X 0111 1000 120 78 x

    0011 1001 57 39 9 0101 1001 89 59 Y 0111 1001 121 79 y

    0011 1010 58 3A : 0101 1010 90 5A Z 0111 1010 122 7A z

    0011 1011 59 3B ; 0101 1011 91 5B [ 0111 1011 123 7B {

    0011 1100 60 3C < 0101 1100 92 5C \ 0111 1100 124 7C |

    0011 1101 61 3D = 0101 1101 93 5D ] 0111 1101 125 7D }

    0011 1110 62 3E > 0101 1110 94 5E ^ 0111 1110 126 7E ~

    0011 1111 63 3F ? 0101 1111 95 5F _Tabela 2 Caracteres imprimveis do padro ASCII

    Conforme podemos perceber, esse padro bastante limitado. Ele contm apenas os caracteres da lngua inglesa, no contm os acentos necessrios para o portugus, e nem

  • 46

    Unidade II

    Revi

    so:

    Edu

    ardo

    - D

    iagr

    ama

    o: L

    o 3

    0/03

    /09

    podemos comear a pensar nos idiomas que usam alfabetos diferentes, como o russo ou o rabe.

    Como os computadores hoje so usados em todo o mundo e os fabricantes desejam que seus produtos sejam usados globalmente, o ASCII no pode mais ser considerado como um padro aceitvel. Por esse motivo, foi criado outro padro, chamado UNICODE, patrocinado por um grupo de empresas. O UNICODE usa 16 bits para descrever cada caractere, o que permite at 65.536 caracteres diferentes.

    Mesmo essa quantidade insuciente para abarcar todos os idiomas falados na Terra. Linguistas estimam que seriam necessrios cerca de 200.000 caracteres para suportar todos os idiomas falados atualmente.

    O padro UNICODE hoje cobre cerca de 75 alfabetos. Alm dos caracteres latinos, so suportados cirlico, grego, armnio, hebraico, devangari, gurmuqui, ori, telugu e kanada, entre outros.

    5

    10

    15

  • 47

    ORGANIZAO DE COMPUTADORES

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    Unidade III

    5

    10

    15

    20

    6 CIRCUITOS DIGITAIS

    6.1 Sistemas de numerao

    O que quer dizer 14?

    Sabemos, por fora de educao e hbito, que os algarismos 1 e 4 colocados desta forma representam a quantidade catorze. No precisamos de nenhuma ferramenta para chegar a essa concluso. Mas isso s verdade se estivermos utilizando o sistema decimal, de base dez.

    Os algarismos 14 poderiam representar as quantidade 20 ou 12, dependendo da base que estiver sendo usada, assim como os caracteres XIV tambm representam a quantidade catorze, se estivermos utilizando algarismos romanos.

    O sistema decimal utilizado hoje de forma padronizada no dia a dia, seja no comrcio ou em transaes bancrias. No h necessidade de esclarecer se o valor est expresso na base decimal ou no.

    Mas nem sempre foi assim. Diversos povos criaram diversas formas de representar quantidades, e algumas sobrevivem at hoje em nosso cotidiano.

    Por exemplo, por que estamos acostumados a comprar certas mercadorias em dzias? Ou por que um minuto tem sessenta segundos e uma hora tem sessenta minutos? Talvez estes sejam fsseis culturais de sistemas que utilizavam a base doze ou a base sessenta, em vez da base dez.

  • 48

    Unidade III

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    1210

    148

    Figura 29 Uma mesma quantidade pode ser representada de formas diferentes

    Existem indcios do uso no passado de vrias outras bases e sistemas numricos, alm desses, como a base vinte, que ainda pode ser encontrada em certas expresses do idioma francs, como quatre vingt (quatro vezes vinte) para expressar a quantidade oitenta.

    Um sistema numrico conhecido que ainda usado o sistema romano. Ele usa os caracteres I, V, X, L, C, D e M para formar valores numricos e totalmente diferente (e muito mais complexo) do sistema decimal, principalmente por no ter o conceito de posio que existe em sistemas de nmeros-base, como o decimal.

    Para representar a quantidade 419 no sistema romano, usa-se a representao CDXIX. No nosso objetivo aqui explicar o funcionamento do sistema romano, mas, apenas para descrever este exemplo, o funcionamento o seguinte: 500 menos 100 (CD) mais 10 (X) mais 9, ou 10 menos 1 (IX).

    6.2 Sistema de nmeros-base

    O sistema decimal baseado no conceito de aritmtica de posio. Isso quer dizer que cada casa de um valor expresso no sistema decimal corresponde a uma potncia da base.

    Como funciona? Partindo da direita para a esquerda, a primeira casa representa a base elevada potncia 0, a segunda casa representa a casa elevada potncia 1, a terceira representa a casa elevada segunda potncia, e assim por diante.

    5

    10

    15

    20

  • 49

    ORGANIZAO DE COMPUTADORES

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    Ao representar um valor como 419, podemos traduzi-lo rapidamente para quatro centenas, uma dezena e nove unidades.

    4 1 9

    Posio de 100(102)

    Posio de 10(101)

    Posio de 1(100)

    Figura 30 A forma de um nmero decimal

    O sistema decimal o mais comum, mas usamos outras bases. Dentro da computao, s vezes necessrio usar as bases 2, 8 ou 16. Esses sistemas so chamados de binrio (base 2), octal (base 8) e hexadecimal (base 16).

    Para representar quantidades nesses sistemas usamos algarismos organizados da seguinte forma: um sistema numrico de base k requer k smbolos diferentes para representar os dgitos 0 a k -1. Seguindo esse raciocnio, os nmeros do sistema decimal so formados a partir de dez dgitos:

    0 1 2 3 4 5 6 7 8 9

    O sistema binrio usa a base 2 e os seus nmeros so construdos a partir de apenas dois dgitos:

    0 1

    Os nmeros octais usam a base 8 e utilizam oito dgitos para formar seus nmeros:

    0 1 2 3 4 5 6 7

    O sistema hexadecimal usa a base 16 e precisa de dezesseis algarismos para representar quantidades. Dessa forma, so necessrios outros smbolos, alm dos nmeros de 0 a 9. Por

    5

    10

    15

    20

  • 50

    Unidade III

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    conveno, usam-se as letras de A a F para representar esses valores. Assim, os nmeros hexadecimais utilizam os seguintes caracteres para expressar quantidades:

    0 1 2 3 4 5 6 7 8 9 A B C D E F

    Nos quatro sistemas (binrio, octal, decimal e hexadecimal) o funcionamento o mesmo, variando apenas a base usada. A casa mais direita corresponde casa de potncia 0 (20, 80, 100 e 160), a casa seguinte esquerda corresponde casa de potncia 1 (21, 81, 101 e 161) e assim por diante, sempre adicionando uma unidade ao expoente da base medida que se vai da direita para a esquerda.

    Pode parecer complexo a princpio, mas todos os sistemas funcionam de forma anloga ao sistema decimal, que utilizamos no dia a dia. Basta substituir os conceitos de unidade, dezena e centena por 100, 101 e 102 e a compreenso das outras bases ca muito mais simples.

    Segue abaixo a representao de uma mesma quantidade (419) nas bases 2, 8, 10 e 16.

    Binrio 1 1 0 1 0 0 0 1 1

    1 x 28 1 x 27 0 x 26 1 x 25 0 x 24 0 x 23 0 x 22 1 x 21 1 x 20

    256 +128 +0 +32 +0 +0 +0 +2 +1

    Octal 6 4 3

    6x82 4 x 81 3x 80

    384 +32 +3

    Decimal 4 1 9

    4x102 1 x 101 9x 100

    400 +10 +9

    Hexadecimal 1 A 3

    1x16210 x 161 3x 160

    256 +160 +3

    Figura 31 A quantidade 419 expressa em binrio, octal, decimal e hexadecimal

    5

    10

    15

  • 51

    ORGANIZAO DE COMPUTADORES

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    Se executarmos as somas apontadas, veremos que todas as representaes se referem ao mesmo valor, a nica diferena a base.

    Na tabela abaixo temos as representaes em binrio, octal e hexadecimal para os valores decimais de 0 a 32.

    Decimal Binrio Octal Hexadecimal

    0 0 0 0

    1 1 1 1

    2 10 2 2

    3 11 3 3

    4 100 4 4

    5 101 5 5

    6 110 6 6

    7 111 7 7

    8 1000 10 8

    9 1001 11 9

    10 1010 12 A

    11 1011 13 B

    12 1100 14 C

    13 1101 15 D

    14 1110 16 E

    15 1111 17 F

    16 10000 20 10

    17 10001 21 11

    18 10010 22 12

    19 10011 23 13

    20 10100 24 14

    21 10101 25 15

    22 10110 26 16

    23 10111 27 17

    24 11000 30 18

    25 11001 31 19

    26 11010 32 1A

    27 11011 33 1B

    28 11100 34 1C

    29 11101 35 1D

    30 11110 36 1E

    31 11111 37 1F

    32 100000 40 20

    Tabela 3 Correspondncia entre bases

    5

  • 52

    Unidade III

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    6.3 Por que binrio?

    Muitas pessoas devem se perguntar por que os engenheiros de computadores decidiram usar o sistema binrio em vez do decimal, muito mais natural para todos os usurios (pelo menos atualmente).

    A questo meramente prtica. Conforme vimos acima, para representar qualquer valor em binrio precisamos de apenas dois smbolos. muito mais simples criar um dispositivo que possa detectar dois estados em um circuito eltrico, aceso e apagado, ou a presena de sinal eltrico e a ausncia de sinal eltrico.

    Para criar um equipamento que usasse o sistema decimal internamente seria necessrio que ele pudesse detectar dez estados eltricos diferentes. Fazendo analogia com uma lmpada, imagine como pode ser possvel identicar do estado totalmente aceso ao totalmente apagado com oito estados intermedirios. Se complexo fazer isso a olho nu, imagine como seria criar um equipamento que pudesse executar essa deteco com nveis eltricos baixssimos a alta velocidade, dentro de um microprocessador.

    Um pequeno erro de deteco de um nvel para outro pode provocar erros graves de processamento. Por esse motivo, ainda hoje considerado mais fcil detectar dois nveis eltricos apenas: voltando analogia da lmpada, apenas totalmente aceso ou totalmente apagado.

    Se um dia houver tecnologia capaz de lidar com dez (ou mais) nveis eltricos, talvez no precisemos mais usar o binrio.

    6.4 Converso entre bases

    Um valor em decimal expressa uma quantidade que pode tambm ser expressa em outras bases.

    5

    10

    15

    20

    25

  • 53

    ORGANIZAO DE COMPUTADORES

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    Existem vrias tcnicas para converter de uma base para outra. Para converter a partir de binrio para octal, basta agrupar os algarismos em grupos de trs. Cada grupo de trs dgitos binrios dar origem a uma casa do nmero em octal.

    Para fazer a converso entre binrio e hexadecimal, o mecanismo o mesmo, bastando usar grupos de quatro dgitos em vez de trs. Caso seja necessrio, complete o ltimo grupo esquerda com zeros (o zero esquerda no signicativo, independentemente da base).

    Veja um exemplo desses mtodos na gura abaixo.

    Hexadecimal

    Binrio

    Octal

    1 A 3

    6 4 3

    1 1 0 1 0 0 0 1 1

    Figura 32 Converso de binrio para octal e hexadecimal

    A converso de decimal para binrio pode ser feita de duas formas distintas. A primeira forma consiste em subtrair potncias de 2 do valor decimal. Comeamos identicando qual a maior potncia de 2 que pode ser subtrada do valor decimal.

    Vamos usar o nmero 419 como exemplo. A maior potncia de 2 que pode ser subtrada dele 256 (28); a potncia seguinte seria 512, que no pode ser subtrada de 419 sem deixar um valor negativo. A partir do resto da subtrao (163), repetimos o processo. A maior potncia de 2 que pode ser subtrada de 163 128 (27). O resto dessa subtrao 35, e repetimos esse processo at que a subtrao resulte em zero. Dessa forma, as potncias usadas foram: 256 (28), 128 (27), 32 (25), 2 (21) e 1 (20). A soma desses valores corresponde ao valor original: 419.

    5

    10

    15

    20

  • 54

    Unidade III

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    Dessa forma, as casas do nmero binrio que foram selecionadas correspondem a 1, as casas que no foram usadas (potncias 6, 4, 3 e 2) recebero zero.

    1 1 0 1 0 0 0 1 1 =28 + 27 + 25 + 21 + 20 = 256 + 128 + 32 + 2 + 1Figura 33 Converso de decimal para binrio

    A outra forma de converso de decimal para binrio usa divises sucessivas por dois. Aps a primeira diviso, divide-se o quociente por dois novamente at chegar a um quociente zero.

    O nmero binrio ser formado pelos restos das divises, sendo que o ltimo resto corresponder casa mais esquerda e o primeiro casa mais direita.

    419 21 209 2

    0 52 21 104 2

    0 26 20 13 2

    1 6 20 3 2

    1 1 2

    1 0

    Figura 34 Converso de decimal para binrio

    No h diferena fundamental entre as duas tcnicas, visto que o resultado deve ser sempre o mesmo.

    A converso de decimal para octal e hexadecimal pode ser feita convertendo-se o nmero em decimal para binrio e depois para as outras bases, ou usando as mesmas tcnicas de converso de decimal para binrio, mas usando as bases 8 ou 16.

    5

    10

    15

  • 55

    ORGANIZAO DE COMPUTADORES

    1Rev

    iso

    : Edu

    ardo

    / Di

    agra

    ma

    o: F

    abio

    31/

    03/0

    9

    Para converter de octal para hexadecimal ou vice-versa, a forma mais simples converter o valor para binrio e depois para a base-destino, usando a tcnica de agrupamento de bits.

    6.5 Soma e subtrao em bases no decimais

    Para entender como realizar a soma e a subtrao em bases diferentes da base decimal, vamos rever com um pouco de detalhes como fazemos a soma.

    Vamos utilizar como exemplo a soma dos valores 93 e 9.

    9 3+ 9

    1 0 2

    1 1

    Vai um Vai um

    Figura 35 Soma decimal

    Todos sabemos que em uma soma de 3 e 9, devemos usar o vai um, transportando uma unidade para a prxima casa. O mesmo feito com a soma de 9 mais o 1 que veio da casa anterior.

    Mas o que quer dizer isso?

    Essas tcnicas que conhecemos desde o ensino fundamental fazem parte do funcionamento da aritmtica de base, conforme vimos no decorrer deste captulo.

    Quando somamos 3 e 9 e obtemos 12, uma casa decimal no pode comportar esse valor, pois cada casa decima