¿Cómo afecta el cálculo pesado al consumo de energía y la generación de calor de una CPU?

Por lo general, un sistema operativo que está inactivo emitirá un tipo de instrucción de detención o espera de interrupción (en ARM, que generalmente es WFI o WFE). En la mayoría de los procesadores modernos, esto es suficiente para poner la CPU en algún tipo de estado de suspensión. En los procesadores x86 modernos (y algunos ARM), esto lo pone en un modo de activación de reloj en el que la CPU no está sincronizada.

Obviamente, esto reduce el consumo de energía y la generación de calor de un procesador. No hay actividad en el interior, excepto por un número muy pequeño (relativamente) de celdas “siempre encendidas” para realizar un seguimiento de las cosas para cuando el procesador se activa. Sin embargo, todavía hay fugas en este punto.

Si un sistema operativo es malo y no sabe lo suficiente como para emitir una instrucción de detención, generalmente enviará una serie de instrucciones no operativas; ningún sistema operativo moderno hace esto.

Cada arquitectura incluye algún tipo de instrucción no-op (nop) que generalmente consta de todos los 0. Para una microarquitectura típica, los nop se decodifican y luego se descartan. El procesador continuará haciendo cosas como la búsqueda previa y la decodificación, por lo que aún se usará la energía en el sistema de caché y el decodificador, pero generalmente es una pequeña fracción de la energía consumida por la CPU.

Incluso las instrucciones activas varían en la cantidad de energía que requieren. Por ejemplo, una adición múltiple de coma flotante SIMD de 128 bits, por lo general, consume la peor potencia en comparación con una operación AND de 32 bits.

Las computadoras modernas usan una potencia significativa solo cuando trabajan. Entonces, si estás haciendo más trabajo, estás obteniendo más poder. Una PC correctamente diseñada es capaz de entregar toda la potencia que alguna vez necesitará, pero en la práctica rara vez o incluso nunca puede llegar allí.

En el nivel superior, hay administración de energía de software. Muchos dispositivos se pueden apagar cuando no se usan … las E / S inteligentes y el software del sistema hacen exactamente eso. Esto es algo impredecible en las PC, mejor en las computadoras portátiles y, en general, muy bueno en los dispositivos móviles. Y, por supuesto, incluso si algo se está ejecutando, si solo tiene un poco de trabajo por hacer, puede pasar a un estado inactivo de baja potencia durante gran parte del tiempo.

En el nivel bajo, se trata de transistores CMOS. CMOS significa “semiconductor de óxido de metal complementario”, que básicamente dice que para cualquier interruptor, tiene un transistor para cambiar una señal a “1”, otro para cambiarlo a “0”, esa es la parte “complementaria”. Un transistor CMOS es básicamente un pequeño cable hecho de silicio que se puede apagar o encender a través de un voltaje aplicado a una “puerta”. El transistor es un excelente interruptor: cuando está apagado, presenta un circuito abierto casi perfecto, cuando está encendido, un camino conductor con una resistencia en el rango de mili-ohmios.

El problema es la conmutación: cuando cambia el estado en una puerta CMOS, ambos transistores pasan por la parte “activa” de su operación, en la que ese pequeño cable de silicio actúa como una resistencia. Una resistencia es básicamente un dispositivo que convierte la energía en calor. Entonces, cuando cambias los dispositivos CMOS, consumen energía … cuando están sentados, casi ninguno.

Las puertas CMOS solo consumen energía cuando cambian de estado, por lo que, en igualdad de condiciones, la CPU consume más energía cuando está haciendo algo computacionalmente intenso que cuando estás navegando por la Web. Puedo dar una prueba anecdótica de esto. Mi computadora se apaga ocasionalmente cuando el BIOS detecta que la temperatura de la CPU es demasiado alta. Esto sucede solo bajo un conjunto de circunstancias: es un día caluroso, el disipador de calor de la CPU se ha obstruido un poco y está haciendo una conversión de formato de video, por ejemplo, convertir una película MP4 a XVID. Esta conversión de formato es probablemente el trabajo más intensivo en computación que mi computadora tiene que hacer, e implica un uso intensivo del coprocesador matemático. Es un segundo procesador dentro de un procesador que, en la actividad normal, nunca se usa en absoluto.