Pular para o conteúdo

Hardware e sistemas operacionais · parte 23 de 27

Limites e segurança: por que o clock parou e por que a especulação virou problema

Por que o clock parou de subir: o fim da lei de Dennard, a lei de Moore, as paredes de potência e calor, e o que foram Meltdown e Spectre em alto nível.

avançadoPublicada em · 12 min de leitura

Tamanho da fonte:
Largura da coluna:
Tom:
Espaço entre linhas:
Fonte:

Limites e segurança: por que o clock parou e por que a especulação virou problema

Durante boa parte da história, a CPU ficou mais rápida quase sem esforço. Bastava reduzir o tamanho dos transistores, e o chip ganhava clock e cabia mais lógica no mesmo espaço. Essa época terminou por volta de 2005, e desde então a indústria precisa lutar por cada fração de desempenho. Esta nota explica por que o clock estacionou, o que as leis de Moore e de Dennard diziam e por que a busca por desempenho deixou marcas de segurança que ainda estão sendo tratadas.

Os dois temas parecem distantes, mas têm origem comum. A técnica que tornou a CPU mais rápida, a especulação, gasta energia e deixa rastros. E o limite de potência, que impediu o clock de subir, é o mesmo que obriga o chip a trabalhar com muito paralelismo e muita especulação.

1. A lei de Moore: dobrar os transistores

Em 1965, Gordon Moore publicou o artigo “Cramming more components onto integrated circuits”, em que observava que o número de componentes por circuito integrado dobrava a cada ano, e estimava que o ritmo se manteria por cerca de dez anos. Em 1975, ele revisou a previsão para dobrar a cada dois anos. Essa previsão, chamada de lei de Moore, virou o roteiro da indústria de semicondutores por décadas. Trata-se de uma observação empírica que virou meta, sustentada por investimento e engenharia.

O gráfico da nota de história mostra essa tendência em escala logarítmica, com o número de transistores do 4004 ao M1. A inclinação constante dessa reta é a lei em ação. Note que a lei fala de transistores, não de velocidade. Dobrar a quantidade de transistores não dobra o desempenho, e foi essa distinção que se tornou importante depois que o clock parou.

A própria Wikipedia registra que engenheiros de microarquitetura reportam uma desaceleração do avanço dos semicondutores em geral desde cerca de 2010, com ritmo abaixo do previsto pela lei. Os transistores continuaram aumentando, mas o custo e a dificuldade de cada nova geração também cresceram. Ainda assim, o número de transistores em um chip continuou subindo, e isso permitiu mais núcleos, mais cache e mais unidades especializadas.

2. A lei de Dennard: a energia cabe na área

A lei de Dennard foi publicada em 1974, no artigo de Robert Dennard e colegas no IEEE Journal of Solid-State Circuits. A ideia é que, ao reduzir as dimensões de um transistor por um fator, a tensão e a corrente também caem na mesma proporção, de modo que a densidade de potência, ou seja, a energia por milímetro quadrado, permanece constante. Como o transistor fica menor e mais rápido, o chip ganha clock sem esquentar mais por área.

Durante décadas, essa regra permitiu o paraíso que a indústria chamou de escalonamento: encolher o transistor significava ganhar frequência e manter a potência sob controle. Os projetistas não precisavam mudar o modo de projetar, bastava esperar a próxima geração de processo.

3. O fim de Dennard e a parede de potência

A regra quebrou quando a tensão parou de cair junto com as dimensões. Para o transistor funcionar, a tensão de limiar, que é o nível mínimo para ele ligar, não podia cair indefinidamente, porque o ruído e a fuga de corrente cresciam. Além disso, a corrente de fuga, que vaza mesmo com o transistor desligado, passou a pesar mais. Com essas duas coisas, a densidade de potência começou a subir a cada geração. A Wikipedia registra que a lei deixou de valer por volta de 2005 a 2007, e que a principal causa foi a fuga de corrente e a tensão de limiar que não escalou.

A consequência prática foi a parede de potência. O clock não podia mais subir, porque o chip esquentaria até um ponto inaceitável. A Wikipedia menciona que, em 2004, a Intel cancelou os projetos Tejas e Jayhawk por causa desse problema. Foi uma mudança de rumo para toda a indústria. O clock estacionou na faixa de alguns gigahertz, e o ganho passou a vir de mais núcleos e de mais trabalho por ciclo.

O gráfico abaixo mostra essa mudança com dados de lançamento de cada modelo citado na série. Antes de 2005, a curva sobe com inclinação forte. Depois, o crescimento se torna lento, e a marca de parede de potência indica a virada.

