Computador

Uma máquina com o programa na memória

Data
1948
Época
Época moderna
Etapa
V Era elétrica
Dificuldade

Prancha

Legenda
  1. 1Bastidores de válvulas de vácuo
  2. 2Tubo de memória catódico: um ponto por bit
  3. 3Painel de interruptores para introduzir dados
  4. 4Teleimpressora e fita perfurada
  5. 5Relé: um interruptor movido por um eletroíman
  6. 6Válvula de vácuo: a grelha comanda a corrente
  7. 7Transístor: o interruptor de semicondutor

Anatomia

BA5 mais 3 dá 8; em binário, 0101 mais 0011 dá 1000; transportes: c1 c2 c3
Fios a 5 V (1 lógico) e os LED que acendemBlocos de portas: XOR, E e OU, cinco por colunaFios de ligação a 0 V (0 lógico)Interruptores: A atrás, B à frente, o bit que vale 8 à esquerdaNos interruptores marcam-se dois números de quatro bits, A na fila de trás e B na da frente, com o bit que vale 8 à esquerda e o que vale 1 à direita, como no papel. Cada coluna por baixo é um somador completo de cinco portas. Uma XOR e uma E comparam os dois bits da coluna; uma segunda XOR soma o transporte que vem da direita e dá o bit de soma; uma segunda E e uma OU formam o transporte para a coluna seguinte. A coluna da direita recebe o transporte do barramento de 0 V, e a da esquerda envia o seu ao quinto LED. Na placa de ensaio da prancha, estas 20 portas vêm quatro a quatro em cinco circuitos: dois 74HC86, dois 74HC08 e um 74HC32. A figura desenha cada porta à parte para se poder seguir a ligação dos fios, e deixa de fora a alimentação dos circuitos e as resistências de 10 kΩ que mantêm cada entrada a 0 V com a alavanca em baixo. A 5 V, uma XOR responde em 11 ns, uma E em 7 ns e uma OU em 6 ns (valores típicos): cada coluna acrescenta 13 ns ao percurso do transporte, e neste modelo a mudança de entradas mais lenta estabiliza ao fim de 52 ns; a ligação dos fios, a alimentação e a temperatura deslocam estes valores. A figura mostra cada nanossegundo em 40 ms, e assim vê-se o transporte passar de coluna em coluna. Pelo caminho, um LED de soma pode acender e apagar antes de ficar estável, e a leitura, que lê os LED, passa por somas erradas. Os somadores reais fazem o mesmo: num computador, o resultado é captado num flanco do relógio marcado para depois de estabilizar.

Um computador é uma máquina de calcular programável; o modelo atual guarda o programa na sua própria memória e calcula em binário, com interruptores que só estão ligados ou desligados. O primeiro a executar um programa a partir de uma memória eletrónica foi o «Baby» de Manchester, a 21 de junho de 1948, e telemóveis e portáteis seguem ainda o seu esquema.

O que é

Um computador executa um programa, uma lista de instruções, sobre dados. No esquema de programa armazenado aqui descrito, o programa está na mesma memória que os números com que trabalha, por isso a máquina pode carregar um novo, alterá-lo ou escrever outro sem ser reconstruída. Esta ideia distingue o computador de programa armazenado das máquinas programáveis anteriores, que recebiam as instruções de fitas, cartões, fichas ou comutadores.

Os computadores atuais trabalham em binário, só com os algarismos 0 e 1, porque dois estados são fáceis de tornar fiáveis: um interruptor está aberto ou fechado. O ENIAC e algumas outras máquinas antigas ainda contavam em decimal. Para uma sociedade que reconstrói as suas ferramentas, faz cálculos, controla máquinas como bombas e redes elétricas e transmite mensagens.

Como funciona

Os números binários. O binário é um sistema posicional como os nossos algarismos decimais, mas cada posição vale o dobro da que está à sua direita: 1, 2, 4, 8, 16. Treze é 8 + 4 + 1 e escreve-se 1101. Oito algarismos binários, ou bits, chegam para todos os inteiros de 0 a 255.

