Você está na página 1de 10

Computadores XII: Aprendendo a Somar

Postado as 10:12 - 17/10/2005 - Por B. Piropo. Categorias: Sem Categoria. 0votos Na coluna anterior, DiagramasLgicos , discutimos a simbologia grfica e algbrica usada para representar as operaes lgicas, uma ferramenta essencial para que possamos analisar circuitos digitais. Agora que dispomos dela, poderemos us-la para facilitar nossa jornada pelos caminhos da organizao interna dos computadores. Ento vamos adiante. Hoje em dia, por quaisquer dez mrreis compra-se em um camel uma mquina de calcular eletrnica capaz de efetuar as quatro operaes elementares, raiz quadrada, elevar ao quadrado, calcular porcentagem e, de lambuja, oferece ainda uma memria para armazenar resultados. As primeiras, lanadas h cerca de trinta anos, faziam mais ou menos a mesma coisa e custavam quase mil dlares americanos. Voc j pensou em como que uma maquineta daquelas consegue fazer contas? Como, usando apenas circuitos eletrnicos contendo portas lgicas, possvel efetuar clculos? Que mistrio esse? Mistrio nenhum. Na verdade uma singela combinao de circuitos que resulta nesse aparente milagre tecnolgico. Uma combinao que se baseia nos circuitos somadores, ou seja, que fazem somas. Como a multiplicao uma sucesso de somas, tendo-se um circuito que some, fica fcil desenvolver um que multiplique. Ou que subtraia, j que a subtrao uma soma ao contrrio. Ou que divida, j que a diviso o oposto da multiplicao. E assim por diante. Ento, se conseguirmos desenvolver um circuito que seja capaz de somar usando portas lgicas, teremos a chave da questo. Mas para entendermos um circuito capaz de somar precisamos, primeiro, aprender a somar. Como? O nobre leitor ou briosa leitora j sabe somar desde criana? timo. Ento faa a seguinte soma: (1001 + 0101) onde ambas as parcelas esto representadas em binrio (ou seja, no sistema numrico posicional de base dois). Ah, em binrio mais difcil? Pois justamente isso que eu queria dizer com aprender a somar (no vale converter as parcelas para decimal, som-las, e depois converter a soma para binrio; o resultado, evidentemente, o mesmo, mas seria ininteligvel para um computador). Para entender como computadores somam, precisamos somar em binrio. Ento mos obra (os que j sabem alguma aritmtica binria podem saltar este trecho e seguir diretamente para a descrio dos circuitos somadores).

Na verdade, a primeira impresso enganosa. Pois somar em binrio MUITO mais fcil que em decimal. E se voc acha que estou exagerando apenas porque est acostumado a somar em decimal desde criancinha. Porque um raciocnio elementar prova que tenho razo: como o sistema binrio usa apenas dois algarismos, o zero e o um, s existem quatro combinaes possveis (alm do vai um que veremos adiante): (0 + 0), (0 + 1), (1 + 0) e (1 + 1). Essa toda a taboada de somar dos nmeros binrios (se que ainda existe a velha taboada que fui obrigado a decorar no curso primrio). A soma (zero mais zero) dar sempre zero, seja qual for a base. Assim como, em toda base, somar (zero mais um) ou (um mais zero) dar sempre um. O problema comea quando somamos, em binrio, (um mais um). Porque (1 + 1 = 2) e em binrio no h algarismo para representar dois. Na verdade, em nenhum sistema numrico posicional existe um algarismo para representar a base. Ento, como representaremos dois em binrio? Ora, do mesmo jeito que representamos a base em qualquer sistema numrico posicional: movendo o um uma casa para a esquerda e acrescentando um zero sua direita. Em decimal, isso d 10 que vale dez. Mas notou que o 10 est entre aspas? Isso porque ele s representa dez em decimal. Na base oito, 10 representa oito, o valor da base. Na base dezesseis, 10 representa dezesseis; na base vinte, 10 representa vinte e assim por diante. Portanto, na base dois, 10 s pode representar dois. Logo, em binrio: (1 + 1 = 10). E resista tentao de ler isso que est entre parnteses como um mais um igual a dez. No . Lembre-se que tudo ali est em binrio, portanto deve ser lido um mais um igual a dois, como em qualquer outra base. Afinal, se tem uma coisa que sabemos desde criancinha que um mais um igual a dois. Ento, somando parcelas algarismo a algarismo (ou bit a bit, j que um bit justamente um binary digit, ou algarismo binrio), sempre na mesma coluna ou casa, a coisa fica como mostrado na Figura 1:

