El ciclo de reloj del procesador y el ciclo de máquina
Unidad ajena al sistema · magnitud: un intervalo de sincronización y una medida del trabajo de cálculo
En el otoño de 2004 Intel canceló el desarrollo de un procesador que debía funcionar a diez gigahercios, y aquello no fue un fracaso técnico sino el reconocimiento de un muro físico: un chip empujado al doble de velocidad exigía cuatro veces más potencia y sencillamente se fundía. La carrera de frecuencias, que duraba treinta años, acabó en un solo día, y con ella la costumbre de juzgar una máquina por la cifra de la caja.
El ciclo mismo es el intervalo entre dos flancos de la señal de reloj, ese paso con el que todos los elementos síncronos del chip conmutan a la vez. Su inversa es la frecuencia, y así un ciclo a cinco gigahercios dura dos décimas de nanosegundo, en las que la luz alcanza seis centímetros y una señal por una pista de cobre menos aún: menos de lo que mide el chip.
01 · Definición
El ciclo es el periodo de la señal de reloj, es decir, el intervalo entre dos flancos del mismo sentido en los que los elementos síncronos del chip cambian de estado a la vez. El ciclo de máquina es un número entero de ciclos de reloj en el que el procesador realiza una acción concluida; en una máquina segmentada se sustituye por la medida inversa —el número de ciclos por instrucción—, cuya propia inversa dice cuántas instrucciones salen del cauce en un ciclo.
La longitud de un ciclo no la fija la naturaleza sino el trazado del chip: no debe ser más corta que el camino más lento entre dos biestables, incluido el retardo del propio biestable y un margen para la dispersión de los parámetros. De ahí el recurso habitual del diseñador: cortar un camino lógico largo en dos etapas del cauce; el ciclo se hace la mitad de corto, la frecuencia el doble de alta, y la instrucción recorre ahora toda la escalera.
Lo que limita la frecuencia, sin embargo, no es la lógica sino la potencia: el consumo dinámico crece con la frecuencia y con el cuadrado de la tensión, y la tensión hay que subirla para que el circuito llegue a tiempo a la frecuencia mayor. El calor va por eso aproximadamente como el cubo de la frecuencia, y en esa dependencia cúbica la carrera de los gigahercios se detuvo hacia los cuatro.
Por último, el ciclo es una unidad cuya longitud no es constante. La gestión de la alimentación cambia la frecuencia cientos de veces por segundo, ajustándose a la carga y a la temperatura, y por eso el número de ciclos no permite juzgar el tiempo transcurrido, pero sí el trabajo realizado: el contador de ciclos no cuenta segundos sino pasos de cálculo, y en ello está su verdadero valor.
Lleve la frecuencia con el deslizador y siga dos curvas que se apartan en sentidos contrarios. La verde es la distancia que alcanza a recorrer una señal en un ciclo: cuanto mayor la frecuencia, más corto ese camino, y a cinco gigahercios resulta menor que el propio chip. La carmesí es lo que cuesta en ciclos un acceso a la memoria: su latencia en nanosegundos apenas cambia, de modo que en ciclos no hace sino crecer.
Al cortar el trabajo en etapas, el diseñador acorta el ciclo, pero una sola instrucción recorre ahora toda esa escalera, y su propia latencia no disminuye: aumenta. La ganancia aparece solo cuando las etapas están llenas de instrucciones distintas, y ante un salto mal predicho hay que vaciar el cauce entero: cuanto más profundo, más caro sale.
02 · Conversión
Frecuencia, periodo, trabajo
Introduzca una frecuencia o una longitud de ciclo y la ficha mostrará la inversa, el camino de la señal en un ciclo y el coste de los accesos a memoria en ciclos. La primera familia es exacta por definición, la segunda se apoya en valores medios de un núcleo, la tercera en las latencias típicas de la jerarquía de memoria actual.
La velocidad de la señal por una pista se toma como seis décimas de la velocidad de la luz; en los ajustes finos de la ficha puede cambiarse a la mitad.
Solo pueden compararse por frecuencia núcleos iguales, porque el número de ciclos por instrucción difiere varias veces entre arquitecturas: una máquina toma cuatro instrucciones en un ciclo, otra apenas una. Precisamente por eso la cifra en gigahercios salió de la publicidad y en su lugar entraron conjuntos de pruebas que ya no miden ciclos sino trabajo realizado.
| Valor | Nota | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · Órdenes de magnitud
escala logarítmica: del ciclo al cuanto del planificador04 · Instrumentos de medida
Con qué se fija el ciclo y con qué se cuenta
La fuente del ciclo es una lámina de cuarzo que oscila por lo común a unas decenas de megahercios con una exactitud de unas diez millonésimas. Los gigahercios del chip no vienen de ella sino de multiplicar esa frecuencia de referencia, de modo que la estabilidad de toda la máquina se hereda de un trozo de mineral del tamaño de un grano de arroz.
El lazo de enganche de fase compara la frecuencia dividida del oscilador con la de referencia y lo ajusta hasta que las fases coinciden; cambiando el divisor se cambia la frecuencia sobre la marcha. Es él justamente el que permite a la gestión de la alimentación bajar el ciclo a unos cientos de megahercios en reposo y subirlo al modo turbo durante unos segundos, mientras quede margen térmico.
Dentro del núcleo hay registros que cuentan ciclos, instrucciones terminadas, fallos de caché y saltos mal predichos, y pueden leerse desde el programa en marcha. De esos números se obtiene el número de ciclos por instrucción: la única medida honrada de lo bien que el código se ha asentado en un chip concreto.
Para ver el ciclo mismo hace falta un aparato que capte los flancos con una resolución de unos pocos picosegundos, y él mismo muestra las cosas por las que la frecuencia no puede subir más: el temblor de fase, el desfase de llegada de la señal a distintas esquinas del chip y el desplome del flanco en una línea larga.
05 · Reglas de escritura
Ciclos y hercios no son lo mismo
La frecuencia se escribe en hercios, con el prefijo en mayúscula para mega y giga, mientras que un número de ciclos se escribe entero, sin unidad alguna, puesto que el ciclo no es unidad del SI. Los índices de rendimiento se escriben en mayúsculas, sin puntos y con indicación del núcleo al que se refieren; mezclar frecuencia y rendimiento en una misma magnitud no está permitido.
La primera escritura mezcla dos magnitudes distintas: un número de ciclos es adimensional, mientras que el hercio mide frecuencia. La segunda infringe la caja del prefijo, obligatoria para mega y giga. La tercera compara por frecuencia arquitecturas cuyos ciclos por instrucción difieren varias veces, y de tal comparación no se sigue nada. La cuarta toma por constante una magnitud variable.
06 · Unidades vecinas
Al lado están las unidades que miden ese mismo trabajo por otros lados: el hercio como frecuencia de la señal misma, el número de operaciones en coma flotante por segundo y el número de instrucciones que corresponden a un ciclo. Todas se deducen unas de otras en cuanto se conocen la frecuencia y el comportamiento del cauce.
frecuencia, unidad del SI
una medida adimensional
una medida del trabajo de cálculo
De las fichas de Simetrium están al lado hercio, que fija la frecuencia, segundo y sus prefijos submúltiplos, unix time, donde el límite lo fija también la palabra de máquina, y el bit s el byte, con los que se mide lo que un ciclo transporta.
07 · Sección histórica
Treinta años de carrera y un día de cancelación
El primer procesador en un solo chip funcionaba a una frecuencia que un chip de hoy atraviesa en una fracción de microsegundo, y una instrucción le llevaba ocho ciclos. El ciclo de máquina era entonces una noción literal: leer la instrucción, descifrarla, buscar los datos, calcular y escribir; cada etapa ocupaba su ciclo y todas iban estrictamente por turno.
En cuanto las etapas aprendieron a trabajar a la vez sobre instrucciones distintas, la medida habitual se rompió: una instrucción seguía tardando cinco ciclos, pero salía del cauce cada ciclo. Hubo que dar la vuelta a la cuenta y hablar de ciclos por instrucción, que en una buena máquina bajó de la unidad: es decir, en un solo ciclo termina más de una instrucción.
Una arquitectura con un cauce de treinta y una etapas se construyó por la frecuencia y topó con el calor: los diez gigahercios prometidos exigían una refrigeración impensable en una caja de escritorio. El proyecto se cerró y la industria se volvió hacia los muchos núcleos, no porque sean mejores, sino porque el crecimiento cúbico del consumo no dejó otro camino.
Un núcleo de hoy no tiene una sola frecuencia: en reposo baja a unos cientos de megahercios, bajo carga sube hacia los cinco gigahercios y la sostiene mientras haya margen térmico. La cifra de la ficha se volvió una promesa en condiciones favorables, y comparar máquinas por ella dejaron de hacerlo tanto los fabricantes como los reseñadores.
Una unidad cuya longitud cambia durante la medición
El ciclo está mal dispuesto para el metrólogo: su longitud no la fija un patrón sino el trazado del chip, y cambia en un mismo procesador cientos de veces por segundo, ya que la gestión de la alimentación ajusta la frecuencia a la carga y a la temperatura. Por eso el contador de ciclos no sirve para medir el tiempo, aunque por fuera parezca un reloj, y un programa que se fíe de él errará tanto como se haya movido la frecuencia.
En cambio, para la tarea por la que el ciclo nació, sirve mejor que cualquier unidad de tiempo. Al contar ciclos no medimos duración sino volumen de trabajo de cálculo, y por eso el número de ciclos por instrucción sigue siendo comparable ante cualquier cambio de frecuencia: habla de lo bien que el código se ha asentado en el chip, no de cuántos segundos han pasado.
Catálogo · unidades de medida
Una ficha para cada magnitud
Siete unidades básicas del SI, veintidós derivadas con nombre propio y magnitudes ajenas al sistema sin las cuales no funcionarían ni la técnica ni el calendario.