Gráfico log do clock de lançamento de 0,74 MHz em 1971 a 5,7 GHz em 2024, com a curva achatando depois da parede de potência por volta de 2005
figura 1 · Clock de lançamento ao longo dos anos: a curva sobe e depois achata

Frequência que muda sozinha: DVFS e throttling

Hoje a frequência de um chip não é fixa. A potência dinâmica de um circuito digital segue, de forma aproximada, a relação P = C × V² × f, em que C é a capacitância do circuito, V a tensão e f a frequência. Como a tensão precisa subir para o chip operar em frequências maiores, a potência cresce mais rápido que a frequência. Essa relação é a base do DVFS, em que o chip muda tensão e frequência juntas, conforme a carga.

Um exemplo com números simples mostra o efeito. Se uma redução de 20% na frequência permite reduzir a tensão em 10%, a potência cai para 0,8 × 0,9² = 0,648 do valor original, ou seja, cerca de 35% a menos. Num trabalho limitado pela CPU, o desempenho cai uns 20%, então a energia por tarefa também cai. Num trabalho limitado pela memória, que a seção de pipeline descreveu, a queda de frequência custa menos desempenho, porque o núcleo já estava esperando. Esse é o motivo de o sistema baixar a frequência em tarefas leves e em espera.

O boost é o caminho oposto: quando há folga de temperatura e de potência, o chip sobe a frequência por tempo limitado. O throttling é a redução forçada, quando o chip atinge um limite de temperatura ou de corrente. Por isso o clock de boost que aparece numa ficha é um máximo, e não um valor sustentado. O Ryzen 9 9950X, por exemplo, tem clock base e de boost declarados pela fabricante, mas o valor real depende do resfriamento e da carga, e uma medição de desempenho sem essa informação não diz muito.

Repare nos dois pontos que não são comparáveis diretamente. O Ryzen 1800X e o Ryzen 9950X aparecem com o clock de boost, que é o valor máximo que o chip atinge por tempo limitado, enquanto os demais são clocks de lançamento. O objetivo do gráfico é mostrar a ordem de grandeza e a virada, e não comparar com precisão um modelo com outro.

4. Como a indústria respondeu

Com o clock preso, os fabricantes seguiram três caminhos, que se combinam. O primeiro foi colocar mais núcleos, o que dá desempenho enquanto o programa for paralelo. O segundo foi melhorar a eficiência por ciclo, com execução fora de ordem mais larga, previsão de desvios melhor e caches maiores. O terceiro foi a especialização: núcleos de eficiência para tarefas leves, aceleradores para inteligência artificial e vídeo, e chiplets para organizar o chip de forma mais barata. Essas respostas são o assunto das outras notas da série, e todas tentam o mesmo objetivo, que é gastar menos energia por instrução útil.

Existe também uma parede de memória, mais discreta. A CPU ficou mais rápida que a DRAM, e o gargalo migrou para o acesso à memória. Por isso o cache cresceu, e o custo de um acesso que falha virou um dos maiores vilões de desempenho.

5. Meltdown e Spectre: quando a velocidade vaza

A especulação e a execução fora de ordem são maneiras de a CPU começar trabalho antes de ter certeza de que ele é necessário. Se a previsão acerta, o programa ganha tempo. Se erra, o trabalho é descartado, e o estado visível para o programa volta ao que era antes. O problema é que o descarte apaga os registradores e a memória do processo, mas não apaga tudo. A cache continua com as linhas que foram carregadas durante a execução especulativa, e essas linhas podem ser lidas por outro programa medindo o tempo de acesso.

Esse tipo de vazamento se chama canal lateral: a informação sai não pelo caminho previsto, mas por um efeito colateral do hardware, como o tempo que um acesso leva. Em janeiro de 2018, duas vulnerabilidades desse tipo foram divulgadas juntas. A Wikipedia registra o dia 3 de janeiro de 2018 para as duas.

O Meltdown, identificado como CVE-2017-5754, explora a execução fora de ordem combinada com um canal lateral de cache para contornar a verificação de privilégio entre o programa de usuário e a memória do sistema. Segundo a página, o problema afetou processadores Intel x86, chips IBM Power e alguns ARM, e não afetou AMD. O Meltdown é específico da forma como alguns chips tratam a proteção de memória, e por isso as correções incluíram mudanças no sistema operacional para separar melhor o espaço do kernel.

