Índice
1 2 NÚMEROS DE PRECISÃO FINITA ......................................................................... 8 SISTEMA DE NUMERAÇÃO .................................................................................... 9 2.1 BASE DE UM SISTEMA DE NUMERAÇÃO .................................................................... 9 Sistemas de Numeração Posicionais ............................................................... 9 Base de um Sistema de Numeração ............................................................... 11 Representação Binária.................................................................................. 12 Representação em Octal e em Hexadecimal .................................................. 15 Conversões entre as bases 2, 8 e 16 .............................................................. 17 Conversão de Números em uma base b qualquer para a base 10 .................. 17 Conversão de Números da Base 10 para uma Base b qualquer ..................... 19 Conversão de Números entre duas Bases quaisquer...................................... 20 Soma............................................................................................................. 21 Subtração ..................................................................................................... 22 Complemento a Base .................................................................................... 23 Multiplicação e Divisão ................................................................................ 24 Representação de Números em Complemento ............................................... 25 Representação de Números Positivos em Complemento............................ 25 Representação de Números Negativos em Complemento A (Base - 1) ...... 26

2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.5.1 2.3.5.2 3

CONVERSÕES ENTRE BASES ................................................................................... 16

ARITMÉTICA EM BINÁRIO ...................................................................................... 21

CIRCUITOS LÓGICOS............................................................................................ 27 3.1.1 3.1.2 3.1.2.1 3.1.2.2 3.1.2.3 3.1.3 3.1.3.1 Conceitos de Lógica Digital.......................................................................... 27 Operadores Lógicos...................................................................................... 28 E (ou AND) .............................................................................................. 28 OU (ou OR) .............................................................................................. 28 NÃO (ou NOT)......................................................................................... 28 Tabela Verdade ............................................................................................ 28 AND - Função E ....................................................................................... 29

Apostila de Organização de Computadores - Prof. Bruno

2

3.1.3.2 3.1.3.3 3.1.4 3.1.5 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.6 3.6.1 3.6.2 3.6.3 4

OR - Função OU....................................................................................... 29 NOT - Função NÃO.................................................................................. 29 Aplicação da Álgebra de Boole aos Computadores Digitais.......................... 29 Porta Lógica ou Gate.................................................................................... 32 Porta NOT (NÃO)......................................................................................... 33 Porta AND (E).............................................................................................. 34 Porta OR (OU) ............................................................................................. 34 Porta NAND (NÃO E)................................................................................... 34 Porta NOR (NÃO OU) .................................................................................. 35 Porta XOR (OU EXCLUSIVO) ..................................................................... 35 Avaliação de uma Expressão Booleana......................................................... 36 Equivalência de Funções Lógicas ................................................................. 37 Propriedade da Álgebra de Boole ................................................................. 38 Propriedades da Função XOR (EXCLUSIVE OR)......................................... 38 Circuito Inversor .......................................................................................... 39 Circuito AND................................................................................................ 39 Circuito OR .................................................................................................. 39 Representação de um Circuito através de uma Tabela Verdade .................... 40 Soma dos Minitermos.................................................................................... 42 Produto dos Maxitermos ............................................................................... 42 Circuitos Aritméticos .................................................................................... 44 Circuito Meio-Somador ................................................................................ 46 Circuito Somador Completo.......................................................................... 47

PORTAS LÓGICAS .................................................................................................. 33

ALGEBRA DE BOOLE .............................................................................................. 36

REPRESENTAÇÃO DE CIRCUITOS COM AS FUNÇÕES NAND E NOR.......................... 38

FORMAS CANÔNICAS ............................................................................................. 40

CONSTRUÇÃO DE CIRCUITOS REAIS DE COMPUTADOR ............................................ 44

A ARQUITETURA DOS COMPUTADORES ......................................................... 49 4.1 4.2 4.3 DIAGRAMA DE BLOCOS DOS COMPUTADORES ........................................................ 49 UNIDADE CENTRAL DE PROCESSAMENTO ............................................................... 50 MEMÓRIA PRINCIPAL (MP).................................................................................... 50

Apostila de Organização de Computadores - Prof. Bruno

3

....10..................................................................... 66 PROCESSAMENTO ..Prof... 61 Formato Geral de uma Instrução ..3..................................... 67 PALAVRA (UNIDADE DE INFORMAÇÃO) ......................................................10..........4 4............ 60 Registradores Importantes na UCP......2 4................................................ 54 Memória Cache ............................................................ 58 Unidade Aritmética e Lógica ..........3.... 62 Conjunto de Instruções ...................... 58 Terminologia ..2 4..............................................................1 4..... 56 Capacidade da Memória Principal ........................... 53 Controle de Memória........... 53 Registradores................................Células e Endereços ..........4.6 4.............2 4..............................3....................4............1 4...........................6 4...........................................RAM ............. 64 UNIDADE CENTRAL DE PROCESSAMENTO ....2 4............................................................ 68 TEMPO DE ACESSO ........................ 60 Unidade de Controle...............................3................. 53 Hierárquia da memória ........4....8 4..........4.............................................................................8 4........................1 4....................................................1 4......................................................................3 Apostila de Organização de Computadores ..5 Tecnologias das memórias .4 4.9......................................................... 63 Ciclo de Instrução...1...5...................1 4..5 4..................1...................................................................................................................................... 69 ACESSO À MEMÓRIA PRINCIPAL. 70 Leitura: Ler da Memória ..................................9 4... 70 Acesso Tipo Ler ou Escrever... 71 R/W – Read and Write (memória de leitura e escrita) ........... 71 PROM – Programmable Read Only Memory (Memória programável de 4...........................................................................................................4...........................................1 4........... 70 Escrita: Escrever na Memória..................... 71 ROM – Read Only Memory (memória apenas de leitura) .........................4........... 59 COMUNICAÇÃO ENTRE MEMÓRIA PRINCIPAL E A UNIDADE CENTRAL DE Barramentos .....................7 4................................. 65 4.....................3.......................................................6 4... 54 Memórias Auxiliares.........10 CLASSIFICAÇÃO DAS MEMÓRIAS ..............5 4...... 55 Estrutura da Memória Principal ........................4.................................. 61 Instruções ........................................... 65 Registradores Utilizados..........................1 4...............3.......9 ESQUEMA DE FUNCIONAMENTO DA COMUNICAÇÃO ENTRE MP / UCP..................10..........................3...9...........................4 4...............7 4..........2 4.............5....4................................................9..3.............................................. 71 4....................................................................3 4..............................................................3 4........................... Bruno 4 ........3....4..........................................

......... 89 Tipos de Monitor e Modo de Exibição ............................... 84 Transmissão Síncrona e Assíncrona.............. Bruno 5 ...............2 6...................3 DISPOSITIVOS DE ENTRADA E SAÍDA ............ 78 DISPOSITIVOS DE ENTRADAS E SAÍDAS ................3 6............................ 77 4.......3....................................2...........3 6...1 4................................................... 73 Ciclo de Operação........2.........2 6................................. 74 Instruções por Ciclo...............4 4............................ 88 Monitor de Vídeo ...................................................3................2............. 72 LÓGICA TEMPORIZADA ....................2.............. 86 Transmissão Half-Duplex ........................5 4...................leitura) 72 4.2 6........2...............................2......2........................................................................1 6..............................1 6.........11....................................................................... 89 Impressoras ...................5....................................3....3.2 6........................3 6........................................ 72 Memory (Memória programável apagável eletronicamente).............................................................................5...............3 6.Erasable Programmable Read Only Memory (Memória EEPROM ou E2PROM – Eletrically Erasable Programmable Read Only programável apagável de leitura).....................................................................................2... 81 FORMAS DE COMUNICAÇÃO ................Caracter .......................................2......10..........................................................5............................................................................................ 85 Transmissão Síncrona ...............10........ Half-Duplex e Full-Duplex.................... 83 Tabela Comparativa ...................................... 85 Transmissão Simplex.........11.......................................................................2 TIPOS DE DISPOSITIVOS ...................................5 6....................................................3..................... 85 Transmissão Assíncrona........................ 91 Impressoras Alfanuméricas ...................11.............4 6.3.......1 6............................. 92 6.........................3............................................2............................. 88 Apostila de Organização de Computadores .....................3...........1 6... 87 Transmissão Full-Duplex ..............................3 5 6 CONCEITOS DE INTERRUPÇÃO E TRAP............................................ 82 Comunicação Serial..... 92 Impressoras Gráficas.........................................3.........4............................1 6.............. 82 Comunicação em Paralelo ............2 6.......................... 80 6.................................. 92 Impressora de Esfera e Impressora Margarida ("daisy wheel") ...1 6........ 73 Clock ......11 EPROM ....Prof.....2 4...........4...1 6................................ 87 Teclado.................................................... 86 Transmissão Simplex ..............3.....................2......

........4..............5...................................................................................................................... 97 Discos Flexíveis............... 93 Fita Magnética .................................................................................. 99 Cálculo do Espaço de Armazenamento em um Disco ................................. 94 Discos Magnéticos...............................................................................4 6.........................6 7..3 7.............................................. 108 COMPARAÇÃO ENTRE COMPILAÇÃO E INTERPRETAÇÃO ................................3................................................3................................1 7 Impressoras de Tambor ................10..............................3.......................................5...............................................3 7..............1 6.................................... 95 Tempo de Acesso.........3.........7 7.............................................................................5 6................................................3........ 92 Impressoras de Jato de Tinta .................................................................................5 6.................................1 6....2 7...............................................5 7............................3........................................................................3....................... 92 Impressoras Matriciais .5......................3.........5....7 6.....6 6........................................ 109 Desenvolvimento de Programas e Depuração de Erros............. 107 INTERPRETAÇÃO. 105 COMPILAÇÃO ....................................3 6..................................................1 7....................................................................3..................... 101 LINGUAGEM DE PROGRAMAÇÃO ....................10.................................................. 100 7..........................................3.........4 6...................10..................5................................ 110 Apostila de Organização de Computadores .3.................................. 100 LINGUAGEM DE MONTAGEM .......3.............. 109 Repetição de Interpretação ...............9 7.. 104 MONTAGEM ....... 103 TRADUÇÃO ....... 96 Tempo de Seek ......................................................3........................................................................ 93 Tipos de Fitas............3..........4 7.......4 7..........7................3..................... 106 BIBLIOTECAS.........................3...Linha.................. 94 Organização Física da Informação nos Discos...............4 6..........................1 7..........................................11 EMULADORES E MÁQUINAS VIRTUAIS ..... 97 Discos Rígidos ........10 PROGRAMA EM LINGUAGEM DE MÁQUINA . 96 Tempo de Transferência................................... 93 Impressoras Laser ..........................6 6.2 7...... 110 7.....8 7............................................................ 99 EXECUÇÃO DE PROGRAMAS ............. 96 Tempo de Latência...3.....Impacto ..........................Prof............................................................ 108 Tempo de Execução .........5 6.................10........3...............7 6...... 106 LIGAÇÃO . Bruno 6 ..............................................3.........................................2 6........................................6......................... 108 Consumo de Memória ....

........ 113 Apostila de Organização de Computadores ................ Bruno 7 ..............8 BIBLIOGRAFIA E LEITURAS AUXILIARES ..............Prof...

1 NÚMEROS DE PRECISÃO FINITA Ao se executarem operações aritméticas. não é verdadeira porque ela serve para ilustrar a importância de entender como os computadores trabalham e quais são as suas limitações. Podemos concluir que embora os computadores sejam dispositivos de uso geral. Com esta restrição. 999. Apostila de Organização de Computadores . 4. 001. Os físicos podem calcular que existem 1078 elétrons no universo sem se preocuparem com o fato de que são necessários 79 dígitos decimais para escrever o número completo. A natureza finita do computador nos força a lidar apenas com números que podem ser representados com um número fixo de dígitos. vamos examinar o conjunto dos inteiros positivos representáveis por três dígitos decimais. Para estudar as propriedades dos números de precisão finita. . Nunca acontece de o papel não ser suficientemente grande para números de sete dígitos. Com os computadores é bastante diferente. Números irracionais e fracionários.. Números negativos.. o programador pode representar números com duas. três ou mesmo muitas vezes esta quantidade fixa. naturalmente. necessitando de uma resposta com seis dígitos significativos. Ao se calcular o valor de uma função utilizando lápis e papel.Prof. tais com: 1. Este conjunto tem exatamente 1000 elementos: 000. Números maiores que 999. sua natureza finita os torna inadequados para operações aritméticas. 2. Esta conclusão. geralmente se dá pouca importância à questão de quantos dígitos decimais são gastos para representar um número. Na maioria dos computadores. Bruno 8 . oito dígitos ou quantos forem necessários. basta manter resultados intermediários com sete.. a quantidade de memória disponível para armazenar um número é determinada no instante em que o computador é projetado. Números complexos. 3. Chamamos tais números de números de precisão finita. 003. é impossível expressar vários conjuntos importantes de números. mas isto não muda a natureza deste problema. sem ponto decimal e sem sinal. Com um certo esforço.

V (valendo 5). a quantidade 128 era representada por CXXVIII = 100 + 10 + 10 + 5 + 1 + 1 + 1 = 128. os símbolos tinham um valor intrínseco. etc. de forma a registrar a informação quantitativa e poder processá-la. A representação de quantidades se faz com os números. como por exemplo: I ( valendo 1). Eram usados símbolos (letras) que representavam as quantidades. teríamos que ###&&@ representaria 321. Inicialmente. os egípcios. Na antigüidade. Bruno 9 . Nesses sistemas. Experimente multiplicar CXXVIII por XCIV! Assim. X (valendo 10). posteriormente foram criados sistemas em que a posição dos algarismos no número passou a alterar seu valor (sistemas de numeração posicionais). se o inverso ocorresse. seriam somadas. o menor valor era subtraído do maior (e não somado). independente da posição que ocupavam na representação (sistema numérico não-posicional). a quantidade 94 era representada por XCIV = (-10 + 100) + (-1 + 5) = 94. o sistema de numeração romano. Usando por exemplo os símbolos # para representar uma centena.1 Base de um Sistema de Numeração 2. & para representar uma dezena e @ representando uma unidade (símbolos escolhidos ao acaso). Assim. O primeiro sistema desse tipo foi inventado pelos chineses. 2.2 SISTEMA DE NUMERAÇÃO Os sistemas de numeração tem por objetivo prover símbolos e convenções para representar quantidades. duas formas de representar quantidades foram inventadas. A regra de posicionamento determinava que as letras que representavam quantidades menores e precediam as que representavam quantidades maiores.1. Relembremos ainda um outro sistema. C (valendo 100). Um grande problema desse sistema é a dificuldade de realizar operações com essa representação.1 Sistemas de Numeração Posicionais Nos sistemas de numeração posicionais. criaram um sistema em que cada dezena era representada por um símbolo diferente. sendo 1 a 5 paliApostila de Organização de Computadores .Prof. o valor representado pelo algarismo no número depende da posição em que ele aparece na representação. Por outro lado. Eram usados palitos.

