Como sabes, las compañías suelen patentar marcas registradas para denominar a tecnologías que se conocen con un mismo nombre. Un hecho de puro marketing. Lo mismo sucede con la tecnología DVFS de las CPUs que te explicamos aquí, lo que se esconde detrás de marcas como Intel SpeedStep o EIST, AMD PowerNow! o Cool’n’Quiet, y también tras AMD Turbo Core e Intel Turbo Boost, entre otras, incluso de las GPUs.
Índice de contenidos
Potencia del chip
La potencia de un chip no solo afecta al consumo de energía, también a la temperatura. Por eso, es fundamental desarrollar medidas de gestión de energía para controlar según las necesidades de cada momento. Como sabes, para calcular la potencia en un circuito eléctrico, tenemos la fórmula:
P = V · I
Donde P es la potencia medida en vatios (W), V es el voltaje medido en voltios (V), y la I representa la corriente o intensidad que fluye a través del circuito medida en amperios (A). En cambio, existen factores que pueden influir en esta potencia en un chip, y no es tan sencillo calcularla como en otro tipo de circuitos. Por ejemplo, tenemos las fugas según la tecnología de fabricación, la cantidad de transistores, la frecuencia de reloj a la que se trabaja, o el voltaje que es variable, no siempre es el mismo.
Por tanto, para el cálculo debemos distinguir entre potencia estática y potencia dinámica. La potencia estática es la energía consumida por un chip incluso cuando no está realizando ninguna operación. Se debe principalmente a las corrientes de fuga en los transistores y se calcula:
Ps = V · Ileak
Se trata de la misma fórmula genérica anterior, pero modificada para usar la corriente de fuga total del chip. Esto dependerá de la tecnología de fabricación, la temperatura (al aumentar la temperatura del semiconductor también lo hacen las corrientes de fuga), etc.
La potencia dinámica es la energía consumida por un chip debido a la conmutación de los transistores. Es decir, cuando un transistor cambia de estado (de 0 a 1 o de 1 a 0), consume energía, por tanto, altamente dependiente de la frecuencia de reloj a la que trabaja. Se calcula de esta otra forma:
Pd = ACV²f
Donde A es el factor de actividad que representa la fracción de los transistores que cambian de estado con cada ciclo de reloj, algo complejo de conocer, ya que dependerá de las unidades funcionales activas en cada momento y eso depende de varios factores, entre ellos el tipo de instrucción ejecutada. Por otro lado tenemos C, que es la capacitancia total conmutada del chip, así como el voltaje y la frecuencia de reloj.
Esta fórmula nos indica que la potencia dinámica aumenta con el aumento del voltaje, de la frecuencia, o de la carga capacitiva.
¿Qué es DVFS?
El DVFS o Dynamic Voltage Frequency Scaling, también conocido como «throttling» de CPU, es una técnica de ahorro de energía en la que la velocidad de reloj de un procesador se ajusta automáticamente según la carga de trabajo actual. Esto permite al sistema equilibrar el rendimiento y el consumo de energía.
Esta tecnología funciona evaluando la carga de trabajo en cada momento, mediante la monitorización constante de la CPU y de factores como la temperatura medida por el sensor y el TDP. A partir de esto, ajusta el voltaje y la frecuencia de reloj según las demandas de cada instante. Por ejemplo, mientras los antiguos procesadores trabajaban a una frecuencia fija, como 500 Mhz, los actuales no lo hacen así. Tenemos DVFS que puede hacer que trabaje a 500 Mhz cuando no se demanda tanta potencia, o que suba a los 1800 Mhz si se necesita algo más de rendiniento, o que se ponga en algunos instantes a 4.3 Ghz si se necesita más potencia.
También te puede interesar conocer cuáles son las mejores CPUs del mercado
De esta forma, se consiguen una serie de beneficios:
- Reducción del consumo de energía: frecuencias y voltajes más bajos conducen a un menor consumo de energía, extendiendo la duración de la batería en dispositivos móviles y reduciendo los costos de energía.
- Temperaturas más bajas: un menor consumo de energía significa una menor generación de calor, lo que lleva a un funcionamiento más silencioso y una mayor vida útil de los componentes.
- Mejor estabilidad del sistema: el «throttling» puede prevenir el sobrecalentamiento, lo que puede causar inestabilidad del sistema y fallos. Además, también mejora otros fenómenos indeseables relacionados con el voltaje, la frecuencia y la temperatura, como la electromigración…
La técnica de escalamiento dinámico combina otras dos técnicas, por un lado el DFS y el DVS, es decir, el escalamiento de frecuencia dinámico y el escalamiento dinámico de voltaje. Es decir, dicho de otro modo, es como si el sistema estuviese haciendo constantemente overclocking/underclocking y overvolting/undervolting de forma controlada dentro de los márgenes especificados por el fabricante, siempre asegurando el buen funcionamiento.
Esto mismo que comento de la CPU también es aplicable a la GPU y otras unidades de procesamiento…
Te recomiendo leer nuestra guía sobre las mejores GPUs del mercado
Tipos de monitorización
Función DVFS | Intel Speed Shift | ACPI 5.0 CPPC |
Implementación | Hardware-based | Software-based |
Tiempo de respuesta | Rápido | Lento |
Nivel de control | Menos granular | Más granular |
Objetivo | Respuesta rápida para ajustes de frecuencia | Gestión de energía flexible |
Como estarás pensando, para poder implementar un sistema DVFS, no solo interviene la propia CPU, sino que también debe haber un sistema de gestión de energía como el ACPI, así como un soporte por parte del hardware que entrega las señales de voltaje y frecuencia, como los VRM, multiplicadores y divisores de frecuencia, así como el propio sistema operativo, que se encargará del monitoreo de la carga y asignación de procesos o threads… No obstnate, no siempre es así.
Tenemos que diferenciar entre varias formas de llevar esto a cabo. Tanto Intel Speed Shift como ACPI 5.0 CPPC son tecnologías diseñadas para mejorar el rendimiento y la eficiencia energética de los procesadores modernos. Si bien comparten un objetivo común, difieren en su implementación y nivel de control.
Intel Speed Shift
- Basado en hardware: es una característica a nivel de hardware, que usa los registros MSR, que permite al procesador ajustar rápidamente su frecuencia y voltaje en respuesta a cambios en la carga de trabajo.
- Respuesta más rápida: al evitar los métodos tradicionales basados en software, Intel Speed Shift permite ajustes de frecuencia y voltaje más rápidos y responsivos.
- Latencia reducida: esto conduce a una menor latencia y un mejor rendimiento, especialmente en escenarios con fluctuaciones frecuentes de la carga de trabajo.
- Mayor eficiencia energética: al optimizar el consumo de energía según la carga de trabajo actual, Intel Speed Shift puede ayudar a extender la duración de la batería y reducir el consumo de energía.
ACPI 5.0 CPPC
- Basado en software: es un marco basado en software que permite al sistema operativo comunicarse con el procesador y solicitar estados específicos de rendimiento y energía.
- Control flexible: proporciona un nivel de control más granular sobre el rendimiento y el consumo de energía del procesador, permitiendo ajustes más precisos.
- Rango más amplio de estados de rendimiento: permite una gama más amplia de estados de rendimiento, dando al sistema operativo más opciones para equilibrar el rendimiento y la eficiencia energética.
Marcas patentadas
Independientemente de la implementación o si se apoya en el hardware o en el software, no son más que tecnologías DVFS, pero que cada fabricante suele registrar con marcas patentadas con objetivo de marketing. Por ejemplo, tenemos:
- Intel:
- SpeedStep
- EIST (Enhanced Intel SpeedStep)
- Turbo Boost (distintas versiones)
- AMD:
- PowerNow!
- Cool’n’Quiet
- Turbo Core
- Precision Boost y PBO (Precision Boost Overdrive)
- PowerTune
- ZeroCore Power
- PowerPlay
- NVIDIA:
- GPU Boost
- Adaptative Boost
- Dynamic Boost
- VIA:
- LongHaul
- PowerSaver
- Transmeta:
- LongRun 1 y 2
Otros procesadores también usan este DVFS, pero a lo mejor no tienen este tipo de marcas. Lo vemos por ejemplo en los ARM, SPARC, POWER, etc., que también tienen casos similares.
Clock gating, Power gating y Glitch removal
Combinados con el DVFS, en los actuales procesadores, también tenemos otros métodos complementarios para mejorar aún más la eficiencia:
- Clock Gating: es una técnica que consiste en detener el reloj (o señal de reloj) de una parte del circuito cuando esa parte no está siendo utilizada. Al detener el reloj, se evita que los circuitos internos cambien de estado, lo que reduce el consumo de energía estática y dinámica, además se reduce el calor generado.
- Power Gating: es una técnica más agresiva que el clock gating. En lugar de simplemente detener el reloj, el power gating desconecta completamente la alimentación de una parte del circuito cuando no está en uso, como puede ser un núcleo entero, partes como la memoria caché, o unidades funcionales. Comparado con el clock gating, el power gating ofrece una reducción de energía aún mayor.
- Glitch Removal: los glitches son señales eléctricas espurias que pueden ocurrir en los circuitos digitales. Estos glitches pueden provocar un consumo de energía innecesario y, en casos extremos, pueden causar errores de funcionamiento. La técnica de glitch removal consiste en agregar circuitos adicionales para detectar y eliminar estos glitches antes de que puedan afectar el circuito principal, generando ese consumo extra e incluso errores de funcionamiento.
- Multinúcleo heterogéneo: en este caso tenemos núcleos de lato rendimiento y núcleos de menos rendimiento, pero mayor eficiencia. Incluso puede haber clusters de más de dos tipos de núcleos. Gracias a eso, el planificador puede asignar una tarea a uno u otro, con el objetivo de reducir el consumo. Por ejemplo, un proceso que no necesita tantos recursos, puede ser ejecutado en un núcleo más simple y eficiente, sin despertar a uno mayor y que consume más energía. Bajo este aspecto, también tenemos marcas patentadas como big.LITTLE y DynamIQ de ARM, tecnologías como el Intel Thread Director para los núcleos P-core y E-Core de esta marca, etc.
Todas estas prácticas tienen el inconveniente de agregar complejidad al hardware, como es lógico, pero sus beneficios compensan.
No olvides dejar tus comentarios sobre el tema…