Apresentação

No artigo anterior, Números Binários, vimos como o computador escreve números, letras e cores usando só zeros e uns. Ficaram duas perguntas: quem faz as contas com esses zeros e uns? E onde tudo isso fica guardado?

Este artigo responde às duas, passando pelas partes principais que todo computador tem, do mais potente ao mais simples.

É um artigo longo. As partes chamadas “Para ir além” são opcionais e mostram os detalhes por dentro de cada peça. Dá para pular todas elas sem perder o fio da explicação.

As partes do computador

Todo computador tem as mesmas partes principais. No centro fica a CPU, o processador. Ligadas a ela ficam quatro partes: a entrada, a memória, o armazenamento e a saída.

Ilustração que mostra as partes principais de um computador e como elas estão ligadas à CPU, que é a unidade central de processamento. No centro, há um círculo laranja com a palavra CPU e uma imagem de um chip de processador. Mais detalhes na descrição completa a seguir.

Descrição detalhada: na imagem, quatro partes do computador estão ligadas à CPU (Unidade Central de Processamento). São elas:

  1. Entrada: representada por um teclado, no canto superior esquerdo.
  2. Memória: representada por pentes de memória RAM, no canto inferior esquerdo.
  3. Saída: representada por um monitor, no canto superior direito.
  4. Armazenamento: representado por um disco rígido, no canto inferior direito.

Cada parte está ligada à CPU por uma linha colorida, indicando a conexão entre elas.

Quando você usa o computador, a informação faz sempre um caminho parecido:

  1. Entra por um dispositivo de entrada, como o teclado.
  2. É processada pela CPU, que faz as contas e toma as decisões.
  3. Fica guardada: na memória, enquanto está sendo usada, ou no armazenamento, para ficar salva mesmo com o computador desligado.
  4. Sai por um dispositivo de saída, como a tela.

Isso acontece toda vez que você assiste a um vídeo, escreve um texto, joga ou acessa a internet. O artigo segue essa mesma ordem de peças: primeiro a CPU, depois a memória, o armazenamento e, por fim, a entrada e a saída.

Hardware e software

Para um computador funcionar, ele precisa de duas coisas: hardware e software.

O hardware é a parte física, que dá para tocar: o teclado, o mouse, a tela, o processador, a memória, o disco.

O software é a parte que não dá para tocar: os programas. O Windows, o Word, o Google Chrome, os jogos e os aplicativos são exemplos de software. Essa diferença volta no fim do artigo.

Uma imagem dividida na vertical, cortada no meio de cima para baixo, mostrando a diferença entre hardware à esquerda, com ilustrações de um computador, monitor, teclado, mouse e disco rígido e do Software que está à direita, com ícones que representam programas como Photoshop, Android e computação em nuvem.
Comparação entre hardware e software.

CPU: Unidade Central de Processamento

Uma pessoa usando luvas azuis segurando um microprocessador dourado com pinos visíveis, contra um fundo desfocado de componentes de placa-mãe iluminados em tons de roxo e laranja.

CPU é a sigla em inglês para Unidade Central de Processamento. Ela também é chamada de processador ou microprocessador. É o chip que executa as instruções dos programas, e por isso muita gente diz que ela é o “cérebro” do computador.

Dá para imaginar a CPU como uma calculadora muito rápida. Mas ela não faz só contas: também leva informações de um lugar para outro dentro do computador e controla as outras peças.

Dentro da CPU existem duas partes principais:

  • a ULA (Unidade Lógica e Aritmética), que faz as contas;
  • a Unidade de Controle (UC), que organiza tudo e diz a cada parte o que fazer.

A ULA: onde as contas acontecem

A ULA faz três tipos de trabalho:

  • Contas: somar, subtrair, multiplicar e dividir. Se o programa pede 2 + 3, a ULA responde 5.
  • Comparações: descobrir se um número é maior, menor ou igual a outro. Se o programa pergunta se 4 é maior que 2, a ULA responde que sim.
  • Operações lógicas: com verdadeiro e falso, que os programas usam para tomar decisões.

Nada disso é mágica. Lembra das portas lógicas, do artigo Circuitos Lógicos? A ULA é feita delas: muitas portas encaixadas, que somam, comparam e decidem com zeros e uns.

As instruções também são 0 e 1

As ordens que a CPU executa, como “some estes dois números”, também são sequências de 0 e 1. Esse conjunto de instruções se chama linguagem de máquina.

Ninguém escreve um programa direto em 0 e 1. Quem cria um programa usa uma linguagem de programação, mais fácil para pessoas, e um programa chamado compilador (ou interpretador) traduz tudo para a linguagem de máquina.

A Unidade de Controle: o maestro

Dentro do computador, dados e instruções são sequências de 0 e 1, e ficam guardados juntos, na mesma memória. Então, como a CPU sabe o que é dado e o que é instrução, sem se confundir? É aí que entra a Unidade de Controle.

Pense em uma orquestra. Violinos, piano e flauta precisam começar e parar na hora certa, e quem organiza isso é o maestro. Ele não toca nenhum instrumento, mas mostra o momento de cada um entrar. No computador, a Unidade de Controle faz o papel do maestro. Ela:

  • Busca a próxima instrução na memória.
  • Decodifica a instrução, ou seja, lê e entende o que deve ser feito. Se a instrução for “somar dois números”, ela avisa a ULA.
  • Coordena cada parte para trabalhar no momento certo, no ritmo do clock.

Voltando à pergunta do começo: por fora, dado e instrução são iguais, porque os dois são sequências de 0 e 1. A diferença está no uso.

A Unidade de Controle anota em que posição da memória está a próxima instrução. Essa anotação fica em um contador, chamado contador de programa. O que ela busca nessa posição, ela trata como instrução. Já os dados são os números com que a instrução manda trabalhar.

O clock: o ritmo da CPU

O clock é o relógio interno da CPU. Ele não é como um relógio de parede: começa em um cristal minúsculo que vibra milhões de vezes por segundo (isso se mede em megahertz) e manda sinais elétricos. Cada sinal é como uma batida de tambor que marca o ritmo.