Figura 1: Soma de dgitos binrios (bits) Mas que diabos significa esse Vai 1? Ora, a mesma coisa que na soma de decimais. Quando a soma de dois algarismos que esto na mesma posio (ou casa) decimal resulta em um valor igual ou superior base (no caso, dez), colocamos no resultado o que sobra de dez e somamos uma unidade posio imediatamente superior. Veja um exemplo na Figura 2.

Figura 2: Soma na base dez O algoritmo para somar nmeros expressos em sistemas numricos posicionais sempre o mesmo: coloca-se os nmeros um acima do outro, alinhados pela direita, ou seja, com as posies correspondentes aos algarismos menos significativos de cada parcela diretamente acima uma da outra e soma-se os algarismos, casa a casa, ou seja, coluna a coluna, da direita para a esquerda. Sempre que a soma de dois algarismos ultrapassar o valor da base (dez, no caso do exemplo da Figura 2), anota-se na soma o valor do resto e soma-se uma unidade casa vizinha da esquerda (o popular vai um). Antes de prosseguir, um lembrete importante:acostumemo-nos a numerar as posies, ou casas da direita para a esquerda a partir de zero. A posio de ordem 0 a da extremidade direita, correspondente ao algarismo menos significativo. Portanto a de ordem 1 a segunda a partir da direita e assim por diante. Agora, voltemos ao assunto do Vai 1. No exemplo da Figura 2 ele ocorreu na casa de ordem 1, onde (7 + 8 = 15; resto 5), na de ordem 3, onde (6 + 4 = 10; resto zero) e na de ordem 5 (8 + 4 = 12; resto 2). Note que o ltimo vai um, o da casa de ordem mais alta, a de ordem 5, foi simplesmente acrescentado esquerda da soma, j que no havia nada com que som-lo na casa de ordem 6. Agora, apliquemos o mesmo algoritmo para somas em binrio, ou seja, na base dois. Veja dois exemplos na Figura 3, o da esquerda mais simples, o da direita um pouco mais complicado (j veremos o porqu dessa complicao).

Figura 3: Soma na base dois Examine primeiro a soma da esquerda, (1001 + 0101 = 1110). Note que o algoritmo o mesmo usado para a soma em decimal: soma-se os dois algarismos (no caso, os dois bits, ou dgitos binrios, j que os nmeros so expressos em binrio) em cada casa ou coluna da mesma ordem a partir da direita, ou seja, comeando pelacoluna de ordem zero, correspondente ao algarismo menos significativo. Note que na coluna de ordem 0 do exemplo da esquerda temos (1 + 1 = 0; Vai 1), pois a soma um mais um igual a dois e dois a base. Esse um que vai somado com os dois zeros da casa de ordem 1 (a segunda a partir da esquerda), ficando: (Vem 1 + 0 + 0 = 1). Continue repetindo o algoritmo, coluna a coluna, e veja o resultado se formar. Agora repare na soma do exemplo da direita. O complicador est na coluna de ordem 1, a segunda a partir da esquerda. Ela representa a soma de (1 + 1) qual se deve acrescentar uma unidade devido ao Vai 1 da coluna de ordem zero. Ento, proceda assim: primeiro, some o Vem 1 com o primeiro bit 1 e chegue ao resultado parcial (Vem 1 + 1 = 0; Vai um). Pegue esse um do Vai 1 e passe para cima da coluna de ordem 2. Agora, some o 0 do resultado parcial com o segundo bit 1, o que resulta em (0 + 1 = 1). Escreva esse um no resultado e prossiga. Parece complicado, mas se voc treinar um pouco ver que de uma simplicidade franciscana. Para quem, como voc, acostumou-se a somar nmeros expressos na base dez, somar na base dois moleza. Agora, que j sabemos somar, vamos aos circuitos somadores. A primeira coisa que temos que considerar que a coluna mais fcil de somar a coluna (ou casa) de ordem zero, a que corresponde aos algarismos menos significativos. E a razo simples: como ela sempre a primeira a ser somada, para ela nunca Vem 1, j que no h coluna alguma antes dela. Ento, se construirmos a tabela dos valores possveis para a soma de dois bits da coluna de ordem zero teremos o resultado exibido na Figura 4.