permitia a realização das quatro operações aritméticas. ações. por esses tempos. depois de milhares de anos em que todos os cálculos eram feitos com calculadoras (ábacos. os hindus inventaram um método de produzir papel (que antes já fora inventado pelos chineses) e seus matemáticos criaram uma representação para os números em que existiam diferentes símbolos para os as unidades. era usado na álgebra e na solução de equações. Não existia representação para o zero (o espaço relativo ficava vazio). outra para as centenas.tos dispostos na vertical para representar os números 1 a 5. sentimentos. que inspirou o nome algarismo) escreveu um livro Apostila de Organização de Computadores . Essa simples criação permitiu que se processasse a aritmética decimal e se fizesse contas . O Alfabeto e o Ábaco No Oriente Médio.Prof. usando um instrumento de escrita e papel. etc) finalmente era possível calcular sem auxílio mecânico.como são ainda hoje algumas linguagens. Como decorar todos? O grande achado foi decompor a linguagem em alguns poucos símbolos e regras básicas. Os Algarismos e o Zero Por volta do ano de 650. O tabuleiro aritmético (chamado swan-pan). etc. Bruno 10 . com as pilhas de palitos dispostas em um tabuleiro. de 6 a 9 eram representados por 1 a 4 palitos na vertical. Esse sistema. Essa técnica era chamada de Método do Elemento Celestial. Nessa época. Por volta de 830. além das quatro operações. um matemático persa (chamado Al-khwarismi. etc . Cada número era então representado por uma pilha de palitos. Uma conseqüência de fundamental importância para nossos estudos de informática foi possibilitar a ordenação alfabética (essa é uma tarefa típica dos computadores). mais um palito na horizontal (valendo 5) sobre os demais. sendo uma pilha de palitos para as unidades. criou-se uma das mais importantes invenções da humanidade: o alfabeto. swan-pan. incluindo um símbolo para representar o zero. eram necessários milhares de símbolos para representar todos os objetos. foi também criado o ábaco . Assim. outra para as dezenas.uma calculadora decimal manual. A matemática criada pelos hindus foi aprendida pelos árabes (que depois foram copiados pelos europeus). Na antigüidade. usava-se um símbolo para representar cada conceito ou palavra.no papel! Bom.

3. no número 125 o algarismo 1 representa 100 (uma centena ou 102) . D. Na base 2. em nossa notação. E e F. embora não seja a única utilizada.Prof. Na base 10. 13. 6. Assim. seriam 16: os 10 algarismos aos quais estamos acostumados. representando respectivamente 10.(Al-gebr we'l Mukabala. Isso significa que a posição ocupada por cada algarismo em um número altera seu valor de uma potência de 10 (na base 10) para cada casa à esquerda. Bruno 11 . E esse livro. Generalizando. 125 = 1x102 + 2x101 + 5x100 2. tal como 24 (base 16 ou sistema hexadecimal) ou eventualmente ainda 23 (base 8 ou sistema octal). A representação 125. 5. Desde quando se começou a registrar informações sobre quantidades. ou álgebra) em que apresentava os algarismos hindus. por facilidade. foram criados diversos métodos de representar as quantidades. o 2 representa 20 (duas dezenas ou 1x101) e o 5 representa 5 mesmo (5 unidades ou 5x100). No comércio pedimos uma dúzia de rosas ou uma grosa de parafusos (base 12) e também marcamos o tempo em minutos e segundos (base 60). numa dada base b.3810 (base 10) significa 1x102+ 2x101+ 5x100 + 3x10-1+ 8x10-2. 12. mais os símbolos A.2 Base de um Sistema de Numeração A base de um sistema é a quantidade de algarismos disponível na representação. C. 7. levado para a Europa e traduzido. 1. representamos uma quantidade N qualquer. Os computadores utilizam a base 2 (sistema binário) e os programadores. B. 2. foi a base da matemática do Renascimento. 14 e 15 unidades. Por exemplo. seriam apenas 2 algarismos: 0 e 1. 4. O método ao qual estamos acostumados usa um sistema de numeração posicional. A base 10 é hoje a mais usualmente empregada. usam em geral uma base que seja uma potência de 2. 8 e 9. 11. no sistema decimal (base 10). dispomos de 10 algarismos para a representação do número: 0.1. Na base 16. com um número tal como segue: Apostila de Organização de Computadores .

na base b. com n algarismos. na base 10. o maior número que pode ser representado na base 10 usando 3 algarismos será 999 (ou seja.Prof. Havendo apenas dois algarismos. isto é. que é obtida através de dois diferentes níveis de tensão (ver em Bits & Bytes). + a2.b-n sendo que an. eqüivale a 25510 = 162 .3 Representação Binária Os computadores modernos utilizam apenas o sistema binário. com n algarismos (n "casas"). será o número composto n vezes pelo maior algarismo disponível naquela base (ou seja.b-1 + a-2.1.. 2.b0 é a parte inteira e a-1.b-2 + .b2 + a1.b-2 + .. 103 . acarretando na redução de seu custo e maior confiabilidade...b-n é a parte fracionária.. estes valores não são absolutos.b0 + a-1.bn + . os circuitos eletrônicos que formam os computadores digitais atuais são capazes de distinguir apenas dois níveis de tensão . b-1). + a-n.1 = 999)..computadores digitais binários.. Podemos ver que o maior número inteiro N que pode ser representado.1.. sabemos que o maior número que podemos representar. Bits & Bytes Devido à simplicidade de projeto e construção. cerca de +3 V . e sim faixas de valores.bn + . representando o valor binário 1. + a2.Nb = an. será N = bn . Intuitivamente. em uma dada base b.b1 + a0.1. o maior número de 2 algarismos na base 16 será FF16 que. Assim. todas as informações armazenadas ou processadas no computador usam apenas DUAS grandezas. Na realidade.5 V. Essa decisão de projeto deve-se à maior facilidade de representação interna no computador. o elemento mínimo de informação nos computadores foi apelidado de bit (uma contração do inglês binary digit). + a-n. e entre 0 e + 0. representadas pelos algarismos 0 e 1.. Estes sinais elétricos são tensões que assumem dois diferentes valores: um valor positivo (hoje.b2 + a1. Apostila de Organização de Computadores ..b1 + a0. portanto dígitos binários.5 V representando o valor binário 0).três volts positivos) para representar o valor binário 1 e um valor aproximado a 0 V (zero volt) para representar o valor binário 0. Por exemplo. nos PC's. com uma margem de tolerância (entre +2..b-1 + a-2.. Bruno 12 .5 e +3.

em homenagem ao matemático inglês George Boole (18151864). Vamos usar muito isso daqui por diante. Desta forma. dez não é e nunca será igual a dois! Na realidade. ou seja 1024 kb ou 1. Em um byte.: os primeiros computadores eram decimais (por exemplo. ou seja 1024 bits e kilobyte (1 kB) eqüivale a 210 bytes.576 bits e 1 megabyte eqüivale a 220 bytes. portanto pode-se representar 256 diferentes valores. Nós estamos acostumados a associar "10" a "dez" porque estamos acostumados a usar o sistema de numeração decimal. Obs. ou seja 1024 bytes ou ainda 8. equivalente a 240 ou 1. a expressão mega eqüivale a 220. BIT é uma contração de BInary DigiT e representa um dos valores possíveis em binário.048. ou seja 1024. como quem decora uma tabuada. ou seja 1. O termo "byte" foi inventado pela IBM. 0 ou 1. o ENIAC) e hoje existem também computadores analógicos (para determinadas aplicações específicas). "10" não significa necessariamente "dez".024 teras. Na base 2. o número "10" vale dois.024 gigas. Desta forma. 1 kb eqüivale a 210 bits. equivalente a 230 ou 1024 megas. Da mesma forma. Bruno 13 . É bom decorar estes termos. desde 00000000 até 11111111. a expressão kilo (abreviada por k) eqüivale a 210. 1 peta.576. há 28 = 256 combinações. ou seja 210 x 210 = 1.048.192 bits. Mas se 102 = 210. Seguem-se 1 giga. equivalente a 250 ou 1. e seus valores.A lógica que permite aos computadores operar baseados nestes dois valores é chamada Álgebra de Boole. Em informática. então dez é igual a dois? Não.576 bytes. 1 tera. 1 megabit (1 Mb) eqüivale a 220 bits. O número 102 seria lido "um-zero" na base 2 e vale 210 (convertido para "dois" na Apostila de Organização de Computadores . BYTE é um grupo de 8 bits (é bom lembrar que 23 = 8).Prof.048.

1016 seria lido "um-zero" na base 16 e vale 1610 (convertido para "dezesseis" na base dez).Prof.e somente se . 10 só será igual a dez se .1 + 1 = b) e portanto será sempre 10 e assim. 105 seria lido "um-zero" na base 5 e vale 510 (convertido para "cinco" na base dez).Binária Potência 1 10 100 1000 10000 100000 1000000 10000000 20 21 22 23 24 25 26 27 Repr. Sempre que outra base for utilizada. Bruno 14 . a base será obrigatoriamente indicada.Decimal 1 2 4 8 16 32 64 128 Apostila de Organização de Computadores . o próximo número será (b . porque em uma dada base b os algarismos possíveis vão sempre de 0 a (b .base dez). 1010 pode ser lido como "um-zero" na base 10 ou então como "dez" na base dez. Portanto. numa dada base qualquer. mesmo antes disso.o número estiver representado na base dez! Uma curiosidade: o número "10b" vale sempre igual à base. Um dia pode ser que os computadores se tornem obrigatórios e sejamos todos forçados por lei a estudar a aritmética em binário! Mas.: Toda vez que um número for apresentado sem que seja indicado em qual sistema de numeração ele está representado. etc.1)! Como o maior algarismo possível em uma dada base b é igual a (b-1). estenderemos que a base é dez. o valor da base será sempre representado por "10"! Obs. quem programa computadores precisa conhecer a representação em binário! Vamos começar entendendo as potências de dois: Repr.

fazendo a devida correlação com a representação decimal.Prof. No sistema octal (base 8). é conveniente decorar os valores da tabela. 2. elas se destinam apenas à manipulação de grandezas pelos programadores. será apresentada uma tabela com os números em decimal e sua represenApostila de Organização de Computadores . os programadores. um número representado em binário apresenta muitos bits. Bruno 15 . A representação binária é perfeitamente adequada para utilização pelos computadores. As conversões entre base 2 e base 10 e as potências de 2 são utilizadas a todo momento e seria perda de tempo estar toda hora convertendo. são usualmente adotadas as representações octal (base 8) e principalmente hexadecimal (base 16). ficando longo e passível de erros quando manipulado por seres humanos normais. decoramos a tabuada. Ressaltamos mais uma vez que o computador opera apenas na base 2 e as representações octal e hexadecimal não são usadas no computador. Da mesma forma que. Para facilitar a visualização e manipulação por programadores de grandezas processadas em computadores. é usual representar quantidades usando sistemas em potências do binário (octal e principalmente hexadecimal).1.4 Representação em Octal e em Hexadecimal Em projetos de informática (trabalhos realizados pelos programadores. No sistema hexadecimal (base 16).100000000 1000000000 28 29 256 512 1. para reduzir o número de algarismos da representação e consequentemente facilitar a compreensão da grandeza e evitar erros. cada quatro bits são representados por apenas um algarismo hexadecimal (de 0 a F).024 10000000000 210 Depois (e só depois) de compreender bem a tabela acima. A seguir. como por exemplo. No entanto. é muito mais efetivo saber de cor a tabela acima que fazer as contas de conversão toda vez que for necessário. analistas e engenheiros de sistemas. analistas e engenheiros de sistemas). cada três bits são representados por apenas um algarismo octal (de 0 a 7). uma vez entendido o mecanismo da multiplicação.

Exemplo: Como seria a representação do número 1610 em binário. Não confundir o "H" ou "h" com mais um dígito. octal e hexadecimal: Base 10 Base 2 Base 8 Base 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 A B C D E F Nota: a base 16 ou sistema hexadecimal pode ser indicada também por um "H" ou "h" após o número.tação correspondente em binário. 2. mesmo porque em hexadecimal só temos algarismos até "F" e portanto não existe um algarismo "H". octal e hexadecimal? Solução: Seria respectivamente 100002. Bruno 16 .Prof.2 Conversões entre Bases Apostila de Organização de Computadores . 208 e 1016. por exemplo: FFH significa que o número FF (ou 255 em decimal) está em hexadecimal.

0012 (separando em grupos de 3. Sabemos que 1102 = 616.1111. teremos a representação do número em octal.1010.01012 (convertendo cada dígito hexadecimal em 4 dígitos binários) = = 1. faça a conversão utilizando a regra geral.111. Por exemplo: 110101011012 = 110.1 Conversões entre as bases 2. Vamos exemplificar com a conversão entre a base 2 e a base 8. Como 23 = 8. 11012 = D16 .Vamos analisar agora as regras gerais para converter números entre duas bases quaisquer.110. Por exemplo: 101010012 = 10. 2. Sabemos que 0102 = 28 .2.11012 (separando em grupos de 4 bits. sempre começando da direita para a esquerda).Prof. 10102 = A16 . separando os bits de um número binário em grupos de três bits (começando sempre da direita para a esquerda!) e convertendo cada grupo de três bits para seu equivalente em octal. 2. 8 e 16 As conversões mais simples são as que envolvem bases que são potências entre si. Quanto seria 3F5H (lembrar que o H está designando "hexadecimal") em octal? O método mais prático seria converter para binário e em seguida para octal. portanto 110101011012 = 6AD16 Vamos agora exercitar a conversão inversa.101.2.2 Conversão de Números em uma base b qualquer para a base 10 Vamos lembrar a expressão geral já apresentada: Apostila de Organização de Computadores . 0012 = 18 portanto 101010012 = 2518 Se você ainda não sabe de cor. Bruno 17 .1012 (agrupando de três em três bits) = = 17658 (convertendo cada grupo de três bits para seu valor equivalente em octal). 1012 = 58 . 3F5H=11. Como 24 = 16. basta separarmos em grupos de 4 bits (começando sempre da direita para a esquerda!) e converter. sempre começando da direita para a esquerda). Vamos agora exemplificar com uma conversão entre as bases 2 e 16.

. Solução: Uma base b dispõe dos algarismos entre 0 e (b-1). + a2. a base 8 dispõe Apostila de Organização de Computadores . Assim. Solução: Uma base b dispõe dos algarismos entre 0 e (b-1).b-2 + .Prof.b1 + a0... Solução: 3x51 + 4x50 + 3x5-1 = 15 + 4 + 0.b-n A melhor forma de fazer a conversão é usando essa expressão. Solução: Lembramos que o H significa que a representação é hexadecimal (base 16). Assim. + a-n.610 f) Converter 38.b2 + a1. Bruno 18 . Sabemos ainda que F16=1510. c) Converter 7G16 para a base 10. a base 16 dispõe dos algarismos 0 a F e portanto o símbolo G não pertence à representação hexadecimal. Usando a expressão acima. d) Converter 1001. Exemplos: a) Converter 4F5H para a base 10 . fazemos: 1011012 = 1x25 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 = 32 + 0 + 8 + 4 + 0 + 1 = 4510 Podemos fazer a conversão de números em qualquer base para a base 10 usando o algoritmo acima.38 para a base 10.25 = 9.2510 e) Converter 34. Tomando como exemplo o número 1011012...b0 + a-1. vamos calcular seu valor representado na base dez.6 = 19..Nb = an.b-1 + a-2. Solução: 1x23 + 0x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 = 8 + 0 + 0 + 1 + 0 + 0.012 para a base 10.bn + .35 para a base 10. Então: 4x162 + 15x161 + 5x160 = 4x256 + 15x16 + 5 = 1024 + 240 + 5 = 126910 b) Converter 34859 para a base 10. Solução: 3x93 + 4x92 + 8x91 + 5x90 = 3x729 + 4x81 + 8x9 + 5 = 2187 + 324 + 72 + 5 = 258810.

Parte Fracionária Se o número for fracionário. Bruno 19 .dos algarismos 0 a 7 e portanto o algarismo 8 não existe nessa base. e assim por diante. A representação 38. O algoritmo para a parte fracionária consiste de uma série de multiplicações sucessivas do número fracionário a ser convertido pela base.3 não existe na base 8. o resto de cada divisão ocupará sucessivamente as posições de ordem 0. Os algoritmos serão melhor entendidos pelo exemplo que por uma descrição formal. Vamos a seguir apresentar os algoritmos para a parte inteira e para a parte fracionária: Parte Inteira O número decimal será dividido sucessivas vezes pela base. até o resultado dar zero ou até encontrarmos o número de casas decimais desejado. 2. vamos Apostila de Organização de Computadores . a conversão se fará em duas etapas distintas: primeiro a parte inteira e depois a parte fracionária.3 Conversão de Números da Base 10 para uma Base b qualquer A conversão de números da base dez para uma base qualquer emprega algoritmos que serão o inverso dos acima apresentados. 1. Veja o exemplo da conversão do número 1910 para a base 2: Experimente fazer a conversão contrária (retornar para a base 10) e ver se o resultado está correto. Os algoritmos de conversão são diferentes.Prof. a parte inteira do resultado da primeira multiplicação será o valor da primeira casa fracionária e a parte fracionária será de novo multiplicada pela base. 2 e assim por diante até que o resto da última divisão (que resulta em quociente zero) ocupe a posição de mais alta ordem.2. Por exemplo.

No entanto. podemos verificar (sem nenhuma surpresa) que.converter 15. a conversão foi interrompida quando encontramos o número de algarismos fracionários solicitadas no enunciado.10100110012 = 1x2-1 + 0x2-2 + 1x2-3 + 0x2-4 + 0x2-5 + 1x2-6 + 1x2-7 + 0x2-8 + 0x2-9 + 1x2-10 = 1/2 + 1/8 + 1/64 + 1/128 + 1/1024 = 0.Prof.5 + 0.4 Conversão de Números entre duas Bases quaisquer Apostila de Organização de Computadores .649414062510 Ou seja. poderíamos continuar efetuando multiplicações indefinidamente até encontrar (se encontrarmos) resultado zero.101002 = 1x2-1 + 0x2-2 + 1x2-3 + 0x2-4 + 0x2-5 = 0.2. quanto maior número de algarismos forem considerados. No caso de interrupção por chegarmos ao número de dígitos especificado sem encontramos resultado zero. Bruno 20 . Fazendo a conversão inversa. como não encontramos resultado 0 em nenhuma das multiplicações. 2.: Em ambos os casos. com 5 e com 10 algarismos fracionários: Obs.0009765625 = 0.6510 para a base 2.0078125 + 0.125 + 0. o resultado encontrado é aproximado e essa aproximação será função do número de algarismos que calcularmos.125 = 0. melhor será a aproximação.5 + 0. encontraremos: Com 5 algarismos fracionários: Parte inteira: 11112 = 1510 Parte fracionária: 0.62510 Com 10 algarismos fracionários: Parte inteira: 11112 = 1510 Parte fracionária: 0.015625 + 0.

em azul. todas as regrinhas acima. Obs. são usadas. Exemplo: Converter 435 para ( )9. da direita para a esquerda. Obs.3.3 Aritmética em Binário 2.: 3) Na primeira linha.1 Soma A tabuada da soma aritmética em binário é muito simples. Solução: Apostila de Organização de Computadores . Obs.: 4) Por simplicidade. São poucas regras: 0+0=0 0+1=1 1+0=1 1 + 1 = 0 (e "vai 1" para o dígito de ordem superior) 1 + 1 + 1 = 1 (e "vai 1" para o dígito de ordem superior) Exemplo: Efetuar 011100 + 011010 Obs. 435 = (4 x 5 + 3)10 = 2310 ==> 23/9 = 2 (resto 5) logo 435 = 2310 = 259 2. Bruno 21 . que não sejam os casos particulares anteriormente estudados).Para converter números de uma base b para uma outra base b' quaisquer (isso é. em seqüência. o processo prático utilizado é converter da base b dada para a base 10 e depois da base 10 para a base b' pedida. é indicado o "vai um".: 1) Lembre-se: soma-se as colunas da direita para a esquerda.: 2) No exemplo. no exemplo estamos considerando os dois números positivos. tal como uma soma em decimal.Prof.

11-----> "vai um" 011100 011010+ ---------110110

2.3.2 Subtração Vamos ver agora a tabuada da subtração: 0-0=0 0 - 1 = 1 ("vem um do próximo") 1-0=1 1-1=0 Obs.: Como é impossível tirar 1 de zero, o artifício é "pedir emprestado" 1 da casa de ordem superior. Ou seja, na realidade o que se faz é subtrair 1 de 10 e encontramos 1 como resultado, devendo então subtrair 1 do dígito de ordem superior (aquele 1 que se "pediu emprestado"). Exemplo: Efetuar 111100 + 011010 Obs.: 1) Lembre-se: subtrai-se as colunas da direita para a esquerda, tal como uma subtração em decimal. Obs.: 2) No exemplo, são usadas, em seqüência, da direita para a esquerda, todas as regrinhas acima. Obs.: 3) Na primeira linha, em vermelho, é indicado o "vem um". Obs.: 4) Por simplicidade, no exemplo estamos considerando os dois números positivos. Solução:
Apostila de Organização de Computadores - Prof. Bruno

22

---02-> "vem um" 11100 01010---------10010 2.3.3 Complemento a Base A implementação do algoritmo da subtração em computadores é complexa, requerendo vários testes. Assim, em computadores a subtração em binário é feita por um artifício. O método utilizado é o "Método do Complemento a Base" que consiste em encontrar o complemento do número em relação à base e depois somar os números. Os computadores funcionam sempre na base 2, portanto o complemento à base será complemento a dois. Computadores encontram o complemento a dois de um número através de um algoritmo que pode ser assim descrito: se o número é positivo, mantenha o número (o complemento de um número positivo é o próprio número) - se o número é negativo: ---inverta o número negativo ou o subtraendo na subtração (todo 1 vira zero, todo zero vira um) --- some 1 ao número em complemento --- some as parcelas (na subtração, some o minuendo ao subtraendo) --- se a soma em complemento acarretar "vai-um" ao resultado, ignore o transporte final) Como exemplo, vamos usar o algoritmo acima na subtração abaixo: 1101 1100--------0001

Apostila de Organização de Computadores - Prof. Bruno

23

mantém o minuendo inverte o subtraendo soma minuendo e subtraendo soma 1 ignora o "vai-um"

--> --> --> --> -->

1101 0011 10000 10001 0001

2.3.4 Multiplicação e Divisão Vamos ver agora a tabuada da multiplicação: 0x0=0 0x1=0 1x0=0 1x1=1 No entanto, também a multiplicação em computadores é feita por um artifício: para multiplicar um número A por n, basta somar A com A, n vezes. Por exemplo, 4 x 3 = 4 + 4 + 4. E a divisão também pode ser feita por subtrações sucessivas! O que concluímos? Que qualquer operação aritmética pode ser realizada em computadores apenas através de somas (diretas ou em complemento Uns exercícios um pouco diferente, para desenvolver o raciocínio: a) Durante uma exploração, a arqueóloga Lar Acroft encontrou numa escavação uma pedra gravada com os seguintes caracteres: %@#% ###& %&#&%

Apostila de Organização de Computadores - Prof. Bruno

24

isto é. M. b) O Sr. Uma vantagem da utilização da representação em complemento é que a subtração entre dois números pode ser substituída pela sua soma em complemento. Bruno 25 . M. Quanto o Sr. 2. O e-mail continha apenas o seguinte texto: SEND MORE MONEY Concluindo (também) brilhantemente (e também com uma boa dose de adivinhação) que os símbolos correspondiam a uma operação de adição entre dois números positivos representados em decimal (Jaime NÃO era forte em informática!).3. que estava em missão. Bonde? 2.3.5 Representação de Números em Complemento Complemento é a diferença entre cada algarismo do número e o maior algarismo possível na base.Prof. raciocinou e então enviou ao agente uma determinada quantia. recebeu certo dia um e-mail de seu agente Jaime Bonde. M.5. o Sr. é idêntica à representação em sinal e magnitude. determine a base de numeração utilizada. o algarismo arábico correspondente a cada símbolo e a representação das parcelas e do resultado da adição. enviou para seu agente J. convertidas para a base 10.Concluindo brilhantemente (e com uma boa dose de adivinhação) que os símbolos correspondiam a uma operação de adição entre dois números positivos e que todos os algarismos usados pela antiga civilização estão presentes na gravação.1 Representação de Números Positivos em Complemento A representação de números positivos em complemento não tem qualquer alteração. Apostila de Organização de Computadores .