Milhões ainda é pouco para um processador. Por isso, um circuito do próprio processador multiplica esse ritmo até chegar a bilhões de batidas por segundo (isso se mede em gigahertz). A cada batida, a Unidade de Controle dá uma ordem, como:

  • “ULA, é hora de somar!”
  • “Memória, guarde esse resultado!”

Quando alguém diz que um “processador é de 3 GHz”, isso quer dizer que o clock dele faz 3 bilhões de batidas por segundo. Um clock mais rápido permite executar mais instruções em menos tempo.

Mas o clock não é a única coisa que importa. A própria Intel avisa que muitos outros fatores entram nessa conta e que, para comparar processadores pelo clock, o ideal é comparar modelos da mesma marca e da mesma geração.

Exemplo: 5 + 3 por dentro da CPU

Vamos ver a CPU trabalhando em uma conta simples:

  1. O pedido. Você pede a soma 5 + 3. O programa que faz a conta já está em linguagem de máquina, e os números também viram 0 e 1: o 5 é 0 0 0 0 0 1 0 1 e o 3 é 0 0 0 0 0 0 1 1, como vimos em Números Binários.
  2. A Unidade de Controle entra em ação. Ela busca a instrução na memória, decodifica e vê que é uma soma. Então manda a ULA somar os dois números.
  3. A ULA faz a conta. O resultado é 0 0 0 0 1 0 0 0.
  4. O resultado aparece. Em decimal, ele é o número 8. O programa transforma esse número em algo que a gente lê, e a tela mostra “8”.
Fluxograma de uma soma por dentro do computador. Primeiro, o pedido: somar 5 com 3. Depois, os números em 0 e 1: 5 é 0 0 0 0 0 1 0 1 e 3 é 0 0 0 0 0 0 1 1. Em seguida, dentro da CPU, a Unidade de Controle lê a instrução e vê que é uma soma, e a ULA faz a conta 0 0 0 0 0 1 0 1 mais 0 0 0 0 0 0 1 1. O resultado é 0 0 0 0 1 0 0 0, e a tela mostra 8.
A soma 5 + 3 por dentro do computador.

Tudo isso acontece em uma fração minúscula de segundo.

Exemplo: abrindo um jogo

Abrir um jogo leva bem menos de um segundo para começar. Aqui vamos explicar devagar, passo por passo:

  1. Você clica no ícone do jogo. O sistema operacional (Windows, Linux, macOS ou Android, no celular) entende que você quer abrir o jogo e transforma esse clique em instruções que a CPU consegue executar.
  2. A Unidade de Controle começa a trabalhar. Ela lê a primeira instrução: algo como “pegue o jogo que está no HD ou SSD e coloque na memória”.
  3. O jogo é carregado na memória. Depois disso, a Unidade de Controle vai lendo as instruções do jogo, uma por uma. Algumas dizem, por exemplo, “mostre a tela inicial”, “toque a música de fundo” e “mostre o personagem na posição inicial”.
  4. A ULA faz as contas. Quando você aperta a seta para a direita, o jogo precisa somar 1 à posição do personagem para ele andar. A Unidade de Controle manda a ULA fazer essa conta. Um circuito chamado MUX escolhe quais números vão para a ULA (ele aparece no “Para ir além” desta seção).
  5. Tudo acontece no ritmo do clock. Cada batida é um passo:
    • na 1ª batida, a Unidade de Controle busca a próxima instrução;
    • na 2ª, ela entende o que precisa ser feito;
    • na 3ª, a ULA faz a conta ou outra peça entra em ação;
    • na 4ª, o resultado vai para a memória ou para a tela.
  6. O jogo aparece na tela. Esse ciclo se repete bilhões de vezes por segundo. Por isso você só vê o jogo funcionando, com imagem, som e personagens se movendo.
Fluxograma da abertura de um jogo. Primeiro, a pessoa clica no ícone do jogo. Depois, o sistema operacional transforma o clique em instruções, que vão para a CPU. Dentro da CPU há três caixas: UC, que organiza, ULA, que faz contas, e MUX, que escolhe dados. À esquerda, o jogo sai do disco (HD ou SSD) e vai para a memória RAM, e a CPU lê as instruções na memória. Por fim, o jogo aparece na tela.
Caminho dos dados e das ordens na abertura de um jogo.

Curiosidade: von Neumann e o Intel 4004

Guardar dados e instruções juntos, na mesma memória, é uma ideia descrita em 1945 pelo matemático John von Neumann. Por isso, esse jeito de organizar o computador se chama arquitetura de von Neumann. Os computadores que usamos hoje seguem essa ideia.

E por que a CPU também se chama microprocessador? Porque todas as partes dela cabem em um único chip, bem pequeno. Antes, essas funções ficavam espalhadas em vários chips. Em 1971, o Intel 4004 juntou tudo em um chip só.

Para ir além: o MUX, um seletor feito de portas lógicas

O multiplexador, ou MUX, é um circuito que escolhe qual dado vai passar adiante. Ele funciona como um guarda de trânsito: deixa passar só uma informação por vez.

  • Entradas de dados: o MUX recebe vários dados, chamados de x0, x1, x2 e assim por diante.
  • Sinais de seleção: são como os botões de um controle remoto. Têm nomes como S0 e S1 e, lidos juntos, formam um número em binário que diz qual entrada foi escolhida. Com o código 0 0, passa a entrada x0; com 0 1, a x1; com 1 0, a x2; com 1 1, a x3.
  • Saída: é por onde sai o dado escolhido, chamada de Y.
Desenho de um multiplexador, o MUX, em forma de trapézio. Do lado esquerdo entram quatro dados: x0, x1, x2 e x3. Por baixo entram os dois sinais de seleção, S1 e S0. Do lado direito sai uma única saída, Y. Ao lado, uma tabela mostra o que cada código de S1 e S0 escolhe: 0 0 escolhe x0, 0 1 escolhe x1, 1 0 escolhe x2 e 1 1 escolhe x3.
Um multiplexador (MUX) com quatro entradas e dois sinais de seleção.