Figura 4: Tabela de um somador simples O circuito, ento, dever ter duas entradas, A e B, correspondentes aos bits a serem somados, e duas sadas, S (correspondente soma dos bits A e B) e Vai 1, um bit a

ser acrescentado prxima coluna quando o resultado da soma for igual base (dois, no caso). O diagrama lgico deste circuito mostrado na Figura 5. Como ele apenas usado para somar os bits menos significativos, ou seja, os da coluna de ordem zero, as entradas esto assinaladas como Ao e Bo.

Figura 5: Diagrama lgico de um circuito somador parcial Como voc v, somar dois bits mais simples do que parecia. Basta combinar duas portas lgicas, uma XOR e uma AND, e o problema est resolvido. Verifique, na Animao 1, como a coisa funciona. Clique nos botes retangulares (no nos crculos) para ligar (ou atribuir o valor um) e desligar (ou atribuir o valor zero) os bits Ao e Bo da entrada e veja como isso se reflete nos valores da sada e do Vai 1. Mas no se limite a observar os indicadores acenderem e apagarem: acompanhe, com os conhecimentos sobre portas lgicas e suas tabelas verdade, os trechos energizados (em vermelho piscante) e no energizados (em preto) de cada estado do circuito e procure entender porque eles esto nestes estados (se precisar refrescar a memria, consulte as colunas anteriores desta srie). Garanto que um bom exerccio mental. ANIMAO 3: CLIQUE NOS BOTES LIGAR E DESLIGAR PARA VERIFICAR O FUNCIONAMENTO DO CIRCUITO DO SOMADOR PARCIAL Mas como somar os demais bits de um nmero, aqueles nas posies (ou casas) de ordem maior que 0? O complicador, naturalmente, decorre do fato de ser necessrio saber se Veio 1 ou no da soma dos bits da posio anterior. O circuito ter ento trs entradas: os bits A e B a serem somados e o eventual Vem 1 da posio de ordem imediatamente inferior. E duas sadas, S, o resultado da soma, e o Vai 1 caso a soma

iguale ou exceda o valor da base. As combinaes de valores so as representadas pela Tabela da Figura 7.

Figura 7: Tabela de um somador completo O circuito correspondente, com as entradas, An,Bn (os bits a serem somados) e Vem 1 (de um eventual Vai 1 da coluna de ordem imediatamente inferior), e duas sadas, S, (a soma dos bits An, Bn e Vem 1), e Vai 1 (o bit a ser acrescentado prxima coluna quando o resultado da soma for igual ou superior base) tem seu diagrama lgico mostrado na figura 8.

Figura 8: Diagrama lgico de um circuito somador completo Tambm neste caso, apesar da complicao adicional trazida pelo Vem 1, somar dois bits continua sendo uma tarefa simples. O nmero de portas lgicas a serem combinadas agora so cinco, duas XOR, duas AND e uma OR. Tambm nesse caso voc pode verificar na Animao 2 como a coisa funciona. Clique nos botes para ligar (ou atribuir o valor um) e desligar (ou atribuir o valor zero) aos bits An, Bn e Vem 1 e veja como isso se reflete nos valores da sada e do Vai 1. Mas, novamente, no se limite a observar as luzes acenderem e apagarem: acompanhe, com os conhecimentos sobre portas lgicas e suas tabelas verdade, os trechos energizados (em vermelho piscante) e no energizados (em preto) de cada estado do circuito. ANIMAO 2: CLIQUE NOS BOTES LIGAR E DESLIGAR PARA VERIFICAR O FUNCIONAMENTO DO CIRCUITO DO SOMADOR COMPLETO Agora que sabemos como funcionam os somadores parcial e completo, fica fcil combin-los para somar dois nmeros de dois bits cada. Os bits menos significativos (de ordem 0) so somados usando um circuito somador parcial e os bits de ordem imediatamente superior (ordem 1) precisam utilizar um somador completo devido possibilidade de vir 1 da soma dos bits menos significativos. A Figura 10 mostra o diagrama lgico deste circuito.

