Así es como tu PC mide la temperatura y el consumo del hardware

El hardware que suele promocionarse en el marketing son las memorias y procesadores de todo tipo, pero un PC es algo lo suficientemente complejo para que si algo sale mal se acaba rompiendo el sistema por completo. Es aquí donde entran lo que podemos llamar sistemas de telemetría o monitorización, los cuales controlan la temperatura y el consumo energético de los componentes de tu PC.

Uno de los puntos clave en la actualidad en lo que al diseño de semiconductores es todo lo referente al consumo energético y al color transmitido por los componentes. Ya que un consumo energético excesivo genera un calor excesivo que puede disminuir la vida del componente o en su defecto dejarlo inútil para siempre.

Temperatura GPU

Otro de los motivos es de cara al consumo energético, muchos diseños lo que utilizan son trucos como separar el dominio energético de sus diferentes partes, de tal manera que cuando un componente no es utilizado se le apaga la alimentación de energía eléctrica y deja de funcionar. Mientras que otros se basan en disminuir la velocidad de reloj si la carga de trabajo es baja y aumentarla cuando es alta.

Pero para que los procesadores se adapten necesitan información a tiempo real que les marque las temperaturas y el voltaje de los diferentes componentes, para adaptar sus velocidades de reloj y activar y desactivar las diferentes parte del hardware, ya sea a nivel de SoC como a nivel de varios componentes en una placa.

¿Qué son los sistemas de telemetría y donde se encuentran?

PWM AMD Escasez

En realidad los sistemas de telemetría no son más que pequeños chips que no son otra cosa que termómetros y/o voltimetros digitales, los cuales se encargan de hacer mediciones continuas al hardware al que están conectados y trasladar esa información a una serie de microcontroladores que a partir de la telemetría obtenida por los sistema de monitorización manejan las velocidades de reloj, el voltaje e incluso son capaces de apagar partes del procesador.

En cuanto a su localización depende, por ejemplo podemos encontrarlos dentro de un mismo chip como en forma de componentes externos, dependiendo de las especificaciones y utilidad de cada tipo de procesador. En realidad la mayoría de SoCs de hoy en día tienen varios sistemas de monitorización por hardware que envían los datos de telemetría a los diferentes microcontroladores.

Estos son sumamente importantes en los SoCs, donde la cercanía de los componentes produce lo que llamamos ahogamiento termal, lo que impide que las diferentes partes por su estrecha integración no puedan alcanzar las mismas velocidades de reloj que por separado, por lo que es esencial que los sistemas de monitorización de voltaje y temperatura se encuentren dentro del SoC.

¿Qué es un microcontrolador?

Un microcontrolador es en mismo un ordenador en un chip, con un nivel de integración mucho más alto que un SoC debido a que integran en un mismo chip tanto las unidades de procesamiento como la memoria RAM, teniendo solo comunicación con el exterior a través de una serie de pines de E/S que sirven para cargar el programa que ejecutarán de manera recursiva.

Los microcontroladores se empezaron a utilizar en los PCs a partir del IBM PC XT de 1983 en el que el Intel 8048 gestionaba al 8086, con el tiempo se hicieron más complejos y se fueron encargando de diversas tareas en segundo plano como por ejemplo la gestión de la energía y la temperatura de los procesadores.

El motivo por el cual se utilizan microcontroladores y no microprocesadores es porque al no compartir la RAM con la CPU se evita no solo contención en el acceso, sino también que código malicioso acceda al mismo. No obstante las actualizaciones de firmware se cargan desde ciertas direcciones de la RAM del sistema antes de ser copiadas a la RAM de cada microcontrolador durante el arranque.

Un ejemplo de un microcontrolador para telemetría: el AMD SMUSMU AMD telemetriaEn muchos de los diagramas de los SoCs, CPU y GPUs de AMD habréis visto una pieza nombrada como SMU, sobre la cual os habréis encogido de hombros por no saber lo que es y su funcionalidad. Si leemos la documentación oficial de AMD acerca de lo que es la SMU podemos encontrar la siguiente afirmación:

La Unidad de Gestión del sistema, System Management Unit o SMU en inglés, es un subcomponente del northbridge que es el responsable de varias tareas gestión de la energía durante el encendido del PC y en pleno funcionamiento del mismo, el cual incluye un microcontrolador para asistir (en dicha tarea).

Hay que tener en cuenta que desde la aparición de los primeros x86-64 por parte de AMD lo que llamamos northbridge, el cual es el hardware encargado de comunicar la CPU con la RAM del sistema, se encuentra dentro del procesador, por lo que la unidad o unidades SMU se encuentran dentro del propio procesador.

Diagrama LM32

La SMU no es solo utilizada por AMD en sus CPU sino también en sus GPU y se trata de un microcontrolador LM32 de Lattice, el cual es licenciado por AMD y se encarga de gestionar todo lo relacionado con el consumo energético en cada momento, la diferencia es que con el tiempo AMD lo ha ido evolucionando y existen varias SMUs por los diferentes núcleos.

Ryzen 5000 Mobile CCCP

Por ejemplo, en los Ryzen 5000 para portátiles, AMD ha colocado una unidad de gestión del sistema para que gestione el consumo energético de cada uno de los núcleos Zen 3 de dicho procesador, haciendo que cada uno de ellos tenga su propio dominio energético y pueda fluctuar en velocidad de reloj y voltaje de manera sincronizada o independiente respecto al resto de núcleos.

La contrapartida en el caso de Intel es el llamado Management Engine, cuya función es exactamente la misma. Tanto el AMD como el Intel ME tienen la particularidad de tener un nivel de privilegio por encima del propio procesador, teniendo la capacidad de parar a la CPU en seco y al resto de componentes si se produce una situación de peligro para el PC.