FIG. 26Como funciona
Somador binário: siga os bits da soma e do transporte
Somar 7 e 9 exige 20 portas aqui. O último transporte chega 8 atrasos de porta depois de virar as chaves.
Este dispositivo não consegue mostrar o modelo 3D. Abaixo, você pode ler as etapas do guia em texto.
1 / 20 Dois números de 4 bits e cinco LEDA fileira dianteira guarda dois números de 4 bits. A é 0111 (7) e B é 1001 (9). Siga a luz por 20 portas até ler 10000, que é 16. Toque numa chave ou escolha outro circuito no controle Circuito.
Arraste para girar. Use a rolagem ou o gesto de pinça para ampliar.
Somar 7 e 9 só com chaves
Portas lógicas somam números binários produzindo, em cada coluna, um bit de soma e um bit de transporte. Um somador completo também aceita o transporte vindo da coluna anterior. Num somador em cascata, cada transporte precisa atravessar as portas antes que a resposta final se estabilize.
No papel, 7 + 9 cabe numa linha: 6 na coluna das unidades, vai 1, e o resultado é 16. Um computador não tem papel nem faz ideia do que é um número. O que ele tem são chaves que estão ligadas ou desligadas. Então como um monte de chaves tira 16 de 7 e 9?
A placa acima responde a isso uma camada de cada vez e depois continua. Ela abre num somador de 4 bits em cascata: oito chaves de bit na borda dianteira para dois números, A e B, cada um de 0 a 15, vinte portas lógicas atrás delas e cinco LED na borda traseira para o resultado. Quando você vira uma chave, as trilhas de cobre que levam um 1 se acendem, e a luz avança pelas portas na velocidade que você define com o controle "Atraso de porta". O painel no canto mostra as entradas e os LED em binário e em decimal ao mesmo tempo.
O controle "Circuito" troca a placa por um de 15 circuitos montados com o mesmo tipo de chip de porta: uma única porta, um meio somador, um somador completo, somadores de 4 e de 8 bits em cascata, um somador com antecipação de transporte, um somador-subtrator, um comparador, um multiplexador, um decodificador de 7 segmentos, uma trava SR, um biestável D, um contador, uma pequena ULA e um desafio feito de quatro portas NAND. Todos rodam na mesma simulação, então você pode comparar quantas portas cada um precisa e quanto tempo cada um leva para se estabilizar.
Números escritos com dois dígitos
No decimal, cada coluna vale dez vezes a coluna à sua direita: unidades, dezenas, centenas. O binário funciona do mesmo jeito, só que com dois no lugar de dez. As colunas valem 1, 2, 4 e 8, então quatro bits guardam qualquer número de 0 (0000) a 15 (1111). Na placa, a chave A0 é a coluna das unidades e A3 é a coluna dos oitos, e os números pequenos impressos sob cada chave indicam o seu valor.
Sete é 4 + 2 + 1, ou seja, 0111. Nove é 8 + 1, ou seja, 1001. A soma deles, 16, precisa de uma quinta coluna que vale 16, então a resposta é 10000. Essa quinta coluna é o LED de transporte, C4. Sempre que uma soma passa de 15, o LED de transporte é a única maneira de a placa mostrar isso.
O binário combina com a eletrônica porque um fio só precisa estar em um de dois estados bem diferentes. Um circuito não precisa distinguir 3 volts de 3,5 volts, apenas "alto" de "baixo", e isso é muito mais fácil de fazer com confiabilidade bilhões de vezes por segundo.
Um transistor como chave
Ponha o controle "Circuito" em "Uma porta" e escolha "Fio" sob o modelo. A chave X liga um LED à alimentação por uma ponte, e o LED mostra exatamente o que a chave diz: 1 é aceso, 0 é apagado.
Agora escolha "Transistor". O modelo mostra um transistor NPN com três pinos. Uma pequena corrente no pino do meio (a base) permite que uma corrente muito maior circule entre os outros dois (o coletor e o emissor), e o LED se acende. Tire a corrente de base e o LED se apaga. O transistor virou uma chave acionada por eletricidade em vez de por um dedo.
Isso é uma simplificação, e o modelo avisa. Um transistor real é uma peça analógica: mais corrente de base dá mais corrente de coletor ao longo de uma faixa. Os circuitos lógicos são projetados para que o transistor passe o tempo apenas totalmente desligado ou totalmente ligado e atravesse a região intermediária o mais depressa possível. É isso que nos permite tratá-lo como uma chave.
Portas feitas de pares de transistores
Quando uma chave consegue controlar outra chave, dá para construir decisões. Os chips de hoje usam um tipo de transistor chamado MOSFET, em dois tipos: os transistores de canal n conduzem quando a entrada está alta e os de canal p conduzem quando ela está baixa. A lógica CMOS os combina de modo que uma rede pode puxar a saída para cima, até a alimentação, e a outra pode puxá-la para baixo, até o terra, e para qualquer entrada exatamente uma das duas redes conduz. Uma porta parada consome quase nenhuma corrente. Essa propriedade, demonstrada por Chih-Tang Sah e Frank Wanlass na Fairchild em 1963, é a razão pela qual um celular pode conter bilhões de transistores sem derreter.
Conte os transistores e as portas deixam de custar o mesmo:
| Porta | Função | Transistores CMOS |
|---|---|---|
| NOT | inverte a entrada | 2 |
| NAND | 0 só quando ambas as entradas são 1 | 4 |
| NOR | 1 só quando ambas as entradas são 0 | 4 |
| AND | NAND seguido de NOT | 6 |
| OR | NOR seguido de NOT | 6 |
| XOR | 1 quando as entradas diferem | 12 na forma simples usada aqui |
A surpresa é que AND, a porta que todo mundo aprende primeiro, custa mais que NAND. No CMOS, as portas naturais são as inversoras, porque a rede de canal n puxa a saída para baixo: dois transistores de canal n em série só puxam para baixo quando ambas as entradas são 1, o que é NAND, e dois em paralelo formam NOR. Para obter AND, você acrescenta um inversor. Ative "Transistores por chip" e cada chip da placa mostra a sua própria contagem; a bancada "Uma porta" permite percorrer os sete tipos de porta e também o fio simples.
NAND tem mais uma propriedade. Só com portas NAND dá para construir NOT (ligando as duas entradas), AND (uma NAND e uma NOT), OR (invertendo antes as duas entradas) e todo o resto. O último circuito da placa é um desafio baseado nisso: quatro portas NAND cujas entradas você escolhe no laboratório, sob os controles. Acerte as ligações e a saída coincidirá com XOR nas quatro linhas.
Meio somador: XOR para soma, AND para transporte
Olhe a tabela-verdade do XOR. 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 e 1 + 1 = 10 em binário, que é 0 nesta coluna e 1 que vai para a próxima. O dígito da direita de cada resposta é exatamente a coluna do XOR. O transporte só é 1 na última linha, o que corresponde exatamente a AND.
Assim, um XOR e um AND alimentados pelos mesmos dois bits somam esses bits. Esse par se chama meio somador. Na placa "Meio somador" ele aparece sozinho; no somador de 4 bits ele é o primeiro bloco de cada bit. Com A e B ambos em 1, o XOR dá soma 0 e o AND dá transporte 1.
Somador completo: entram três bits, saem dois
Um meio somador basta para a coluna das unidades, mas todas as outras colunas têm três coisas a somar: um bit de A, um bit de B e o transporte vindo da direita. O somador completo resolve isso com dois meios somadores e uma porta OR. Na placa, cada bit usa estes nomes:
- p = A xor B e g = A and B (o primeiro meio somador)
- S = p xor C e t = p and C (o segundo meio somador soma o transporte de entrada C)
- Transporte de saída = g or t
A porta OR nunca vê dois 1 ao mesmo tempo. Se A e B são ambos 1, então p é 0 e t não pode ser 1. Ela apenas reúne as duas maneiras de um transporte ser criado: a própria coluna gerou um (g) ou a coluna repassou o transporte que recebeu (t). As oito linhas da tabela-verdade do somador completo cobrem todos os casos, e o maior deles, 1 + 1 + 1 = 3, resulta em transporte 1 e soma 1.
Cinco portas por bit e quatro bits dão as 20 portas do somador de 4 bits. O transporte de saída de cada somador completo está ligado ao transporte de entrada do seguinte, à esquerda, como o passo "vai um" no papel. Essa cadeia é o motivo de o circuito se chamar somador em cascata. Enquanto ele funciona, a tabela-verdade no canto marca qual linha cada bit está usando, e assim você vê o bit 0 parado em 1 1 0 enquanto o bit 3 espera em 0 1 1.
Por que o transporte demora
Nenhuma porta responde instantaneamente. Quando suas entradas mudam, a saída acompanha um pouco depois, e esse tempo se chama atraso de porta ou atraso de propagação. O modelo dá a toda porta um atraso de exatamente uma unidade, e o controle estica essa unidade de 0,05 a 2,4 segundos para que você possa observá-la.
Veja 7 + 9, partindo de uma placa em 0 + 0:
| Atraso de porta | O que muda |
|---|---|
| 1 | Todos os XOR e AND do primeiro nível reagem às novas chaves. O bit 0 (1 + 1) faz g = 1. |
| 2 | O transporte para o bit 1 se liga. Os bits 1, 2 e 3 mostram, por enquanto, soma 1. |
| 3 a 4 | O bit 1 soma o seu transporte: a soma volta a 0 e o transporte de saída se liga. |
| 5 a 6 | O mesmo acontece no bit 2. |
| 7 a 8 | O bit 3 cai para 0 e C4 se acende. Os LED mostram 10000, que é 16. |
Cada bit precisa de dois atrasos de porta para passar o transporte adiante: um para o AND que gera t e outro para o OR que gera o transporte de saída. Em quatro bits, o último transporte chega após 8 atrasos. O pior caso da placa de 4 bits é 9 atrasos, o que corresponde a 2n + 1 para n = 4 bits. Ative "Atraso em cada chip" e cada chip mostra o atraso em que sua saída mudou pela última vez; ao longo da cadeia de transporte os números sobem 2, 4, 6, 8.
Observe os LED durante esses 8 atrasos e você verá respostas erradas. No atraso 6, o painel pode mostrar 01000, que é 8. Nada está quebrado: esses LED mostram uma soma calculada antes de o transporte chegar. Circuitos reais têm as mesmas saídas falsas e breves, chamadas de falhas transitórias (glitches), e é por isso que um processador espera um tempo fixo pelo caminho mais lento antes de ler a saída de um somador. A duração dessa espera é uma das coisas que definem a frequência do relógio. O "Diagrama temporal" mostra a mesma coisa como formas de onda, com cada saída subindo e descendo antes de se estabilizar.
A placa de 8 bits deixa o custo evidente. É o mesmo somador completo oito vezes, 40 portas, e 255 + 1 envia um transporte por todos os bits: os LED se estabilizam após 16 atrasos de porta, o dobro de 15 + 1 na placa de 4 bits. Um somador de 64 bits em cascata construído do mesmo modo precisaria de 129 atrasos de porta no pior caso. Se quiser ver um atraso de cada vez, ative "Um atraso por vez" e aperte "Próximo atraso" sob o modelo.
Calcular os transportes antes
Somadores rápidos não esperam a propagação. Olhe de novo o somador completo: uma coluna cria um transporte por conta própria quando g = A and B é 1, e repassa o transporte que recebe quando p = A xor B é 1. Esses dois sinais ficam prontos após um atraso de porta, em todas as colunas ao mesmo tempo. A partir deles, cada transporte pode ser escrito por extenso:
- C1 = g0 + p0 C0
- C2 = g1 + p1 g0 + p1 p0 C0
- C3 = g2 + p2 g1 + p2 p1 g0 + p2 p1 p0 C0
- C4 = g3 + p3 g2 + p3 p2 g1 + p3 p2 p1 g0 + p3 p2 p1 p0 C0
Leia C2 como uma frase: há transporte para o bit 2 se o bit 1 gerou um, ou se o bit 1 repassa um transporte gerado pelo bit 0, ou se os bits 1 e 0 repassam ambos o transporte de entrada. Cada linha é uma fileira de portas AND seguida de um único OR, de modo que todo transporte chega após três atrasos de porta, e as somas um atraso depois. A placa "Somador 4 bits com antecipação" faz isso com 26 portas. Ponha 15 + 1 nela e ela se estabiliza em 4 atrasos de porta, onde a placa em cascata levou 8. A tabela do painel mostra P, G e o transporte de cada bit.
O preço está nas portas AND. C4 já exige um AND de 5 entradas e um OR de 5 entradas, e os termos crescem a cada bit, por isso os somadores largos combinam as duas ideias: pequenos blocos de antecipação de quatro bits, com um segundo nível de antecipação entre os blocos. Gerald Rosenberger, da IBM, registrou em 1957 uma patente de um somador binário com antecipação de transporte. Charles Babbage tinha enfrentado o mesmo problema um século antes e projetou um mecanismo para antecipar os transportes em sua máquina analítica. Hoje um somador de 4 bits com "transporte rápido" é um chip de catálogo: a Texas Instruments ainda lista o SN74LS283.
Subtrair com o mesmo somador
Os computadores não precisam de um subtrator separado. No complemento de dois, a forma usual de guardar números negativos, menos B se escreve como "inverta todos os bits de B e depois some 1". Assim, A − B é A + (not B) + 1.
A placa "Somador-subtrator" acrescenta um XOR por bit na frente de B. Com SUB desligado, cada XOR deixa o bit de B passar direto; com SUB ligado, cada XOR inverte o seu bit, e a mesma linha SUB alimenta o transporte de entrada, que fornece o 1 extra. Experimente 5 − 7. B = 0111 vira 1000, o somador calcula 0101 + 1000 + 1 = 1110, e 1110 lido como número de 4 bits com sinal é −2. Lido como número sem sinal é 14, o que também está certo à sua maneira: 5 − 7 + 16 = 14. Os mesmos bits significam coisas diferentes conforme a leitura, e o painel mostra as duas.
Um número de 4 bits com sinal só vai de −8 a 7, então algumas respostas não cabem. O LED verde V da placa detecta isso: ele é um XOR do transporte que entra no bit mais alto com o transporte que sai dele, e se acende quando os dois diferem. 7 + 1 (com SUB desligado) o acende, porque 0111 + 0001 = 1000, que se lê como −8. A fileira extra de XOR custa mais um atraso de porta no início, e a porta V mais um no fim, então o pior caso nesta placa é 11 atrasos.
Comparar dois números
Como um circuito decide que 9 é maior que 5? Do mesmo modo que você faria com números escritos: olhando o dígito mais alto em que eles diferem. A placa "Comparador" resolve isso bit a bit. A > B em um bit significa que A é 1 e B é 0 (um AND com um inversor em B), A < B significa o oposto, e o bit é igual quando nenhuma das duas coisas é verdadeira, o que é um NOR das duas.
Depois ela classifica os bits. A é maior se o bit 3 diz isso, ou se o bit 3 é igual e o bit 2 diz isso, ou se os bits 3 e 2 são iguais e o bit 1 diz isso, e assim por diante. São quatro termos AND reunidos por um OR, a mesma forma dos transportes com antecipação. 1001 contra 0101 diferem primeiro no bit 3, em que A tem o 1, e o LED A > B se acende após 4 atrasos de porta (o pior caso desta placa é 5). A placa usa 29 portas. O SN74LS85 da TI faz o mesmo trabalho num só encapsulamento e tem entradas extras para que vários chips comparem números maiores.
Escolher uma entrada e desenhar um dígito
Mais dois circuitos usam o mesmo padrão de portas AND reunidas por um OR.
Um multiplexador escolhe. A placa 4 para 1 tem quatro entradas de dados, D0 a D3, e dois bits de seleção. Cada entrada de dados vai para um AND de 3 entradas que também recebe os bits de seleção (ou seus inversos), de modo que, para qualquer ajuste, exatamente um AND fica aberto, e o OR passa o seu bit de dados para Y. São sete portas e três atrasos de porta. Sempre que um fio precisa levar um entre vários sinais, do banco de registradores de um processador à chave de fonte de uma TV, há um multiplexador.
Um decodificador desenha. Um mostrador de 7 segmentos tem sete LED em forma de barra, de a a g, e cada dígito acende um conjunto diferente: o 1 acende b e c, o 8 acende todos os sete. Para cada segmento, dá para listar os dígitos que o acendem e simplificar essa lista numa soma de produtos, um punhado de termos AND reunidos por um OR. O decodificador da placa foi obtido assim: 4 inversores, 28 termos AND compartilhados e 7 OR, 39 portas, três atrasos de porta da chave ao segmento. Ele desenha também os dígitos hexadecimais de A a F, além de 0 a 9. O SN74LS47 da TI é a versão de catálogo para 0 a 9.
Circuitos que lembram
Tudo até aqui esquece. Mude as chaves e a saída acompanha; nada depende do que aconteceu antes. A memória precisa de um laço.
A trava SR são duas portas NOR, cada uma levando a sua saída à entrada da outra. Com S e R ambos em 0, o laço mantém o que tinha, Q = 1 ou Q = 0, e continua mantendo enquanto houver alimentação. Um 1 em S força Q a 1, um 1 em R o força a 0. Ponha Q em 1, desligue S de novo, e Q continua em 1. Isso é um bit de memória feito de oito transistores.
A trava tem uma entrada proibida. Com S e R ambos em 1, as duas saídas ficam em 0, e se você soltar os dois no mesmo instante, as duas portas disputam uma corrida. No modelo, em que as duas portas têm exatamente o mesmo atraso, o laço nunca se estabiliza: as saídas se invertem juntas a cada atraso de porta e o painel avisa. Uma trava real nunca é perfeitamente equilibrada, então um lado vence, mas qual deles e quanto tempo leva não se pode prever. Os engenheiros chamam isso de metaestabilidade, e os projetos digitais são organizados para que ela não ocorra no uso normal.
Um biestável D elimina o problema ao receber os dados apenas num instante. A versão da placa é o projeto de seis NAND usado no chip 7474. Enquanto o relógio está baixo ou alto, D pode mudar quantas vezes quiser e Q não se mexe. Só no momento em que CLK sobe de 0 para 1 é que Q assume o valor de D, e o mantém até a próxima borda de subida. Alimentado com 49.152 passos aleatórios de D e CLK, Q seguiu essa regra todas as vezes.
Contar pulsos de relógio
Ponha quatro biestáveis lado a lado, acrescente um pequeno circuito que calcula o número atual mais um e devolve o resultado às entradas D dos biestáveis. Cada pulso de relógio carrega o número seguinte. A placa "Contador de 4 bits" faz exatamente isso com 30 portas: 24 NAND nos quatro biestáveis e seis portas para o somador. O bit 0 sempre inverte, o bit 1 inverte quando o bit 0 é 1, o bit 2 quando os bits 1 e 0 são ambos 1, o bit 3 quando os três abaixo dele são 1.
Aperte "Pulso de relógio" e observe a ordem. A borda do relógio chega aos quatro biestáveis juntos, as saídas mudam dois atrasos de porta depois, e as portas do "mais um" preparam então o número seguinte muito antes do próximo pulso. Como todos os bits mudam na mesma borda, o contador se chama síncrono, como o SN74LS161A da TI. Depois de 1111 ele volta a 0000. Em 40 pulsos, contou de 0 a 15 e recomeçou sem errar uma vez.
Uma ULA com as mesmas peças
A unidade lógica e aritmética de um processador é o circuito que faz as contas de fato. A placa "ULA de 4 bits" mostra a ideia em 59 portas. Para cada bit, ela calcula quatro resultados lado a lado: A + B, A − B, A AND B e A OR B. Dois bits de operação escolhem então qual deles chega às saídas, pelo mesmo tipo de seleção com AND e OR do multiplexador. A operação 00 soma, 01 subtrai (usando a fileira de XOR do somador-subtrator), 10 é AND e 11 é OR.
Os quatro resultados são calculados o tempo todo; os bits de operação apenas escolhem qual você vê. É assim que as ULA reais funcionam também, e é por isso que o caminho mais longo da ULA, 13 atrasos de porta aqui, é maior que o do somador sozinho. Experimente 12 AND 10: 1100 e 1010 só têm o bit 3 em comum, então a resposta é 1000, que é 8.
Quanto dura um atraso de porta
O modelo conta atrasos; as peças reais os medem em nanossegundos. A Texas Instruments dá um atraso típico de 9 ns para suas portas NAND SN74HC00 a 4,5 V, de 9 a 10 ns para o mais antigo SN74LS00 e cerca de 5 ns para o SN74AC00 a 5 V. Um relé é um milhão de vezes mais lento: a folha de dados do Omron G5V-1 admite até 5 ms para operar.
Multiplique isso pelo caminho mais longo da placa. Um somador de 4 bits em cascata precisa de 9 atrasos, então, com portas do tipo 74HC00, ele se estabiliza em cerca de 81 ns, rápido o bastante para doze milhões de somas por segundo. Construído com relés, o mesmo somador precisaria de 45 ms. O laboratório sob os controles faz essa conta para o circuito que estiver na placa. Um processador moderno soma números de 64 bits bilhões de vezes por segundo porque suas portas são milhares de vezes mais rápidas e seus somadores usam antecipação, não porque a lógica seja diferente.
Confira cada circuito
Todo circuito da placa foi conferido com a sua tabela-verdade para todas as entradas possíveis. O somador de 4 bits deu A + B + C0 nas 512 combinações e se estabilizou na resposta certa em até 9 atrasos de porta após cada uma das 262.144 mudanças possíveis de uma entrada para outra. O somador de 8 bits foi conferido em todas as 131.072 somas e em 400.000 mudanças aleatórias. O somador com antecipação se estabilizou em até 4 atrasos, o somador-subtrator em até 11, o comparador em até 5, o multiplexador e o decodificador em até 3, e a ULA em até 13 após cada uma de suas 1.048.576 mudanças. Os circuitos de memória foram testados com sequências: a trava com ativar, manter e reiniciar, o biestável com relógio e dados aleatórios, o contador com 40 pulsos.
Você pode experimentar alguns na placa:
- 15 + 1 no somador em cascata: os quatro transportes se propagam em sequência e os LED mostram 10000 após 8 atrasos.
- 15 + 1 no somador com antecipação: a mesma resposta após 4 atrasos.
- 5 + 2: nenhuma coluna gera transporte, e a resposta 0111 (7) fica pronta após 2 atrasos.
- 5 − 7 no somador-subtrator: 1110, que é −2.
Diferenças para um chip real
- Todas as portas têm o mesmo atraso. Na lógica real, um XOR é mais lento que um NAND, uma porta que aciona muitas entradas é mais lenta que uma que aciona uma só, e os atrasos mudam com a temperatura e a tensão de alimentação.
- Todo fio leva 0,85 de um atraso de porta para ser atravessado, qualquer que seja o seu comprimento. Numa placa real, trilhas curtas são praticamente instantâneas; dentro de um chip, fios longos podem ser mais lentos que as portas.
- Os sinais são perfeitamente 0 ou 1. As tensões reais sobem e descem durante um curto intervalo, e a placa não tem ruído, calor nem limites de carga nas saídas.
- Uma porta por chip. Os chips lógicos reais reúnem quatro NAND ou seis inversores num só encapsulamento, e precisam de pinos de alimentação, capacitores de desacoplamento e resistores de elevação ao nível alto que a placa deixa de fora.
- O transistor da bancada é desenhado como uma única chave bipolar, enquanto as contagens de transistores nos chips são para CMOS.
Da álgebra de Boole aos somadores de relés
Em 1854, George Boole publicou The Laws of Thought (As leis do pensamento), uma álgebra em que afirmações lógicas são combinadas por operações muito parecidas com a multiplicação e a adição, e em que os símbolos 1 e 0 têm um papel especial. Era um livro sobre raciocínio, não sobre máquinas.
A ligação com os circuitos veio em 1937. Claude Shannon, estudante de mestrado no MIT, escreveu a dissertação A Symbolic Analysis of Relay and Switching Circuits. Ele mostrou que chaves em série e em paralelo seguem as mesmas regras da álgebra de Boole, de modo que um circuito pode ser projetado e simplificado com álgebra em vez de por tentativa e erro. No último capítulo, deu vários exemplos de circuitos, entre eles um somador para números binários. Um artigo baseado na dissertação foi publicado nas Transactions of the American Institute of Electrical Engineers em 1938 e ganhou o Alfred Noble Prize.
No mesmo ano, George Stibitz, cientista da Bell Labs, montou um somador de demonstração com relés. Chamou-o de Model K, por causa da mesa de cozinha em que o montou. Dez anos depois, em dezembro de 1947, John Bardeen e Walter Brattain fizeram o primeiro transistor funcional na Bell Labs, num grupo chefiado por William Shockley. Os três dividiram o Prêmio Nobel de Física de 1956 "por suas pesquisas sobre semicondutores e pela descoberta do efeito transistor".
Dos relés aos bilhões de transistores
Os primeiros grandes computadores usaram as chaves que havia à mão. O Z3 de Konrad Zuse, de 1941, usava 2300 relés; o Harvard Mark 1, concluído em 1944, usava 3500, mantidos em compasso por um eixo de cames de cinquenta pés. O Colossus, em operação em Bletchley Park desde o início de 1944, comutava com 2500 válvulas, e o ENIAC, anunciado na Universidade da Pensilvânia em fevereiro de 1946, precisou de 18.000 válvulas a vácuo e ocupava uma sala de 30 por 50 pés (cerca de 9 por 15 metros). O TX-0 do MIT, de 1956, foi o primeiro computador programável de uso geral construído com transistores, cada um num "frasco" encaixável para poder ser trocado como uma válvula.
Depois as portas passaram para o silício. Em 1961, a Fairchild anunciou um dos primeiros circuitos integrados planares, um biestável com quatro transistores e cinco resistores. A série 7400 de chips de lógica TTL da Texas Instruments, vendida em encapsulamentos de plástico baratos a partir de 1966, logo ficou com mais da metade do mercado de lógica, e muitas de suas peças, como o NAND quádruplo SN7400, ainda são vendidas hoje. O Apollo Guidance Computer, que voou pela primeira vez na Apollo 7, em 1968, foi construído principalmente com um só tipo de chip, que continha duas portas NOR de 3 entradas, vários milhares delas por computador.
Em 1965, Gordon Moore previu que o número de componentes num chip dobraria a cada ano, e mais tarde revisou isso para a cada dois anos. O Intel 4004, de 1971, pôs um processador inteiro de 4 bits num só chip com 2300 transistores (a linha do tempo do Computer History Museum indica 2250). O M1 da Apple, de 2020, tem 16 bilhões, cerca de sete milhões de vezes mais, e as GPU Blackwell da NVIDIA, de 2024, têm 208 bilhões. Dentro de todos eles, a aritmética ainda é feita por somadores, multiplexadores e biestáveis como os desta placa.
Perguntas
Por que computadores usam binário?
Um fio só precisa estar em um de dois estados, alto ou baixo, e um transistor só precisa estar totalmente ligado ou totalmente desligado. Distinguir dois estados é muito mais confiável do que distinguir dez, e a álgebra de Boole descreve exatamente os circuitos de dois estados.
Qual a diferença entre meio somador e somador completo?
Um meio somador soma dois bits e dá uma soma e um transporte. Um somador completo soma três bits (dois dígitos e um transporte de entrada). Ele é feito de dois meios somadores e uma porta OR.
Por que se chama somador em cascata?
Cada somador completo precisa esperar o transporte da coluna à sua direita para que o seu próprio transporte de saída seja definitivo. O transporte passa pelos bits um depois do outro, como uma ondulação na água.
Quanto demora o somador de 4 bits?
Neste modelo, cada bit acrescenta dois atrasos de porta ao transporte. O pior caso é 9 atrasos de porta, e 7 + 9 se estabiliza após 8. Com portas do tipo 74HC00, de 9 ns cada, isso dá cerca de 81 ns.
Por que aparecem números errados por um instante?
Cada coluna mostra a sua soma assim que as suas próprias portas reagem, antes de o transporte da direita chegar. Essas saídas erradas e breves se chamam falhas transitórias (glitches). Um processador espera o caminho mais lento terminar antes de usar o resultado.
E se a soma passar de 15?
Quatro bits de soma só mostram de 0 a 15. O quinto LED, C4, guarda o transporte de saída do bit mais alto e vale 16. Com ele, a placa pode mostrar qualquer soma até 15 + 15 + 1 = 31.
O mesmo circuito pode subtrair?
Pode. Inverta todos os bits de B e ligue o transporte de entrada, e o somador calcula A menos B em complemento de dois. A placa "Somador-subtrator" faz isso com um XOR por bit, e os processadores usam o mesmo truque para que um único somador cuide das duas operações.
Por que NAND é universal?
Qualquer função lógica pode ser construída só com portas NAND: NOT é uma NAND com as entradas ligadas entre si, AND é uma NAND seguida de uma NOT, e OR é uma NAND de duas entradas invertidas. NOR tem a mesma propriedade. O desafio NAND da placa pede um XOR feito com quatro NAND.
Por que AND usa mais transistores?
No CMOS, os transistores que puxam a saída para o terra são de canal n, e dois deles em série só puxam para baixo quando ambas as entradas são 1. Isso produz a função invertida, NAND, com 4 transistores. AND precisa de um inversor a mais, o que a leva a 6.
Antecipar é sempre melhor?
É mais rápido, mas precisa de mais portas, e portas muito mais largas, à medida que o número de bits cresce. A placa de 4 bits com antecipação usa 26 portas contra 20 da placa em cascata. Os somadores largos usam pequenos blocos de antecipação ligados por um segundo nível de antecipação.
Qual a diferença entre trava e biestável?
Uma trava acompanha suas entradas sempre que elas mudam (a trava SR liga e desliga na hora). Um biestável muda apenas numa borda do relógio, de modo que um circuito inteiro cheio de biestáveis avança em sincronia, um pulso de relógio de cada vez.
Quantos transistores usa o somador de 4 bits?
Contado como portas CMOS, 168: oito XOR de 12, oito AND de 6 e quatro OR de 6. A placa da ULA precisa de 418. O Intel 4004 precisava de cerca de 2300 para um processador inteiro.
Termos
- Bit: um dígito binário, 0 ou 1.
- Porta lógica: circuito cuja saída é uma função fixa de suas entradas, como AND, OR, NOT, NAND, NOR ou XOR.
- Tabela-verdade: lista de todas as combinações de entrada e da saída que cada uma produz.
- Transistor: peça semicondutora em que uma pequena corrente ou tensão controla uma corrente maior. Na lógica, é usado como chave.
- CMOS: lógica construída com pares de MOSFET de canal n e de canal p, que consome quase nenhuma corrente enquanto fica parada.
- Meio somador: um XOR e um AND que somam dois bits.
- Somador completo: dois meios somadores e um OR que somam dois bits e um transporte.
- Transporte: o 1 passado à coluna seguinte quando a soma de uma coluna é 2 ou mais, o "vai um".
- Atraso de porta: tempo que uma porta leva para mudar a saída depois que as entradas mudam. Também chamado de atraso de propagação.
- Somador em cascata: somadores completos encadeados de modo que cada transporte alimenta a coluna seguinte.
- Antecipação de transporte: método mais rápido que calcula os transportes em paralelo a partir dos sinais de geração (g) e propagação (p).
- Complemento de dois: a forma usual de guardar números negativos; menos B é cada bit de B invertido, mais 1.
- Multiplexador: circuito que passa uma entre várias entradas à saída, escolhida por bits de seleção.
- Decodificador: circuito que converte um número binário em um sinal por saída, como os sete segmentos de um dígito.
- Trava: laço de portas que guarda um bit enquanto houver alimentação.
- Biestável: circuito de memória que recebe a entrada apenas numa borda do relógio.
- ULA: unidade lógica e aritmética, a parte do processador que soma, subtrai e combina bits.
Fontes
- University of Victoria, CENG 465, Ripple Carry and Carry Lookahead Adders (meios-somadores e somadores completos, transporte em cascata, transporte antecipado, atrasos de porta). https://www.ece.uvic.ca/~fayez/courses/ceng465/lab_465/project1/adders.pdf (consultado em 17 de outubro de 2026)
- Google Patents, US 2,966,305, Gerald B. Rosenberger (IBM), Simultaneous carry adder (depositada em 16 de agosto de 1957). https://patents.google.com/patent/US2966305A/en (consultado em 17 de outubro de 2026)
- Doron Swade, Charles Babbage and Computational Method, The Rutherford Journal 3 (transporte sucessivo nas máquinas diferenciais, transporte antecipado na máquina analítica). https://www.rutherfordjournal.org/article030106.html (consultado em 17 de outubro de 2026)
- MIT Libraries, DSpace@MIT, Claude E. Shannon, A symbolic analysis of relay and switching circuits (dissertação de mestrado). https://dspace.mit.edu/handle/1721.1/11173 (consultado em 17 de outubro de 2026)
- Golomb, Berlekamp, Cover e outros, Claude Elwood Shannon (1916–2001), Notices of the AMS 49(1), 2002 (o artigo de 1938 e o Prêmio Alfred Noble), via Stanford ISL. https://isl.stanford.edu/~cover/papers/paper117.pdf (consultado em 17 de outubro de 2026)
- Computer History Museum, Timeline of Computer History: 1937 (somador de relés "Model K" de Stibitz, montado em sua mesa de cozinha). https://www.computerhistory.org/timeline/1937/ (consultado em 18 de outubro de 2026)
- Project Gutenberg, George Boole, An Investigation of the Laws of Thought (1854), texto completo. https://www.gutenberg.org/ebooks/15114 (consultado em 16 de outubro de 2026)
- Computer History Museum, 1947: Invention of the Point-Contact Transistor (Bardeen e Brattain, dezembro de 1947). https://www.computerhistory.org/siliconengine/invention-of-the-point-contact-transistor/ (consultado em 17 de outubro de 2026)
- The Nobel Prize, The Nobel Prize in Physics 1956. https://www.nobelprize.org/prizes/physics/1956/summary/ (consultado em 16 de outubro de 2026)
- University of Texas at Austin, J. A. Abraham, projeto VLSI, aula 3, Implementing Logic in CMOS (NAND e NOR CMOS, portas compostas, multiplexador de portas de transmissão). https://www.cerc.utexas.edu/~jaa/vlsi/lectures/3-2.pdf (consultado em 18 de outubro de 2026)
- Cornell University, ECE 4740, aula 14, Pass Transistors and Transmission Gates (AND com 6 transistores em CMOS estático, custo de XOR). https://cpb-us-w2.wpmucdn.com/sites.coecis.cornell.edu/dist/4/81/files/2019/06/4740_lecture14-pass-transistors.pdf (consultado em 18 de outubro de 2026)
- Computer History Museum, The Silicon Engine, 1963: Complementary MOS Circuit Configuration is Invented. https://www.computerhistory.org/siliconengine/complementary-mos-circuit-configuration-is-invented/ (consultado em 18 de outubro de 2026)
- Computer History Museum, The Silicon Engine, 1963: Standard Logic IC Families Introduced (série TI 7400 a partir de 1966). https://www.computerhistory.org/siliconengine/standard-logic-ic-families-introduced/ (consultado em 18 de outubro de 2026)
- Computer History Museum, The Silicon Engine, 1960: First Planar Integrated Circuit is Fabricated (biestável Micrologic, março de 1961). https://www.computerhistory.org/siliconengine/first-planar-integrated-circuit-is-fabricated/ (consultado em 18 de outubro de 2026)
- Computer History Museum, The Silicon Engine, 1965: "Moore's Law" Predicts the Future of Integrated Circuits. https://www.computerhistory.org/siliconengine/moores-law-predicts-the-future-of-integrated-circuits/ (consultado em 18 de outubro de 2026)
- Computer History Museum, The Silicon Engine, 1971: Microprocessor Integrates CPU Function onto a Single Chip (4004, 2300 transistores). https://www.computerhistory.org/siliconengine/microprocessor-integrates-cpu-function-onto-a-single-chip/ (consultado em 18 de outubro de 2026)
- Computer History Museum, Timeline of Computer History: 1941 (Z3, 2300 relés), 1944 (Harvard Mark 1, 3500 relés), 1956 (TX-0), 1968 (Apollo Guidance Computer), 1971 (4004, 2250 transistores). https://www.computerhistory.org/timeline/1944/ (consultado em 18 de outubro de 2026)
- The National Museum of Computing, Colossus (2500 válvulas, em operação em fevereiro de 1944). https://www.tnmoc.org/colossus (consultado em 18 de outubro de 2026)
- Penn Engineering, University of Pennsylvania, ENIAC (18 000 válvulas a vácuo, anunciado em fevereiro de 1946). https://www.seas.upenn.edu/about/history-heritage/eniac/ (consultado em 18 de outubro de 2026)
- Smithsonian National Air and Space Museum, Integrated Circuit, Dual 3 Input, Apollo Guidance Computer. https://airandspace.si.edu/collection-objects/integrated-circuit-dual-3-input-apollo-guidance-computer/nasm_A20170004000 (consultado em 18 de outubro de 2026)
- Texas Instruments, SN74HC00 folha de dados (atraso de propagação típico de 9 ns a 4,5 V). https://www.ti.com/lit/ds/symlink/sn74hc00.pdf (consultado em 18 de outubro de 2026)
- Texas Instruments, SN74LS00 folha de dados (atrasos típicos de 9 ns e 10 ns). https://www.ti.com/lit/ds/symlink/sn74ls00.pdf (consultado em 18 de outubro de 2026)
- Texas Instruments, SN74AC00 folha de dados (atrasos típicos de 6 ns e 4,5 ns a 5 V). https://www.ti.com/lit/ds/symlink/sn74ac00.pdf (consultado em 18 de outubro de 2026)
- Texas Instruments, páginas de produto de SN74LS283, SN74LS85, SN74LS47, SN74LS161A e SN7400. https://www.ti.com/product/SN74LS283 (consultado em 18 de outubro de 2026)
- Omron, G5V-1 folha de dados do relé (tempo de acionamento máximo de 5 ms). https://omronfs.omron.com/en_US/ecb/products/pdf/en-g5v_1.pdf (consultado em 18 de outubro de 2026)
- Apple Newsroom, Apple unleashes M1 (16 bilhões de transistores, 10 de novembro de 2020). https://www.apple.com/newsroom/2020/11/apple-unleashes-m1/ (consultado em 18 de outubro de 2026)
- NVIDIA Newsroom, NVIDIA Blackwell Platform Arrives to Power a New Era of Computing (208 bilhões de transistores, 18 de março de 2024). https://nvidianews.nvidia.com/news/nvidia-blackwell-platform-arrives-to-power-a-new-era-of-computing (consultado em 18 de outubro de 2026)
- Cálculos nesta página: os modelos de portas foram calculados para cada entrada de cada circuito combinacional e cada mudança entre duas entradas (por amostragem no somador de 8 bits). Maiores tempos de estabilização: propagação de 4 bits 9, de 8 bits 17 pelo comprimento do caminho (16 observados), antecipação 4, somador-subtrator 11, comparador 5, multiplexador 3, decodificador 3, ULA 13 atrasos de porta.
Texto e simulação: CC BY-NC-SA 4.0, salvo indicação em contrário.
Roteiro 8 de 8
Da turbina ao chip