Por dentro, o MUX é feito das portas lógicas de Circuitos Lógicos. Cada entrada tem o seu caminho de portas, e os sinais de seleção deixam só um desses caminhos ativo. No final, uma porta OU junta os caminhos e manda adiante o único dado que passou.

A ULA usa MUX para escolher qual operação vai fazer (somar, subtrair, comparar) e quais números vão entrar na conta.

Memória

Uma mão segura um módulo (pente) de memória RAM. O módulo é uma placa retangular verde e comprida, com oito chips pretos lado a lado, em uma única fileira. Na borda de baixo, há uma série de contatos dourados que se encaixam na placa-mãe do computador. O fundo da imagem é escuro.
Módulo (pente) de memória RAM.

Você já deve ter visto anúncios assim:

“Computador com 500 GB de armazenamento e 8 GB de memória RAM!”

E talvez tenha pensado: não é tudo memória? Por que dois nomes diferentes?

Bancada e armário

O computador tem dois tipos de lugar para guardar dados:

  • Memória de trabalho: guarda o que está sendo usado agora. É rápida, mas volátil: perde tudo quando o computador desliga. A memória RAM e a cache são desse tipo.
  • Armazenamento: guarda os dados mesmo sem energia. Por isso é chamado de não volátil. O HD, o SSD e a memória dos pendrives e cartões de memória são desse tipo.

Pense em uma cozinha. Para preparar uma refeição, você usa uma bancada, e guarda os utensílios em um armário.

Conforme precisa, você pega a tábua e a faca no armário e coloca na bancada. A bancada é a memória de trabalho: se for pequena, cabem poucas coisas ao mesmo tempo, e isso limita o que você consegue fazer de uma vez. Se for grande, dá para preparar várias partes da refeição juntas.

O armário é o armazenamento: guarda tudo o que você tem, mesmo o que não está usando agora. Pode ser pequeno, médio ou bem grande, dependendo do quanto você precisa guardar.

Por isso, ao comprar um computador, vale olhar as duas coisas. Quanto mais memória RAM (a bancada), mais coisas você consegue fazer ao mesmo tempo sem travar. Quanto maior o HD ou SSD (o armário), mais arquivos você pode guardar.

E por que os dois são medidos em gigabytes? Porque os dois guardam dados, e dado se mede em bytes.

Só que a RAM é vendida em potências de 2: o que o anúncio chama de 8 GB são, na verdade, 8 GiB, ou seja, cerca de 8,6 bilhões de bytes. Já o disco usa a conta de 1.000. Essa diferença está explicada no artigo Números Binários.

Memória RAM

A RAM (sigla em inglês para “memória de acesso aleatório”) é a bancada do computador. É nela que ficam os programas abertos e os dados que eles estão usando, e é dela que a CPU busca as instruções.

E o “acesso aleatório” do nome? Quer dizer que a CPU pode ir direto a qualquer posição da RAM, sem passar pelas anteriores, como seria preciso em uma fita cassete.

A célula: portinha e baldinho

A RAM é feita de silício, com transistores, e a RAM usada como memória principal tem também capacitores, peças que guardam carga elétrica. Esse tipo de RAM se chama DRAM (RAM dinâmica).

Desenho de um pente de memória RAM visto de frente, com rótulos. É uma placa verde e comprida, chamada placa de circuito impresso, com oito chips de memória pretos em fileira. Na borda de baixo ficam os contatos elétricos dourados, que encaixam na placa-mãe.
Partes principais de um pente de memória RAM.

Dentro dos chips, cada célula de memória tem duas peças:

  • um transistor, que funciona como uma portinha. É o mesmo interruptor do artigo Física dos Computadores. Ele controla quando dá para mexer no que está guardado;
  • um capacitor, que funciona como um baldinho. Cheio de carga, ele guarda um 1. Vazio, guarda um 0.

Cada célula guarda um único bit. Juntando bilhões de células, temos a memória RAM.

Esquema de uma célula de memória RAM do tipo DRAM: 1 transistor mais 1 capacitor é igual a 1 bit, que pode ser 0 ou 1. À esquerda, o símbolo do transistor, a portinha, que controla o acesso. No meio, o símbolo do capacitor, duas placas paralelas, o baldinho, que guarda a carga. À direita, o resultado: 1 bit, 0 ou 1.
Uma célula de memória: um transistor e um capacitor guardam 1 bit.

Endereços: como na reglete

O computador não dá um endereço para cada bit sozinho. Ele junta as células de 8 em 8, formando um byte, e cada byte recebe um número único: o endereço. É como o número da casa onde ele mora. A CPU usa esse número para saber onde buscar ou guardar cada informação.

Para quem conhece o Braille, dá para comparar com a reglete, a régua usada para escrever em Braille. Cada quadradinho da reglete é uma cela, e cada cela guarda uma letra. Para escrever uma palavra, você usa uma cela para cada letra.

Só não confunda a cela com a célula de memória, que guarda um bit só. Na comparação, a cela faz o papel do byte: guarda uma letra e ocupa uma posição.

Imagine uma reglete com 4 linhas e 24 colunas, ou seja, 96 celas. A palavra “casa” ocupa 4 celas seguidas na primeira linha, e cada letra fica em uma posição exata. Essa posição é o endereço da letra.

Para simplificar, o desenho abaixo mostra a palavra do jeito que ela é lida, da esquerda para a direita. Na reglete de verdade, a escrita é feita da direita para a esquerda, e a folha é virada para a leitura.

Grade que representa uma reglete com 4 linhas e 24 colunas, ou seja, 96 celas. Na primeira linha, as quatro primeiras celas estão destacadas e trazem as letras da palavra casa, uma em cada coluna, da coluna 1 à coluna 4. Embaixo, a frase: a posição de cada letra é o endereço dela.
Cada cela da reglete tem uma posição: o endereço.

Na memória do computador é igual, só que o endereço é um número, e não uma linha e uma coluna:

