edubun
Português

O que uma CPU faz

Um processador de 3 GHz pulsa 3 bilhões de vezes por segundo, um pulso a cada terço de nanossegundo.

Imagine uma aula de informática. (Esta é uma cena inventada.) Dezesseis caixas numeradas estão desenhadas no quadro, cada uma com oito bits escritos dentro. Três alunos fazem o papel da CPU. Um segura um cartão marcado PC, outro um cartão marcado IR, outro um cartão marcado ACC. O cartão PC diz 0. O aluno do IR vai até a caixa 0 e copia o que está lá, 0001 1110, e o aluno do PC muda o cartão para 1. A turma procura os quatro primeiros bits numa tabela na parede: 0001 quer dizer LOAD. Os quatro últimos, 1110, são 14. Então a aluna do ACC vai até a caixa 14 e copia o 7 que encontra lá. Depois tudo recomeça a partir da caixa 1.

A caixa 1 diz ADD 15, então o ACC vira 7 + 5 = 12. A caixa 2 diz STORE 13, e a aluna do ACC escreve 12 na caixa 13. A caixa 3 diz HALT, e todos se sentam. Doze movimentos ao todo. Nenhum dos três precisou saber que o programa “soma 7 e 5”. Cada um seguiu uma regrinha. As caixas são a memória, os cartões são registradores e a tabela na parede é o decodificador. Uma CPU real funciona do mesmo jeito, bilhões de vezes por segundo, e ninguém lá dentro entende o programa também.

O mesmo laço curto, bilhões de vezes por segundo

As portas sabem somar, comparar e escolher, mas alguma coisa precisa dizer a elas o que fazer, em que ordem e com quais números. Esse é o trabalho da unidade central de processamento, a CPU. Ela repete um laço curto. O contador de programa (PC) guarda o endereço da próxima instrução. Busca: a CPU lê a célula para a qual o PC aponta e a coloca no registrador de instrução (IR), e avança o PC em um. Decodificação: circuitos de controle olham os bits do opcode e preparam os caminhos certos, por exemplo ligando o somador para ADD. Execução: o trabalho é feito. Um número é carregado, somado ou guardado, ou o PC é alterado para que o programa salte para outro lugar. Então o laço recomeça. Uma instrução, JZ, salta só quando o acumulador é zero, e esse único tipo de salto é o que permite a um programa decidir e repetir.

Carregando

Arraste para girar. Role ou faça pinça para dar zoom.

O programa nas células 0 a 3 soma 7 (célula 14) e 5 (célula 15) e guarda 12 na célula 13. Aperte Passo para avançar uma fase por vez e observe PC, IR e ACC. Quatro instruções levam doze fases. Depois escolha 4 × 3, que multiplica somando 4 três vezes com um laço, ou Contagem regressiva.

A cena roda o mesmo programa que a turma encenou. Aperte Passo e PC, IR e ACC mudam exatamente como os cartões mudaram: LOAD 14, depois ADD 15, STORE 13 e HALT, quatro instruções de três fases cada, doze fases ao todo. O programa de multiplicação usa as mesmas poucas instruções, mas seus JZ e JUMP mandam o PC de volta para 0 duas vezes antes que o contador na célula 15 chegue a zero, então ele roda 24 instruções em 72 fases. Seis vezes as instruções da soma.

O programa fica na mesma memória que os números

No quadro, as instruções e os números 7 e 5 estavam na mesma fileira de caixas. Isso não é por acaso. Em junho de 1945, John von Neumann escreveu o “First Draft of a Report on the EDVAC” (Primeiro rascunho de um relatório sobre o EDVAC), descrevendo um computador que guarda suas instruções na mesma memória que seus dados, e quase todos os computadores desde então funcionam assim. Uma instrução é só um número cujos bits são divididos em campos. Neste computador de brinquedo, cada célula guarda 8 bits. Os quatro primeiros dizem o que fazer, o opcode, e os quatro últimos dizem qual célula usar, o endereço. 0001 é LOAD, então 0001 1110 quer dizer “LOAD 14”: copie o número da célula 14 para o acumulador, o registrador de trabalho da CPU.

Com que velocidade o laço roda

