Tomemos como ejemplo una CPU que es capaz de cambiar su velocidad de reloj, como una CPU de computadora moderna (Intel, AMD, lo que sea). Cuando hace un cierto cálculo a una velocidad de reloj particular, ¿genera la misma cantidad de calor que cuando hace el mismo cálculo a una velocidad de reloj más lenta? Sé que la disipación de calor y la acumulación de calor son problemas diferentes, así que hablemos sobre el calor bruto generado.
9
Respuestas:
Además de la velocidad del reloj, tenga en cuenta que en una CPU "grande" real (una que tiene cachés, un MMU, TLB, ejecución canalizada, SIMD, etc.) otro factor importante de cuánto calor se genera sería qué tan bien utiliza el flujo de instrucciones Los recursos de CPU disponibles. Si ejecuta un programa que requiere mucha memoria, la mayoría de las veces la CPU se estaría muriendo de hambre de datos, sin hacer nada, por lo que el calor producido sería relativamente bajo. Un código puramente de cálculo con bucles estrechos se calienta más. Se podría generar aún más calor con un código optimizado que no incurre en predicciones erróneas de las ramas, utiliza las unidades SIMD de forma intensiva, hace un uso óptimo de los cachés, etc.
Hay programas diseñados específicamente para operar la CPU en este modo, enfatizándolo tanto como sea posible, Prime95 es un ejemplo destacado para la PC.
De hecho, si una PC ya ejecuta Prime95 en todos los núcleos de CPU disponibles, y al mismo tiempo inicia otra aplicación intensiva de CPU (por ejemplo, renderizado 3D), notará que la CPU se enfría . Esto se debe a que tiene que compartir el código Prime95 muy pesado (que "ilumina todos los transistores" ) con el código de representación de demanda relativamente más baja (que probablemente tiene muchos errores de caché y errores de ramificación, lo que permite que la CPU se detenga por un rato y enfriar).
Otra cosa que debe tener en cuenta es que, por lo general, cada CPU tiene una tabla con velocidades de reloj permitidas y voltajes de núcleo asociados con cada velocidad. Los relojes más bajos también se combinan con un voltaje más bajo, ya que el fabricante ha determinado que la CPU será estable a ese voltaje. El consumo de energía varía aproximadamente linealmente con la velocidad del reloj, pero cuadráticamente con el voltaje.
fuente
La potencia consumida es proporcional a la velocidad de transición del reloj y las pérdidas de conducción al cambiar esas puertas de condensador efectivas. Sin embargo, el aumento de temperatura es proporcional a la potencia consumida por la resistencia térmica efectiva, en grados C por vatio y, por lo tanto, es independiente de la energía, o más bien puede funcionar más frío o más caliente dependiendo del consumo de energía y no distribuir esa energía durante un período de tiempo más largo. Puede haber una fórmula que muestra que el aumento de temperatura con la velocidad del reloj es una potencia fraccional de potencia mayor que uno.
fuente
La potencia será menor a la frecuencia de operación más baja.
Con el mismo voltaje central, la energía total sería mayor a la frecuencia de reloj más baja.
Pero si el voltaje del núcleo se ajusta con frecuencia, entonces la energía total puede ser menor.
Para los algoritmos que pasan la mayor parte de su tiempo esperando operaciones de E / S, el tiempo de ejecución será aproximadamente constante independientemente de la frecuencia del reloj central. Por lo tanto, la energía total requerida para el cálculo aumentará proporcionalmente a la frecuencia del reloj.
El consumo de energía de una CPU consta de dos partes.
1) Consumo de corriente estática (I_static). Para alguna tensión y temperatura de suministro en particular, este consumo de corriente es constante independientemente de lo que esté haciendo la CPU.
Una CPU hecha con tecnología CMOS consta de miles o millones de transistores MOSFET. El consumo de corriente estática se debe principalmente a la corriente combinada de fuga de estado apagado de millones de transistores MOSFET.
El consumo de corriente estática generalmente aumenta a medida que aumenta el voltaje de suministro.
El consumo de corriente estática generalmente aumenta a medida que aumenta la temperatura de la CPU.
El consumo de corriente estática es para muchos dispositivos mucho más pequeño que el consumo de corriente dinámico.
2) Consumo dinámico de corriente. Para un procesador construido usando procesos CMOS, la corriente dinámica ocurre cuando los transistores cambian entre estados de encendido / apagado.
Para una tensión de alimentación especificada, el consumo de corriente dinámico suele ser directamente proporcional a la frecuencia.
El consumo de corriente dinámico aumenta a medida que aumenta el voltaje de suministro.
La razon es la siguiente. Cada transistor MOSFET en la CPU tiene una cierta cantidad de capacitancia asociada. Cada vez que cambia un MOSFET; Se necesita una carga Q = C * V para cargar / descargar esa capacitancia.
El consumo de corriente dinámico para cada transistor es I_dynamic = C * V * f.
Independientemente de la frecuencia con la que se ejecutan las instrucciones, un conjunto particular de operaciones en una CPU en particular (suponiendo un comportamiento idéntico del caché y la memoria) consume una cierta cantidad de carga total (Q_program) debido al consumo dinámico de corriente, independientemente de la frecuencia que las instrucciones se ejecutan en.
Pero si las instrucciones se ejecutan más lentamente, la carga total debido al consumo de corriente estática será mayor porque ha pasado más tiempo.
Matemáticamente uno podría escribir ...
W = (I_dynamic + I_static) * V_supply
E = W * tiempo = Q_programa * V_supply + I_static * V_supply * time
Podemos ver que a medida que la frecuencia del reloj se aproxima a 0, la potencia se acercará a un valor fijo, pero la energía requerida para calcular el programa se aproxima al infinito.
Entonces, si (basado en las capacitancias de los transistores de la CPU) Q_program se fija para un voltaje de suministro y un conjunto de operaciones en particular, ¿cómo ahorran energía las CPU modernas al reducir su frecuencia de reloj? La respuesta es que la mayoría de las CPU modernas incluyen un regulador de voltaje central ajustable (o en un chip complementario). Cuando bajan su frecuencia de reloj, también pueden bajar su voltaje central. Q_program (y E_program) luego disminuye proporcionalmente con el voltaje de alimentación.
Tenga en cuenta que la CPU no puede usar el voltaje más bajo en las frecuencias más altas porque a voltajes más bajos aumenta el tiempo de conmutación del transistor.
La potencia es proporcional al voltaje (al cuadrado) y al consumo de corriente. Entonces, si el voltaje se cae simultáneamente con la frecuencia, entonces la potencia cae con el cubo de la frecuencia.
fuente
Los transistores usan energía, que se desperdicia como calor. Hay dos mecanismos, energía estática y dinámica. La energía estática es constante y la energía dinámica (conmutación) se produce cada vez que cambia de estado (0-> 1 o 1-> 0). La energía dinámica (conmutación) suele ser la mayor fuente de calor que la estática. El cálculo que desea realizar tomará la misma cantidad de ciclos de reloj y hará que la misma cantidad de bits de transistor se invierta independientemente de la velocidad del reloj. Por lo tanto, el calor dinámico es el mismo para ambas situaciones. El calor estático es ... estático. En resumen, suponiendo que la CPU SOLO esté haciendo este cálculo 1, el consumo de energía / calor es exactamente el mismo cuando se promedia durante un período de tiempo determinado.
fuente
En el escenario que describió, la energía requerida para el cálculo no depende de la velocidad del reloj. Pero el calor puede ser un término "blando". Digamos que el cálculo toma 1 Joule. Si lo haces en 1 segundo, eso es 1 Joule / seg = 1 vatio. Pero si toma 2 segundos, eso es 1 Joule / 2sec = 0.5 Joule / sec = 0.5 Watt.
El procesador definitivamente alcanzará una temperatura más alta si el cálculo se realiza más rápido, porque la energía se libera más rápido. No creo que tenga mucho sentido decir más que eso.
Oh, excepto que los números que te he dado no están destinados a ser realistas. Es solo el concepto.
fuente