para efetuar esta operação.2: Calcular o complemento a (base . Se a base é 16.2 FFFF -3A7E C581 Caso Particular: Números na Base 2 (Complemento a 1) Para se obter o complemento a 1 de um número binário.3.2 Representação de Números Negativos em Complemento A (Base . Portanto: Ex.1) do número 3A7EH. Uma particularidade dos números binários é que. devemos subtrair cada algarismo de 1.1) menos cada algarismo do número.1) do número 29710.5. basta inverter todos os bits. Se a base é 10. 1111 -0011 1100 (C1) Portanto. Bruno 26 . então 10H-1 = F e o complemento a (base -1) será igual a complemento a F. Como exemplo.1: Calcular o complemento a (base . bastaria inverter todos os bits! Vamos analisar como ficaria a representação em C1 dos números binários de 4 dígitos: Apostila de Organização de Computadores .1 (base -1) --->999 -297 Complemento --->702 Ex. então 10-1 = 9 e o complemento a (base -1) será igual a complemento a 9 Ex. Fica mais fácil entender através de exemplos: Ex.Prof. vamos calcular o complemento a 1 (C1) de um número binário 0011 com 4 dígitos.2.1) A representação dos números inteiros negativos é obtida efetuando-se: (base .

Prof. As duas grandezas são representadas por 0 (falso) e 1 (verdadeiro). Boole construiu sua lógica a partir de símbolos.1 Conceitos de Lógica Digital Todos as complexas operações de um computador digital acabam sendo combinações de simples operações aritméticas e lógicas básicas: somar bits. complementar bits (para fazer subtrações). Computadores digitais (binários) são construídos com circuitos eletrônicos digitais as portas lógicas (circuitos lógicos). comparar bits. Os sistemas lógicos são estudados pela álgebra de chaveamentos. mover bits.1. não há alteração) 0000 0001 0010 0011 0100 0101 0110 0111 0 -1 -2 -3 -4 -5 -6 -7 Decimal (negativo) Binário (em C1) 1111 1110 1101 1100 1011 1010 1001 1000 3 CIRCUITOS LÓGICOS 3. conceituada pelo matemático inglês George Boole (1815 .Decimal (positivo) 0 1 2 3 4 5 6 7 Binário (se o número é positivo. A álgebra de Boole trabalha com apenas duas grandezas: falso ou verdadeiro.1864). um ramo da álgebra moderna ou álgebra de Boole. Estas operações são fisicamente realizadas por circuitos eletrônicos. representando as expressões por letras e ligando-as através de conectivos . Apostila de Organização de Computadores . Bruno 27 . chamados circuitos lógicos (ou gates "portas" lógicas).símbolos algébricos.

2. (um ponto. 3.2 Operadores Lógicos Os conectivos ou OPERADORES LÓGICOS ou FUNÇÕES LÓGICAS são: 3.Nota: nos circuitos lógicos do computador.2.todos os termos forem verdadeiros. os sinais binários são representados por níveis de tensão.e somente se . 3.1 E (ou AND) Uma sentença é verdadeira SE .2 OU (ou OR) Uma sentença resulta verdadeira se QUALQUER UM dos termos for verdadeiro. Bruno 28 . como se fosse uma multiplicação) OU ----> + (o sinal de soma) 3. 3.1.1.1.3 NÃO (ou NOT) Este operador INVERTE um termo.2. Os operadores lógicos são representados por: ____ NOT --> (uma barra horizontal sobre o termo a ser invertido ou negado). e os seus respectivos valores de saída.3 Tabela Verdade São tabelas que representam todas as possíveis combinações das variáveis de entrada de uma função.1. Apostila de Organização de Computadores .Prof. E ------> .1.

Apostila de Organização de Computadores .3 NOT .0 = 1 e 1 .: a inversão em binário funciona como se fizéssemos 1 .1. Bruno 29 . e suas representações em tabelasverdade.1 = 0. apresentamos as funções básicas.Função NÃO Obs.1.3. 3.1.A = X. 3.2 OR .Prof. as demais expressões "parecem" a aritmética comum a que estamos acostumados.3.1 AND .1. onde E substitui "vezes" e OU substitui "mais". 1 .4 Aplicação da Álgebra de Boole aos Computadores Digitais Boole desenvolveu sua álgebra a partir desses conceitos básicos e utilizando apenas os algarismos 0 e 1.A seguir.3. Ou seja. 3.Função OU Nota: A menos da estranha expressão 1 + 1 = 1.Função E 3.

Bruno 30 . como o ENIAC. Como funciona uma chave automática? Vamos imaginar um circuito chaveador com as seguintes entradas: uma fonte de alimentação (fornece energia para o circuito) um fio de controle (comanda a operação do circuito) um fio de saída (conduz o resultado) No desenho. Mas como os conceitos da álgebra de chaveamentos (um ramo da álgebra do Boole) são aplicados ao projeto dos computadores digitais? A chave de tudo é um circuito eletrônico chamado CHAVE AUTOMÁTICA. No entanto.Os primeiros computadores fabricados. que mude a posição da chave. simplificando extremamente o projeto e construção dos computadores. tendo como resultado que o sinal na saída será então 1 (ou Verdadeiro). a chave permanece aberta enquanto o sinal C no fio de controle for 0 (ou Falso). tendo por conseqüência um custo muito elevado.Prof. Quando for aplicado um sinal (sinal 1 ou Verdadeiro) ao fio de controle. Enquanto não houver um sinal (sinal 1 ou Verdadeiro) no fio de controle. trabalhavam em DECIMAL. A posição da chave se manterá enquanto não ocorrer um novo sinal na entrada. a utilização de circuitos eletrônicos que operassem com 10 diferentes níveis de tensão (para possibilitar detectar as 10 diferentes grandezas representadas no sistema decimal) acarretavam uma grande complexidade ao projeto e construção dos computadores. Apostila de Organização de Computadores . a chave muda de posição. Surgiu então a idéia de aplicar a álgebra de Boole. o sinal no fio de saída S será 0 (ou Falso).

Prof. Os modernos Circuitos Integrados .os TRANSISTORES. e ligássemos uma lâmpada ao circuito. O circuito resultante poderia ser representado assim: A lâmpada acenderia se . como ficaria nossa tabela verdade para LÂMPADA LIGADA = 1 e LÂMPADA DESLIGADA = 0? A 0 0 1 1 0 1 0 1 B 0 0 0 1 L Dá para reconhecer a nossa já familiar FUNÇÃO E? Apostila de Organização de Computadores . Bruno 31 . A partir da metade da década de 50.CI's e os microprocessadores são implementados com milhões de transistores "impressos" em minúsculas pastilhas. Vamos agora analisar o que ocorreria se nós ligássemos em SÉRIE duas chaves automáticas como as acima. inventados em Stanford em 1947.as DUAS chaves estivessem na posição LIGADO (ou verdadeiro). o que seria conseguido com as duas entradas A e B em estado 1 (Verdadeiro).e somente se . Substituindo CORRENTE (ou chave ligada) por 1 e AUSÊNCIA DE CORRENTE (ou chave desligada) por 0. passaram a ser utilizados dispositivos em estado sólido .A chave automática foi inicialmente implementada com relês eletromecânicos e depois com válvulas eletrônicas.

5 Porta Lógica ou Gate São dispositivos ou circuitos lógicos que operam um ou mais sinais lógicos de entrada para produzir uma (e somente uma) saída. a qual é dependente da função implementada no circuito. como ficaria nossa tabela verdade para LÂMPADA LIGADA = 1 e LÂMPADA DESLIGADA = 0? A 0 0 1 1 0 1 0 1 B 0 1 1 1 L E agora. Apostila de Organização de Computadores .O circuito acima que implementa a função E é chamado de PORTA E (AND GATE). e ligássemos uma lâmpada ao circuito.Prof. Vamos agora analisar o que ocorreria se nós ligássemos em PARALELO duas chaves automáticas como as acima. é chamado de PORTA OU (OR GATE). Substituindo CORRENTE (ou chave ligada) por 1 e AUSÊNCIA DE CORRENTE (ou chave desligada) por 0. 3. Bruno 32 . dá para reconhecer a nossa já familiar FUNÇÃO OU? O circuito acima. O circuito resultante poderia ser representado assim: A lâmpada acenderia SE QUALQUER UMA DAS-CHAVES estivesse na posição LIGADO (ou verdadeiro). o que seria conseguido com uma das duas entradas A ou B em estado 1 (Verdadeiro).1. que implementa a função OU.

esses circuitos não tem capacidade de armazenamento [casos a) e b) acima]. se o sinal de entrada for 0 ela produz uma saída 1. Bruno 33 . que executam as seguintes funções básicas: a) realizam operações matemáticas b) controlam o fluxo dos sinais c) armazenam dados Existem dois tipos de circuitos lógicos: a) COMBINACIONAL . b) SEQUENCIAL .a saída é função dos valores de entrada correntes e dos valores de entrada no instante anterior. é usada para a construção de circuitos de memória (chamados "flip-flops").2 Portas Lógicas 3.Um computador é constituído de uma infinidade de circuitos lógicos.1 Porta NOT (NÃO) A porta NOT inverte o sinal de entrada (executa a NEGAÇÃO do sinal de entrada). ou seja. se a entrada for 1 ela produz uma saída 0.2. 3. Apostila de Organização de Computadores .a saída é função dos valores de entrada correntes.Prof.

ou seja. a porta OR produzirá um sinal de saída igual a zero apenas se todos os sinais de entrada forem 0. para produzir um único sinal de saída.2. se qualquer um dos sinais de entrada for igual a 1.2.3. ela produz uma saída 1. ela produz uma saída que é o inverso da saída produzida pela porta AND. ou seja. ela produz uma saída 1. Apostila de Organização de Computadores . isto é. 3. se todos os sinais de entrada forem .3 Porta OR (OU) A porta OR combina dois ou mais sinais de entrada de forma equivalente a um circuito em paralelo.Prof. 3. a porta AND produzirá um sinal de saída igual a zero. Bruno 34 .2. caso qualquer um dos sinais de entrada for 0.2 Porta AND (E) A porta AND combina dois ou mais sinais de entrada de forma equivalente a um circuito em série.4 Porta NAND (NÃO E) A porta NAND eqüivale a uma porta AND seguida por uma porta NOT. para produzir um único sinal de saída.

a campainha não toca Tabela Verdade: Ignição 0 0 1 1 0 1 0 1 Cinto Campainha 0 0 0 1 Apostila de Organização de Computadores . Bruno 35 . 3. Caso contrário.6 Porta XOR (OU EXCLUSIVO) A porta XOR compara os bits.5 Porta NOR (NÃO OU) A porta NOR eqüivale a uma porta OR seguida por uma porta NOT. Se a ignição for ACIONADA (1) e o cinto estiver DESAFIVELADO (1). ela produz saída 0 quando todos os bits de entrada são iguais e saída 1 quando pelo menos um dos bits de entrada é diferente dos demais. a campainha é ACIONADA (1).Prof. Exemplo de circuitos utilizando portas lógicas: A) Uma campainha que toca (saída) se o motorista der a partida no motor do carro (entrada) sem estar com o cinto de segurança afivelado (entrada).2.2. isto é. ela produz uma saída que é o inverso da saída produzida pela porta OR.3.

Basta incluir uma porta AND. B) Detector de incêndio com vários sensores (entradas) e uma campainha para alarme (saída). Se QUALQUER UM dos sensores for acionado (significando que um dos sensores detectou sinal de incêndio), a campainha é ACIONADA. Tabela verdade: Sensor 1 0 0 1 1 Basta incluir uma porta OR. Sensor 2 0 1 0 1 0 1 1 1 Campainha

3.3

Algebra de Boole

As operações básicas da Álgebra de Boole são:

3.3.1 Avaliação de uma Expressão Booleana Uma expressão booleana é uma expressão formada por sinais de entrada (chamados variáveis de entrada) ligados por conectivos lógicos, produzindo como resultado um único sinal de saída. Na avaliação de uma expressão Booleana, deverá ser seguida uma ordem de precedência conforme a seguir definido:
Apostila de Organização de Computadores - Prof. Bruno

36

1º - avalie NOT 2º - avalie AND 3º - avalie OR Obs.: respeitando-se sempre os parênteses! Ex.: Avalie a expressão:

3.3.2 Equivalência de Funções Lógicas Duas funções Booleanas são equivalentes se - e somente se - para a mesma entrada, produzirem iguais valores de saída . PORTANTO, DUAS FUNÇÕES LÓGICAS EQUIVALENTES TEM A MESMA TABELA VERDADE. Ex.: Verifique se as funções lógicas a seguir representam funções equivalentes:

Apostila de Organização de Computadores - Prof. Bruno

37

3.3.3 Propriedade da Álgebra de Boole

Exercício: Simplifique a seguinte expressão:

3.3.4 Propriedades da Função XOR (EXCLUSIVE OR)

3.4

Representação de Circuitos com as Funções NAND e NOR

Usando as propriedades apresentadas, todo e qualquer circuito pode ser representado usando exclusivamente as função NAND ou as função NOR. Para que serviria tal artimanha, além da dor de cabeça aos estudantes? Há neste
Apostila de Organização de Computadores - Prof. Bruno

38

fica mais barato construir TODOS os circuitos de um computador usando APENAS UM ÚNICO TIPO DE CIRCUITO.3 Circuito OR Apostila de Organização de Computadores .4. 3.1 Circuito Inversor 3. vamos enfrentar a tarefa de representar os nossos circuitos já conhecidos usando apenas funções NAND ou os NOR. Aceitando essa afirmação.caso uma razão maior que a comodidade ou a aparente dificuldade: a razão econômica.4.4.2 Circuito AND 3.Prof. Bruno 39 . Por diversas razões construtivas.

Prof. Exemplos: a) Considere um circuito elétrico composto de uma fonte de energia comercial (a alimentação da empresa de distribuição de energia. a partir do que é possível montar sua tabela verdade..a) houver energia disponível (se não estiver "faltando luz") e b) o interruptor estiver ligado. b) Considere um sistema composto de duas caixas d'água (uma superior e uma cisApostila de Organização de Computadores . O processo para realização de uma função através de um circuito começa na descrição verbal do circuito (descrição do comportamento de suas possíveis saídas. Elabore a tabela verdade que representa esse circuito lógico.ex.5 Formas Canônicas 3.5.1 Representação de um Circuito através de uma Tabela Verdade Os circuitos de um computador realizam funções de grande complexidade.Exercício: Escreva a expressão do circuito abaixo e simplifique. em função das diversas combinações possíveis de seus sinais de entrada). a Light) e um interruptor (nossas entradas ) e uma lâmpada (nossa saída). Bruno 40 . cuja representação geralmente não é óbvia. A lâmpada acenderá se . usando apenas portas NAND! 3. p.e somente se . Solução: Este circuito implementa a função XOR.

O processo de elaboração da expressão usa as chamadas formas canônicas. MINITERMO .terna). com bateria de acumulação) e um interruptor (nossas entradas ) e um sistema de computadores (nossa saída). via empresa distribuidora (ex. Essas formas são alternativas. a outra representa as condições que produzirão saída 0 (produto dos maxitermos). isto é. Considerando que a bomba queimará se for acionada sem haver água no circuito hidráulico.são termos somente com AND (termos PRODUTO) Apostila de Organização de Computadores . a expressão poderá ser encontrada aplicando-se alternativamente uma ou outra das formas. que consistem em regras para representar as condições de entrada que: a) produzirão saída 1 (e portanto as demais condições produzirão saída 0) ou alternativamente. c) Considere um circuito elétrico composto de uma fonte de energia comercial (a alimentação da empresa de distribuição de energia.. circuitos antiincêndio. uma alimentação auxiliar (um gerador e um no-break. A cisterna é alimentada pela entrada de água da "rua". usando as portas lógicas já estudadas.: CEDAE). Elabore a tabela verdade que representa esse circuito lógico. descargas sanitárias. A partir da tabela verdade produzida conforme item anterior. São portanto duas as formas canônicas: uma representa as condições que produzem saída 1 (soma dos minitermos) . a Light). Bruno 41 . desde que tenha água na cisterna. A caixa superior serve para distribuir a água. com a água sendo impulsionada por uma bomba hidráulica através de uma tubulação que liga a cisterna à caixa superior.Prof. em todo o prédio: bicas. chuveiros. por gravidade. projete um circuito lógico para acionar a bomba sempre que a caixa superior estiver vazia. e em seguida construir o circuito. O computador poderá operar se: a) houver energia disponível (se não estiver "faltando luz") em um dos circuitos de alimentação e b) o interruptor estiver ligado. b) produzirão saída 0 (e portanto as demais condições produzirão saída 1).ex. etc. p. é possível chegar à expressão que representa o comportamento do circuito.