Uma fileira de seis caixinhas, cada uma com 1 byte. As quatro primeiras guardam as letras c, a, s e a, e as duas últimas estão vazias. Embaixo de cada caixinha está o endereço dela, de 2000 a 2005. Uma chave mostra que a palavra casa ocupa 4 bytes seguidos, do endereço 2000 ao 2003. Ao lado, uma caixa diz que a CPU usa o número do endereço para guardar e buscar os dados.
Cada byte da memória tem um endereço.

Guardar e ler

Para guardar um valor, o computador abre a portinha da célula. Se for para guardar um 1, ele enche o baldinho de carga. Se for para guardar um 0, ele esvazia o baldinho.

Dois quadros lado a lado. No primeiro, guardar o 1: a portinha está aberta e uma seta mostra a energia entrando no balde, que fica cheio. No segundo, guardar o 0: a portinha também está aberta e uma seta mostra a energia saindo do balde, que fica vazio.
Guardando um 1 e um 0 na memória RAM.

Para ler, ele abre a portinha de novo e verifica se o baldinho tem carga. Como essa carga é muito fraquinha, um circuito especial aumenta o sinal antes de o computador decidir se é 0 ou 1 (os detalhes estão no “Para ir além” desta seção).

Refresh: o baldinho vaza

O capacitor não é uma bateria. Com o tempo, o baldinho vai perdendo a carga sozinho, mesmo que ninguém mexa nele.

Por isso, a própria memória recarrega os baldinhos de tempos em tempos, para que a informação não desapareça. Esse processo se chama refresh (atualização).

Ilustração sobre o refresh da memória RAM. Uma torneira preenche os baldes de forma cíclica para recarregar os dados.
Refresh da memória RAM.

É por isso que a RAM é volátil: quando o computador desliga, não há mais energia para o refresh, os baldinhos se esvaziam e os dados se perdem.

Para ir além: a RAM por dentro

Esta parte mostra como a memória acha a célula certa, prepara o caminho e lê o sinal fraquinho.

Linhas de palavra e de bit. As células ficam organizadas em uma grade, com fileiras e colunas. Duas “linhas” elétricas fazem o acesso:

  • a linha de palavra passa por uma fileira inteira e abre todas as portinhas daquela fileira;
  • a linha de bit (em inglês, bit line) é o corredor por onde o dado entra ou sai de uma coluna.
Grade de células com 3 fileiras e 4 colunas, cada célula com uma portinha. Na fileira do meio, todas as portinhas estão abertas, e uma linha laranja passa por ela: é a linha de palavra, que abre as portinhas da fileira. Uma linha azul desce pela grade entre a terceira e a quarta coluna: é a linha de bit, o corredor por onde o dado entra ou sai. A célula da fileira do meio, na terceira coluna, tem contorno verde: é a célula acessada.
Linha de palavra e linha de bit.

A célula acessada é a que fica no cruzamento das duas. O endereço chega a um circuito chamado decodificador, que escolhe qual linha de palavra ativar.

Esquema de acesso a uma célula da RAM. Um endereço entra no decodificador de linha. O decodificador ativa uma das linhas de palavra, desenhada em laranja, que atravessa uma grade de linhas. Uma linha de bit, em azul, desce pela grade e cruza a linha de palavra ativada em uma célula com contorno verde. Embaixo da linha de bit, uma seta de duas pontas indica que o dado entra ou sai. Ao lado, os passos: primeiro, o endereço chega ao decodificador; depois, ele ativa uma linha de palavra; por fim, a linha de bit leva o dado.
Acesso a uma célula de memória RAM.

Pré-carga. Antes de cada leitura ou escrita, um circuito de pré-carga deixa a linha de bit pronta e estável, como quem varre o corredor antes de alguém passar. Sem isso, os dados poderiam ser lidos ou gravados errado.

Esquema da pré-carga. No alto, uma caixa chamada circuito de pré-carga. Dela desce a linha de bit, em azul, ligada a três células com a portinha fechada. À esquerda, os passos: primeiro, a pré-carga deixa a linha de bit pronta e estável; só depois uma portinha se abre para ler ou escrever.
Pré-carga da linha de bit.

Leitura e amplificador. Na leitura, a portinha se abre e a carga do baldinho, ou a falta dela, passa para a linha de bit. Esse sinal é tão fraco que seria difícil saber se é 0 ou 1.

Esquema da leitura. Um balde cheio está ligado a uma portinha aberta, e a portinha está ligada à linha de bit, em azul. Da linha de bit sai uma onda pequena, o sinal fraco, com uma seta para a pergunta: 0 ou 1? Embaixo, os passos: primeiro, a portinha se abre; depois, a energia do balde, ou a falta dela, passa para a linha de bit; e esse sinal é muito fraquinho.
Leitura de dados na memória RAM.

Por isso existe o amplificador de leitura (em inglês, sense amplifier). Ele funciona como um megafone: pega o sinal fraquinho e deixa ele forte e claro, para o computador saber com certeza se o valor é 0 ou 1.

Esquema do amplificador de leitura, que funciona como um megafone. À esquerda, uma onda pequena, o sinal fraco, entra em um triângulo amarelo com a palavra amplifica. Do outro lado sai uma onda grande, o sinal forte, com uma seta para 0 ou 1. Embaixo, a frase: o amplificador pega o sinal fraquinho que veio do balde e deixa ele forte, para o computador saber se é 0 ou 1.
Amplificador de leitura.

Juntando tudo, a RAM por dentro fica assim:

Esquema da RAM por dentro. Três linhas de bit azuis descem na vertical. No alto de cada uma há uma caixa de pré-carga e, embaixo, um triângulo verde, o amplificador de leitura. Duas linhas de palavra laranja cruzam na horizontal. Perto de cada cruzamento há uma célula com uma portinha e um baldinho, alguns cheios e outros vazios. Embaixo, a frase: cada célula tem uma portinha (transistor) e um baldinho (capacitor).
A memória RAM por dentro.

Palavra de memória. A CPU não lê um byte de cada vez. Ela lê ou grava um grupo de bytes de uma vez, por exemplo 4, chamado palavra de memória. E, mesmo assim, a memória é mais lenta que o processador, que às vezes precisa esperar a resposta.

