Introdução
A capacidade de realizar operações aritméticas é uma função fundamental da maioria dos computadores e calculadoras. Essas operações são executadas na unidade lógica e aritmética de um computador, que faz uma combinação de portas lógicas e flip-flops para somar, subtrair, multiplicar e dividir números binários.
A velocidade com que esses circuitos executam operações aritméticas é considerada impossível para os seres humanos.
Nesse artigo, vamos analisar alguns dos circuitos aritméticos utilizados para realizar as operações aritméticas.
Unidade lógica e aritmética
A unidade lógica e aritmética (ULA) é responsável por realizar todas as operações lógicas e aritméticas em um computador. Na Figura 1 temos um diagrama de blocos que ilustra os principais componentes que formam uma ULA tradicional.
O objetivo central da ALU é receber dados binários armazenados na memória e executar operações aritméticas e lógicas neles, seguindo as instruções provenientes da unidade de controle.
A Unidade Lógica e Aritmética (ULA) possui, no mínimo, dois registradores: o registrador e o acumulador. Além disso, a ULA contém uma lógica combinacional responsável por realizar operações aritméticas e lógicas nos números binários, que estão armazenados no registrador e no acumulador.
Em uma operação de soma, a sequência de ações ocorre da seguinte forma:
- O fluxo de operação inicia-se com a unidade de controle recebendo as instruções da unidade de memória que indicam que um número específico armazenado em um endereço da memória será somado ao número armazenado no registrador acumulador.
- Posteriormente, o número a ser somado é transferido da memória para o registrador.
- Em seguida, a ULA realiza a operação aritmética com os números no registrador e acumulador, utilizando seu circuito lógico, sob o comando da unidade de controle. O resultado dessa operação é então enviado de volta para o acumulador, onde é armazenado.
- O novo número armazenado no acumulador pode ser mantido para a realização de uma nova operação de soma, ou, se a operação aritmética específica for concluída, o resultado pode ser armazenado na memória.
A sequência de passos descritos acima é responsável pela escolha do nome do registrador acumulador. Esse registrador acumula o resultado da soma quando realiza sucessivas adições entre um novo número e a soma previamente acumulada.
Em problemas aritméticos que requerem vários passos, o acumulador geralmente armazena os resultados intermediários à medida que são concluídos, bem como o resultado quando o problema é concluído. Isso faz com que o registrador acumulador seja uma parte fundamental da ULA em muitos sistemas de computador.
Somador
Para compreender melhor a operação de soma no universo binário, agora vamos conhecer os somadores binários. Lembrando que eles fazem parte das operações aritméticas que a ULA realiza.
Somador binário paralelo
Computadores e calculadoras são capazes de realizar operações de adição em dois números binários de cada vez, em que cada um pode ter vários dígitos binários. A Figura 2 ilustra a adição de dois números de cinco bits.
A primeira parcela é armazenada no registrador acumulador, ou seja, o acumulador terá cinco flip-flops armazenando o valor 10101. Da mesma forma, na segunda parcela, o número a ser somado com a primeira é armazenado no registrador (neste caso, 00111).
O procedimento de adição começa com a soma dos bits menos significativos (LSBs) das duas parcelas. Por exemplo, 1 + 1 resulta em 10, o que significa que a soma dos bits nessa posição é 0, com um carry de 1. Em seguida, esse carry é adicionado aos bits da próxima posição das duas parcelas. Na segunda posição, 1 + 0 + 1 resulta em 10 novamente, que é uma soma de 0 com um carry de 1. Esse carry é então adicionado aos bits da próxima posição das duas parcelas, e assim por diante para as posições restantes, como mostrado na Figura 2.
Logo, a cada etapa do processo de adição, somamos três bits: o bit correspondente à 1ª parcela, o correspondente à 2ª parcela e o carry proveniente da posição anterior. A adição desses três bits resulta em dois bits: um para a soma e outro para o carry que deve ser adicionado aos bits da próxima posição. É importante destacar que esse processo é repetido para cada posição de bit. Portanto, se projetarmos um circuito lógico capaz de replicar esse processo, poderemos usá-lo para cada posição de bit.
Referências
TOCCI, R.; WIDMER, N.; MOSS, G. Sistemas Digitais – Princípios e Aplicações. [S.l.]: Pearson Education Limited, 2011.