são termos somente com OR (termos SOMA) 3. Dessa forma. Ou seja.Prof. sendo que: . forçada pelo OR.quando a variável for 1. Caso nenhuma dessas alternativas se verifique. e a saída será também 1. Bruno 42 . Exemplo: 3.5.3 Produto dos Maxitermos Apostila de Organização de Computadores . "forçando-se" a saída 1 caso qualquer minitermo resulte no valor 1).2 Soma dos Minitermos É produzida construindo: um termo (uma sub-expressão) para cada linha da tabela verdade (que representa uma combinação de valores de entrada) em que a saída é 1. caso qualquer uma das condições de valores de entrada que produz saída 1se verifique). a função booleana será obtida unindo-se os termos PRODUTO (ou minitermos) por uma porta OR (ou seja.MAXITERMO . ligando os termos-produto (também chamados minitermos) pela porta OR. basta que se verifique qualquer uma das alternativas de valores de entrada expressos em um dos minitermos.5. complemente-a (função NOT). produz-se a saída 0. a saída pela porta OR será também 1.quando a variável for 0. . mantenha. cada um desses termos é formado pelo PRODUTO (FUNÇÃO AND) das variáveis de entrada. caso qualquer um dos minitermos seja 1 (portanto.

É produzida construindo: um termo (uma sub-expressão) para cada linha da tabela verdade (que representa uma combinação de valores de entrada) em que a saída é 0.quando a variável for 1. caso qualquer um dos minitermos seja 0 (portanto. . a saída pela porta AND será também 0. Dessa forma.Prof. ligando os termos-soma (também chamados maxitermos) pela porta AND. Caso nenhuma dessas alternativas se verifique. "forçando-se" a saída 0 caso qualquer minitermo resulte no valor 0). e a saída será também 0. A função booleana será obtida unindo-se os termos SOMA (ou maxitermos) por uma porta AND (ou seja. mantenha. cada um desses termos é formado pela SOMA (FUNÇÃO OR) das variáveis de entrada. Bruno 43 . basta que se verifique qualquer uma das alternativas de valores de entrada 0 expressos em um dos maxitermos. caso qualquer uma das condições de valores de entrada que produz saída 0 se verifique). sendo que: . Ou seja. Exemplo: Apostila de Organização de Computadores . O mesmo comportamento (a mesma tabela verdade) pode ser igualmente representada por qualquer das formas canônicas. produz-se a saída 1. forçada pelo AND. complemente-a (função NOT).quando a variável for 0. Exemplo: Obs:.

é útil SIMPLIFICAR a expressão.Se ambas as formas canônicas produzem expressões equivalentes. teremos: vem 1 + 1 + 1 = 1 e vai um Lembram-se do algoritmo da soma? Para somar dois números (em qualquer base. 0+0=0 0+1=1 1+0=1 1 + 1 = 0 e vai um Se houver vai um na soma anterior.Prof. Após se encontrar uma expressão que represente o comportamento esperado. soma-se os algarismos dos números.1 Circuitos Aritméticos Vamos lembrar a aritmética de ponto fixo. o fluxo de nosso procedimento será: DESCRIÇÃO VERBAL ---> TABELA VERDADE ---> FORMA CANÔNICA ---> -->FUNÇÃO SIMPLIFICADA ---> CIRCUITO 3. transportanApostila de Organização de Computadores . Portanto. de forma a possibilitar construir um circuito mais simples e portanto mais barato. é possível que não seja uma expressão simples que possa ser construída com poucas portas lógicas. produzindo uma expressão mais simples. Bruno 44 . binários ou não). Antes de projetar o circuito. pode-se encontrar a expressão que represente qualquer tabela verdade. para a soma de dois bits.6 Construção de Circuitos Reais de Computador 3.6. como escolher qual a representação a utilizar? Escolha a que resultar em menor número de termos. coluna a coluna. Por esse método.

Como fazemos para somar dois números de n algarismos? Na prática. quando o valor da soma de dois algarismos supera a base. fazemos resultado + base. isso eqüivale a MULTIPLICAR PELA Apostila de Organização de Computadores . fazemos a subtração através de uma soma em complemento. difícil não pode ser. um sobre o outro. O "VAI UM" de uma coluna (uma ordem) é o "VEM UM" da próxima coluna. E para fazer uma subtração? Lembrando também o estudado anteriormente. quando for o caso. UMA SUBTRAÇÃO É UMA SOMA EM COMPLEMENTO! Ou seja. já que vimos fazemos somas desse jeito desde o curso primário. A + A = 2A) e pela movimentação de bits. basta acrescentar um zero à direita do número.Prof.do o "vai um" para a próxima coluna. representamos os dois números a serem somados. Como nesse caso a base é 10. Fácil? Não? Se a explicação complicou. sendo base igual a 10 para qualquer base).B = A + ( . E a multiplicação? A multiplicação é obtida de duas formas: por somas sucessivas (por exemplo. Bruno 45 . A . Lembremo-nos que quando queremos multiplicar um número decimal por 10. basta vermos um exemplo prático para concluir o quanto é simples: NA BASE 10 110 085 +16 101 011 NA BASE 2 11010 01101 01101 11010 01101 "vem 1" (carry in) parcela parcela soma "vai 1" (carry out) Bom.B) No computador. somamos um à próxima coluna (isto é. e somamos coluna a coluna.

ou seja.2 Circuito Meio-Somador Apostila de Organização de Computadores . Generalizando. podemos ver que O COMPUTADOR PODE REALIZAR TODAS AS OPERAÇÕES ARITMÉTICAS USANDO APENAS SOMAS! Com esta introdução. Bruno 46 . 100(2) é 4(10). Lembrem-se: 10 só é dez em decimal! Agora. sempre que estivermos usando uma base diferente de 10.6. Por exemplo. vamos lembrar que. a partir de agora. aplicadas no sentido contrário. passando para decimal. para multiplicar um número pela base. valem para a divisão! Desta forma. fica banido de nosso vocabulário! As mesmas propriedades. vamos sempre ler 10 como um-zero! E como base decimal não é usada em computadores digitais.Prof. Para ficar ainda mais claro.BASE. 10(2) é 2(10) e portanto teríamos em decimal: 4 x 2 = 8). Isso. portanto. preenchendo a última ordem à direita (que ficaria vaga) com um zero. podemos agora estudar alguns exemplos dos circuitos aritméticos usados em computadores. basta acrescentar um zero à direita do número. 3. tomando 50 e fazendo 500 (movendo 50 para a esquerda uma posição e colocando um zero para preencher a posição mais à direita) eqüivale a multiplicar 50 por 10 (a base)! Idem na base 2: 100 x 10 = 1000 Atenção: devemos ler esse número como: um zero zero vezes um zero = um zero zero zero. DEZ. movemos todos os algarismo de um número para a esquerda de uma posição (uma ordem de grandeza). eqüivale a multiplicar esse número pela base. na base 10.

O circuito meio-somador SOMA DOIS BITS (sem levar em conta bit de carry).S e Co a.A e B Saída . Portanto. podendo haver interseção de portas lógicas.S e Co Como descrevemos anteriormente. Construir a tabela b. ou um circuito composto. Circuito 3. sendo duas as saídas. Simplificação (não há o que simplificar) d.a soma dos bits e o bit de carry out ("vai um") . serão necessárias duas funções diferentes.os dois bits a serem somados . a.6.3 Circuito Somador Completo O circuito somador completo SOMA DOIS BITS (considerando na soma o bit de carry in que veio da soma anterior).os dois bits a serem somados e o bit de carry in . uma função lógica produz uma e apenas uma saída.a soma dos bits e o bit de carry out ("vai um") . Entrada . c. B e Ci Saída . Forma canônica c.A. Entrada . Construir a tabela Apostila de Organização de Computadores . Bruno 47 .Prof.

Simplificação d.b.Prof. Representação esquemática Apostila de Organização de Computadores . Circuito e. Bruno 48 . Forma canônica c.

foram substituí- Apostila de Organização de Computadores . Bruno 49 .Prof. John Von Neumann (1903-1957). 3. Inicialmente foram usados chaves mecânicas.o Z-1 construído por Konrad Zuse em 1941 e o MARK 1 de Howard Aiken em 1944 (capazes de executar até 5 chaveamentos por segundo). 4. Este é o conceito de PROGRAMA ARMAZENADO. Ao processarem o programa.4 A ARQUITETURA DOS COMPUTADORES A arquitetura básica de um computador moderno segue ainda de forma geral os conceitos estabelecidos pelo Professor da Universidade de Princeton. Armazenassem na memória as instruções e todas as informações que fossem necessárias para a execução da tarefa desejada. 2. as instruções fossem buscadas na diretamente na memória. depois relês eletro-mecânicos . Codificassem instruções que pudessem ser armazenadas na memória e sugeriu que usassem cadeias de uns e zeros (binário) para codificá-los . Posteriormente. Von Neumann propôs construir computadores que: 1.1 Diagrama de Blocos dos Computadores Toda a lógica dos computadores é construída a partir de chaves liga / desliga.

OU.2 Unidade Central de Processamento A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP. OBS. 4. Os circuitos integrados (ou CI's) são encapsulamentos compactos (LSI Large Scale Integration e VLSI . Funções: Executar instruções . 4. Tem por finalidade permitir a comunicação entre o usuário e o computador.envia sinais de controle para toda a máquina. b) Unidade de Controle (UC) .Very Large Scale Integration) de circuitos constituídos de minúsculos transistores. Para que um programa possa ser manipulado pela máquina. etc) e aritméticas (somar. de forma que todos os circuitos e dispositivos funcionem adequada e sincronizadamente.responsável pela realização das operações lógicas (E. ele primeiro precisa estar armazenado na memória principal.: os circuitos da Memória Principal não são combinatórias. a) Unidade Lógica e Aritmética (ULA) . Realizar o controle das operações no computador. eles tem capacidade de armazenar bits.000 de chaveamentos por segundo).Prof.dos pelas válvulas no ENIAC em 1946 (capazes de 100. Os circuitos usados são do tipo "flip-flop". que serão vistos em sistemas operacionais. e finalmente pelos transistores (semicondutores) inventados em Stanford em 1947.programas e dados. OBS. etc).realizar aquilo que a instrução determina. Bruno 50 .3 Memória Principal (MP) A Memória Principal tem por finalidade armazenar toda a informação que é manipulada pelo computador .: Apostila de Organização de Computadores .

indicar à UCP onde o programa está armazenado. Processamento automático de dados O programas são armazenados na MP e a UCP é capaz de executar um processamento inteiro sem a intervenção do usuário. . Passos: armazenar o programa na MP. Bruno 51 . sem os dispositivos de E/S não haveria a comunicação entre o usuário e o computador.Para executar um programa.Prof. no entanto. bastaria UCP e MP. Estas operações são realizadas pelo SISTEMA OPERACIONAL: Apostila de Organização de Computadores . mesmo que haja vários desvios no programa.

indicando que os espectadores devem dirigir-se aos seus lugares para o próximo ato. regidos por um "patrão" .que fornece uma referência de tempo para todas as atividades e permite o sincronismo das operações internas. que se comportam de acordo com suas respectivas leis próprias e com tempos próprios. significando que o processamento deste ciclo está terminado e um outro ciclo se inicia.Prof. Bruno 52 .o pulso de "clock" . aparece a necessidade de um elemento externo que fica responsável pela coordenação dos tempos entre diferentes componentes de um sistema. O clock é um pulso alternado de sinais de tensão alta ("high") e baixa ("low"). em que a plena velocidade e direção somente é atingida porque todos os remadores fazem seus movimentos de forma coordenada. de forma a estarem lá a tempo de serem processados. devem trafegar para o próximo estágio de processamento (através de condutores . Apostila de Organização de Computadores .Sincronização de Operação do Sistema Imagine um barco a remo em uma competição. Imagine uma outra analogia: o final do intervalo de um espetáculo é sinalizado por uma campainha. O pulso de clock indica que um ciclo (um "estado") terminou.geralmente o timoneiro que indica o ritmo das remadas.um barramento ou um cabo). entendendo-se que os espectadores já devem estar todos sentados em seus lugares. indicando que terminou o intervalo e que o espetáculo vai recomeçar. determinando a alguns circuitos que iniciem a transferência dos dados nele contidos (abrindo a porta lógica para os próximos estágios) e a outros que recebam os dados e executem seu processamento. prontos para o próximo ato. As diversas partes de um computador comportam-se aproximadamente desta forma: instruções e dados. gerado pelos circuitos de relógio (composto de um cristal oscilador e circuitos auxiliares). Nestes dois exemplos. após sofrerem algum processamento em um determinado componente. Alguns instantes depois. O computador envia a todos os seus componentes um sinal elétrico regular . permitindo que suas atividades interrelacionadas sejam SINCRONIZADAS de forma a poder realizar um trabalho em conjunto. tocará uma outra campainha.

2 Hierárquia da memória A MP não é o único dispositivo de armazenamento de um computador. Tipo Registrador Memória Cache Capacidade Velocidade Custo Bytes Kbytes muito alta alta média baixa Localização Volatilidade Volátil Volátil Volátil Não Volátil muito alto UCP alto médio baixo UCP/placa Placa Externa Memória Principal Mbytes Memória Auxiliar Gbytes A UCP vê nesta ordem e acessa primeiro a que está mais próxima. Subindo na hierarquia.1 Tecnologias das memórias As primeiras tecnologias utilizadas em memórias foram as memórias de núcleos magnéticos.4. custo. maior custo. etc. Em função de características como tempo de acesso. com novas tecnologias sendo criadas a cada ano permitindo que grandes quantidades de células de memória sejam encapsuladas em pequenas pastilhas.. A informação permanece na memória principal apenas enquanto for necessário para seu emprego pela UCP.3. 4. Quem controla a utilização da memória principal é o Sistema Operacional. podemos estabelecer uma hierarquia de dispositivos de armazenamento em computadores. hoje apenas uma curiosidade. Apostila de Organização de Computadores . 4. capacidade de armazenamento. As memórias modernas são compostas por circuitos semicondutores.3. maior velocidade. porém menor capacidade de armazenamento.Prof. sendo então a área de MP ocupada pela informação pode ser liberada para ser posteriormente sobregravada por outra informação. quanto mais próximo da UCP.3.3 Controle de Memória A Memória Principal é a parte do computador onde programas e dados são armazenados para processamento. Bruno 53 .

configurando um gargalo ("bottleneck") ao desempenho do sistema. Por esse motivo. Apostila de Organização de Computadores .4 Registradores Registradores são dispositivos de armazenamento temporário. O conceito de registrador surgiu da necessidade da UCP de armazenar temporariamente dados intermediários durante um processamento. é muito caro.4. de forma a que o programa opere sempre sobre dados que estão em registradores. localizados na UCP.Prof.3. Desta forma. com capacidade para apenas um dado (uma palavra). as velocidades foram ficando muito mais altas que as das memórias. A arquitetura da memória cache é muito diferente da arquitetura da memória principal e o acesso a ela é muitas vezes mais rápido (p. Devido a sua tecnologia de construção e por estar localizado como parte da própria pastilha ("chip") da UCP. Máquinas RISC são geralmente construídas com um grande conjunto de registradores.5 Memória Cache Com o desenvolvimento da tecnologia de construção da UCP. Por exemplo. desenvolveram-se outras arquiteturas de memória privilegiando a velocidade de acesso.3. extremamente rápidos.ex: 5 ns contra 70 ns). quando um dado resultado de operação precisa ser armazenado até que o resultado de uma busca da memória esteja disponível para com ele realizar uma nova operação. que não tiveram a mesma evolução de velocidade (o aperfeiçoamento das memórias se deu mais no fator capacidade). Registradores são VOLÁTEIS. de forma a trazer os dados para o mais próximo possível da UCP. os tempos de acesso às memórias foram ficando insatisfatórios e a UCP ao buscar um dado na memória precisa ficar esperando muitos ciclos até que a memória retorne o dado buscado ("wait states"). isto é. 4. dependem de estar energizados para manter armazenado seu conteúdo. Bruno 54 .

Criou-se então um artifício. O índice de cache hit ou taxa de acerto da cache é geralmente acima de 90%. como loops. a cada momento. A capacidade da MP é limitada pelo seu relativamente alto cusApostila de Organização de Computadores . funções e só tem sentido porque programas executados linearmente. os programas tendem a referenciar várias vezes pequenos trechos de programas. dá-se um "cache hit" . seqüencialmente. não é econômico construir um computador somente com tecnologia de memória cache. isto é. Memórias cache também são VOLÁTEIS. dependem de estar energizadas para manter gravado seu conteúdo. e que funciona como um espelho de parte da MP. Desenvolveram-se ainda algoritmos que fazem com que. o custo de fabricação da memória cache é muito maior que o da MP. Bruno 55 . a cada momento.3. incorporando-se ao computador uma pequena porção de memória cache. são raros. sub-rotinas. Desta forma. Desta forma. A memória cache opera em função de um princípio estatístico comprovado: em geral.Prof. localizada entre a UCP e a MP. que ignora se existe ou não memória cache. a memória cache armazene a porção de código ou dados (por exemplo. Quando a MP busca um determinado trecho de código e o encontra na cache. acarretando atraso no processamento e dá-se um "cache miss" ou "cache fault". Esta transferência (MP <--> Cache) é feita pelo hardware: ela independe do software. uma sub-rotina) que estão sendo usados pelas UCP.No entanto. portanto ignora essa transferência. 4.6 Memórias Auxiliares Memórias auxiliares resolvem problemas de armazenamento de grandes quantidades de informações. enquanto se o dado não estiver presente na cache será necessário requisitar o mesmo à MP. nem o programador nem o sistema operacional têm que se preocupar com ela. algoritmos (chamados algoritmos de cache) podem controlar qual parte do código ficará copiado na cache.

CD-ROM. unidades ótico-magnéticas. e para isso é preciso haver um mecanismo que registre exatamente onde a informação foi armazenada (lembrando nossa analogia com o computador hipotético. Portanto. para acelerar a transferência de dados entre disco. o custo por bit armazenado é muito menor. OBS. etc. Não teria nenhum sentido armazenar informações que não fosse possível recuperar depois. por ex.para acelerar a transferência de dados. Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" da célula) e tem um tamanho fixo (para cada máquina).to. Trata-se do emprego do mesmo conceito da memória cache. 4. A memória principal é organizada em células. imagine encontrar uma informação guardada ao acaso. enquanto as memórias auxiliares tem maior capacidade e menor custo. MP e UCP. Os principais dispositivos de memória auxiliar são: discos rígidos (ou HD). drives de disquete. não basta transferir informações para a memória. Célula é a unidade de armazenamento do computador. utilizando um algoritmo de cache. quando ela for necessária.tipicamente 32 a 64 Kbytes . usando um programa (um software.: Cache de disco não é a mesma tecnologia da memória cache. DVD. não dependem de estar energizadas para manter gravado seu conteúdo.: SmartDrive) para manter um espelho do conteúdo de parte do disco (a mais provável de ser requisitada a seguir pela UCP) gravado em uma parte da Memória Principal. se nosso escaninho tivesse 1 milhão de compartimentos). unidades de fita. É preciso ter como encontrar essa informação mais tarde. Bruno 56 . as unidades de disco passaram a incorporar em sua interface chips de memória . portanto. isto é.Prof.7 Estrutura da Memória Principal . Outra vantagem importante é que as memórias auxiliares não são VOLÁTEIS. Recentemente.Células e Endereços A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário.3. As memórias são compostas de um determinado número de células ou Apostila de Organização de Computadores .

Computadores comerciais (tais como por exemplo os baseados nos processadores Intel 486) podem ter o tamanho da palavra definido como de 32 bits. de 0 a (N-1). Unidade de transferência é a quantidade de bits que é transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. são freqüentemente diferentes. Uma palavra deve representar um dado ou uma instrução.posições. Todas as células de um dado computador tem o mesmo tamanho. isto é. uma a uma. No entanto. porém sua estrutura de memória tem células de 16 bits. e também à unidade de transferência. que permite identificar univocamente uma célula. A estrutura da memória principal é um problema do projeto de hardware: mais endereços com células menores ou menos endereços com células maiores? O tamanho mais comum de célula era 8 bits (1 byte). pela qual é referenciada pelo sistema e pelos programas. Endereço é o localizador da célula. O tamanho da célula poderia ser igual ao da palavra.: Uma célula não significa o mesmo que uma palavra. As células são numeradas seqüencialmente. Bruno 57 . que poderia ser processada. OBS. Palavra é a unidade de processamento da UCP. hoje já são comuns células contendo vários bytes. em geral não é assim que acontece e os computadores comerciais não seguem um padrão único para a organização da UCP e MP. Apostila de Organização de Computadores . uma célula não necessariamente contém uma palavra.Prof. Cada célula é identificada por um endereço único. cada célula pode ser identificada pelo seu endereço. todas as células daquele computador terão o mesmo número de bits. Cada célula é composta de um determinado número de bits. porém por razões técnicas e de custo. armazenada ou transferida em uma única operação. Assim. chamado o endereço da célula.

4. bastaria encontrar a capacidade em bits e depois multiplicar por 8 (cada byte contém 8 bits) ou então converter o tamanho da célula para bytes e depois multiplicar pelo número de células. 4.Número de bits para representar um endereço Expressão geral: MP com endereços de 0 a (N-1) N = 2x logo: x = log2 N sendo x = nº de bits para representar um endereço e N o número de endereços. N=2x sendo x = nº de bits do endereço) M = nº de bits de cada célula Para encontrar a capacidade em bytes. Bruno 58 . O último endereço na memória é o endereço N-1 ( os endereços começam em zero e vão até N-1).3.8 Capacidade da Memória Principal A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula.9 Terminologia Apostila de Organização de Computadores . T=NxM T = capacidade da memória em bits N = nº de endereços ( como vimos anteriormente.3.Prof.

• DISPOSITIVOS DE MEMÓRIA ESTÁTICA .Também chamada de “armazenamento”.Também chamada de “busca” na memória.Uma classe de memórias a semicondutor projetadas para aplicações onde a taxa de operações de leitura é infinitamente mais alta do que as de escrita.1K = 1024 . Grande capacidade de armazenamento 4. armazenam um único bit) • PALAVRA DE MEMÓRIA .Qualquer memória que possa ser lida ou escrita com igual facilidade. • OPERAÇÃO DE LEITURA .048. mas depende do endereço. 1M = 1.Quantidade de tempo necessária à busca ou armazenamento.576 .( 2K x 8 = 2048 x 8 = 16384 bits ) • ENDEREÇO .Necessitam de energia elétrica para reter a informação armazenada.O tempo de acesso é constante para qualquer endereço da memória.UCP (em inglês. • MEMÓRIA DE MASSA . normalmente 4 a 64 bits ) • CAPACIDADE .Enquanto houver energia elétrica aplicada.É mais lenta que a principal. não há necessidade de rescrever a informação. • MEMÓRIA VOLÁTIL . ( Instruções e dados ). As funções da UCP são: executar as instruções e controlar as operações no Apostila de Organização de Computadores .4 Unidade Central de Processamento A Unidade Central de Processamento . Central Processing Unity CPU) é a responsável pelo processamento e execução dos programas armazenados na MP. • MEMÓRIA DE LEITURA (ROM) . • MEMÓRIA DE LEITURA/ESCRITA (RWM) . • MEMÓRIA DE ACESSO SEQUENCIAL (SAM) .É a mais rápida do sistema. Ex: fitas magnéticas.Necessitam de recarga ( refresh ) • MEMÓRIA PRINCIPAL (INTERNA) . Bruno 59 .( Flip-flop. • OPERAÇÃO DE ESCRITA . • DISPOSITIVOS DE MEMÓRIA DINÂMICA .Identifica a posição de uma palavra na memória.(Um grupo de células.O tempo de acesso não é constante. • MEMÓRIA DE ACESSO RANDÔMICO (RAM) .• CÉLULA DE MEMÓRIA . São não-voláteis. • TEMPO DE ACESSO .Prof.

Apostila de Organização de Computadores . A UCP é composta de duas partes: Unidade Aritmética e Lógica e Unidade de Controle.1 Unidade Aritmética e Lógica Tem por função a efetiva execução das instruções. Bruno 60 . interpretação e controle de execução das instruções.4.Prof. 4. A seguir é apresentado o diagrama esquemático de uma UCP.2 Unidade de Controle Tem por funções a busca. 4. e o controle dos demais componentes do computador.4.computador.

armazena o endereço da próxima instrução a ser executada .4 Instruções Para que um programa possa ser executado por um computador.armazena os dados (de entrada e resultados) para as operações na UAL.ACC Acumulador (em inglês: ACC .3 Registradores Importantes na UCP • Na UC . ele precisa ser constituído de uma série de instruções de máquina e estar armazenado em células sucessivas na memória principal.Accumulator) . A UCP é responsável pela execução das instruções que estão na memória.tem sempre o mesmo tamanho do REM.Prof. o acumulador é um dos principais elementos que definem o tamanho da palavra do computador . 4.o tamanho da palavra é igual ao tamanho do acumulador.RI Registrador de Instrução (em inglês: IR .4.Instruction Register) armazena a instrução a ser executada. Bruno 61 .4.CI Contador de Instruções (em inglês: PC . Apostila de Organização de Computadores . • Na UC .Program Counter) . • Na UAL .4.

abrir a gaveta. por exemplo. Um ser humano usa seu conhecimento e inteligência para traduzir uma tarefa complexa (tal como. Fazendo um paralelo com linguagens de alto nível. que é o código da operação. Para o computador. Cada instrução deverá ter um código único que a identifique. uma instrução precisa ser detalhada.Prof. endereços e dados e está totalmente vinculada ao conjunto ("set") de instruções da máquina.4. o programa elaborado pelo programador (o código-fonte. É o campo da instrução cuja valor binário identifica (é o código binário) da operação a ser realizada. que são dependentes do conjunto de instruções do computador e individualmente executáveis.4. Apostila de Organização de Computadores .Quem executa um programa é o hardware e o que ele espera encontrar é um programa em linguagem de máquina (uma seqüência de instruções de máquina em código binário). encontrar a pasta. A linguagem de máquina é composta de códigos binários. a tarefa de buscar uma pasta num arquivo) numa série de passos elementares (identificar o móvel e gaveta onde está a pasta.identifica a operação a ser realizada pelo processador. composto de instruções complexas) precisa ser "traduzido" em pequenas operações elementares (primitivas) executáveis pelo hardware.1 Formato Geral de uma Instrução Código de operação (OPCODE) Operando (s) (OP) • Código de Operação ou OPCODE . Bruno 62 . representando instruções. andar até o móvel. retirar a pasta e fechar a gaveta). dividida em pequenas etapas de operações. Cada uma das instruções tem um código binário associado. 4. Este código é a entrada no decodificador de instruções na unidade de controle.

× . um operando pode também indicar um Registrador (que conterá o dado propriamente dito ou um endereço de memória onde está armazenado o dado).o conjunto de instruções elementares que o hardware é capaz de executar. Os operandos fornecem os dados da instrução. um processador precisa possuir instruções para: • operações matemáticas 1. reg <--> reg) operações de entrada e saída (leitura e escrita em dispositivos de E/S) operações de controle (desvio de seqüência de execução. mais rápido pode ser o ciclo de tempo do processador. um operando identifica o endereço de memória onde está contido o dado que será manipulado. Ex. define-se o seu conjunto ("set") de instruções . Bruno 63 . . O projeto de um processador é centrado no seu conjunto ("set") de instruções.. Essa é uma das mais básicas decisões a ser tomada pelo Engenheiro de projeto. Em geral. 2. 3.. lógicas: and... parada) • • • As estratégias de implementação de processadores são: Apostila de Organização de Computadores . Obs: Existem instruções que não tem operando. .• Operando(s) . aritméticas: +. Finalmente. de complemento 4.4. or. Funcionalmente. 4. ÷ . Quanto menor e mais simples for este conjunto de instruções.: Instrução HALT (PARE). de deslocamento operações de movimentação de dados (memória <--> UCP.5 Conjunto de Instruções Quando se projeta um hardware. ou pode conter o endereço onde o resultado da operação será armazenado.. xor.Prof.é ou são o(s) campo(s) da instrução cujo valor binário sinaliza a localização do dado (ou é o próprio dado) que será manipulado (processado) pela instrução durante a operação.

4. uma a uma. de vez que os compiladores tendem a usar em geral apenas uma pequena quantidade de instruções. um conjunto de instruções menor e mais simples. ou RISC .Complex Instruction Set Computer .exemplo: PC. microcódigo (apenas um grupo básico de instruções são implementadas em circuitos.exemplo: Power PC. com ciclo de processamento mais lento. Sparc. Alpha. um conjunto de instruções maior e mais complexo.6 Ciclo de Instrução As instruções são executadas seqüencialmente (a não ser pela ocorrência de um desvio).maior simplicidade.Reduced Instruction Set Computer . com ciclo de processamento rápido. Apostila de Organização de Computadores . implicando num processador mais simples. menor tempo de ciclo de instrução. Há hoje uma crescente tendência a se utilizar um conjunto de instruções reduzido. Macintosh. Bruno 64 .: adotaremos o termo instrução para as instruções de máquina ou em linguagem Assembly e comando para linguagens de alto nível. barramentos) Duas estratégias são possíveis na construção do decodificador de instruções da UC: wired logic (as instruções são todas implementadas em circuito). 4. as demais são "montadas" através de microprogramas que usam as instruções básicas.• CISC .Prof. implicando num processador mais complexo. registradores. Há também vantagens na implementação do hardware . • Obs. O projeto de um processador poderia ser resumido em: a) Definir o conjunto de instruções (todas as possíveis instruções que o processador poderá executar) · definir formato e tamanho das instruções · definir as operações elementares a) Projetar os componentes do processador (UAL. UC.

isto é. Barramento é um conjunto de condutores elétricos que interligam os diversos componentes do computador e de circuitos eletrônicos que controlam o fluxo dos bits.5. através do barramento interno. é preciso emitir os sinais de controle necessários para o componente-origem colocar o dado no barramento e para o componente-destino ler o dado do barramento. Descrição do processamento de uma instrução na UCP: a UC lê o endereço da próxima instrução no CI. Para um dado ser transportado de um componente a outro.Prof.5 Comunicação entre Memória Principal e a Unidade Central de Processamento 4. Bruno 65 . para o REM. A seguir é ilustrado o ciclo de processamento de uma instrução.O CI indica a seqüência de execução. Como um dado é composto por bits (geralmente um ou mais bytes) o barramento deverá ter tantas linhas condutoras quanto forem os bits a serem transportados de cada vez.1 Barramentos Os diversos componentes dos computadores se comunicam através de barramentos. Apostila de Organização de Computadores . a UC transfere o endereço da próxima instrução. o CI controla o fluxo de execução das instruções. 4.

REM ou. x = no de bits do barramento de endereços.da UCP para a Memória Principal.Prof. se quisermos transferir um byte .RDM ou. bem o como Registrador de Dados da Memória . colocariam sinais de tensão "high" nas 2ª. Bruno 66 . os bits são sempre ordenados da direita para a esquerda) e de informar à memória para ler o dado no barramento. 01001010 . M em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Dados da Memória .: Em alguns computadores (usando uma abordagem que visa a redução de custos). Memory Buffer Register (MBR). sendo que um sinal de tensão de uns poucos volts ("high") representa o bit "1" e um sinal próximo de zero volts ("low") representa o bit "0". em inglês. 4ª e 7ª linhas do barramento (por convenção. os dados podem ser transportados usando mais de um ciclo do barramento. Memory Address Register (MAR). em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Endereços de Memória . os circuitos de controle se encarregarão de colocar o byte 01001010 no barramento.Obs.5. Os dados são representados no barramento na forma de sinais de tensão.por exemplo. 4. em inglês.2 Registradores Utilizados A comunicação entre MP e UCP usa dois registradores da UCP chamados de Registrador de Endereços de Memória . Assim.REM. Apostila de Organização de Computadores . M = nº de bits contidos em uma célula. ou seja.RDM.

.r/w) MP -----> UCP (wait .6 Esquema de Funcionamento da Comunicação entre MP / UCP UCP / MP Barramento de endereços – unidirecional (só a UCP envia dados ...Prof..ou lê dados .write . ) ELEMENTOS ENVOLVIDOS .da MP) Barramento de dados – bidirecional Barramento de controle – bidirecional UCP ---> MP (controles .read .4.Barramentos de dados – bidirecional de endereços –unidirecional de controle – bidirecional Apostila de Organização de Computadores .. Bruno 67 .

sua UAL e acumulador tem 64 bits). sendo que UAL e registradores são de 16 bits mas o barramento de dados é de apenas 8 bits. Destaque-se que nesse caso as transferências de dados através do barramento de dados se fazem em duas etapas.Registrador de Dados de Memória (MBR . por economia e razões de compatibilidade com toda uma geração de placas de 8 bits).Memory Buffer Register) 4. o que nem sempre acontece.Memory Address Register) RDM . Concluindo. do acumulador e registradores gerais da UCP e o barramento de dados) tenham a mesma largura (processem simultaneamente o mesmo número de bits). enganosa) e pode levar a erros de avaliação da capacidade de processamento de um computador. Desta forma. Muitas vezes encontram-se computadores em que o tamanho da UAL e do acumulador (e registradores gerais) não é o mesmo tamanho dos barramentos. deve-se analisar caso a caso. um byte de cada vez. porque a simples menção ao tamanho da palavra não é uma terminologia que permita definir de forma conclusiva sobre a arApostila de Organização de Computadores . A conceituação mais usada (IBM.7 Palavra (Unidade de Informação) Palavra é a unidade de informação do sistema UCP / MP. encontram-se especificações de "computadores de 64 bits" mesmo quando seu barramento de dados é de 32 bits.Registradores REM . Digital) define palavra como sendo a capacidade de manipulação de bits do núcleo do computador (UCP e MP). usado nos primeiros IBM/PC e XT (idêntico sob quase todos os aspectos ao 8086 e também dito de 16 bits.Registrador de Endereços de Memória (MAR . o que torna suas operações de transferência de dados mais lentas que as de seu "irmão" 8086. citamos os microprocessadores Intel 8086 (16 bits. nesse caso referindo-se exclusivamente à capacidade de manipulação da UCP de 64 bits (isto é. Esta conceituação é imprecisa (às vezes.Prof. e em conseqüência no 8088 elas consomem o dobro dos ciclos de barramento que o 8086).. Bruno 68 . sendo todos seus elementos de 16 bits) e seu "irmão" mais novo 8088. Pressupõe-se aqui que todos os elementos do núcleo do computador (o que incluí o tamanho da UAL. Como exemplos.

O tempo de acesso de uma memória depende da tecnologia da memória. Tempo de ciclo (ou ciclo de memória é conceituado como o tempo decorrido entre dois ciclos sucessivos de acesso à memória. As memórias dinâmicas perdem seu conteúdo em alguns instantes e dependem de ser periodicamente atualizadas (ciclo de "refresh"). Bruno 69 . No caso das SRAM (Static RAM ou memórias estáticas). 4 bytes (p.ex.quitetura do computador. 4. que não dependem de "refresh".as mais comuns hoje) tem tempo de acesso na faixa de 60 ns. 80286). 486. Apostila de Organização de Computadores . Ou seja.ex. requerem ciclos periódicos de "refresh". Em geral. o Pentium. as memórias DRAM tem ciclo de memória maior que o tempo de acesso. 2 bytes (p. As memórias dinâmicas. o tempo de ciclo é igual ao tempo de acesso. Células de memória muitas vezes tem o tamanho de 1 ou 2 bytes .de 8 a 16 bits.8 Tempo de Acesso Tempo de acesso (ou tempo de acesso para leitura) é o tempo decorrido entre uma requisição de leitura de uma posição de memória e o instante em que a informação requerida está disponível para utilização pela UCP. o termo "célula" é usada para definir a unidade de armazenamento (o tamanho de células de memória) e o termo "palavra" para definir a unidade de transferência e processamento. o Alpha da DEC). embora em algumas máquinas a palavra seja igual à célula.ex. o que faz com que a memória fique indisponível para novas transferências.ex. no entanto. a intervalos regulares necessários para os ciclos de "refresh". A palavra de um computador pode ter 1 byte (p. significando na prática quantos bits o computador movimenta e processa em cada operação. Assim. Não confundir: célula não é sinônimo de palavra.Prof. e muitos mainframes IBM) e mesmo 8 bytes (p. 8080). o tempo que a memória consome para colocar o conteúdo de uma célula no barramento de dados. As memórias DRAM (Dynamic RAM .

O tempo de acesso de qualquer memória tipo RAM (Random Access Memory ou memória de acesso aleatório) é independente do endereço a ser acessado (a posição de memória a ser escrita ou lida). Esta operação de recuperação da informação armazenada na MP consiste na transferência de um conjunto de bits (cópia) da MP para a UCP e é não destrutiva.3) o conteúdo da posição identificada pelo endereço contido no REM é transferido para o RDM e fica disponível para a UCP.Prof.1 Acesso Tipo Ler ou Escrever 4. portanto qualquer que seja o endereço (a posição) de memória que se queira acessar.2) a UCP comanda uma leitura. 4. Bruno 70 . o conteúdo da célula não é alterado. Apostila de Organização de Computadores .9 Acesso à Memória Principal O acesso à MP é ALEATÓRIO.1 Leitura: Ler da Memória Significa requisitar à MP o conteúdo de uma determinada célula (recuperar uma informação). isso é.9. o tempo de acesso é o mesmo (constante). O endereçamento por célula dá maior flexibilidade de armazenamento. em compensação o número de acessos é em geral maior. a UCP em geral acessa a MP por palavra. SENTIDO: da MP para a UCP Passos Executados pelo Hardware: a.1) a UCP armazena no REM o endereço onde a informação requerida está armazenada. isto é. a.: Embora a MP seja endereçada por célula. o tempo de acesso é o mesmo qualquer que seja o endereço acessado. a.9. Obs.1. 4.

4. 4.RAM Comumente (e impropriamente) chamada de RAM (Random Access Memory ou memória de acesso aleatório). as memórias podem ser classificadas como: 4.10 Classificação das Memórias Quanto à leitura e escrita.10. SENTIDO: da UCP para a MP PASSOS EXECUTADOS PELO HARDWARE: b. a BIOS Apostila de Organização de Computadores . Bruno 71 . b.9. embora não seja a única RAM. é também uma RAM). mas não é volátil. A MP é construída com memória R/W.1 R/W – Read and Write (memória de leitura e escrita) . Seu tempo de acesso é da ordem de 70ns e independe do endereço acessado.2) a UCP comanda uma operação de escrita.2 Escrita: Escrever na Memória Significa escrever uma informação em uma célula da MP (armazenar uma informação).Prof.3) a informação armazenada no RDM é transferida para a posição de memória cujo endereço está contido no REM. CCD). pode ser estática (SRAM) ou dinâmica (DRAM) e é volátil. É utilizada geralmente por fabricantes para gravar programas que não se deseja permitir que o usuário possa alterar ou apagar acidentalmente (tal como por ex.10. b. É construída com tecnologia de semicondutores (bipolar.2 ROM – Read Only Memory (memória apenas de leitura) Esta memória permite apenas a leitura e uma vez gravada não pode mais ser alterada. Esta operação de armazenamento da informação na MP consiste na transferência de um conjunto de bits da UCP para a MP e é destrutiva (isto significa que qualquer informação que estiver gravada naquela célula será sobregravada). 4.1) a UCP armazena no REM o endereço de memória da informação a ser gravada e no RDM a própria informação.1. Esta memória permite operações de escrita e leitura pelo usuário e pelos programas. Também é de acesso aleatório (isto é.

10. Bruno 72 . Este termo vem de uma analogia com um processo (impossível) que seria uma pessoa se levantar puxando-se pelos cordões de suas próprias botas.3 PROM – Programmable Read Only Memory (Memória programável de leitura) Esta memória é uma ROM programável (em condições e com máquinas adequadas. 4. sendo muito utilizada no processo de testar programas no lugar da ROM. Tem utilização semelhante à da PROM. sem intervenção externa. 4.Prof.: Boot (ou bootstrap loader) é o processo de inicialização e carga dos programas básicos de um computador. não pode mais ser alterada.. porém o processo produtivo depende de ser programada por máscara ("mask programmed") em fábrica e devido ao alto custo da máscara somente se torna econômica em grandes quantidades. parte do espaço de endereçamento da MP é ocupado por ROM.Erasable Programmable Read Only Memory (Memória programável apagável de leitura) Esta memória é uma PROM apagável. chamadas queimadores de PROM) e geralmente é comprada "virgem" (sem nada gravado). ou sempre que se queira produzir ROM em quantidades pequenas. automática. Uma vez programada (em fábrica ou não). para testar programas no lugar da ROM. A ROM é mais lenta que a R/W e é barata. Quando se liga uma máquina. Desta forma. 4. Esta memória é uma EPROM apagável por processo eletrônico.5 EEPROM ou E2PROM – Eletrically Erasable Programmable Read Only Memory (Memória programável apagável eletronicamente) Também chamada EAROM (Electrically Alterable ROM). sob controle da UCP. ou sempre que se queira produzir ROM em quantidades pequenas.4 EPROM . Obs.10. é da ROM que vem os programas que são carregados e processados no "boot" (na inicialização o hardware aponta automaticamente para o primeiro endereço da ROM). com equipamento e Apostila de Organização de Computadores . com a vantagem de poder ser apagada e reutilizada.10.Basic Input Output System e microprogramas de memórias de controle).

necessário e suficiente para os circuitos poderem detectar os sinais presentes no barramento naquele instante e reagir de forma apropriada. os sinais ficam estáticos apenas por um curto espaço de tempo. O clock é um Apostila de Organização de Computadores .o relógio interno do computador. uma nova configuração de bits é colocada nos circuitos.11 Lógica Temporizada Conforme vimos ao analisar a comunicação entre UCP e memória. os sinais variam. de endereços e de controle).11. a reconfiguração de teclado ou de modem. via modem. etc).1 Clock A Unidade de Controle da UCP envia a todos os componentes do computador um sinal elétrico regular . de forma a representar novas instruções. Mas os dados no computador não ficam estáticos. Este circuito é chamado clock . é chamado um ciclo de operação. programação de um terminal. dados e endereços.que fornece uma referência de tempo para todas as atividades e permite o sincronismo das operações internas. é preciso que exista um outro elemento.geralmente no entorno de 3 volts) significando "1" e uma tensão baixa ("low" . num dado instante. Ou seja. os dados e os endereços "trafegam" no computador através dos barramentos (de dados. pelo contrário. possibilitando a carga de novas versões de programas à distância ou então para possibilitar a reprogramação dinâmica de funções específicas de um determinado programa. limitados pelo sinal do clock.Prof.ex. periodicamente. as instruções. a cada ciclo (cada "estado") dos circuitos. de forma a que. É mais cara e é geralmente utilizada em dispositivos aos quais se deseja permitir a alteração.. que fornece uma base de tempo para que os circuitos e os sinais se sincronizem. Para isso.próxima de zero) significando "0". 4.programas adequados. 4. sob a forma de bits representados por sinais elétricos: uma tensão positiva alta ("high" . geralmente relativas ao hardware (p. e tudo isso só faz sentido se pudermos de alguma forma organizar e sincronizar essas variações. Bruno 73 . Assim.o pulso de "clock" . Cada um dos estados diferentes que os circuitos assumem. os diversos circuitos do computador possam "congelar" uma configuração de bits e processá-las.

se f = 10 hz logo P = 1/10 = 0. Isto acarreta que Apostila de Organização de Computadores . Quando se diz que um processador é de 200 Mhz. Inversamente. eqüivalendo um ciclo à excursão do sinal por um "low" e um "high" do pulso. o período será então medido em nanosegundos. O tempo do ciclo eqüivale ao período da oscilação. o tempo de duração de cada ciclo ou simplesmente tempo de ciclo). a duração de cada ciclo é chamada de período.2 Ciclo de Operação Cada um destes intervalos regulares de tempo é delimitado pelo início da descida do sinal. definido por P=1/f (o período é o inverso da freqüência). Sempre que se fala sobre máquinas velozes. A física diz que período é o inverso da freqüência.Prof. como vemos no exemplo abaixo: f = 10 Mhz = 10 x 106 hz P = 10 / 106 = 100 ns (1 nanosegundo). significando que o processador pode alternar seus estados internos 166 milhões de vezes por segundo. citamos números em megahertz. Por exemplo. está-se definindo a freqüência de operação de seu processador (seu clock).11.1 s. P = 1 / f. Bruno 74 .pulso alternado de sinais de tensão. 1 Mhz (1 megahertz) eqüivale a um milhão de ciclos por segundo. A freqüência f do clock é medida em hertz. Ou seja. Sendo a freqüência de um processador medida em megahertz. gerado pelos circuitos de relógio (composto de um cristal oscilador e circuitos auxiliares). Para um melhor entendimento sobre o que ocorre na máquina. em vez de falar sobre a freqüência do clock seria mais ilustrativo discutirmos uma outra grandeza: o período (isto é. 4.

e como esses números apresentam um padrão regular: Freqüência (MHz) Período (ns) 25 33 40 50 66 100 133 166 200 266 40 30 25 20 15 10 7. etc.. barramentos de E/S (entrada / saída). 166 MHz . memória. o processador com o clock ilustrado em (B) teria um tempo de ciclo cinco vezes menor que o (A) e portanto teria (teoricamente) condições de fazer cinco vezes mais operações no mesmo tempo.Prof. também a das memórias) aumentou em uma escala muito maior que a Apostila de Organização de Computadores . pode ficar uma impressão que esses números não fazem sentido: 133 MHz. Bruno 75 .75 Os primeiros computadores tinham um único sinal de clock geral. Vejamos como ficam seus períodos.000 s = 5 x 10-9 s ou seja.cada ciclo (equivalente a um estado lógico) de operação dura 1 / 200.000.5 6 5 3. válido para UCP. a freqüência de clock de operação dos processadores (e. Como podemos ver pelo exemplo a seguir. em menor escala. 5 nanosegundos.. À medida que a tecnologia foi se aperfeiçoando. Quando analisamos os números de clock de um processador ou barramento.

apenas alguns serão certificados para a máxima freqüência prevista. menos elétrons para operar uma transição de estados. · as memórias (ciclos da ordem de 60 ns) usam freqüências reduzidas a um quarto e · as cache secundárias (ciclos entre 10 e 20 ns) usam a própria freqüência da placamãe. O efeito prático (econômico$$$$) do aumento da freqüência de operação é que a precisão de fabricação dos circuitos tem que ser também maior. Desta forma. foi necessário criar diferentes pulsos de clock para acomodar as freqüências de operação dos diferentes componentes. a preços reduzidos. menor potência dissipada.dos demais componentes. e a maioria é certificada para operar a freqüências mais baixas. Uma junção menor requer menor potência para sua operação. a qual é multiplicada ou dividida para ser utilizada pelos demais componentes: · o processador tem essa freqüência multiplicada por 2 (133 Mhz) a 4 (266 MHz). o que obriga que o preço dos processadores de clock máximo seja muito mais caro que o dos muitos outros que não obtiveram certificação para aquele elevado clock e serão vendidos com "tags" de 166 ou 133 Mhz. O tamanho de cada junção de transistor fica menor (hoje são construídos chips com 0. A placa-mãe de um PC utiliza uma freqüência-mestra (hoje em geral de 66 Mhz. equivalente a um período de 15 ns. embora todos os processadores de um tipo sejam fabricados pelos mesmos processos e nas mesmas máquinas.25 microns está em gestação). menor tempo de propagação do sinal. Bruno 76 . Isto acarreta que. Em conseqüência da grande precisão exigida.Prof. Apostila de Organização de Computadores . As memórias cache primárias são hoje construídas como parte do processador e usam o mesmo clock do processador. apenas uma pequena parcela dos processadores fabricados (cerca de 5%) consegue operar na máxima freqüência para a qual foram projetados. · o barramento PCI usa freqüências reduzidas pela metade (33 Mhz). estando em prancheta placas para 100 MHz) para seu barramento (ciclo de barramento).35 microns e uma nova geração com 0.

2 ciclos por instrução de soma de 2 números Pentium . o computador precisaria localizar a instrução de soma na memória e movê-la para a UCP. ADD). Por exemplo.Prof.em geral. na família Intel x86: 386 . teclar o sinal de mais. No entanto. depois teclamos os algarismos do segundo número e teclamos o sinal de igual. determinar a localização e buscar cada um dos números na memória.1 ciclo por instrução de soma de 3 números. É comum pensar que nos computadores as coisas se passam mais ou menos do mesmo jeito. finalmente. Para o computador. a soma é realmente a parte mais simples e mais rápida de toda a operação.11. para andar mais rápido geralmente é mais eficaz trocar de marcha do que acelerar. a soma propriamente dita é a menor das tarefas que um computador executa quando soma dois números.1 ciclo por instrução de soma de 2 números Pentium Pro . quando um dos números está em memória de baixa velocidade.3 Instruções por Ciclo Qual a real importância e significado da freqüência do processador? Quando se faz uma soma em uma calculadora. Comparativamente.4. o Pentium Pro é capaz de "pular" este número e. seguir adiante. o tamanho dos dados (quantas células eles ocupam). buscando e somando os demais números para finalmente incluir o número que faltava na soma. enquanto busca o número que falta. Bruno 77 .mínimo de 6 ciclos por instrução de soma de 2 números 486 . já que decodificar a instrução e principalmente obter os dados tomam a maior parte do tempo. Neste exemplo. na soma de mais números. Esta instrução estaria codificada na forma de dígitos binários e teria que ser decodificada para determinar a operação a ser realizada (no caso. fazer a soma. um processador de 66 Apostila de Organização de Computadores . Cada nova geração de processadores tem sido capaz de executar as operações relativas ao processamento de uma instrução em menor número de ciclos do clock. basta teclar cada um dos algarismos do 1º número. Usando uma analogia com um automóvel. e só então.

com uma freqüência constante. quando executada pelo processador. mesmo que fosse possível "acelerar" o 8088 ao mesmo clock do Pentium.e não o mais importante . veremos que o Pentium 100 será substancialmente mais rápido. pelo operador (através das teclas do console de operação) ou pelo relógio do sistema. Interrupções podem ser originadas pelos vários dispositivos periféricos (terminais. Bruno 78 . Mas. Uma interrupção é um sinal de hardware que faz com que o processador sinalizado interrompa a execução do programa que vinha executando (guardando informações para poder continuar. um Pentium II seria equivalente à 5ª marcha e seria certamente muito mais rápido. origina as mesmas ações ocasionadas por uma interrupção (salvamento de informações para poder continuar. discos. Se compararmos um 486 DX4-100 (100 Mhz) com um Pentium também de 100 Mhz.). etc. o que se deve à sua arquitetura e não ao clock. se um 8088 fosse a 1ª marcha. O relógio (timer) é um dispositivo de hardware que decrementa automaticamente o conteúdo de um registrador ou posição de memória.Prof.Mhz hoje eqüivaleria a uma pequena pressão no acelerador e um de 300 Mhz ao acelerador pressionado até o fundo (pé na tábua!). 5 CONCEITOS DE INTERRUPÇÃO E TRAP Pode-se dizer que interrupções e traps são as forças que movimentam e dirigem os sistemas operacionais. pois um sistema operacional só recebe o controle da execução quando ocorre alguma interrupção ao trap. É portanto um engano comparar apenas a freqüência do clock: o desempenho do processador deve ser avaliado por um conjunto de características da arquitetura. e interrompe a UCP quando o valor decrementado Apostila de Organização de Computadores . a execução do programa e desvio para uma rotina específica que trata do trap). do qual a freqüência do clock é apenas um deles . Pode-se dizer que um trap é uma interrupção ocasionada por software. mais tarde. mais tarde. Um trap é uma instrução especial que. impressoras. a execução desse programa) e passe a executar uma rotina específica que trata da interrupção.

estado mestre) ou não privilegiado (estado de usuário. Os traps são necessários principalmente nos computadores que possuem instruções protegidas (privilegiadas). inibir) o sistema de interrupções. o novo valor carregado no registrador do estado do processador. O sistema operacional garante que ocorrerá pelo menos uma interrupção (e ele voltará a trabalhar) dentro de um intervalo de tempo t. colocando no relógio um valor que demore t unidades de tempo para ser decrementado até zero. Uma interrupção não afeta a instrução que está sendo executada pela UCP no momento em que ela ocorre: a UCP detecta interrupções apenas após o término da execução de uma instrução (e antes do início da execução da instrução seguinte). estado escravo). estado de programa. Bruno 79 . ocorrendo em pontos que não podem ser pré-determinados. Os computadores possuem instruções para mascarar (desabilitar.atinge zero. Neste caso. mas não são sentidas pelo processador. originam ações idênticas às que ocorrem por ocasião de uma interrupção. Conforme já foi dito. Os traps têm a finalidade de permitir aos programas dos usuários a passagem do controle da execução para o sistema operacional. No estado de supervisor qualquer instrução pode ser executada e no estado de usuário apenas as instruções não Apostila de Organização de Computadores .Prof. Pode-se dizer que um trap é uma interrupção prevista. as interrupções ficam pendentes (enfileiradas) e só serão sentidas quando uma instrução que desmascara as mesmas é executada. Sempre que ocorre uma interrupção ou trap. Uma interrupção. os traps são instruções especiais que. quando executadas. Esta atribuição de valor ao relógio é feita imediatamente antes do sistema operacional entregar a UCP para um programa de usuário. por outro lado. Enquanto as interrupções estão mascaradas elas podem ocorrer. indica estado privilegiado de execução. estado de supervisor. programada no sistema pelo próprio programador. Por esse motivo também são denominados “chamadas do supervisor” ou “chamadas do sistema” (supervisor call ou system call). Nesses computadores o registrador (palavra) de estado do processador possui um bit para indicar se a UCP está em estado privilegiado (estado de sistema. é completamente imprevisível.

Os dispositivos de entrada e saída tem como funções básicas: • • a comunicação do usuário com o computador a comunicação do computador com o meio ambiente (dispositivos externos a serem monitorados ou controlados) • armazenamento (gravação) de dados. passando como argumento o número que identifica a operação que está sendo requerida. especialmente os de pequeno porte. de vez que o computador precisaria esperar muito tempo pela resposta do dispositivo. 6 Dispositivos de Entradas e Saídas Conforme vimos no capítulo relativo a componentes.protegidas podem ser executadas. característica essa que impõe restrições à comunicação. As características que regem a comunicação de cada um dos dispositivos de E/S (entrada e saída) com o núcleo do computador (composto de UCP e memória principal) são muito diferentes entre si. Entre outras diferenças. Os tópicos a seguir vão analisar como funcionam os dispositivos de entrada e saída e como se faz a comunicação entre eles e o núcleo do computador. a ligação dos dispositivos de E/S era feita através de circuitos simples (as interfaces) que apenas resolviam os aspecApostila de Organização de Computadores . Os primeiros computadores. Outra diferença fundamental diz respeito às características das ligações dos sinais dos dispositivos. os dispositivos de entrada e saída são muito mais lentos que o computador. Quando um programa de usuário necessita executar alguma dessas operações. portanto. Exemplos de instruções protegidas são instruções para desabilitar e habilitar interrupções e instruções para realizar operações de E/S. Dessa forma. eram muito lentos e os problemas de diferença de velocidade eram resolvidos sem dificuldade e não representavam problema importante. Bruno 80 .Prof. o mesmo deve executar um trap. o usuário se comunica com o núcleo do computador (composto por UCP e memória principal) através de dispositivos de entrada e saída (dispositivos de E/S ou I/O devices). Operações que envolvam o uso de instruções protegidas só podem ser executadas pelo sistema operacional. Cada dispositivo de E/S se comunica com o núcleo de forma diversa do outro.

monitores de vídeo. sensores. mouses. converter informações do homem para a máquina e vice-versa. As funções desses dispositivos são coletar informações e introduzir as informações na máquina. endereços e controle. leitoras óticas. Os aspectos relativos a diferenças de velocidade (especialmente tempo de acesso e throughput) eram resolvidas por programa (isto é. microfones.tos de compatibilização de sinais elétricos entre os dispositivos de E/S e a UCP. A UCP não se comunica diretamente com cada dispositivo de E/S e sim com "interfaces". A UCP então transfere (ou recebe) Apostila de Organização de Computadores . transdutores. O processo de comunicação ("protocolo") é feito através de transferência de informações de controle. 6. endereços e dados propriamente ditos. a UCP interroga o dispositivo. de forma a compatibilizar as diferentes características. atuadores. ou ainda controlar dispositivos externos. plotters. Bruno 81 . leitoras de cartões magnéticos.1 Tipos de Dispositivos Os dispositivos de ENTRADA são: teclado. câmeras de vídeo.Prof. etc. enviando o endereço do dispositivo e um sinal dizendo se quer mandar ou receber dados através da interface. por software). Os dispositivos de SAÍDA são: impressoras. O periférico. scanners. As funções desses dispositivos são exibir ou imprimir os resultados do processamento. responde quando está pronto para receber (ou enviar) os dados. reconhecendo seu endereço. e recuperar informações dos dispositivos de armazenamento. Entre esses componentes. trafegam informações relativas a dados. chaves. Inicialmente.

A compatibilização de velocidades é feita geralmente por programa. usando memórias temporárias na interface chamadas "buffers" que armazenam as informações conforme vão chegando da UCP e as libera para o dispositivo à medida que este as pode receber. Canal de E/S Por exemplo. Processador de Periférico. Controladora de E/S. Apostila de Organização de Computadores . como vários bits são transmitidos simultaneamente a cada ciclo. e o dispositivo responde confirmando que recebeu (ou transferiu) os dados (acknowledge ou ACK) ou que não recebeu os dados. o nome é Peripheral Processor Unit ou PPU. Bruno 82 . byte a byte) através de diversas linhas condutoras dos sinais. 6. neste caso solicitando retransmissão (not-acknowledge ou NAK). As interfaces de entrada e saída são conhecidas por diversos nomes. os computadores de grande porte da IBM chamam de "I/O channel". grupos de bits são transferidos simultaneamente (em geral. 6. a taxa de transferência de dados ("throughput") é alta. a comunicação entre o núcleo do computador e os dispositivos de E/S poderia ser classificada em dois grupos: comunicação paralela ou serial.Prof.2.2 Formas de Comunicação De uma forma geral. Na CDC.os dados através da interface. dependendo do fabricante: Interface de E/S = Adaptador de Periférico. Desta forma.1 Comunicação em Paralelo Na comunicação em paralelo.

há limites para o comprimento do cabo que interliga um dispositivo ao computador. o comprimento dos cabos paralelos é limitado a até um máximo de 1. 6. quando se usa o modo paralelo. reconstituindo os bytes originais. Em geral.No entanto. Em decorrência desse problema. Dependendo do comprimento do cabo. Nesse modo. o processo de transferência em paralelo envolve um controle sofisticado e é razoavelmente complexo. Bruno 83 . o que o torna mais caro. ou mesmo impressoras. isto é. Como os condutores que compõem o cabo usualmente terão pequenas diferenças físicas. e que se situem muito próximo do núcleo do computador. e são individualmente transmitidos. através de um único par condutor. Como todos os bits são Apostila de Organização de Computadores . pode ocorrer que um determinado fio conduza sinais mais rápido (ou mais lento) que os demais fios e que desta forma um determinado bit x em cada byte se propague mais rápido e chegue à extremidade do cabo antes que os outros n-1 bits do byte.5 metro.Prof. normalmente associadas a dispositivos mais velozes tais como unidades de disco. são remontados. DVD. e as conseqüências são catastróficas: os bits x chegariam fora de ordem (os bytes chegariam embaralhados) e a informação ficaria irrecuperável.2 Comunicação Serial Na comunicação serial. como CD-ROM. a velocidade de propagação dos sinais digitais nos condutores poderá ser ligeiramente diferente nos diversos fios. Este fenômeno é chamado skew. Essa propagação deve se fazer de modo que os sinais (os bits) correspondentes a cada byte cheguem simultaneamente à extremidade oposta do cabo. onde então serão re-agrupados em bytes. um a um. isto é. os bits são transferidos um a um. Os bytes a serem transmitidos são serializados. As restrições citadas contribuem para que a utilização da comunicação em paralelo se limite a aplicações que demandem altas taxas de transferência. no cabo de conexão entre o dispositivo e a interface. ou que demandem altas taxas de transferência. são "desmontados" bit a bit.2. Na outra extremidade do condutor. Um dos problemas importantes diz respeito à propagação dos sinais no meio físico. os bits são contados e quando formam 8 bits. o controle é comparativamente muito mais simples que no modo paralelo e é de implementação mais barata.

etc. sua utilização é normalmente indicada apenas para periféricos mais lentos. ou quando o problema da distância for mandatário. de interface e de meio de transmissão) que vem permitindo o aumento da velocidade de transmissão por um único par de fios. mouse. Em microcomputadores. como por exemplo teclado. a transmissão serial é intrinsecamente mais lenta (de vez que apenas um bit é transmitido de cada vez). a tendência tem sido no sentido do aperfeiçoamento das interfaces seriais que hoje permitem taxas de transferência muito altas com relativamente poucas restrições de distância.transferidos pelo mesmo meio físico (mesmo par de fios).2.3 Tabela Comparativa Característica Custo Distância Paralelo maior curta Serial menor sem limite Apostila de Organização de Computadores . a transmissão serial não é afetada por irregularidades do meio de transmissão e não há skew. a interface USB Universal Serial Bus permite hoje ligar até 128 dispositivos a taxas muito altas (centenas de kbps).Prof. Como os bits são transmitidos seqüencialmente um a um. cabo coaxial ou de fibra ótica. Portanto. Obs. as eventuais irregularidades afetam todos os bits igualmente. como nas comunicações a distâncias médias (tal como em redes locais) ou longas (comunicações via linha telefônica usando modems). Bruno 84 . a transmissão serial tem recebido aperfeiçoamentos importantes (seja de protocolo.: Comparativamente. 6. No entanto. Como o aumento da velocidade de transmissão em interfaces paralelas ocasiona mais skew.

os dois dispositivos .2 Transmissão Assíncrona Já na transmissão assíncrona. No início de uma transmissão síncrona.1 Transmissão Síncrona Na transmissão síncrona. foi padronizado que na Apostila de Organização de Computadores . Como o fluxo de caracteres não é homogêneo. o intervalo de tempo entre dois caracteres subseqüentes é fixo.2. Bruno 85 .Throughput alto baixo 6. e portanto não teria como identificar o que seria o primeiro bit do caractere. Para resolver esses problemas de transmissão assíncrona. Quando não há caracteres a serem transferidos.4 Transmissão Síncrona e Assíncrona A transmissão de caracteres através de uma linha de comunicação pode ser feita por dois diferentes métodos: transmissão síncrona e assíncrona. 6.transmissor e receptor . não haveria como distinguir a ausência de bits sendo transmitidos de um eventual fluxo de bits zero e o receptor nunca saberia quando virá o próximo caractere. Nesse método. 6.4. o intervalo de tempo entre os caracteres não é fixo.2. não havendo um fluxo homogêneo de caracteres a serem transmitidos.2. Podemos exemplificar com um digitador operando um terminal. podendo transmitir dezenas de milhares de bits antes de terem necessidade de re-sincronizar.4.são sincronizados. pois existe uma relação direta entre tempo e os caracteres transferidos. o transmissor continua enviando caracteres especiais de forma que o intervalo de tempo entre caracteres se mantém constante e o receptor mantém-se sincronizado. os relógios dos dispositivos transmissor e receptor são sincronizados através de um string de sincronização e então mantém-se sincronizados por longos períodos de tempo (dependendo da estabilidade dos relógios).Prof.

2. o que distingue também de linha interrompida). interrompendo assim a seqüência de bits 1 que caracteriza a linha livre (idle).Prof.ausência de caracteres a serem transmitidos o transmissor mantém a linha sempre no estado 1 (isto é. a eficiência é menor que a no método síncrono. uma vez que há necessidade de inserir os bits de partida e parada. No método assíncrono. Os bits de informação são transmitidos em intervalos de tempo uniformes entre o start bit e o(s) stop bit(s). Transmissões de rádio e televisão são exemplos de transmissão simplex. Não há possibilidade do dispositivo receptor enviar dados ou mesmo sinalizar se os dados foram recebidos corretamente. de forma que a cada caractere são inseridos de 2 a 3 bits que não contém informação. transmite ininterruptamente bits 1. Convenciona-se que esse start bit será um bit zero. transmissor e receptor somente estarão sincronizados durante o intervalo de tempo entre os bits de start e stop. o transmissor insere um bit de partida (start bit) antes de cada caractere. ao final de cada caractere o transmissor insere um (ou dois. convencionando-se serem bits 1 para distingui-los dos bits de partida. 6. Half-Duplex e Full-Duplex 6. Portanto.5 Transmissão Simplex. Bruno 86 .2. Quando for transmitir um caractere.5. tendo em uma extremidade um dispositivo apenas transmissor (transmitter) e do outro um dispositivo apenas receptor (receiver). Para maior segurança. para permitir que o receptor reconheça o início do caractere.1 Transmissão Simplex Uma comunicação é dita simplex quando permite comunicação apenas em um único sentido. A taxa de eficiência de uma transmissão de dados é medida como a relação de número de bits úteis dividido pelo total de bits transmitidos. A transmissão assíncrona também é conhecida como "start-stop". dependendo do padrão adotado) bits de parada (stop bits). Apostila de Organização de Computadores .

em determinado instante um dispositivo A será transmissor e o outro B será receptor. o sentido da transmissão seria invertido e B transmitiria para a informação se os dados foram corretamente recebidos ou se foram detectados erros de transmissão. Durante uma transmissão half-duplex. 6. Bruno 87 .2.5.2. Poderíamos entender uma linha full-duplex como funcionalmente equivalente a duas linhas simplex.3 Transmissão Full-Duplex Uma transmissão é dita full-duplex (também chamada apenas duplex) quando dados podem ser transmitidos e recebidos simultaneamente em ambos os sentidos. em outro instante os papéis podem se inverter. uma linha fullApostila de Organização de Computadores . porém não simultaneamente.2 Transmissão Half-Duplex Uma comunicação é dita half-duplex (também chamada semi-duplex) quando existem em ambas as extremidades dispositivos que podem transmitir e receber dados. A operação de troca de sentido de transmissão entre os dispositivos é chamada de turn-around e o tempo necessário para os dispositivos chavearem entre as funções de transmissor e receptor é chamado de turn-around time. uma em cada direção.Prof.6. o dispositivo A poderia transmitir dados que B receberia. Por exemplo.5. em seguida. Como as transmissões podem ser simultâneas em ambos os sentidos e não existe perda de tempo com turn-around.

existe uma matriz de condutores que. de forma que um processador (processador de teclado) possa identificar qual tecla foi pressionada. considerando-se a mesma taxa de transmissão de dados. usado pela IBM em máquinas de grande porte.Prof. fecha contato entre dois de seu condutores. Por baixo das teclas. São utilizados mais usualmente dois códigos: ASCII (American Standard Code for Information Interchange). . 6. associadas aos caracteres utilizados para escrita e para controle (letras.3. A parte visível do teclado é o conjunto de teclas. esta informação é codificada e enviada para o processador principal do computador.3 Dispositivos de Entrada e Saída 6. Uma vez identificada a tecla. quando uma tecla é pressionada. algarismos.1ª fase: identificação da tecla e interpretação pelo software de controle do teclado (parte da BIOS). etc). o mais utilizado. teclas de função. Apostila de Organização de Computadores .2ª fase: conversão do código identificador da tecla para ASCII ou EBCDIC. teclas de movimentação de cursor.1 Teclado O teclado é um dispositivo de entrada de dados composto de um conjunto de teclas. ou EBCDIC (Extended Binary Coded Decimal Interchange Code).duplex pode transmitir mais informações por unidade de tempo (maior throughput) que uma linha half-duplex. inclusive em microcomputadores. sinais de pontuação. Bruno 88 . A codificação é feita em duas fases: .

Bruno 89 .3.Prof.Cada ponto da imagem precisa ser "impresso" na tela. normal ou piscante. ponto por ponto. no ASCII estendido) mais um bit para cada atributo (brilho normal x realçado. Como os pontos iluminados esmaecem após alguns instantes. isto é. Os monitores em geral tem suas telas de imagem construídas a partir de um CRT Tubo de Raios Catódicos (nos microcomputadores portáteis são geralmente usadas telas de cristal líquido). do início ao fim da tela.2 Monitor de Vídeo O monitor de vídeo é um dispositivo de saída que utiliza uma tela semelhante à de TV como meio de visualização das informações processadas pelo computador. podendo apenas destacar brilho. então de volta ao início e assim sucessivamente.1 Tipos de Monitor e Modo de Exibição Os monitores eram inicialmente utilizados para exibir apenas caracteres (modo caractere ou modo alfanumérico) em uma única cor (geralmente um fósforo verde. algumas vezes branco ou ainda laranja). Cada caractere possuía poucos atributos. o computador ( o processador) precisa ficar constantemente re-enviando a mesma imagem (ou imagens modificadas) para a interface que por sua vez renova a informação de imagem ("refresca" a tela). Posteriormente. onde os sinais analógicos de vídeo que vão formar a imagem propriamente dita são produzidos. o que trafegava na interface entre computador e monitor eram apenas códigos em bits (geralmente ASCII) que representavam os caracteres que seriam exibidos. exibir piscante ("blink") e reverso. notebooks. A informação relativa à imagem que deve ser exibida é gerada no computador e transmitida (em formato digital. um de cada vez. normal ou reverso). Dessa forma. Também são utilizados monitores com tela de cristal líquido em microcomputadores portáteis (laptops. Na interface esses códigos digitais eram decodificados e transformados em sinais analógicos (sinais de vídeo) com os pontos que formariam cada caractere. sem parar. Apostila de Organização de Computadores . ininterruptamente. etc). Cada caractere requer apenas 7 bits no código ASCII (ou 8 bits. bits) para a interface de vídeo.2. linha por linha. Isso é conseguido iluminando individualmente todos os pontos. 6.3. foram desenvolvidos monitores gráficos (pixel oriented) em cores.6. hand-helds.

serão necessários 16 = 24 códigos e portanto serão necessários 4 bits para identificá-las individualmente. isto é. entre eles a cor. até a chamada "true color" com 64 milhões = 232 cores exigindo 32 bits. Mais ainda: o processo de envio das modificações de uma imagem passou a ser feito por diferença. não havendo necessidade do processador principal (o processador do computador) re-enviar uma imagem que não sofresse alterações. o computador passou a transmitir primitivas gráficas (informações codificadas que eram transformadas em imagem gráfica definida em pixels apenas no processador gráfico da interface). A solução para esse problema veio com o desenvolvimento de interfaces mais elaboradas. Dessa forma. bem como pela utilização de verdadeiros processadores de imagem (interfaces dotadas de memória local e de processadores especializados para processamento gráfico). Quanto mais pixels maior resolução.Prof. Sendo 256 cores.Nesses monitores.picture elements) passou a ter diversos atributos. Cada um desses pontos (chamados pixels . pela seguinte expressão: Apostila de Organização de Computadores . serão 256 = 28 portanto 8 bits e assim por diante. a imagem passou a ser constituída. A quantidade de informações que passou a trafegar entre computador e monitor aumentou de forma extraordinária. bem como pelos bits de atributo (um bit por atributo para cada ponto). se tivermos 16 cores. possibilitando maior taxa de transmissão de informações (throughput). Cada cor exibida precisa ser identificada por um código. o processador principal transmite apenas o que mudou e o processador de vídeo se encarrega de alterar a imagem de acordo. não mais por caracteres de uma só cor que podiam ser tratados como códigos ASCII. podemos calcular aproximadamente quantos bytes devem ser transferidos entre computador e interface para carregar uma determinada tela. mas também maior número de bits a serem transmitidos em cada tela. De uma forma bastante simplificada. Também em termos de resolução (número de pontos de imagem por tela) as exigências cresceram muito. Considerando apenas o atributo de cor. exigindo novas soluções de projeto para evitar que a exibição de informações na tela se transformasse em um "gargalo" (bottleneck) para o desempenho do sistema. O processo de refresh também passou a ser atribuição somente do processador de vídeo. mas agora por pontos individualmente produzidos e transmitidos para a tela e que vistos em conjunto formam a imagem gráfica. Bruno 90 .

as impressoras evoluíram a partir de dispositivos que imprimiam apenas caracteres em uma única cor para as modernas impressoras capazes de reproduzir imagens sofisticadas. Bruno 91 .3 Impressoras Nº 320 640 640 800 1024 1280 colunas linhas 218.Modo caractere: nº de colunas x nº de linhas x nº de bytes por caractere Modo gráfico: nº de colunas x nº de linhas x nº de bytes por pixel No cálculo a seguir apresentado como exemplo.300 Nº pixels 64 k Nº cores 2 = 21 2 = 21 Nº cores 4 = 22 Bytes transferidos 2 kbytes 3.2 kbytes Bytes transferidos 32 kbytes 110 kbytes 150 kbytes 468. Informações transferidas entre computador e interface Monitores Modo Caractere monocromático 80 colunas 80 Nº 25 25 Nº 200 350 480 600 768 1024 Nº Nº 2. modo alfanumérico ou gráfico. que não serão considerados nessa discussão. etc. no número de bits por caractere ou por pixel foi considerado (por simplicidade) apenas o atributo cor.3. Da mesma forma que os monitores. Também de forma semelhante aos monitores.75 k 16 = 24 300 k 16 = 24 468.000 3. Apostila de Organização de Computadores .75 kbytes colunas linhas caracter monocromático 132 colunas 132 Monitores Gráficos CGA EGA VGA SVGA SVGA SVGA 6.75 k 256 = 28 768 k 1. entre eles diversos "modos" que definem número de cores. de alta resolução gráfica. em milhares de cores.25 M 64 k = 216 1. a imagem impressa é resultado de muitos pontos impressos individualmente que no conjunto formam o texto ou a imagem desejados.Prof.5 Mbytes 64 M = 232 5 Mbytes Impressoras são dispositivos de saída que tem por finalidade imprimir em papel ou filme plástico os resultados do processamento. O padrão VGA possui diversos outros atributos.

Geralmente é possível usar apenas uma fonte gráfica.3. Quando se utiliza uma impressora gráfica para imprimir texto.3.2 Impressoras Gráficas Esses equipamentos recebem do computador a informação sobre os pontos a serem impressos. 6.Caracter .imprime de 80 a 132 caracteres simultaneamente .3.Linha .3. definidas por software.utilizam tecnologia derivada das máquinas de escrever .velocidade de impressão de 20 cps a 45 cps .baixa velocidade .3.baixa definição gráfica (até 300 dpi) Apostila de Organização de Computadores .maior velocidade de impressão .unidade de medida de velocidade: 1pm (linhas por minuto) .1 Impressoras Alfanuméricas Esses equipamentos recebem do computador códigos que representam caracteres alfanuméricos e portanto tem capacidade de imprimir apenas esses caracteres. podem imprimir gráficos. viabilizando a utilização de um pequeno número de fontes gráficas.5 Impressoras Matriciais . Dessa forma. 6.3.3. Na impressão de textos.3. que em determinada configuração formam a imagem gráfica do caractere a ser impresso. existe a possibilidade de utilizar um grande número de diferentes fontes gráficas.3.tinham preço relativamente acessível. característica do equipamento.Prof.6.4 Impressoras de Tambor . mas hoje estão obsoletas .usadas em ambientes de grande porte 6. Bruno 92 .3 Impressora de Esfera e Impressora Margarida ("daisy wheel") .3. os caracteres são impressos como pontos.com 9 ou 24 agulhas (80 a 400 cps) . Algumas impressoras permitem trocar o dispositivo de impressão.usadas em sistemas de microcomputadores 6.Impacto .

4 a 7 ppm . reduzidas hoje às aplicações que requerem múltiplas cópias 6.baixo custo 6. Unidades de Fita são dispositivos de acesso seqüencial. viabilizando a utilização de cor . As unidades de fita são constituídas basicamente de um dispositivo de transporte (para a movimentação da fita) e das cabeças magnéticas (que executam a gravação e leitura das informações na fita).Prof. utiliza-se discos magnéticos durante o processamento e a fita para armazenamento posterior de dados.000 ppm .3.impressoras de microcomputadores .estão obsoletas.permitem uso de papel carbonato.baixa velocidade .20. usados para armazenar grandes volumes de informação). 6. Apostila de Organização de Computadores . Desta forma. elas não interagem com o processador durante a execução do programa. revestido de material magnetizável.7 Impressoras Laser .média resolução gráfica (até cerca de 1200 dpi) . além da eletrônica de controle..3. Atualmente.3.4 Fita Magnética Unidades de fita magnética são dispositivos de armazenamento de massa (isto é.3. viabilizando múltiplas cópias .hoje já estão disponíveis modelos com recurso de cor.impressoras de computadores de grande porte .baixa velocidade . geralmente para gerar cópias de segurança (cópias de back-up). evitando o desperdício de tempo inerente à sua lentidão.alta definição gráfica (de 600 até 4800 dpi) .permite cartuchos de tinta de várias cores.3. Bruno 93 . As fitas magnéticas são usadas principalmente como meio de armazenamento off-line (para aplicação fora do processamento).6 Impressoras de Jato de Tinta . Essa é uma das principais razões para que as unidades de fita sejam muito lentas. A fita propriamente dita é uma fina superfície contínua feita em material plástico flexível.

Os discos propriamente ditos são superfícies de formato circular. 1200 e 2.grande capacidade. cabeças de leitura / gravação e o mecanismo para o posicionamento das cabeças. 600.grande densidade: 30. proporcionando um baixo custo por byte armazenado. 1. Bruno 94 .1 Tipos de Fitas > Streamer . motor para girar o disco. mas que podem.600 ou 6. que são móveis. a critério do usuário. Em compensação.400 pés. revestidas de material magnetizável em ambas as faces. Por ex: 800. Um disco magnético incorpora eletrônica de controle.3. compostos de finos discos de alumínio ou vidro. Densidade pode ser definido como "quantos caracteres podem ser armazenados por unidade de comprimento da fita" e é medida em bpi (bytes por polegada). especialmente meios ótico-magnéticos. menor que uma fita cassete > Fitas Cartucho .As maiores vantagens das fitas são o baixo custo e a portabilidade da mídia. 6.4.000 bpi > Rolo ou carretel 6. Os comprimentos de fita mais utilizados são: 300. parecida com uma fita cassete > DAT (Digital Audio Tape) . suas maiores desvantagens são a lentidão. embora venha sendo aceleradamente substituída por meios de armazenamento mais modernos. ser apagados ou alterados). a baixa confiabilidade da mídia e a pouca duração da gravação.3. O desenho a seguir ilustra um disco: Apostila de Organização de Computadores .pequena. O baixo custo por byte armazenado ainda mantém um mercado para utilização da fita hoje. Os discos magnéticos englobam os discos flexíveis ou disquetes ("floppy disks") e os discos rígidos.5 Discos Magnéticos Discos magnéticos são dispositivos para armazenamento de dados (que independem de alimentação de energia e portanto permanecem gravados após ser desligado o computador.250 bpi.Prof.

Esta formatação é dependente do sistema operacional que usará o disco.1 Organização Física da Informação nos Discos As informações são gravadas nos discos em "setores". Apostila de Organização de Computadores .6.5. pois o espaço físico é menor.Prof. distribuídos ao longo de "trilhas" concêntricas marcadas magneticamente como setores circulares no disco. os dados na trilha mais interna estarão gravados com maior densidade. desta forma. Bruno 95 .3. Todas as trilhas armazenam o mesmo número de bytes. O processo de marcação magnética das trilhas e setores em um disco faz parte da "formatação" do disco. O sistema operacional DOS define que cada setor armazena 512 bytes. conforme ilustração a seguir.

os tempos típicos de discos rígidos atuais podem variar de aproximadamente 0 ms (tempo de seek mínimo.5.2 Tempo de Acesso O tempo de acesso aos dados de um disco é definido como o período decorrido entre a ordem de acesso e o final da transferência dos dados. Este tempo é variável de acesso para acesso. Este tempo é diretamente dependente da qualidade dos mecanismos eletromecânicos que comandam os braços atuadores. Discos rígidos atuais em geral giram a 5.3.6. a cabeça magnética só pode ler ou gravar um dado quando o setor endereçado está imediatamente abaixo dela.3.3.5. 6. Os tempos médios de acesso dos discos atuais são da ordem de 10 ms e são resultado das seguintes operações: TEMPO DE ACESSO = TEMPO DE (SEEK + LATÊNCIA + TRANSFERÊNCIA) 6. o que significa que um giro completo se realiza em Apostila de Organização de Computadores . Esse tempo depende diretamente da velocidade com que o disco gira. 3 ms (para acesso a setores em trilhas adjacentes) a até 20 ms (tempo de busca máximo. há que aguardar que o disco gire até que o setor endereçado fique posicionado abaixo da cabeça. referente ao acesso a um setor localizado na mesma trilha onde no momento está a cabeça de leitura).400 rpm (rotações por minuto). Discos de menores dimensões também tendem a ser mais rápidos. pois o percurso linear dos braços atuadores é menor. Bruno 96 .Prof. O tempo de acesso não é constante. Portanto. variando em função da posição relativa entre o braço atuador (que posiciona as cabeças de leitura e gravação) e o setor que será lido e portanto só tem sentido falar em tempo médio de acesso.4 Tempo de Latência É o tempo de latência (também chamada latência rotacional) é o tempo gasto entre a chegada da cabeça de leitura / gravação sobre a trilha e a passagem do setor desejado na posição da cabeça. referente ao acesso entre trilhas localizadas nas extremidades do disco).5.3 Tempo de Seek Seek ou busca é o tempo gasto na interpretação da localização do dado no disco (endereço do dado no disco) pela unidade de controle e no movimento mecânico do braço que sustenta a cabeça magnética. Como o disco permanece constantemente girando. até alcançar a trilha desejada.

Bruno 97 .1 ÷ (5400rpm ÷ 60s) = 11ms.3. Hoje estes discos são conhecidos na literatura apenas por "hard disks" ou HDs (em inglês. em 1 ms se poderia transferir cerca de 33 setores e o tempo de transferência de um setor seria da ordem de 15 ns.3. Obs. dependendo da interface. Portanto. A seguir é mostrado o primeiro disco rígido (RAMAC) de 5 Mb distribuídos em 50 pratos com diâmetro de 24". Drives de disquete giram a aproximadamente 300 rpm e o throughput é da ordem de 500 kbytes/s. o tempo de latência poderá variar entre quase 0 ms (se o setor estiver exatamente na posição certa para ser lido) até 11 ms (se for necessário aguardar uma volta completa em um disco). denominação que perdurou por muito tempo. que definem o throughput (taxa de transferência) do disco.5 Tempo de Transferência É o tempo consumido na transmissão dos bits entre computador e disco e viceversa.6 Discos Rígidos Os primeiros discos rígidos selados para microcomputadores foram projetados e construídos na fábrica da IBM localizada em Winchester. Apostila de Organização de Computadores . traduzindo-se literalmente por "discos rígidos"). Obs. 6.Prof. Este tempo depende da interface e do disco. Como um setor tem 512 bytes. Alguns autores atribuem a isso o motivo deles terem sido apelidados de Winchester drives (unidades de disco Winchester). os tempos de acesso médios são da ordem de 60 a 100 ms. até que a tecnologia de construção dos discos mudou.: Os tempos relativos a unidades (drives) de disquetes são muito maiores que os acima indicados para discos rígidos. o throughput seria da ordem de até 33 Mbytes/s. desenvolvido pela IBM em 1956. 6. nos laboratórios de Almaden (CA).5. Atualmente.: Há também autores que atribuem o nome a uma analogia com os famosos rifles 30/30 Winchester. ao lado de um moderno HD IBM Seascape de 5 Gb com 2.5".

permitiu que as cabeças de leitura / gravação fossem posicionadas a uma distância ínfima em relação às superfícies magnetizadas do disco. Os discos rígidos são pequenos e compactos. Os discos rígidos atuais são construídos com muitas superfícies de gravação. de forma que os braços se movem solidariamente. bem como a grande uniformidade de superfície conseguida. Apostila de Organização de Computadores .A construção em forma de unidade selada. montadas em torno de um eixo comum. Os braços atuadores responsáveis pelo posicionamento das cabeças de leitura / gravação são montados em uma única estrutura. Tudo isso permitiu a construção de discos rápidos e com alta capacidade. Bruno 98 . possibilitaram obter uma grande densidade de gravação dos dados nos discos rígidos selados. A utilização de atuadores eletromecânicos de alta precisão também permitiu reduzir o espaço entre trilhas.Prof. tem custo de armazenagem por Mbyte muito baixo e alto desempenho (alta taxa de transferência e pequeno tempo de acesso). de vez que a possibilidade de impurezas que se interpusessem entre a superfície e a cabeça e pudessem riscar o disco ou danificar a cabeça foi eliminada. A proximidade entre cabeça e superfície. oferecendo ainda segurança de armazenagem dos dados. com ar filtrado eliminando as partículas de pó.

6.Devido a esta conformação física. esta operação é relativamente lenta!). podemos verificar que. na trilha 10 da face 3 e na trilha 10 da face 4. Os discos flexíveis são feitos de poliester flexível e sua capacidade atual de armazenamento é geralmente de 1. as demais cabeças estarão também posicionadas sobre as trilhas das outras superfícies que ficam localizadas à mesma distância do eixo central e portanto todas as trilhas localizadas a uma mesma distância do eixo central do disco poderão ser acessadas simultaneamente por todas as cabeças.3. conforme uma determinada cabeça é posicionada sobre uma trilha.7. Bruno 99 . num disco de quatro cabeças (quatro faces) o cilindro 10 seria composto de todos os setores localizados na trilha 10 da face 1.1 Cálculo do Espaço de Armazenamento em um Disco O espaço de armazenamento num disco pode ser calculado como segue: nº total de setores = nº de superfícies (= nº de cabeças) x nº de setores por trilha x nº de trilhas (= nº de cilindros) Apostila de Organização de Computadores . Obs. Um conjunto de trilhas localizadas a uma mesma distância do eixo central pode ser visto espacialmente como se fora um cilindro. e é assim que são chamados. na trilha 10 da face 2.: Os discos flexíveis tem um orifício de índice que indica fisicamente o início das trilhas.3. Dessa forma. Os dados gravados no mesmo cilindro (na mesma trilha porém em superfícies diferentes) podem ser acessados (lidos ou gravados) sem que o braço atuador das cabeças de leitura / gravação tenha que ser movido (como vimos na discussão sobre tempo de acesso.44 Mbytes.Prof.7 Discos Flexíveis As unidades de discos flexíveis (floppy disks ou FDs) surgiram como uma solução para armazenamento de dados a baixo custo em microcomputadores e substituíram com grandes vantagens o armazenamento em fitas cassete que equipava os primeiros microcomputadores. 6.

portanto a capacidade seria de 1. um computador precisa receber instruções precisas sobre o que fazer.200 kbytes ou aproximadamente 1. 44 Mbytes. os programas eram escritos em linguagem de máquina. Em um programa escrito em linguagem de máquina.5 (512 bytes = 0. No início da era da computação. ordenados de forma que alguns representam códigos de instruções e outros representam os dados que serão processados (ou indicam onde esses dados estão armazenados). Uma linguagem de programação é um conjunto de ferramentas. 7 7. 2 Mbytes.400 setores de 512 bytes.440 kbytes ou aproximadamente 1. 15 setores por trilha e 80 trilhas.Prof. Um programa em linguagem de máquina é uma longa série de 0's e 1's.880 setores de 512 bytes. Uma seqüência adequada de instruções de computador. Apostila de Organização de Computadores .5 kbyte) e para obter em Mbytes. isto é. 18 setores por trilha e 80 trilhas. as instruções eram escritas diretamente na linguagem do computador (formada apenas com 1's e 0's). para obter o resultado em kbytes basta multiplicar o número de setores por 0. isto é. portanto a capacidade seria de 1. a cada instrução do programa corresponderá uma ação do computador. cada instrução escrita pelo programador será individualmente executada.1 EXECUÇÃO DE PROGRAMAS Programa em Linguagem de Máquina Para executar uma tarefa qualquer. se constitui num PROGRAMA de computador. regras de sintaxe e símbolos ou códigos que nos permitem escrever programas de computador. A relação é portanto 1 para 1 .024. dividir então por 1.Como no DOS e Windows cada setor tem 512 bytes. para a realização de uma determinada tarefa. destinados a instruir o computador para a realização de suas tarefas. aquela que o computador entende diretamente e pode ser diretamente executada pelos circuitos do processador (pelo hardware). teria 2 x 15 x 80 = 2. Por exemplo. Bruno 100 . Um disquete de 3 ½" com 2 cabeças. um disquete de 5 ¼" com 2 cabeças.uma instrução do programa corresponde a uma operação do computador. A primeira e mais primitiva linguagem de computador é a própria linguagem de máquina. teria 2 x 18 x 80 = 2.

que lhe sejam 100% compatíveis. entediante e principalmente caro. imagine que para cada diferente marca ou modelo de computador.. e finalmente imagine que voce teria que escrever uma a uma as instruções e os dados adequadamente codificados e ordenados. somente poderá ser executado em computadores da mesma família. as regras para entender esses códigos serão totalmente diferentes..). Essa complexidade levou à necessidade de se desenvolverem técnicas e ferramentas para tornar a escrita e manutenção de programas mais fácil. Um programa em linguagem de máquina era também extremamente difícil de ser entendido por outros programadores que futuramente viessem a trabalhar na manutenção do programa. pois um programa somente pode ser submetido ao computador em binário..Imagine então um programa extenso escrito apenas usando 1's e 0's. A apresentação em hexadecimal torna mais enxuta a representação (mas não mais simples.: Um programa em linguagem de máquina pode ser apresentado em binário (0's e 1's) ou em hexadecimal (usando de 0 a F. processo esse longo..2 Linguagem de Montagem A primeira tentativa bem-sucedida para resolver o problema acima descrito foi a criação de uma linguagem em que os códigos numéricos foram substituidos por mnemônicos (palavras ou símbolos) como por exemplo: Apostila de Organização de Computadores . perfurar todos o programa em cartões e submeter toda a massa de cartões ao computador. mais rápida e principalmente mais barata. Obs. 7. Cada família de computadores possui sua própria linguagem de máquina. Um programa em linguagem de máquina é dependente do computador ou seja. para finalmente receber algumas horas depois o seu programa de volta com uma mensagem de erro tipo "erro no cartão X" . difícil. transformando cada 4 bits em um dígito hexadecimal).Prof. e mais nada! Um programa escrito nessa linguagem era difícil de ser escrito sem que se cometessem muitos erros. tendo sido escrito para um determinado computador. mas serve somente para visualização. Bruno 101 . ou seja.

Portanto. Foram também definidas regras de sintaxe de fácil memorização. ele entende única e exclusivamente a sua própria linguagem de máquina. A criação de programas Montadores facilitou muito o trabalho dos programadores. é preciso haver algum outro programa que leia o programa escrito nessa linguagem alternativa e o traduza para a linguagem nativa do computador (isto é. Essa linguagem simbólica recebeu o nome de Assembly Language (Linguagem de Montagem). de forma a tornar a escrita de programas e sua posterior manutenção uma técnica de complexidade relativamente menor. o programador não mais precisava decorar os códigos numéricos que representavam as diferentes instruções e os endereços reais de armazenamento. a linguagem de máquina entendida pelo computador). isto é. e também converte cada uma das referências simbólicas de memória em endereços reais (resolve as referências de memória). bastando decorar mnemônicos para as instruções e definir nomes para as referências dos endereços (por exemplo. O programa Assembler lê cada instrução escrita em linguagem Assembly e a converte em uma instrução equivalente em linguagem de máquina.LOAD = carregar e ADD = somar. O processo de tradução da linguagem de montagem para a linguagem de máquina (chamado de montagem) é realizado por um programa chamado Assembler (Montador).Prof. É importante lembrar que um computador é sempre monoglota. As localizações dos dados foram substituídas por referências simbólicas. etc). Uma outra vantagem menos óbvia foi possibilitar o desenvolvimento de programas Apostila de Organização de Computadores . NOME para o local onde seriam armazenados os nomes e SALARIO para o local onde seriam armazenados os salários. Assim. que se aproximam de palavras comuns da lingua inglesa). para escrever um programa em outra linguagem e ele ser entendido e processado no computador. Bruno 102 . o que sem dúvida facilita enormemente o trabalho.

7. facilitando o processo de depuração de erros de programação.de crítica de sintaxe (os debuggers). caro. COBOL (1959). buscando afastar-se do modelo centrado no computador. o processo continuava lento e complexo. mas que processassem com boa eficiência (não acarretando processamento lento no computador). ALGOL (1958). com menos instruções).Prof. linguagem criada para facilitar a programação por nãoprofissionais. especialmente em computadores de grande porte (mainframes) em bancos. Nas décadas de 60 e 70. As primeiras linguagens foram FORTRAN (1957). para processamento comercial e ainda hoje bastante usada. linguagem para processamento em tempo real criada sob encomenda do DoD (Department of Defense norte-americano) e ainda hoje a única linguagem aceita para programas escritos sob encomenda do DoD. Essas linguagens foram estruturadas buscando refletir melhor os processos humanos de solução de problemas. mais rápidas e eficientes (levando a programas mais enxutos. Essas linguagens orientadas a problema são também chamadas linguagens de alto nível. exigindo do programador uma grande compreensão do processo e profundo conhecimento da máquina que ele estava programando. Um programa de computador ainda era difícil de ser escrito. para manipulação de algoritmos.3 Linguagem de Programação Esses problemas levaram a uma busca por linguagens que fossem mais simples de programar e entender. menos dependente do computador-alvo. No entanto. e ADA. a primeira linguagem de alto nível estruturada. já que um programa escrito em linguagem de máquina para um determinado computador só poderá ser processado em computadores 100% compatíveis com ele. Foram desenvolvidas diversas linguagens de programação. BASIC. Bruno 103 . podemos citar Pascal. usada basicamente para manipulação de fórmulas. Apostila de Organização de Computadores . e dependente do computador para o qual foi escrito. por serem afastadas do nível de máquina.

Bruno 104 . Paradox.o "esperanto" dos computadores. como o Visual Basic. Porém. Tal como na linguagem humana. Access. Dentre as importantes tendências atuais.Java Virtual Machine). que estão entre as linguagens mais utilizadas hoje. Cada nova linguagem criada visa atingir níveis de abstração mais altos. isto é. Esse aumento de exigência ao poder de processamento dos computadores é compensado (e desta forma se faz menos notado) pelo aumento acelerado do poder de processamento dos novos chips (exemplificado pela chamada Lei de Moore. Se por um lado essas novas linguagens facilitam muito o trabalho do programadores (e reduzem sua necessidade de conhecer o hardware da máquina). Clipper. um emulador. mas Apostila de Organização de Computadores . ao consumir cada vez mais ciclos de máquina e espaço em memória). surgiu o C e depois o C++ (com suporte a objetos). Visual C e Delphi.Na década de 80. as linguagens de computadores proliferam e sempre há problemas que ainda persistem. quando não está sendo processado em um processador Java nativo.Prof. 7. o código Java é interpretado por uma camada de software chamada máquina virtual Java (JVM . na realidade. citamos as linguagens de manipulação de bancos de dados (como dBase. A linguagem Java é a mais importante tendência atual e mais recente avanço na busca pela linguagem universal . ou seja.4 Tradução Um programa escrito por um programador (chamado código fonte) em uma linguagem de alto nível é um conjunto de instruções que é clara para programadores. etc) e as linguagens visuais. elas cobram um alto preço em termos de desempenho (isto é. FoxPro.a solução "definitiva". continuando a busca por uma linguagem ideal . são cada vez mais lentas. afastam cada vez mais o programador do nível de máquina. Java eleva a abstração ainda mais um nível e se propõe a ser independente da máquina onde será executado. que afirma que o poder de processamento dos chips dobra a cada 18 meses) e pelos avanços na arquitetura dos computadores.

é chamado compilação e é realizado por um programa chamado Compilador (Compiler). b) Resolver as referências de memória: os nomes simbólicos adotados pelo programador são convertidos para endereços reais de memória (valores numéricos binários de endereços).5 Montagem Citamos anteriormente uma forma de tradução rápida e simples: a executada pelo programa Montador. 7. A seguir.Prof. a exemplo dos programas escritos em linguagem de Montagem. as linguagens de máquina. O processo de montagem traduz um programa escrito em linguagem Assembly em um programa equivalente em linguagem de máquina. Programas em linguagem de alto nível. se os campos definidos na estrutura da linguagem e a sintaxe estão corretos) e substituir os mnemônicos pelos códigos numéricos binários equivalentes. O processo de tradução do programa escrito em uma linguagem simbólica pelo programador. Bruno 105 . Os passos executados pelo programa Montador são: a) Verificar a correção do código de instrução (se o mnemônico corresponde a uma instrução válida para o computador. gerando o código que será executado (código objeto). Qualquer erro no código acarreta a interrupção do processo e a emissão de mensagem de erro. é apresentado o fluxo que representa o processo de montagem. Ou seja. os computadores entendem única e exclusivamente suas linguagens nativas. c) Reservar espaço em memória para o armazenamento das instruções e dados. também precisam ser traduzidos para linguagem de máquina para poderem ser submetidos ao computador e processados. Apostila de Organização de Computadores . chamado código fonte (source code) para a linguagem de máquina do computador chamada código objeto (object code). o código fonte (programa em linguagem simbólica escrito pelo programador) é examinado. instrução por instrução e é feita a tradução. possível de ser executado pelo computador.não para computadores. No processo de montagem.