Desenho de duas células de memória, cada uma com uma portinha e um baldinho. Na primeira, o balde está cheio e vale 1. Na segunda, o balde está vazio e vale 0. Ao lado, o texto: cada célula guarda 1 bit, 8 células formam 1 byte, e cada byte tem um endereço. Embaixo, uma palavra de memória de exemplo, com 4 bytes (32 bits) lado a lado, segue com uma seta para o processador. No fim, a nota: a RAM é mais lenta que o processador, e às vezes ele precisa esperar a memória responder.
Da célula à palavra de memória.

Variáveis e endereços. Quem programa dá nomes aos dados, como “a”, “q”, “y” ou “m”. Esses nomes se chamam variáveis. O computador guarda o valor de cada variável em um endereço da memória.

Se cada variável ocupa 4 bytes, os endereços pulam de 4 em 4: “a” no 1000, “q” no 1004, “y” no 1008 e “m” no 1012. A pessoa programadora usa os nomes, e o computador usa os números.

Tabela com os nomes das variáveis e seus endereços: a no endereço 1000, q no 1004, y no 1008 e m no 1012. Uma seta leva a um desenho da memória, em que cada variável ocupa 4 bytes: a vai do 1000 ao 1003, q do 1004 ao 1007, y do 1008 ao 1011 e m do 1012 ao 1015. Embaixo, a nota: os endereços pulam de 4 em 4 porque, neste exemplo, cada variável ocupa 4 bytes.
Variáveis e seus endereços na memória.

Memória cache

A CPU é muito mais rápida que a RAM. Além disso, a RAM fica fora do chip do processador, mais longe. Quando a CPU precisa de um dado que está na RAM, ela perde tempo esperando a resposta. Esse atraso é um gargalo: um ponto que deixa todo o resto mais lento.

Para diminuir essa espera, os processadores têm uma pequena memória muito rápida, construída dentro do próprio chip da CPU, bem colada nos circuitos que fazem as contas. Essa memória se chama cache.

Desenho de um chip de CPU, um quadrado com pinos em cima e embaixo. Dentro dele há uma caixa com os circuitos de cálculo e controle e, colada nela, a cache. Fora do chip, ligada por uma linha tracejada mais longa, fica a memória RAM, com a nota: fora do chip, mais longe.
Memória cache dentro do chip da CPU.

Além de ficar mais perto, a cache é feita de outro tipo de memória, chamado SRAM (RAM estática). Cada bit da SRAM usa seis transistores e nenhum capacitor. Sem baldinho para vazar, ela não precisa de refresh e é bem mais rápida.

Em troca, ocupa mais espaço, gasta mais energia e custa muito mais caro. Por isso a cache é bem menor que a RAM.

A cache costuma ser dividida em três níveis. A L1 é a menor e mais rápida; a L2 é um pouco maior e um pouco mais lenta; e a L3 é a maior das três e costuma ser compartilhada entre os núcleos do processador (as unidades da CPU que executam instruções, e hoje um processador costuma ter vários).

Desenho do chip da CPU com os níveis de cache empilhados. No alto, o núcleo, que faz as contas. Logo abaixo, a L1, a menor e mais rápida. Depois, a L2, maior e um pouco mais lenta. Por último, a L3, a maior das três. Embaixo, a nota: a L3 costuma ser compartilhada entre os núcleos.
Níveis de memória cache.

Quando a CPU precisa de um dado, ela olha primeiro na cache:

  • se o dado estiver lá, é um acerto (em inglês, cache hit), e ele é usado na hora;
  • se não estiver, é uma falta (em inglês, cache miss), e a CPU precisa buscar o dado na RAM, o que leva mais tempo.
Dois quadros lado a lado. No primeiro, acerto (cache hit): a CPU procura o dado na cache, o dado está lá e é usado na hora, bem rápido. No segundo, falta (cache miss): a CPU procura na cache, o dado não está lá, e ela precisa buscar na RAM, o que leva mais tempo.
Acerto e falta na cache.

Esse sistema funciona porque os programas costumam usar os mesmos dados várias vezes em pouco tempo. Quando um programa repete o mesmo trecho muitas vezes, por exemplo, os mesmos números e instruções voltam a ser usados, e a cache já está com eles à mão.

Para ir além: como a cache decide o que guardar

Como a cache é pequena, ela precisa decidir o que jogar fora quando enche. Uma regra muito usada é tirar o dado que não é usado há mais tempo. Em inglês, essa regra se chama LRU (least recently used).

E quando a CPU muda um dado, a cache pode guardar a mudança primeiro só nela e mandar para a RAM depois. Esse jeito de trabalhar se chama write-back.

Armazenamento

Agora vamos ao armário: o armazenamento, que guarda os dados mesmo com o computador desligado.

HD: disco rígido

O nome disco rígido não é só um jeito de falar. Dentro do HD existe mesmo um disco (ou vários, empilhados), feito de material rígido e chamado de prato. Ele fica dentro de uma caixa de metal bem fechada.

Imagem de um disco rígido (HD) aberto, mostrando o disco interno e a agulha de leitura e gravação. O disco é um círculo metálico brilhante, enquanto a agulha é uma peça fina e delicada que se move sobre a superfície do disco.
Disco rígido (HD) aberto, mostrando o disco interno e a agulha de leitura e gravação.

Na superfície do prato existem partículas magnéticas, e é nelas que os dados são gravados. Para ler e gravar, o HD tem um braço com uma espécie de agulha, parecida com a de um toca-discos de vinil.

Na ponta fica uma pecinha chamada cabeçote, que lê e grava os dados. Mas atenção: o cabeçote não encosta no disco. Ele flutua bem pertinho da superfície.

Ao lado do braço fica o atuador, um motorzinho que move o braço de um lado para o outro. Ele não usa engrenagens: funciona com uma bobina e ímãs.

Foto de um HD aberto, com rótulos e setas azuis. No centro do disco magnético fica o eixo, onde ele gira. Sobre o disco passa o braço de leitura, que tem na ponta a cabeça de leitura. Na base do braço fica o atuador, a peça que move o braço.
Componentes internos de um HD.

