O que é uma ULA (Unidade Lógica e Aritmética) e como ela pode calcular diferentes funções?

Passo 1

O enunciado pergunta o que é uma ULA (Unidade Lógica e Aritmética) e como ela consegue calcular funções diferentes. O conteúdo envolve arquitetura de computadores e lógica digital, mais precisamente o projeto de circuitos combinacionais que realizam operações aritméticas e lógicas sob controle de sinais de seleção.

Passo 2

Uma ULA é um circuito combinacional que recebe dois operandos binários de largura N (por exemplo, ttA e ttB) e um conjunto de sinais de controle ttS, e produz de forma instantânea (sem memória) um resultado ttR e, normalmente, flags de status (como zero ou overflow). A ideia é agrupar em um único bloco várias operações elementares, deixando a escolha da operação para sinais de controle.

Passo 3

Internamente, a ULA costuma ter dois submódulos principais:
  1. Unidade Aritmética – tipicamente um somador de N bits capaz de fazer adição e, via complemento de dois, subtração.
  2. Unidade Lógica – conjunto de gates que realizam AND, OR, XOR, NOT etc., bit a bit sobre os mesmos N bits.

Passo 4

Os resultados gerados pela Unidade Aritmética e pela Unidade Lógica são enviados a um multiplexador de largura N. Esse multiplexador seleciona qual dos resultados deve ser apresentado em saída, de acordo com o código binário nos sinais de controle ttS. Por exemplo:
ttS = 00 R = A + B, ttS = 01 R = A - B, ttS = 10 R = A ;AND; B, ttS = 11 R = A ;XOR; B

Passo 5

A geração dos sinais de controle ttS pode vir de uma unidade de controle (hard-wired ou microprogramada), que, segundo a instrução da CPU, escolhe o código correspondente à função desejada. Assim, alterando apenas ttS, a mesma ULA pode executar qualquer operação para a qual ela foi projetada.

Resposta

Uma ULA é um circuito combinacional que agrupa uma unidade aritmética (somador/subtrator) e uma unidade lógica (AND, OR, XOR etc.) e usa um multiplexador controlado por sinais de seleção para escolher qual operação será entregue na saída. Dessa forma, basta mudar os sinais de controle para calcular diferentes funções usando o mesmo hardware.

Exercícios relacionados