En las brumas del tiempo cuando comencé a codificar, al menos hasta donde yo sé, los procesadores usaban una cantidad fija de energía. No había tal cosa como que un procesador estuviera "inactivo".
En la actualidad, existen todo tipo de tecnologías para reducir el consumo de energía cuando el procesador no está muy ocupado, principalmente mediante la reducción dinámica de la frecuencia de reloj.
Mi pregunta es ¿por qué correr a una velocidad de reloj más baja consume menos energía?
Mi imagen mental de un procesador es de un voltaje de referencia (digamos 5 V) que representa un 1 binario y 0 V que representa 0. Por lo tanto, tiendo a pensar en un 5 V constante que se aplica en todo el chip, con las diversas puertas lógicas desconectando este voltaje cuando está "apagado", lo que significa que se utiliza una cantidad constante de energía. La velocidad a la que se activan y desactivan estas puertas parece no tener relación con la potencia utilizada.
No tengo dudas de que esta es una imagen irremediablemente ingenua, pero no soy un ingeniero eléctrico. ¿Alguien puede explicar qué está sucediendo realmente con el escalado de frecuencia y cómo ahorra energía? ¿Hay alguna otra forma en que un procesador usa más o menos energía dependiendo del estado? Por ejemplo, ¿usa más energía si hay más puertas abiertas?
¿En qué se diferencian los procesadores móviles / de baja potencia de sus primos de escritorio? ¿Son más simples (menos transistores) o hay alguna otra diferencia fundamental de diseño?
Respuestas:
Aquí es donde te equivocas. Básicamente, cada puerta es un condensador con una capacidad increíblemente pequeña. Encendiéndolo y apagándolo "conectando" y "desconectando" el voltaje mueve una carga eléctrica increíblemente pequeña dentro o fuera de la puerta, eso es lo que lo hace actuar de manera diferente.
Y una carga eléctrica en movimiento es una corriente que utiliza energía. Todas esas pequeñas corrientes de miles de millones de puertas que se cambian miles de millones de veces por segundo se suman bastante.
fuente
Como señala el comentario de SK-logic, la mayor parte del poder se gasta realmente en cambiar el flip-flop en lugar de un estado estable.
Para reducir dinámicamente hay dos cosas principales que puede hacer IIRC.
Si no se sincronizan áreas enteras de un chip, puede apagar la alimentación de esas áreas por completo
El árbol del reloj en sí mismo es uno de los drenajes de energía más grandes del sistema, en gran medida porque es la parte de conmutación más rápida de un sistema. Por lo tanto, reducir la potencia en el árbol del reloj en sí es significativo.
fuente
La potencia consumida por un circuito electrónico tiene dos componentes:
Para reducir el consumo, los diseñadores de procesadores utilizan varias técnicas:
Estas técnicas tienen como resultado que, dependiendo de su carga, puede estar mejor, desde el punto de vista de consumo de energía, ya sea reduciendo la frecuencia o haciendo un "sprint" a toda velocidad y luego cortando un subconjunto de los circuitos.
fuente
Correr a una velocidad de reloj más baja no afecta la energía requerida para realizar una tarea fija. Incluso podría aumentar la energía requerida si tiene en cuenta las fugas y puede apagarse por completo.
Cuando una velocidad de reloj más baja ahorra energía, también es posible reducir el voltaje de funcionamiento. La reducción de voltaje a menudo ahorra suficiente energía para compensar la necesidad de permanecer activo durante más tiempo.
fuente