Arquitetura de Computadores · Ibmec RJ
Objetivos de aprendizagem
introdução / o nível 0 da máquina multinível
No Capítulo 2, o computador foi apresentado como uma máquina multinível: uma hierarquia de máquinas virtuais em que cada nível Mn oferece uma linguagem Ln ao nível superior e executa seus programas por tradução ou interpretação com o auxílio do nível imediatamente inferior. No modelo de seis níveis (TANENBAUM; AUSTIN, 2013), cada degrau acima esconde detalhes do degrau de baixo e oferece uma interface mais simples e mais próxima do raciocínio humano.
Este capítulo trata do degrau da base: o nível 0 — lógica digital. Ele é o nível mais primitivo do modelo, ou seja, o de menor abstração. Nele não existem instruções, variáveis nem programas; existem apenas sinais binários (0 e 1) e portas lógicas que os combinam segundo funções booleanas. Tudo o que os níveis superiores realizam — somar, comparar, deslocar, armazenar — precisa, em última instância, ser executado por redes de portas.
Figura 3.1 – Máquina multinível de seis níveis, com destaque para o nível de lógica digital
Fonte: adaptada de Tanenbaum e Austin (2013).
nível de lógica digital
Nível 0 do modelo de máquina multinível. É a máquina real formada por portas lógicas interligadas, cuja “linguagem” são os valores lógicos 0 e 1 e as funções booleanas que as portas implementam. É o ponto de contato entre a abstração lógica e a realidade física do circuito eletrônico.
Abaixo do nível 0 situa-se o nível de dispositivo — transistores, tensões, correntes e física dos semicondutores —, domínio da engenharia eletrônica e, por isso, fora do escopo do modelo. O nível de lógica digital funciona como uma primeira abstração sobre ele: em vez de tensões contínuas, interessa apenas se o sinal é alto (1) ou baixo (0).
3.1 / álgebra booleana
proposição
Oração declarativa afirmativa ou negativa, sobre a qual se pode atribuir um e somente um valor lógico: (F) falso ou (V) verdadeiro. Abstraímos F como 0 e V como 1. Também chamada de sentença fechada.
A proposição que só contém uma afirmação ou negação é chamada de proposição simples. As proposições simples podem ser concatenadas, gerando as proposições compostas, através de operadores lógicos, que indicam operações lógicas.
A proposição composta S resultante da conjunção de duas proposições simples p e q é indicada por:
Lê-se "S é igual a p e q", cujo resultado depende dos valores lógicos de p e q:
| p | q | p.q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
A proposição composta S resultante da disjunção de duas proposições simples p e q é indicada por:
Lê-se "S é igual a p ou q":
| p | q | p+q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
A proposição S resultante da operação unária (um só operando) de negação de uma proposição simples p é indicada por:
Lê-se "S é igual a não p":
| p | ~p |
|---|---|
| 0 | 1 |
| 1 | 0 |
| Operação | Outros operadores usados |
|---|---|
| Conjunção | $\land$, e |
| Disjunção | $\lor$, ou |
| Negação | $\bar{X}$, não |
As expressões lógicas consistem na operação de proposições por meio de operadores lógicos, cujo resultado depende do valor lógico de cada proposição constituinte. Termos importantes:
| Característica | Definição |
|---|---|
| Tautologia | Expressão que sempre resulta em valor lógico verdadeiro (1), para todas as combinações de suas variáveis |
| Contradição | Expressão que sempre resulta em valor lógico falso (0), para todas as combinações |
| Equivalência lógica | Duas proposições compostas que produzem resultados iguais para todas as combinações possíveis de variáveis |
3.2 / tabela-verdade
As tabelas-verdade representam todas as combinações de saída das funções de variáveis. São formadas por colunas das variáveis, colunas intermediárias (facultativas) e uma coluna de saída.
| n colunas de entrada | colunas intermediárias | 1 coluna de saída |
|---|---|---|
| Combinação 0 | ... | Saída 0 |
| ... | ... | ... |
| Combinação 2n−1 | ... | Saída 2n−1 |
Com três variáveis, A, B e C, há 23 = 8 combinações. Por convenção, as linhas são listadas na ordem da contagem binária de 000 a 111, com A como bit mais significativo. As colunas intermediárias registram os termos da expressão e facilitam a verificação do resultado.
A saída vale 1 quando A e B valem 1 simultaneamente ou quando C vale 0. Pela precedência, resolve-se primeiro a negação, depois a conjunção e, por fim, a disjunção.
Tabela 3.1 – Tabela-verdade de F = A·B + C̄
| A | B | C | $A\cdot B$ | $\bar{C}$ | F |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 |
Fonte: elaborada pelo autor (2026).
A saída vale 1 quando a maioria das entradas — isto é, pelo menos duas das três — vale 1. É a lógica de um sistema de votação com três votantes.
Tabela 3.2 – Tabela-verdade da função maioria
| A | B | C | $A\cdot B$ | $A\cdot C$ | $B\cdot C$ | M |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Fonte: elaborada pelo autor (2026).
A saída vale 1 quando um número ímpar de entradas vale 1. Aqui a função é dada por uma descrição verbal; a tabela-verdade é construída diretamente pela contagem de uns em cada linha. Lendo as linhas em que P = 1, obtém-se a expressão $P = \bar{A}\bar{B}C + \bar{A}B\bar{C} + A\bar{B}\bar{C} + ABC$.
Tabela 3.3 – Tabela-verdade da função paridade ímpar
| A | B | C | nº de uns | P |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 2 | 0 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 2 | 0 |
| 1 | 1 | 0 | 2 | 0 |
| 1 | 1 | 1 | 3 | 1 |
Fonte: elaborada pelo autor (2026).
princípio fundamental
Os circuitos eletrônicos digitais implementam funções lógicas.
3.3 / portas lógicas
Os circuitos digitais são circuitos elétricos com elementos básicos que operam com dois níveis de sinais lógicos: H (high, alto) e L (low, baixo). O nível H é abstraído como 1, e o nível L, como 0.
As portas lógicas (gates) são dispositivos eletrônicos com duas ou mais entradas e uma saída, resultante da operação lógica das entradas em um instante. As portas básicas são: AND, OR e NOT.
Implementam a operação de disjunção.
| A | B | S |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Figura 3.2 – Símbolo da porta OR
Fonte: elaborada pelo autor (2026).
Fabricantes como a Texas Instruments produzem portas OR como a SN54HC32/SN74HC32.
Implementam a operação de conjunção.
| A | B | S |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Figura 3.3 – Símbolo da porta AND
Fonte: elaborada pelo autor (2026).
A Motorola fabrica portas AND como a MC14081/MC14082 (variam pelo número de entradas). A Philips também fabrica, como a 74HC08N.
Implementa a operação de negação.
| A | S |
|---|---|
| 0 | 1 |
| 1 | 0 |
Figura 3.4 – Símbolo do inversor NOT
Fonte: elaborada pelo autor (2026).
A Philips produz os inversores 7404.
Os circuitos lógicos classificam-se em dois tipos:
| Tipo | Característica |
|---|---|
| Combinacionais | A saída depende unicamente da combinação das entradas em um instante |
| Sequenciais | Possuem memória — a saída em um instante depende das entradas naquele instante e da saída em um instante anterior |
Exemplo ilustrativo: um circuito com duas entradas A e B, em que a porta 1 (AND) combina A e B, a porta 2 (NOT) inverte B, e a porta 3 (OR) combina as saídas das portas 1 e 2:
Figura 3.5 – Exemplo de circuito combinacional descrito porta a porta, da entrada até a saída
Fonte: elaborada pelo autor (2026).
Cada saída pode ser definida como uma função das entradas. Logo, a cada saída corresponde uma tabela-verdade.
3.4 / circuito somador
A soma binária é a operação aritmética fundamental de qualquer processador. Somar dois números de 2 bits, A = A1A0 e B = B1B0, produz um resultado de até 3 bits, CoutS1S0, pois o maior resultado possível é 3 + 3 = 6 = 1102. O procedimento é o mesmo da soma decimal feita à mão: coluna a coluna, da direita para a esquerda, levando o vai-um (carry) para a coluna seguinte.
vai-um: 1 1 A: 1 1 (3) B: + 0 1 (1) ----- 1 0 0 (4)
Na coluna 0, 1 + 1 = 102: escreve-se 0 e vai 1. Na coluna 1, 1 + 0 + 1 (o vai-um) = 102: escreve-se 0 e vai 1, que se torna o bit mais significativo do resultado. Nota-se que a coluna 0 soma dois bits, enquanto a coluna 1 soma três (os dois bits e o vai-um). Essa diferença define os dois blocos do somador: o meio-somador e o somador completo. Antes, porém, convém apresentar uma porta adicional.
A porta XOR produz 1 quando as entradas são diferentes: $S = A \oplus B = A\cdot\bar{B} + \bar{A}\cdot B$. Ela não é uma operação primitiva — pode ser construída com AND, OR e NOT —, mas é tão frequente que é fabricada como componente próprio, por exemplo o circuito integrado 74HC86, com quatro portas XOR de duas entradas.
Tabela 3.4 – Tabela-verdade da porta XOR
| A | B | S |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Fonte: elaborada pelo autor (2026).
Figura 3.6 – Símbolo da porta XOR
Fonte: elaborada pelo autor (2026).
Figura 3.7 – Porta XOR construída com portas básicas
Fonte: elaborada pelo autor (2026).
Soma dois bits, A e B, e produz o bit de soma S e o vai-um C. Pela tabela-verdade, S vale 1 quando as entradas diferem (XOR) e C vale 1 apenas quando ambas valem 1 (AND).
Tabela 3.5 – Tabela-verdade do meio-somador
| A | B | C | S |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
Fonte: elaborada pelo autor (2026).
Figura 3.8 – Meio-somador
Fonte: elaborada pelo autor (2026).
Soma três bits: A, B e o vai-um de entrada Cin, vindo da coluna anterior. A tabela-verdade mostra que S é a paridade ímpar das três entradas (Exemplo 3) e que Cout é a função maioria (Exemplo 2). A implementação usual reaproveita o sinal intermediário $P = A \oplus B$:
Tabela 3.6 – Tabela-verdade do somador completo
| A | B | Cin | Cout | S | soma (decimal) |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 | 0 | 2 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 1 | 0 | 2 |
| 1 | 1 | 0 | 1 | 0 | 2 |
| 1 | 1 | 1 | 1 | 1 | 3 |
Fonte: elaborada pelo autor (2026).
Figura 3.9 – Somador completo implementado com duas portas XOR, duas AND e uma OR
Fonte: elaborada pelo autor (2026).
O somador de 2 bits resulta da composição dos dois blocos: um meio-somador na coluna 0 e um somador completo na coluna 1, cuja entrada Cin recebe o vai-um C1 gerado na coluna 0. Como o vai-um “ondula” de uma coluna para a seguinte, essa organização é chamada de somador com propagação de vai-um (ripple-carry adder). Ao todo, são 7 portas e 11 sinais.
Figura 3.10 – Somador de 2 bits porta a porta (interativo)
Fonte: elaborada pelo autor (2026). Clique nas entradas para alterar seus valores; os fios em amarelo estão em nível lógico 1.
O painel abaixo do circuito mostra a análise porta a porta: cada porta é avaliada a partir dos valores presentes em suas entradas, seguindo o método da seção 3.3.4, da entrada até a saída. A Tabela 3.7 resume alguns casos.
Tabela 3.7 – Alguns casos do somador de 2 bits
| A | B | Cout | S1 | S0 | A + B |
|---|---|---|---|---|---|
| 01 (1) | 10 (2) | 0 | 1 | 1 | 3 |
| 10 (2) | 11 (3) | 1 | 0 | 1 | 5 |
| 11 (3) | 01 (1) | 1 | 0 | 0 | 4 |
| 11 (3) | 11 (3) | 1 | 1 | 0 | 6 |
Fonte: elaborada pelo autor (2026).
atraso de propagação
Cada porta leva um tempo finito — o atraso de propagação, tpd, da ordem de nanossegundos na família 74HC — para refletir na saída uma mudança nas entradas. No somador de 2 bits, o caminho mais longo é A0/B0 → porta 2 → porta 6 → porta 7: Cout só se estabiliza após três atrasos de porta. Em um somador ripple-carry de n bits, esse atraso cresce proporcionalmente a n.
3.5 / escalada de abstração
A resposta do somador pode ser analisada com graus crescentes de abstração. Em cada passo, o observador deixa de enxergar parte dos detalhes do passo anterior e passa a raciocinar com objetos mais complexos. Os três primeiros passos ainda ocorrem dentro do nível 0; os demais percorrem os níveis superiores do modelo.
Figura 3.11 – Somador de 2 bits visto como blocos funcionais e como caixa-preta aritmética
Fonte: elaborada pelo autor (2026).
c = a + b;. O compilador escolhe os registradores e a instrução; o tipo da variável (por exemplo, inteiro de 32 bits) determina a largura do somador utilizado. O vai-um final, que no nível 0 era apenas um fio, aparece aqui como o fenômeno do estouro (overflow) da aritmética de inteiros.Figura 3.12 – A mesma operação de soma vista em cada nível do modelo
Fonte: elaborada pelo autor (2026). A codificação binária do nível 2 é hipotética.
Quadro 3.1 – Síntese da escalada de abstração no somador
| Nível | Unidade de análise | Como a soma aparece | O que fica oculto |
|---|---|---|---|
| 0 | Portas → blocos → somador | Sinais S0, S1, Cout em função de A1A0 e B1B0 | Transistores e tensões elétricas |
| 1 | Registradores, ULA, barramentos, controle | Operação da ULA selecionada por sinal de controle em um ciclo de clock | Portas e atraso individual de cada porta |
| 2 | Instrução de máquina | ADD R3, R1, R2 em binário; flag de carry | Caminho de dados e sinais de controle |
| 3 | Processo | Instrução executada diretamente; contexto salvo na troca de processo | Como a instrução é executada pelo hardware |
| 4 | Mnemônico | ADD R3, R1, R2 em forma simbólica | Codificação binária |
| 5 | Expressão e variáveis | c = a + b; | Registradores e instruções |
Fonte: elaborado pelo autor (2026).
síntese
Cada nível oculta os detalhes do nível imediatamente inferior e oferece ao superior uma interface mais simples. Os detalhes, porém, não desaparecem: o atraso das portas do nível 0 reaparece como limite de clock no nível 1; o vai-um final reaparece como flag no nível 2 e como overflow no nível 5. Compreender o nível de lógica digital é compreender a origem dessas restrições.
referências
TANENBAUM, Andrew S.; AUSTIN, Todd. Organização estruturada de computadores. 6. ed. São Paulo: Pearson Prentice Hall, 2013.
TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011.