a execução de uma instrução de entrada e saída. 7. Bruno 106 . o cálculo de funções matemáticas.6 Compilação Compilação é o processo de tradução de um programa escrito em linguagem de alto nível para código em linguagem de máquina. tendo como referência o início do programa. é gerado um código intermediário e são construídas tabelas de símbolos. e os endereços reais de memória são definidos apenas em tempo de execução). O que diferencia a compilação do processo de montagem é sua maior complexidade. 7. Em alguns compiladores. há uma relação de 1:1. a classificação dos dados de um arquivo. o código fonte é analisado (análise léxica. cada instrução do código fonte gerando várias instruções de máquina. cada instrução do código fonte resulta em uma instrução de máquina. Compilação é um processo análogo ao da montagem (verificação / análise do código fonte. Durante a compilação. é gerado um código intermediário em Assembly (que pode ser visualizado pelo programador) e que em seguida passa pelo montador para gerar finalmente o código objeto em linguagem de máquina. ou seja. reserva de espaço em memória e conversão para código de máquina binário). alocam-se as áreas de memória para variáveis e atribui-se os registradores a serem utilizados. No processo de montagem. etc. Por exemplo. resolução das referências de memória. sintática e semântica). O código objeto pode ser absoluto (os endereços constantes são endereços reais de memória) ou relocável (os endereços são relativos. Uma linguagem de alto nível geralmente incorpora diversas rotinas Apostila de Organização de Computadores . e é finalmente gerado o código objeto em linguagem binária de máquina.Prof.7 Bibliotecas O desenvolvimento de um programa certamente utilizará diversas operações que são comuns a muitos outros programas. enquanto na compilação a relação é múltipla.d) Converter valores de constantes em binário.

