O ciclo de relógio do processador e o ciclo de máquina
Unidade fora do sistema · grandeza: um intervalo de sincronização e uma medida do trabalho de cálculo
No outono de 2004 a Intel cancelou o desenvolvimento de um processador que devia funcionar a dez gigahertz, e aquilo não foi um fracasso técnico mas o reconhecimento de uma parede física: um chip empurrado ao dobro da velocidade exigia quatro vezes mais potência e simplesmente derretia. A corrida das frequências, que durava trinta anos, acabou num só dia, e com ela o hábito de julgar uma máquina pelo número escrito na caixa.
O ciclo em si é o intervalo entre duas frentes do sinal de relógio, esse mesmo passo com que todos os elementos síncronos do chip comutam ao mesmo tempo. O seu inverso é a frequência, e assim um ciclo a cinco gigahertz dura dois décimos de nanossegundo, durante os quais a luz percorre seis centímetros e um sinal numa pista de cobre ainda menos — menos do que a largura do chip.
01 · Definição
O ciclo é o período do sinal de relógio, isto é, o intervalo entre duas frentes do mesmo sentido em que os elementos síncronos do chip mudam de estado em conjunto. O ciclo de máquina é um número inteiro de ciclos de relógio em que o processador realiza uma ação concluída; numa máquina segmentada substitui-se pela medida inversa — o número de ciclos por instrução, cujo próprio inverso diz quantas instruções saem da linha num ciclo.
O comprimento de um ciclo não é fixado pela natureza mas pelo traçado do chip: não pode ser mais curto do que o percurso mais lento entre duas básculas, incluindo o atraso da própria báscula e uma margem para a dispersão dos parâmetros. Daí o recurso habitual do projetista — cortar um percurso lógico longo em dois andares da linha: o ciclo fica metade mais curto, a frequência o dobro mais alta, e a instrução percorre agora toda a escada.
O que limita a frequência, porém, não é a lógica mas a potência: o consumo dinâmico cresce com a frequência e com o quadrado da tensão, e a tensão tem de ser elevada para que o circuito acompanhe à frequência acrescida. O calor vai por isso aproximadamente como o cubo da frequência, e nessa dependência cúbica a corrida dos gigahertz parou por volta dos quatro.
Por fim, o ciclo é uma unidade cujo comprimento não é constante. A gestão da alimentação muda a frequência centenas de vezes por segundo, ajustando-se à carga e à temperatura, e por isso o número de ciclos não permite julgar o tempo decorrido, mas permite julgar o trabalho feito: o contador de ciclos não conta segundos mas passos de cálculo, e é nisso que está o seu verdadeiro valor.
Conduza a frequência com o cursor e siga duas curvas que se afastam em sentidos contrários. A verde é a distância que um sinal chega a percorrer num ciclo: quanto maior a frequência, mais curto esse percurso, e a cinco gigahertz ele fica menor do que o próprio chip. A carmesim é quanto custa em ciclos um acesso à memória: a sua latência em nanossegundos quase não muda, e em ciclos ela só cresce.
Tendo cortado o trabalho em andares, o projetista encurta o ciclo, mas uma só instrução percorre agora toda essa escada, e a sua própria latência não diminui: aumenta. O ganho só aparece quando os andares estão cheios de instruções diferentes, e num salto mal previsto a linha tem de ser esvaziada por inteiro — quanto mais funda, mais caro sai.
02 · Conversão
Frequência, período, trabalho
Introduza uma frequência ou um comprimento de ciclo e a ficha mostrará o inverso, o percurso do sinal num ciclo e o custo dos acessos à memória em ciclos. A primeira família é exata por definição, a segunda apoia-se em valores médios de um núcleo, a terceira nas latências típicas da hierarquia de memória atual.
A velocidade do sinal numa pista é tomada como seis décimos da velocidade da luz; nas afinações finas da ficha pode passar-se a metade.
Só podem ser comparados pela frequência núcleos iguais, porque o número de ciclos por instrução difere várias vezes entre arquiteturas: uma máquina apanha quatro instruções num ciclo, outra mal uma. Foi precisamente por isso que o número em gigahertz saiu da publicidade e no seu lugar entraram conjuntos de testes que já não medem ciclos mas trabalho feito.
| Valor | Nota | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · Ordens de grandeza
escala logarítmica: do ciclo ao quantum do escalonador04 · Instrumentos de medição
Com que se fixa o ciclo e com que se conta
A fonte do ciclo é uma lamela de quartzo, que oscila em geral a algumas dezenas de megahertz com uma exatidão de cerca de dez milionésimos. Os gigahertz do chip não vêm dela mas da multiplicação dessa frequência de referência, de modo que a estabilidade de toda a máquina é herdada de um pedaço de mineral do tamanho de um grão de arroz.
A malha de captura de fase compara a frequência dividida do oscilador com a de referência e ajusta-o até as fases coincidirem; mudando o divisor muda-se a frequência em andamento. É ela justamente que permite à gestão da alimentação baixar o ciclo a algumas centenas de megahertz em repouso e levá-lo ao modo turbo por alguns segundos, enquanto houver margem térmica.
Dentro do núcleo há registos que contam ciclos, instruções concluídas, falhas de cache e saltos mal previstos, e podem ser lidos a partir do programa em andamento. Desses números obtém-se o número de ciclos por instrução — a única medida honesta de quão bem o código assentou num chip concreto.
Para ver o próprio ciclo é preciso um aparelho que apanhe as frentes com uma resolução de poucos picossegundos, e é ele também que mostra as coisas por causa das quais a frequência não pode subir mais: o tremor de fase, o desvio de chegada do sinal a diferentes cantos do chip e o abatimento da frente numa linha longa.
05 · Regras de escrita
Ciclos e hertz não são a mesma coisa
A frequência escreve-se em hertz, com o prefixo em maiúscula para mega e giga, ao passo que um número de ciclos se escreve inteiro, sem unidade alguma, visto que o ciclo não é unidade SI. Os índices de desempenho escrevem-se em maiúsculas, sem pontos e com indicação do núcleo a que se referem; misturar frequência e desempenho numa mesma grandeza não é permitido.
A primeira escrita mistura duas grandezas diferentes: um número de ciclos é adimensional, ao passo que o hertz mede frequência. A segunda infringe a caixa do prefixo, obrigatória para mega e giga. A terceira compara pela frequência arquiteturas cujos ciclos por instrução diferem várias vezes, e de tal comparação nada se segue. A quarta toma por constante uma grandeza variável.
06 · Unidades vizinhas
Ao lado estão as unidades que medem esse mesmo trabalho por outros lados: o hertz como frequência do próprio sinal, o número de operações em vírgula flutuante por segundo e o número de instruções que cabem a um ciclo. Todas se deduzem umas das outras assim que se conheçam a frequência e o comportamento da linha.
frequência, unidade SI
uma medida adimensional
uma medida do trabalho de cálculo
De entre as fichas do Simetrium estão ao lado hertz, que fixa a frequência, segundo e os seus prefixos submúltiplos, unix time, onde o limite é fixado também pela palavra de máquina, e o bit s o byte, com que se mede o que um ciclo transporta.
07 · Secção histórica
Trinta anos de corrida e um dia de cancelamento
O primeiro processador num só chip funcionava a uma frequência que um chip de hoje atravessa numa fração de microssegundo, e uma instrução levava-lhe oito ciclos. O ciclo de máquina era então uma noção literal: ler a instrução, descodificá-la, buscar os dados, calcular e escrever — cada etapa ocupava o seu ciclo e todas iam estritamente por ordem.
Assim que os andares aprenderam a trabalhar ao mesmo tempo sobre instruções diferentes, a medida habitual quebrou-se: uma instrução continuava a levar cinco ciclos, mas saía da linha a cada ciclo. Foi preciso virar a conta e falar de ciclos por instrução, que numa boa máquina desceu abaixo da unidade — isto é, num só ciclo termina mais de uma instrução.
Uma arquitetura com uma linha de trinta e um andares foi construída pela frequência e esbarrou no calor: os dez gigahertz prometidos exigiam um arrefecimento impensável numa caixa de secretária. O projeto foi encerrado e a indústria voltou-se para os muitos núcleos — não por serem melhores, mas porque o crescimento cúbico do consumo não deixou outro caminho.
Um núcleo de hoje não tem uma frequência única: em repouso desce a algumas centenas de megahertz, em carga sobe até aos cinco gigahertz e mantém-nos enquanto houver margem térmica. O número da ficha tornou-se uma promessa em condições favoráveis, e comparar máquinas por ele deixaram de o fazer tanto os fabricantes como os críticos.
Uma unidade cujo comprimento muda no decurso da medição
O ciclo está mal arranjado para o metrologista: o seu comprimento não é fixado por um padrão mas pelo traçado do chip, e muda num mesmo processador centenas de vezes por segundo, já que a gestão da alimentação ajusta a frequência à carga e à temperatura. Por isso o contador de ciclos não serve para medir o tempo, embora por fora pareça um relógio, e um programa que confie nele erra tanto quanto a frequência se moveu.
Em contrapartida, para a tarefa por causa da qual o ciclo apareceu, ele serve melhor do que qualquer unidade de tempo. Ao contar ciclos, medimos não uma duração mas o volume do trabalho de cálculo, e por isso o número de ciclos por instrução mantém-se comparável sob qualquer mudança de frequência — fala de quão bem o código assentou no chip, não de quantos segundos passaram.
Catálogo · unidades de medida
Uma ficha para cada grandeza
Sete unidades de base do SI, vinte e duas derivadas com nome próprio e grandezas fora do sistema sem as quais nem a técnica nem o calendário funcionariam.