Aula 5: Lógica Combinacional e a ALU
Vimos portas lógicas que calculam AND, OR e NOT, e vimos como os números são escritos em binário. Agora vamos juntar as duas coisas: pegar portas simples e construir com elas um circuito que realmente calcula — que soma dois números. Todo circuito desta aula é 'lógica combinacional': a saída depende
Se você der os mesmos bits para algumas portas lógicas, elas sempre devolvem a mesma resposta — elas não têm memória. Nesta aula, combinamos portas assim em uma pequena máquina de somar, e depois na grande calculadora da CPU chamada ALU.
- Lógica Combinacional
- Um circuito cuja saída é determinada apenas pelas entradas no momento presente, sem memória de um estado anterior. As mesmas entradas sempre produzem a mesma saída.
- Meio-Somador
- Um circuito que soma dois bits individuais e produz dois bits de saída: uma soma vinda de uma porta XOR, e um carry vindo de uma porta AND.
- Somador Completo
- Um circuito que soma três bits — dois bits de entrada e um carry de entrada — e produz um bit de soma e um bit de carry de saída.
- Carry
- O bit que você 'carrega' para a próxima coluna quando a soma da coluna atual ultrapassa o que um único dígito consegue guardar (em binário, quando a soma é 2 ou mais).
- Somador de Carry Propagado
- Uma cadeia de somadores completos, um para cada coluna de bit; o carry de saída de cada estágio alimenta o carry de entrada do estágio seguinte e 'se propaga' ao longo da cadeia.
- Multiplexador
- Um seletor: um circuito com várias linhas de entrada que escolhe uma delas para passar à saída, de acordo com linhas de seleção que funcionam como uma chave direcionadora.
- ALU
- Um grande circuito combinacional no coração da CPU que executa operações aritméticas e lógicas (soma, subtração, AND, OR, comparações). Um opcode seleciona qual operação é executada.
- Opcode
- Um padrão curto de bits que diz à ALU qual operação executar sobre as entradas — como um número de menu que seleciona a ação desejada.
- Flags de Status
- Bits individuais que a ALU ativa para informar sobre o resultado: uma flag de zero quando o resultado é 0, uma flag de carry quando um carry ultrapassa a largura do número.