Os passos seguem o ritmo de um sinal de clock, uma tensão que liga e desliga num ritmo constante. Um clock de 3 GHz pulsa 3 000 000 000 de vezes por segundo, então um pulso dura 1 ÷ 3 000 000 000 de segundo, cerca de 0.333 nanossegundo. A luz percorre só uns 10 centímetros nesse tempo. A uma fase por pulso, são pulsos suficientes para rodar o programa 7 + 5 do brinquedo 250 milhões de vezes por segundo. Processadores reais não terminam uma instrução inteira por pulso do jeito simples do nosso brinquedo. Eles sobrepõem as fases de várias instruções como numa linha de montagem, o que se chama pipeline, e os chips de hoje têm vários processadores completos, chamados núcleos, lado a lado. O brinquedo não tem nada disso, e é justamente por isso que dá para acompanhá-lo à mão.

OpcodeNomeO que faz
0000HALTParar
0001LOAD aACC = célula a
0010ADD aACC = ACC + célula a
0011SUB aACC = ACC − célula a
0100STORE acélula a = ACC
0101JUMP aPC = a
0110JZ ase ACC = 0, PC = a
Erros comuns
  • “O PC conta quantas instruções já rodaram.” O PC guarda o endereço da próxima instrução. No programa 4 × 3 ele é mandado de volta para 0 duas vezes, enquanto o número de instruções concluídas continua subindo até 24.
  • “A CPU lê um programa como nós lemos.” Ela lê 8 bits, divide-os em opcode e endereço e segue uma fiação fixa para aquele opcode. Como os alunos com os cartões, ela nunca sabe que o programa soma 7 e 5.
  • “Mais GHz sempre quer dizer um computador mais rápido.” O clock define com que frequência um passo pode acontecer, não quanto se faz em cada pulso. Chips reais sobrepõem fases de instruções e têm vários núcleos, então dois chips com os mesmos GHz podem fazer quantidades de trabalho bem diferentes.
Nota do professorEncene antes de mostrar a cena. Desenhe dezesseis caixas, distribua três cartões (PC, IR, ACC) e rode o programa 7 + 5 uma fase por vez, com a turma anunciando cada fase. O ponto em que os alunos se perdem é que o PC avança durante a busca, então, quando uma instrução é executada, o PC já aponta para a próxima. Pare depois da primeira busca e pergunte o que diz o PC. JUMP e JZ passam então a fazer sentido como “escreva um número novo no cartão do PC”. Quando a encenação funcionar, o botão Passo da cena vai parecer familiar.
  1. Ponha as fases do ciclo de instrução em ordem.
  2. A CPU busca a instrução no endereço 3. Quanto vale o PC logo depois da busca?
  3. No computador de brinquedo, o que quer dizer 0010 1111?
    • ADD 15
    • LOAD 15
    • STORE 2
    • ADD 7
  4. Escreva LOAD 14 em 8 bits.
  5. Um clock roda a 3 GHz. Quanto dura um pulso, em nanossegundos? (três casas decimais)
  6. Quantas instruções o programa 7 + 5 roda, contando o HALT?
  7. Cada instrução leva três fases. Quantas fases leva o programa 7 + 5?
  8. O que STORE 13 faz?
    • Copia o acumulador para a célula 13
    • Copia a célula 13 para o acumulador
    • Salta para o endereço 13
    • Soma 13 ao acumulador
  9. Qual instrução permite que um programa repita um laço até uma contagem chegar a zero?
    • JZ (salta se for zero)
    • STORE
    • HALT
    • LOAD
  10. Em que ano von Neumann escreveu o First Draft of a Report on the EDVAC?
Pontos-chave
  • Os programas são guardados como números na mesma memória que os dados (von Neumann, 1945).
  • A CPU repete busca, decodificação, execução; o PC aponta para a próxima instrução.
  • Os bits de uma instrução se dividem em opcode e endereço.
  • O clock dita o ritmo: 3 GHz é um pulso a cada 0.333 ns.
Fontes deste curso (9)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
  • Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
  • IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
  • IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
  • Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
  • Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
  • Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
  • abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
  • John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).

Data de verificação: 2026-10-17