Figura 10: Diagrama lgico de um circuito somador de dois bits Repare como a coisa simples. Imagine que os nmeros sejam ordenados um acima do outro, de forma que os bits menos significativos fiquem um sobre o outro, no caso Ao e Bo, somados pelo somador parcial direita da figura. Veja que o Vai 1 desta soma encaminhado diretamente (como a entrada Vem 1) ao somador completo, esquerda. Os bits dos resultados das somas das duas colunas so mostrados em baixo, na sada. Caso haja um estouro (o resultado no couber em um nmero de dois bits, ou seja, se for maior que trs) isso se refletir na sada Vai 1 esquerda, que assumir o valor um. Veja como este circuito funciona na Animao 3. Altere os valores das parcelas clicando sobre os botes retangulares Ligar e Desligar para atribuir valores zero e um a cada bit das parcelas A e B (os valores resultantes so mostrados em binrio e decimal direita da figura, tanto para A e B quanto para a soma S; neste ltimo caso, quando o valor da soma exceder a trs, ou seja, quando a sada Vai 1 estiver ativa, o bit 1 correspondente mostrado entre parnteses esquerda dos dois bits da soma). Repare como, apesar da aparente complexidade, somar dois nmeros uma tarefa relativamente simples com o uso de circuitos digitais que empregam portas lgicas. ANIMAO 1: CLIQUE NOS BOTES LIGAR E DESLIGAR PARA VERIFICAR O FUNCIONAMENTO DO CIRCUITO DO SOMADOR DE DOIS BITS Os valores possveis de nmeros de dois bits vo de zero a quatro. O nmero total de combinaes de somas de dezesseis (4 x 4 = 16). J um circuito somador de duas parcelas de oito bits cada resultaria em somas de dois nmeros que variam de zero a 255 e a combinao de todas as parcelas possveis atingiria a 65.536 (256 x 256). O circuito

no muito complicado, mas resultaria em um emaranhado de ligaes que acabaria dificultando a compreenso. Mas, para facilitar o entendimento e mostrar como pode-se combinar qualquer nmero de somadores, abaixo vocs vero o diagrama lgico de um circuito capaz de somar duas parcelas de quatro bits cada. Fico devendo a animao, pois o nmero de total de combinaes chegaria a 256 e no me imagino criando uma animao em Flash com 256 quadros. Mas o diagrama lgico est aqui na Figura 12:

Figura 12: Diagrama lgico de um circuito somador de quatro bits Como voc v, no h mistrio nos circuitos digitais. Basta um pouco de pacincia para entend-los. Isso que est a em cima o diagrama lgico de um dispositivo capaz de efetuar somas de duas parcelas de quatro bits cada (ou seja, de dois nmeros menores que 16). Uma somazinha besta, naturalmente, que qualquer criana pode fazer de cabea. Mas o importante no o tamanho das parcelas, o importante o funcionamento do circuito. Se voc entendeu como ele funciona, entender o funcionamento de um circuito capaz de fazer somas de parcelas de qualquer tamanho, j que basta continuar combinando circuitos somadores bit a bit para aumentar o tamanho das parcelas. E se voc entendeu como somar, entender como subtrair, multiplicar e dividir, j que como vimos todas essas operaes so baseadas na soma. Em resumo, hoje demos um passo sumamente importante: aprendemos como possvel efetuar clculos numricos usando apenas circuitos digitais. E, melhor ainda: vimos que

no se trata de nenhuma proeza, muito pelo contrrio. Trata-se de uma tarefa perfeitamente ao alcance de nossa compreenso e baseada exclusivamente nos conhecimentos que adquirimos at agora. Eu no disse que era fcil? E daqui para a frente, ficar ainda mais fcil. Espere e veja se no tenho razo. Coluna anterior: Diagramas lgicos Prxima coluna: Multiplexadores, decodificadores e flip-flops

Você também pode gostar