O Spectre, identificado pelos CVE-2017-5753 e CVE-2017-5715, é uma família de ataques que explora a especulação de forma mais geral. Ele centra-se na previsão de desvios: o atacante treina o preditor para que a CPU especule um caminho que o programa normalmente não seguiria, e então lê dados pelo canal da cache. A página da Wikipedia ressalta que o Spectre não depende de um recurso específico do gerenciamento de memória de um processador, o que o torna mais amplo e mais difícil de corrigir de uma vez.

A figura abaixo mostra a lógica em uma sequência de eventos. O atacante treina o desvio, a CPU especula com um índice inválido, deixa uma marca na cache e o atacante mede o tempo para ler a marca.

Ataque de canal lateral em quatro passos: o atacante treina o desvio, a CPU especula com índice inválido, a cache guarda uma marca e o tempo a revela
figura 2 · Especulação e canal lateral: a CPU executa errado, mas deixa rastro na cache

A figura não mostra o detalhe de cada ataque, e a leitura correta é a do princípio. O dado secreto nunca é entregue ao atacante diretamente. O que vaza é o rastro que a execução especulativa deixou na cache, e a informação é reconstruída por medição de tempo. Por isso, as mitigações combinam mudanças no hardware, no compilador e no sistema operacional, e algumas têm custo de desempenho que o usuário percebe.

6. O custo de segurança

As mitigações de Meltdown e Spectre tiveram custo de desempenho em alguns casos, sobretudo em cargas de trabalho com muitas chamadas ao sistema. A intensidade do impacto depende do programa e do chip, e os números publicados variam bastante entre fontes. Essa é uma das razões pelas quais a segurança e o desempenho entram em conflito direto, e é uma tensão que deve continuar. Quanto mais o chip faz por conta própria para ser rápido, mais superfícies ele expõe.

7. Erros comuns e boas práticas

O primeiro erro é achar que o fim do clock significa o fim do progresso. O progresso mudou de forma, e a eficiência por instrução e a especialização continuam avançando. O segundo erro é tratar Meltdown e Spectre como bugs de um fabricante específico. Eles surgiram de uma técnica usada por muitos chips, e a discussão se estendeu a toda a indústria.

O terceiro erro é achar que um software seguro está protegido contra qualquer canal lateral. Canais laterais são difíceis de eliminar por completo, e a defesa de um programa que lida com segredos costuma combinar isolamento, atualizações de sistema e código que evita acessos dependentes de dados secretos. Se você escreve software que manipula segredos, leia a documentação de segurança do seu compilador e do seu sistema operacional, e considere a possibilidade de um vazamento por tempo.

Exercícios

  1. Explique, com as suas palavras, por que a lei de Dennard supunha que a energia por área ficava constante, e qual das suas premissas deixou de valer por volta de 2005.
  2. Com os dados do gráfico, escolha dois modelos de épocas diferentes e calcule a razão entre seus clocks. Compare com a razão entre os números de transistores e diga o que a diferença sugere.
  3. Descreva, em um parágrafo, por que a especulação aumenta o desempenho e ao mesmo tempo cria uma superfície de ataque. Use a figura de Spectre como apoio.

Fontes

Consultadas em 1 de novembro de 2026.

  • Wikipedia: Moore’s law: artigo de 1965, revisão de 1975 e desaceleração desde cerca de 2010.
  • Wikipedia: Dennard scaling: artigo de 1974, fim da regra por volta de 2005 a 2007, causa pela fuga de corrente e tensão de limiar, e cancelamento de Tejas e Jayhawk.
  • Wikipedia: Meltdown (security vulnerability): divulgação em 3 de janeiro de 2018, CVE-2017-5754 e processadores afetados.
  • Wikipedia: Spectre (security vulnerability): CVE-2017-5753 e CVE-2017-5715, mecanismo de predição de desvios e comparação com Meltdown.
  • Wikipedia: Intel 4004, Wikipedia: Apple M1 e Wikipedia: Ryzen: dados usados no gráfico de clock, consultados em 1 de novembro de 2026.
  • A figura de clock usa valores de boost para os Ryzen e o M1 quando é o máximo divulgado, e o gráfico marca isso nos rótulos. Os valores de clock do Ryzen 9950X (4,3 GHz de base e 5,7 GHz de boost) vêm de fichas de varejo e de análise da Tom’s Hardware, consultadas em 1 de novembro de 2026. A página da AMD não abriu nesta revisão.

Relacionados

  • CPU
  • História das CPUs
  • Pipeline, cache e paralelismo
  • Gerações e arquiteturas
  • Carga da CPU no Mac

↑ Voltar ao topo

Atalhos de teclado

Abrir busca
/
Alternar tema claro/escuro
t
Aula anterior na série
←
Próxima aula na série
→
Lista de atalhos
?