Na parte de fora do HD ficam as entradas, que lembram tomadas. Elas ligam o HD ao computador, levando energia e deixando os dados entrarem e saírem.

Parte de fora de um HD, com as entradas visíveis.
Parte externa de um HD.

Hoje, o HD é barato: dá para comprar um com 1 ou 2 terabytes por um preço razoável. Por isso ele ainda é uma opção popular para quem precisa de muito espaço gastando pouco.

Por que o HD é frágil e lento

O HD é muito sensível, e por isso vem lacrado. Lacrado não quer dizer sem ar: o cabeçote flutua justamente sobre um colchão de ar bem fininho. Nos discos atuais, ele fica a cerca de 5 nanômetros do prato, ou seja, 5 milionésimos de milímetro. É uma distância milhares de vezes menor que a espessura de um fio de cabelo.

Nessa distância, qualquer sujeirinha que entre lá dentro é como uma pedra enorme no caminho. Poeira e umidade podem fazer o cabeçote raspar o disco, e aí o HD pode parar de funcionar e perder os dados.

Disco de um HD aberto, coberto de gotas de umidade.
Disco do HD com gotas de umidade.

Nos HDs de grande capacidade, o que fica lá dentro nem é ar: eles são lacrados com gás hélio, que é bem mais leve. Com menos turbulência, cabem mais pratos na mesma caixa.

Se o cabeçote encostar no disco, a gravação pode se estragar. Por isso, notebooks com HD não devem ser carregados de um lado para o outro enquanto estão ligados, nem usados em movimento, e muito menos sofrer quedas ou pancadas.

Um HD danificado, com a agulha tocando o disco, todo quebrado, arranhado e com sujeira visível.
HD danificado.

O HD também é mecânico: tem partes que se movem. Para encontrar um dado, o braço leva o cabeçote até a trilha certa, o caminho circular onde a informação está, e depois espera o disco girar até o dado passar embaixo dele.

Só essa ida até a trilha costuma levar de 3 a 9 milésimos de segundo. Parece pouco, mas em 3 milésimos de segundo um processador de 3 GHz já deu cerca de 9 milhões de batidas de clock. Por isso o HD é um gargalo, e programas pesados podem demorar a abrir em computadores com HD.

Para não deixar tudo ainda mais lento, muitos programas anotam as mudanças na memória primeiro e só depois gravam tudo de uma vez no disco.

SSD: Unidade de Estado Sólido

O SSD (sigla em inglês para Unidade de Estado Sólido) guarda os dados sem nenhuma parte que se mexe. Ele usa a memória flash, a mesma dos pendrives e cartões de memória. Por isso é bem mais rápido que o HD, mais resistente a pancadas e silencioso.

Dois SSDs lado a lado. À esquerda, um SSD fechado, com a carcaça cinza, uma etiqueta escrita SSD, Solid State Drive, e os conectores dourados na parte de baixo. À direita, um SSD aberto, mostrando a placa verde com vários chips pretos.
SSD: Unidade de Estado Sólido.

O ponto fraco do SSD é o desgaste. As células da memória flash aguentam um número limitado de gravações, e cada vez que um trecho é apagado e gravado de novo, elas se gastam um pouco. O próprio SSD espalha as gravações para que esse desgaste demore a aparecer.

Os dois podem falhar

Tanto o SSD quanto o HD podem falhar. O HD às vezes dá sinais, como barulhos estranhos, mas nem sempre. Em um estudo do Google com mais de cem mil HDs, mais de 36% dos que falharam não tinham dado nenhum aviso nos sensores de monitoramento do próprio disco (chamados de SMART).

Por isso, faça cópias de segurança (backups) dos seus arquivos importantes, seja qual for o seu disco.

Para ir além: o que acontece dentro do SSD

Páginas e blocos. As células do SSD são organizadas em páginas, e as páginas são agrupadas em blocos. Uma página costuma ter uns 4 KiB, e um bloco, 128 ou 256 KiB: um bloco junta dezenas de páginas.

Ler é fácil, regravar é difícil. Ler uma página é quase instantâneo. Mas, para gravar algo novo, o SSD geralmente precisa apagar um bloco inteiro antes.

Por isso existe o comando TRIM: com ele, o sistema operacional avisa o SSD de quais dados foram apagados. Assim, o SSD libera esse espaço na sua faxina interna, chamada coleta de lixo, e deixa blocos prontos para as próximas gravações.

Duas mãos seguram a placa de um SSD sem a carcaça: uma placa verde pequena, com dois chips pretos de memória e o conector preto na lateral esquerda.
SSD aberto, mostrando os chips de memória.

O controlador. É o chip que organiza o SSD. Ele decide onde cada dado será guardado e corrige erros automaticamente (com o ECC, sigla em inglês para código de correção de erros).

Ele também espalha as gravações por todas as células (wear leveling) e usa uma parte reservada da memória, escondida de quem usa o computador, para organizar as gravações e trocar células gastas (over-provisioning).

NVMe e SATA. Os SSDs do tipo NVMe se ligam direto na placa-mãe (a placa principal do computador, onde as outras peças se encaixam) por um caminho de alta velocidade chamado PCIe. Eles são bem mais rápidos que os SSDs do tipo SATA, que usam a mesma conexão dos HDs.

Comparando HD e SSD

HD e SSD lado a lado, os dois abertos e do mesmo tamanho. À esquerda, o HD, com o disco prateado e o braço de leitura. À direita, o SSD, com uma placa cheia de chips pretos.
Comparação entre HD e SSD
Característica HD (disco rígido) SSD (estado sólido)
Velocidade Lento, por causa das partes que se movem Muito rápido, sem partes que se movem
Resistência Sensível a quedas e pancadas Mais resistente a pancadas
Preço por GB Mais barato Mais caro
Consumo de energia Maior Menor
Barulho Pode fazer barulho por causa do disco girando Silencioso

Swap: quando a bancada enche