Dois circuitos com pilha e lâmpada: dois botões de pressão em série à esquerda e dois em paralelo à direita Em série, a lâmpada só acende se os dois botões forem premidos; em paralelo, basta um.

As portas lógicas. Dois interruptores em série só acendem uma lâmpada se ambos estiverem fechados: é uma porta E. Em paralelo, basta qualquer um: uma porta OU. Um relé cujo contacto abre quando a bobina recebe corrente forma uma porta NÃO, que transforma 1 em 0. O relé é movido por um eletroíman, a válvula de vácuo pela tensão na sua grelha, o transístor pelo sinal na base ou na porta. Com E, OU e NÃO pode exprimir-se qualquer regra que leve de bits de entrada a bits de saída.

Somar com portas. Em binário, 1 + 1 dá 10: soma 0, transporte 1. O bit de soma vale 1 quando exatamente uma entrada vale 1, uma regra chamada OU exclusivo (XOR); o transporte só vale 1 se ambas valerem 1, o que é um E. Juntas formam um semissomador. Um somador completo recebe ainda o transporte da coluna da direita, e oito em cadeia somam dois números de 8 bits, coluna a coluna, como um aluno no caderno.

A memória. Duas portas NÃO-OU (um OU seguido de um NÃO), em que cada saída alimenta uma entrada da outra, formam uma báscula: um impulso numa das entradas livres põe-na a 1, um impulso na outra repõe-na a 0, e ela guarda esse bit enquanto houver corrente. Manchester guardava os bits como pontos carregados num tubo catódico, o EDSAC como impulsos sonoros em tubos de mercúrio. Cada palavra, um grupo de bits, tem um número, o seu endereço.

O ciclo. Um registo, o contador de programa, contém o endereço da instrução seguinte. O processador vai buscá-la, descodifica-a, executa-a e recomeça. Uma instrução pode somar um número da memória ao acumulador, guardar um resultado ou saltar para outro sítio se um valor for negativo; esse salto condicional permite ao programa repetir e escolher. Teclados e sensores trazem os dados; ecrãs, impressoras e motores levam os resultados.

Como construir

Um processador moderno exige uma fábrica de chips, mas a sua lógica aprende-se em cima de uma mesa.

Uma placa de ensaio com dois interruptores deslizantes, cada um a acender um LED através de uma resistência, alimentada por um suporte de pilhas Experimente primeiro cada interruptor com o seu LED; um LED precisa sempre de uma resistência em série.

Reunir o material. Uma placa de ensaio sem soldadura, duas ou três pilhas AA num suporte (3 a 4,5 V) ou uma fonte USB de 5 V, dois comutadores de dois polos, dois LED, duas resistências de 330 a 470 ohms e fio. Cada LED monta-se com a perna comprida (ânodo) do lado do comutador e a curta (cátodo) nos 0 V. Escreva primeiro a tabela de verdade: para as entradas A B = 00, 01, 10, 11, a soma é 0, 1, 1, 0 e o transporte 0, 0, 0, 1.

Ligar o transporte. Leve a alimentação ao comum do primeiro polo de A, o seu contacto «ligado» ao comum do primeiro polo de B, e esse contacto «ligado» a um LED através de uma resistência; a outra perna do LED volta aos 0 V. Só acende com 11: é o E.

Ligar a soma. Nos segundos polos, ligue o contacto «ligado» de A ao contacto «desligado» de B, e o «desligado» de A ao «ligado» de B. Alimente o comum de A e leve o comum de B ao segundo LED através de uma resistência, com o cátodo nos 0 V. Acende quando os comutadores estão em posições diferentes: é o XOR. Confira os quatro casos com a tabela.