prontas (que fazem parte da linguagem) e que compõem bibliotecas (librarys) de funções pré-programadas que poderão ser utilizadas pelo programador. poupando tempo. chamado módulo de carga ou código executável. depois de resolvidos todos os erros. a chamada de biblioteca precisa ser substituída pelo código propriamente dito. Essas funções não devem ser confundidas com as instruções da linguagem . pois ainda existe código (as rotinas de biblioteca) a ser incorporado ao programa. Dessa forma. um programa em alto nível possivelmente conterá diversas chamadas de biblioteca (library calls).8 Ligação Assim. Para serem executadas. buscar a rotina da biblioteca. incluindo os parâmetros necessários.na realidade. Bruno 107 . aumentando a eficiência e evitando erros. são pequenos programas externos que são chamados através de instruções especiais de chamada de biblioteca. A cada chamada de biblioteca encontrada no código fonte. 7. procurar as referências a rotinas de biblioteca (que constituem referências externas não resolvidas). o código objeto preparado pelo compilador em geral não é imediatamente executável. isto é. O módulo de carga. Apostila de Organização de Computadores . quando da execução do programa.Prof. substituir a chamada pelo código ("resolver as referências externas") e obter os parâmetros para incluí-los no código objeto é executada por um programa chamado Ligador (LinkEditor). O resultado da execução do Ligador é o código final pronto para ser executado pelo computador. após testado e depurado (isto é. A tarefa de examinar o código objeto. essas rotinas precisam ser incorporadas ao código do programador. O processo de compilação e ligação é executado apenas pelo programador na fase de desenvolvimento e não mais precisará ser executado pelo usuário. o compilador precisará incluir uma chamada para a rotina e o endereço dos dados que devam ser passados para a rotina. também chamados "bugs") é armazenado em memória de massa para ser executado quando necessário.