No disco, seja HD ou SSD, existe um espaço especial chamado swap (área de troca). É uma memória reserva que o computador usa quando a RAM está ficando cheia.

Voltando à cozinha: imagine que a bancada lotou e não cabe mais nada. Para continuar, você usa um cantinho do armário como bancada extra. Esse cantinho é o swap.

O sistema nem espera a bancada lotar: ele costuma mandar para o swap as coisas que não são usadas há algum tempo, para liberar a RAM para o que está em uso.

O swap evita que o computador trave quando há muitos programas abertos. Mas o disco, seja HD ou SSD, é bem mais lento que a RAM. Quando o computador usa o swap com frequência, fica mais devagar, como se você tivesse que levantar toda hora para buscar algo no armário.

Por isso, vale ter uma quantidade de memória RAM adequada ao que você costuma fazer.

Para ir além: DDR, ECC e memória virtual

DDR. O tipo de memória RAM mais comum hoje é a DDR (sigla em inglês para taxa dupla de dados). Ela transfere dados duas vezes a cada batida do clock que comanda a memória: uma no “tic” e outra no “tac”. Por isso é mais rápida que as memórias mais antigas.

Módulo de memória DDR.
Módulo de memória DDR.

ECC. Os servidores (computadores potentes, ligados em rede, que atendem pedidos de outros computadores) costumam usar memória com ECC. Ela corrige sozinha pequenos erros, como um bit que muda de valor por defeito ou até por radiação. É mais cara, mas evita travamentos e dados corrompidos.

Memória virtual. Os programas não usam os endereços da RAM diretamente. Cada programa enxerga uma memória só dele, chamada memória virtual.

O sistema operacional decide o que fica na RAM e o que vai para o swap, e o processador traduz os endereços na hora, sem o programa perceber. Já a cache é cuidada só pelo processador, sem ajuda do sistema operacional.

Firmware: o primeiro programa

Existe ainda outro grupo de memórias não voláteis que, por motivos históricos, é chamado de ROM (memória somente de leitura), mesmo que alguns tipos possam ser regravados. Os programas guardados nela se chamam firmware.

É um firmware o primeiro programa que roda quando você liga o computador. Ele dá a partida e depois passa o controle para o sistema operacional. Nos computadores mais antigos, esse firmware se chamava BIOS. Hoje, a UEFI ocupa esse lugar.

Entrada e saída

Os dispositivos de entrada são os que o computador usa para receber informações. Os dispositivos de saída são os que ele usa para entregar informações de volta para a pessoa.

Alguns dispositivos de entrada:

  • teclado, mouse e touchpad (o painel sensível ao toque dos notebooks);
  • microfone e câmera;
  • scanner (leitor de documentos) e leitor de código de barras;
  • teclado Braille, para digitar em Braille;
  • acionadores: botões grandes que podem ser apertados com a mão, o pé ou a cabeça, usados por pessoas com pouca mobilidade nas mãos;
  • rastreador ocular, que permite controlar o computador com o olhar.

Alguns dispositivos de saída:

  • monitor (a tela) e projetor;
  • caixa de som e fones de ouvido;
  • impressora e plotter (impressora de grande formato);
  • impressora Braille, que imprime em relevo;
  • motor de vibração (o vibracall do celular).
Diagrama de Venn com dois círculos que se cruzam. No círculo da esquerda, entrada: teclado, mouse, microfone, câmera, scanner, touchpad, leitor de código de barras, teclado Braille, rastreador ocular e acionadores. No círculo da direita, saída: monitor, impressora, caixa de som, fones de ouvido, projetor, plotter e impressora Braille. Na parte em que os círculos se cruzam, os dispositivos que fazem as duas coisas: touchscreen, modem, placa de rede e linha Braille.
Diagrama de Venn classificando dispositivos de entrada e saída.

Alguns dispositivos fazem as duas coisas, entrada e saída:

  • a tela sensível ao toque (touchscreen): quando você toca, é entrada; quando ela mostra, é saída;
  • o modem e a placa de rede, que enviam e recebem dados;
  • a linha Braille, que mostra o texto da tela em Braille, com pinos que sobem e descem, e tem teclas para digitar e navegar.

O leitor de telas: hardware ou software?

Lembra da diferença entre hardware e software, do começo do artigo? O leitor de telas é um software. Ele lê o que aparece na tela e entrega para a pessoa por um dispositivo de saída: a caixa de som ou os fones, com uma voz sintetizada, ou a linha Braille.

Resumo

  • Todo computador tem uma CPU no centro, ligada à entrada, à memória, ao armazenamento e à saída.
  • Na CPU, a ULA faz contas, comparações e operações lógicas, com circuitos feitos de portas lógicas. A Unidade de Controle busca e decodifica as instruções e coordena tudo no ritmo do clock.
  • A memória RAM é a bancada: rápida, mas volátil. Cada célula tem uma portinha (transistor) e um baldinho (capacitor), cada byte tem um endereço, e o refresh impede que os dados se percam.
  • A cache é uma memória pequena e muito rápida dentro da CPU, que guarda os dados mais usados.
  • O armazenamento é o armário: o HD é barato, mas mecânico, frágil e lento; o SSD é rápido e sem partes móveis, mas se desgasta. Os dois podem falhar, então faça backup.
  • Os dispositivos de entrada e saída incluem também tecnologias assistivas, como a linha Braille, que faz as duas coisas.

Já conhecemos o hardware por dentro, do transistor ao computador inteiro. Mas quem diz ao hardware o que fazer são os programas. Esse é o assunto do próximo artigo, Programas ou Softwares.