Encadear um somador maior. Um somador completo são dois semissomadores e uma porta OU que junta os seus transportes. A partir daqui, os circuitos lógicos integrados são mais práticos: um somador de 4 bits precisa de dois 74HC86 (XOR), dois 74HC08 (E) e um 74HC32 (OU). Alimente-os como indica a folha de dados (pino 14 ao positivo, pino 7 aos 0 V, um condensador de 100 nF entre os dois). Cada transporte de saída entra na coluna seguinte e o primeiro transporte de entrada vai aos 0 V; cada entrada de comutador leva uma resistência de 10 quilo-ohms para os 0 V, e cada LED de saída uma de 1 quilo-ohm.

Pôr um computador a funcionar em papel. Desenhe oito casas de memória numeradas, um acumulador e um contador de programa a 0. Escreva CARREGA 5 na casa 0, SOMA 6 na 1, GUARDA 7 na 2, PARA na 3, e depois 3 na casa 5 e 4 na 6. Faça de processador: leia a casa indicada pelo contador, execute-a, some um ao contador. A casa 7 acaba por conter 7. Codifique agora cada instrução com dois algarismos, primeiro a operação e depois o endereço, com CARREGA 1, SOMA 2, GUARDA 3 e PARA 0: o programa passa a ser 15, 26, 37, 00, números no meio dos dados.

Segurança. Só pilhas ou uma fonte USB de 5 V, nunca a corrente da rede. Cada LED precisa da sua resistência. Uma pilha ou uma bateria externa em curto-circuito pode aquecer os fios ao ponto de queimar. Desligue a alimentação antes de mudar as ligações. A saída de um chip não consegue alimentar a bobina de um relé: comande-a através de um transístor adequado à sua corrente e coloque um díodo em paralelo com a bobina, com a ponta marcada por uma risca (o cátodo) virada para o positivo, para absorver o pico de tensão quando desliga.

História e evolução

Esboço simplificado da peça de demonstração em latão da máquina diferencial de Babbage: colunas de rodas entre pilares Esboço simplificado da parte da sua primeira máquina diferencial, um sétimo, que Babbage mandou montar em 1832; ainda funciona.

A máquina analítica de Charles Babbage, concebida em 1834, tinha um armazém, um moinho para o cálculo e um programa em cartões perfurados; nunca foi construída. Ada Lovelace publicou em 1843 uma sequência de operações para ela. As tabuladoras elétricas de cartões de Herman Hollerith apuraram o recenseamento dos Estados Unidos de 1890.

Em 1936, Alan Turing descreveu uma máquina universal que lê as instruções na mesma fita que os dados. Konrad Zuse apresentou em Berlim o seu Z3 de relés a 12 de maio de 1941. Desde fevereiro de 1944, o Colossus eletrónico de Tommy Flowers ajudou a quebrar a cifra alemã Lorenz em Bletchley Park; manteve-se secreto até aos anos 1970. O ENIAC de J. Presper Eckert e John Mauchly, em Filadélfia, apresentado em 1946, era de uso geral, mas programava-se mudando cabos de sítio. Cada um pode reclamar o primeiro lugar, conforme se exija eletrónica, uso geral ou programa armazenado.

O relatório de John von Neumann sobre o EDVAC, de 1945, nascido do trabalho com Eckert, Mauchly e outros, descrevia uma máquina que guardava programa e dados numa só memória. A primeira a funcionar foi o «Baby» de Manchester, de Frederic Williams, Tom Kilburn e Geoff Tootill, a 21 de junho de 1948. O EDSAC de Maurice Wilkes, em Cambridge, seguiu-se a 6 de maio de 1949 e depressa serviu os seus utilizadores.

Manchester pôs a funcionar um computador de transístores em novembro de 1953. Os circuitos integrados, fabricados pela primeira vez em 1958, entraram nos computadores nos anos 1960 e, em 1971, o 4004 da Intel colocou um processador inteiro num só chip.


Escreva um nome, uma data, um material, um domínio…