Suponga que un cálculo particular es puramente combinatorio, es decir, son algunas entradas que alimentan una vasta colección de compuertas AND, OR e INVERT, que alimentan algo de salida. Supongamos que todas las puertas tienen la misma latencia y que no hay demoras en los cables, demoras en la carga u otras realidades molestas. Suponga que la ruta de acceso del peor de los casos de alguna entrada a alguna salida es de 100 retrasos de puerta.
Supongamos que un retraso de puerta es de 100 picosegundos. Luego, este cálculo se ejecuta (en el peor de los casos) en 10,000 picosegundos, o 10 nanosegundos. El rendimiento máximo que podría tener es un resultado cada 10 nanosegundos y una latencia de un reloj. La velocidad de reloj máxima es igualmente cada 10 nanosegundos, o 100 megahercios.
Ahora ordene las puertas por el número de demoras de puerta, el peor de los casos, entre las entradas y la puerta. Cada 10 filas de puertas, coloque un registro cronometrado en cada cable que cruza esa línea. Cada ruta debe tener 10 registros (así como las puertas originales).
- ¿Cuáles son las ventajas de la arquitectura de 128 bits sobre la de 64 bits?
- ¿El aprendizaje por refuerzo se usa popularmente en la optimización de ejecución comercial?
- ¿Cómo incorporaron las grandes empresas el aprendizaje automático y el HPC (por ejemplo)?
- ¿Por qué es útil la teoría de autómatas?
- ¿Cómo son beneficiosas la IA, el aprendizaje automático y la IoT en los países remotos?
¡Ahora el ciclo de reloj mínimo es de solo 1 nanosegundo! Cualquier conjunto particular de operandos se abrirá paso a través de la lógica y los registros en 10 ciclos. La latencia será la misma que antes, pero la lógica canalizada puede producir un nuevo resultado cada ciclo de nanosegundos.
Pasar de una tubería de 1 etapa a una tubería de 10 etapas nos permitió aumentar la velocidad del reloj por 10x y multiplicar el número de resultados por unidad de tiempo por 10. El tiempo para producir cualquier resultado en particular no cambia.
El lector de alertas notará que no cobré nada por todos estos registros. Si están separados de la lógica, ellos mismos agregan demora, pero hay diseños que integran la lógica con los registros, como Earle Latches, que permiten registros de tubería “libres”.
Es importante recordar que las altas frecuencias de reloj en sí mismas son algo malo. La energía utilizada por la lógica CMOS es proporcional a la velocidad del reloj, y generalmente tiene que ejecutar la lógica a voltajes más altos para acelerar el reloj, lo que también aumenta el uso de energía. Mientras el rendimiento de toda la máquina mejore en el mismo factor (o no le importa la potencia), todavía está bien.