a partir do programa fonte. comando por comando. ligação e execução de cada um dos comandos.10 Comparação entre Compilação e Interpretação Sempre que houver duas opções. o Word Basic (linguagem de construção de Macros do Word). haverá vantagens e desvantagens para cada uma delas (pois se assim não fosse. verificado. tais como das planilhas Excel. As linguagens de programação tipicamente de usuário.1 Tempo de Execução No método de interpretação. ligação e execução). um programa para ser executado precisa primeiro ter sido convertido para código objeto pelo compilador e depois ter passado pelo ligador. porém não é o único. Linguagens como C. enquanto o BASIC foi desenvolvido como linguagem interpretada (hoje também existem linguagens BASIC compiladas e o programador pode optar). Não existem fases distintas nem se produzem códigos intermediários. Vamos comparar os métodos: 7.9 Interpretação Com o processo de execução de um programa em fases distintas (compilação / ligação / execução) apresentado. convertido em código executável e imediatamente executado. são todas linguagens interpretadas. cada comando é lido. porque todos os passos preliminares (compilação e ligação) foram previamente cumpridos. etc. COBOL. realiza as três fases (compilação. Esse processo é o mais largamente utilizado. cada vez que o programa for executado. No método de Compilação. Bruno 108 .10. Pascal. a que apresentasse sempre desvantagem seria abandonada). haverá compilação. o Access. O método alternativo chama-se de interpretação e. são linguagens tipicamente compiladas. antes que o comando seguinte seja sequer lido. Ou seja. 7. em tempo de execução. etc. Apostila de Organização de Computadores . Todo o processo de conversão é efetuado em tempo de execução e imediatamente executado.7. o tempo de execução do programa é reduzido.Prof.