Referências

  • BRYANT, Randal E.; O'HALLARON, David R. Computer Systems: A Programmer's Perspective, 2. ed. Capítulo 6, The Memory Hierarchy (prévia). Disponível em: https://csapp.cs.cmu.edu/2e/ch6-preview.pdf. Acesso em: 10 out. 2026.
  • University of Illinois Urbana-Champaign, CS 102. Computer Architecture (arquitetura de von Neumann). Disponível em: https://courses.grainger.illinois.edu/cs102/sp2026/text/architecture.html. Acesso em: 10 out. 2026.
  • Colorado State University, CS 270. Chapter 4: The Von Neumann Model (slides de aula; contador de programa e instruções que "look just like data"). Disponível em: https://www.cs.colostate.edu/~cs270/.Fall18/slides/Lecture15(C4).pdf. Acesso em: 15 out. 2026.
  • Computer History Museum. This Day in History, 30 de junho: "First Draft of Report on EDVAC" Published. Disponível em: https://www.computerhistory.org/tdih/june/30/. Acesso em: 10 out. 2026.
  • Computer History Museum. 1971: Microprocessor Integrates CPU Function onto a Single Chip. Disponível em: https://www.computerhistory.org/siliconengine/microprocessor-integrates-cpu-function-onto-a-single-chip/. Acesso em: 10 out. 2026.
  • Cornell University, CS 3410. Processes (notas de aula). Disponível em: https://www.cs.cornell.edu/courses/cs3410/2025fa/notes/process.html. Acesso em: 10 out. 2026.
  • Cornell University, CS 3410. Caches (notas de aula). Disponível em: https://www.cs.cornell.edu/courses/cs3410/2025fa/notes/caches.html. Acesso em: 10 out. 2026.
  • Intel. What Are the Differences Between vCPU, Core, and Hyperthreading on an Intel Xeon Processor? (definição de núcleo). Disponível em: https://www.intel.com/content/www/us/en/support/articles/000098959/processors/intel-xeon-processors.html. Acesso em: 15 out. 2026.
  • Princeton University, COS 217. Memory Management (slides de aula). Disponível em: https://www.cs.princeton.edu/courses/archive/spr11/cos217/lectures/18MemoryMgmt.pdf. Acesso em: 10 out. 2026.
  • Stanford University, CS 106E. Lecture #6: Computer Hardware (Memory) (notas de aula; o que quer dizer acesso aleatório). Disponível em: https://web.stanford.edu/class/cs106e/lectureNotes/L06NHardwareMemory.pdf. Acesso em: 15 out. 2026.
  • Northwestern University. Combinational Circuit Design (multiplexador 4 para 1). Disponível em: https://users.cs.northwestern.edu/~agupta/_projects/network_switch/Lectures/CombinatorialCircuitDesign/index.html. Acesso em: 10 out. 2026.
  • University of Wisconsin-Madison, CS 354. Lecture notes on Addressibility. Disponível em: https://pages.cs.wisc.edu/~markhill/cs354/Fall2008/notes/addressibility.html. Acesso em: 10 out. 2026.
  • Michigan State University, ECE 410. Memory Basics (capítulo 13, slides de aula). Disponível em: https://www.egr.msu.edu/classes/ece410/mason/files/Ch13.pdf. Acesso em: 10 out. 2026.
  • Instituto Superior Técnico (Universidade de Lisboa). Electrónica Geral: problemas de memória DRAM, com soluções. Disponível em: https://fenix.tecnico.ulisboa.pt/downloadFile/1689468335671587/Prob_Memoria_DRAM_sol.pdf. Acesso em: 10 out. 2026.
  • Intel. 12th Generation Intel Core Processors Datasheet, Volume 1: Clock Topology e Integrated Reference Clock PLL. Disponível em: https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/alder-lake-desktop/12th-generation-intel-core-processors-datasheet-volume-1-of-2/009/clock-topology/ e https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/alder-lake-desktop/12th-generation-intel-core-processors-datasheet-volume-1-of-2/010/integrated-reference-clock-pll/. Acesso em: 10 out. 2026.
  • Intel. What Is Clock Speed? Disponível em: https://www.intel.com/content/www/us/en/gaming/resources/cpu-clock-speed.html. Acesso em: 10 out. 2026.
  • Microsoft. UEFI firmware requirements. Disponível em: https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-uefi. Acesso em: 10 out. 2026.
  • NIST (National Institute of Standards and Technology). Definitions of the SI units: The binary prefixes. Disponível em: https://physics.nist.gov/cuu/Units/binary.html. Acesso em: 10 out. 2026.
  • Western Digital. Helium Hard Drives Explained. Disponível em: https://blog.westerndigital.com/helium-hard-drives-explained/. Acesso em: 10 out. 2026.
  • Seagate Technology. Patente US 6.577.474 (motor de bobina, voice coil motor, do braço do HD). Disponível em: https://patents.google.com/patent/US6577474. Acesso em: 10 out. 2026.
  • WIKIPEDIA. Flying height (altura de voo do cabeçote em discos rígidos). Disponível em: https://en.wikipedia.org/wiki/Flying_height. Acesso em: 13 out. 2026.
  • ARPACI-DUSSEAU, Remzi H.; ARPACI-DUSSEAU, Andrea C. Operating Systems: Three Easy Pieces. Capítulo Flash-based SSDs. Disponível em: https://pages.cs.wisc.edu/~remzi/OSTEP/file-ssd.pdf. Acesso em: 10 out. 2026.
  • Seagate. What Is SSD Over-Provisioning? Disponível em: https://www.seagate.com/blog/ssd-over-provisioning-and-benefits/. Acesso em: 10 out. 2026.
  • PINHEIRO, Eduardo; WEBER, Wolf-Dietrich; BARROSO, Luiz André. Failure Trends in a Large Disk Drive Population. 5th USENIX Conference on File and Storage Technologies (FAST '07), 2007. Disponível em: https://www.usenix.org/legacy/event/fast07/tech/full_papers/pinheiro/pinheiro_html/index.html. Acesso em: 10 out. 2026.
  • Microsoft. Introduction to the page file. Disponível em: https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/introduction-to-the-page-file. Acesso em: 10 out. 2026.
  • Apple. View memory usage in Activity Monitor on Mac. Disponível em: https://support.apple.com/guide/activity-monitor/view-memory-usage-actmntr1004/mac. Acesso em: 10 out. 2026.
  • MDN Web Docs. Server (glossário). Disponível em: https://developer.mozilla.org/en-US/docs/Glossary/Server. Acesso em: 10 out. 2026.