Unidade Aritmética e Lógica (ULA)

Unidade Aritmética e Lógica (ULA)

Estudamos a ULA — Unidade Aritmética e Lógica — responsável por realizar as operações matemáticas básicas e lógicas dentro da CPU. Este componente é essencial no processamento de dados em qualquer computador moderno.

O que é a ULA?

A ULA (em inglês, Arithmetic Logic Unit) é o circuito digital dentro da CPU que executa operações como soma, subtração, operações booleanas (AND, OR, NOT, XOR) e comparações entre valores. É considerada a “calculadora” do computador.

  • Executa operações aritméticas e lógicas bit a bit;
  • Interage diretamente com os registradores da CPU;
  • É controlada pela unidade de controle da CPU.

História e Evolução

O conceito da ULA foi proposto por John von Neumann em 1945 no projeto do computador EDVAC. A primeira implementação prática ocorreu no computador IAS, construído em 1946. A evolução seguiu de relés e válvulas até circuitos integrados modernos baseados em transistores.

Objetivo e Funcionamento

A ULA realiza cálculos com números representados em binário com complemento de dois, facilitando operações como subtração e evitando duplicidade de zeros (positivo e negativo). Os operandos vêm de registradores, e os resultados retornam a eles ou seguem para a memória.

Operações Executadas

A ULA é capaz de realizar:

  • Operações aritméticas inteiras (adição, subtração, multiplicação, divisão);
  • Operações lógicas (AND, OR, XOR, NOT);
  • Deslocamentos e rotações de bits à esquerda ou direita (com ou sem sinal);
  • Comparações para definir se um número é maior, menor ou igual ao outro.

Entradas e Saídas

A ULA recebe:

  • Entradas: operandos e códigos de operação da unidade de controle;
  • Saídas: resultado do cálculo e, em muitos casos, sinais de condição como overflow, zero ou vai-um.

Operações Complexas e Limitações

Embora uma ULA possa ser projetada para executar operações complexas, isso aumenta o custo, o espaço no chip e o consumo de energia. Por isso, muitas operações são realizadas por combinação de operações simples já suportadas.