No método de compilação. que é diretamente executável. o interpretador é um programa geralmente grande e que precisa permanecer na memória durante todo o tempo que durar a execução do programa. o ligador é carregado e fica na memória apenas durante o tempo de ligação. Estas características levam a um maior consumo de tempo no método de interpretação. Apostila de Organização de Computadores . Bruno 109 .7.10. pois um programa necessita do interpretador para ter traduzidos cada um dos seus comandos. depois é descarregado.10. apenas o módulo de carga (código executável) é carregado e fica na memória durante a execução. Desta forma. a tradução do código do loop se faz uma única vez. vemos que o método de interpretação acarreta um consumo de memória muito mais elevado durante a execução do programa.2 Consumo de Memória No método de interpretação. em programas contendo loops. um programa é compilado e ligado apenas uma vez. depois é descarregado. Essas são funções realizadas pelo programador e executadas apenas durante o desenvolvimento do programa. no método de interpretação as partes de código pertencentes ao loop serão várias vezes repetidas e terão que ser interpretadas tantas vezes quantas o loop tiver que ser percorrido. 7. cada programa terá que ser interpretado toda vez que for ser executado. em tempo de compilação e ligação. No método de compilação.Prof. que é portanto mais lento. o compilador é carregado e fica na memória apenas durante o tempo de compilação. e na hora da execução é carregado apenas o módulo de carga. até o término de sua execução (o interpretador somente é descarregado depois do término da execução do programa). um a um. Outro aspecto é que. Quando o usuário for executar o programa. No método de interpretação.3 Repetição de Interpretação No método de compilação.

o método de interpretação é usado pela maioria dos Basic (uma linguagem projetada para ser usada por iniciantes). faz com que esse método seja escolhido sempre que se pretende adotar uma linguagem que vá ser usada por não-profissionais ou para a programação mais expedita. um programa desenvolvido para rodar em PC's rodando Windows não funciona em PC's com UNIX ou em Mcintosh. Como isso pode ser feito? Como computadores de marcas e modelos diferentes estarão lendo. Bruno 110 . Excel. Assim. e por todas as linguagens típicas de usuário como dBase. cada comando é interpretado e executado individualmente. Assim. Sabemos que um computador somente é capaz de executar programas que tenham sido desenvolvidos para ele. Se voce concorda com essa afirmação.7.para a esApostila de Organização de Computadores . Essa característica. pois não há mais relação entre comandos do código fonte e instruções do executável.Prof. etc.11 Emuladores e Máquinas Virtuais Uma aplicação interessante dos interpretadores é a geração de código universal e máquinas virtuais. Quando a execução de um comando acarreta erro. a relação entre código fonte e executável é mais direta e o efeito da execução (certa ou errada) é direta e imediatamente sentido. que é a rigor a maior vantagem do método de interpretação sob o ponto de vista do usuário.4 Desenvolvimento de Programas e Depuração de Erros No método de compilação. indicando o comando ou variável causador do problema. imagine então uma página na Internet. a identificação de erros durante a fase de execução fica sempre difícil. No método de interpretação. interpretando e executando corretamente comandos que podem ter sido desenvolvidos usando um outro computador? O segredo é a utilização de linguagens padronizadas (tais como HTML . Por exemplo.10. imagens e programas que podem ser visualizados e processados por quase qualquer computador. 7. quase sempre o erro pode ser encontrado no comando que acabou de ser executado. Access. com textos. o interpretador pode informar o erro.

Prof. uma máquina que se comporta como uma outra máquina diferente. A JVM suporta uma representação em software de uma UCP completa. Esse programa emulador criaria um ambiente que chamamos de máquina virtual. Java Script. Na realidade. Esse processo. Java. Esse programa criaria uma camada de emulação em que uma máquina se comportaria como uma outra máquina. imagine desenvolver um programa conversor que pegasse qualquer programa escrito para uma determinada máquina e interpretasse seu código executável traduzindo-o em tempo de execução para instruções de um outro computador. Imagine pegar um jogo desenvolvido para os consoles originais Atari (por exemplo. não compatível. isto é. Algo parecido foi desenvolvido pela Sun Microsystems na linguagem Java. Bruno 111 . uma planilha) para um dos Apple II originais e rodá-lo num PC. Poderíamos ter um PC "virtual" emulado em um Mcintosh. o Space Invaders. Asteroids ou PacMan) e poder executá-lo num moderno PC. CGI. com sua arquitetura perfeitamente definida incluindo seu próprio conjunto de instruções. em que um computador opera como se fosse o outro. Uma situação semelhante ocorre quando alguém desenvolve um programa que "interpreta" o código executável produzido para um determinado computador e o converte para ser executado em outro computador incompatível com o primeiro. cada uma das plataformas (através dos programas visualizadores de páginas Internet. etc. para programas) que são suportadas por diversas plataformas. Levando esse conceito um pouco mais adiante.crita das páginas . Java é uma linguagem que em princípio permite que programas escritos nela rodem em qualquer máquina. Assim. conhecidos como browsers ou mesmo através de seus respectivos sistemas operacionais) pode interpretar corretamente qualquer página feita e hospedada em qualquer computador. Ou pegar um programa que voce tenha escrito (por exemplo. é conhecido como emulação. com características de ambiente necessárias para que os programas escritos em Java rodem adequadamente. que estaria assim apto a rodar qualquer programa escrito para PC. a Sun desenvolveu uma plataforma Java (JVM Java Virtual Machine). Os programadores Java escrevem Apostila de Organização de Computadores .e PERL.

é um contra-senso ser necessário dispor de um chip Java para poder rodar Java eficientemente. lêem o código Java e o interpretam. em que se Apostila de Organização de Computadores . Comentário: A Sun tem investido em melhorar o desempenho do código Java. Isso significa que as empresas desenvolvedoras de software contruiram uma camada de software que. Esses programas interpretadores permitem que um programa Java seja traduzido. em tempo de execução. Outro aspecto preocupante é o esforço da Microsoft para criar extensões ao Java (ou seja. os códigos fonte Java e os códigos objeto gerados são independentes da máquina em que o software será depois processado. que foi inicialmente recebida com grande interesse. Esse fonte será então compilado gerando código de máquina virtual Java. Bruno 112 . e em outras plataformas? Bom. sem desmentir tudo o que antes dissemos sobre o código de máquina ser dependente do ambiente? Tudo bem que o código Java rode bem em um processador Java.código usando o conjunto de instruções definido pela linguagem Java. Como o código Java é universal.Prof. Assim. Além de uma série de interessantes otimizações de software. se a vantagem do Java é exatamente poder ser executado em qualquer computador. Mas. O sonho (mais das empresas de software que dos programadores. Ora. sem respeitar o padrão da Sun). a linguagem Java. apresenta resultados algumas vezes decepcionantes (especialmente quanto ao desempenho) e sua aplicabilidade atualmente tem sido restrita a sistemas com requisitos de desempenho não-críticos. traduzindo-o para o código nativo daquele ambiente. programas escritos em Java rodariam em máquinas virtuais que emulariam o ambiente Java. criar um Java Microsoft. para o código nativo e seja executado no computador do usuário. Assim. foi criado um chip Java. os programadores Java não precisam se preocupar em qual computador ou sistema operacional o programa vai ser executado: desenvolver para Java é independente da máquina! Mas como é possível que isso funcione. com maior ou menor eficiência. Essa extensões visam fazer o código Java rodar com mais eficiência no ambiente PC / Windows. porém sempre mais lentos que na máquina Java ideal. é verdade) de uma linguagem universal. que poderia ser adicionado aos computadores e criaria um ambiente Java ideal. em outras plataformas. porém podem destruir a padronização. em tempo de execução.

A PC Magazine apresenta muitos testes comparativos de produtos.Prof. Bruno 113 .desenvolveria para um e se rodaria em todos. A PC World é mais voltada para o usuário final (usuário não técnico). Windows Computing apresenta muitos artigos sobre software relativo ao Windows.Ed. Prentice-Hall do Brasil Literatura Auxiliar Computer Organization and Architecture William Stallings . A BYTE (tanto a edição brasileira quanto a americana) tem conteúdo mais técnico. parece que ainda fica para um tempo mais à frente. LTC Livro de Apoio Organização Estruturada de Computadores (3ª edição) Andrew Tanembaum .Mcmillam Publishing Company Revistas BYTE Brasil PCMagazine Brasil Windows Computing (Brasil) Info EXAME (Brasil) PCWorld (Brasil) ZDNet (Brasil) BYTE (USA) PCMagazine (USA) ZDNet (USA) Todas as revistas e cadernos de jornais publicados no Brasil dão ênfase aos microcomputadores PC. 8 BIBLIOGRAFIA E LEITURAS AUXILIARES Livro Recomendado Introdução à Organização de Computadores (2ª ou 3ª edições) Mario Monteiro . A Info Apostila de Organização de Computadores .Ed.

Caderno Informática .Informática etc.Net são as principais. No Brasil. O Globo .um dos melhores sites sobre hardware do PC na Web: testes. nos EUA. etc Painet . leiam a Wired. Bruno 114 .EXAME tem maior ênfase em gerenciamento (o público típico da EXAME). Internet World e .Prof.publicado às 2ª feiras Jornal do Brasil . etc.The Free On-Line Dictionary Of Computing Enciclopédia sobre computadores PC Webopaedia Principais Fabricantes de Processadores e Sistemas Operacionais IBM Intel AMD AMD Brasil Cyrix Sun HP Microsoft Microsoft Brasil Links Independentes sobre Hardware Tom's Hardware Guide . que podem ser recomendadas aos interessados.publicado às 2ª feiras Dicionário FOLDOC .informações sobre hardware: benchmarking. placas-mãe. Existem ainda revistas com cobertura específica sobre Internet. artigos. CPU Central System Optimization Apostila de Organização de Computadores .site com artigos coletados na Web sobre hardware The PC Guide The Hardware Group . .

Intel Secrets .site com artigos. Apostila de Organização de Computadores . no Globo. etc.Prof. Piropo site com artigos publicados na PCWorld. etc. " B..esse site se anuncia como "tudo aquilo que a Intel não gostaria que você viesse a saber. Bruno 115 . dicas. Laércio Vasconcellos .. links.

Sign up to vote on this title
UsefulNot useful