El escalado dinámico de frecuencia (también conocido como aceleración de CPU ) es una técnica de administración de energía en la arquitectura de computadoras mediante la cual la frecuencia de un microprocesador se puede ajustar automáticamente "sobre la marcha" dependiendo de las necesidades reales, para conservar energía y reducir la cantidad de calor generado por el chip. El escalado dinámico de frecuencia ayuda a conservar la batería de los dispositivos móviles y a disminuir el costo de enfriamiento y el ruido en entornos informáticos silenciosos , o puede ser útil como medida de seguridad para sistemas sobrecalentados (por ejemplo, después de un overclocking deficiente ).
El escalado dinámico de frecuencia casi siempre aparece junto con el escalado dinámico de voltaje , ya que las frecuencias más altas requieren voltajes de suministro más altos para que el circuito digital produzca resultados correctos. El tema combinado se conoce como escalado dinámico de voltaje y frecuencia ( DVFS ).
La potencia dinámica ( potencia de conmutación ) disipada por un chip es C·V 2 ·A·f , donde C es la capacitancia que se conmuta por ciclo de reloj, V es el voltaje , A es el factor de actividad [1] que indica el número promedio de conmutaciones. eventos por ciclo de reloj por los transistores en el chip (como una cantidad sin unidades) y f es la frecuencia del reloj. [2]
Por lo tanto, el voltaje es el principal determinante del uso de energía y calefacción. [3] El voltaje requerido para un funcionamiento estable está determinado por la frecuencia a la que se sincroniza el circuito y puede reducirse si también se reduce la frecuencia. [4] Sin embargo, la potencia dinámica por sí sola no representa la potencia total del chip, ya que también existe la potencia estática, que se debe principalmente a varias corrientes de fuga. Debido al consumo de energía estática y al tiempo de ejecución asintótico, se ha demostrado que el consumo de energía del software muestra un comportamiento energético convexo, es decir, existe una frecuencia de CPU óptima a la que se minimiza el consumo de energía. [5] La corriente de fuga se ha vuelto cada vez más importante a medida que los tamaños de los transistores se han vuelto más pequeños y los niveles de voltaje umbral se reducen. Hace una década, la potencia dinámica representaba aproximadamente dos tercios de la potencia total del chip. La pérdida de energía debido a corrientes de fuga en las CPU y SoC contemporáneos tiende a dominar el consumo total de energía. En el intento de controlar la potencia de fuga, las puertas metálicas de alta k y las puertas de potencia han sido métodos comunes.
El escalado de voltaje dinámico es otra técnica de conservación de energía relacionada que a menudo se usa junto con el escalado de frecuencia, ya que la frecuencia a la que puede funcionar un chip está relacionada con el voltaje de funcionamiento.
La eficiencia de algunos componentes eléctricos, como los reguladores de voltaje, disminuye al aumentar la temperatura, por lo que el uso de energía puede aumentar con la temperatura. Dado que el aumento del uso de energía puede aumentar la temperatura, los aumentos en el voltaje o la frecuencia pueden aumentar las demandas de energía del sistema incluso más de lo que indica la fórmula CMOS, y viceversa. [6] [7]
ACPI 1.0 (1996) define una forma para que una CPU pase a "estados C" inactivos, pero no define ningún sistema de escalado de frecuencia.
ACPI 2.0 (2000) introduce un sistema de estados P (estados de potencia-rendimiento) que un procesador puede usar para comunicar sus posibles configuraciones de frecuencia-potencia al sistema operativo. Luego, el sistema operativo establece la velocidad según sea necesario cambiando entre estos estados. SpeedStep, PowerNow!/Cool'n'Quiet y PowerSaver funcionan en estados P. Hay un límite de 16 estados como máximo. [8]
ACPI 5.0 (2011) introduce el control colaborativo del rendimiento del procesador (CPPC), exponiendo cientos de niveles de rendimiento al sistema operativo para su selección en forma de un "nivel de rendimiento" abstraído de la frecuencia. Esta abstracción proporciona cierta libertad para que el procesador ajuste su funcionamiento de otras formas además de la frecuencia. [9] [10] [11]
Varias CPU modernas pueden realizar escalado de frecuencia de forma autónoma, utilizando un rango de nivel de rendimiento y una sugerencia de "preferencia de eficiencia/rendimiento" del sistema operativo.
El escalado dinámico de frecuencia reduce la cantidad de instrucciones que un procesador puede emitir en un período de tiempo determinado, lo que reduce el rendimiento. Por lo tanto, generalmente se utiliza cuando la carga de trabajo no está vinculada a la CPU.
El escalamiento dinámico de frecuencia por sí solo rara vez vale la pena como forma de conservar la potencia de conmutación. Ahorrar la mayor cantidad posible de energía también requiere un escalado dinámico de voltaje, debido al componente V 2 y al hecho de que las CPU modernas están fuertemente optimizadas para estados inactivos de bajo consumo de energía. En la mayoría de los casos de voltaje constante, es más eficiente correr brevemente a la velocidad máxima y permanecer en un estado de inactividad profunda durante más tiempo (llamado "carrera hacia el ralentí" o sprint computacional), que correr a una frecuencia de reloj reducida durante mucho tiempo y sólo permanece brevemente en un estado de inactividad leve. Sin embargo, reducir el voltaje junto con la velocidad del reloj puede cambiar esas compensaciones.
Una técnica relacionada pero opuesta es el overclocking , mediante el cual el rendimiento del procesador aumenta aumentando la frecuencia (dinámica) del procesador más allá de las especificaciones de diseño del fabricante.
Una diferencia importante entre los dos es que en los sistemas de PC modernos, el overclocking se realiza principalmente a través del bus frontal (principalmente porque el multiplicador normalmente está bloqueado), pero el escalado dinámico de frecuencia se realiza con el multiplicador . Además, el overclocking suele ser estático, mientras que el escalado de frecuencia dinámico es siempre dinámico. El software a menudo puede incorporar frecuencias overclockeadas en el algoritmo de escalado de frecuencia, si los riesgos de degradación del chip son permisibles.
La tecnología de aceleración de CPU de Intel , SpeedStep , se utiliza en sus líneas de CPU móviles y de escritorio.
AMD emplea dos tecnologías diferentes de aceleración de CPU. La tecnología Cool'n'Quiet de AMD se utiliza en sus líneas de procesadores de escritorio y servidores. El objetivo de Cool'n'Quiet no es ahorrar batería, ya que no se utiliza en la línea de procesadores móviles de AMD, sino producir menos calor, lo que a su vez permite que el ventilador del sistema gire a velocidades más lentas. lo que resulta en un funcionamiento más fresco y silencioso, de ahí el nombre de la tecnología. PowerNow de AMD ! La tecnología de aceleración de CPU se utiliza en su línea de procesadores móviles, aunque algunas CPU compatibles, como la AMD K6-2 +, también se pueden encontrar en computadoras de escritorio.
AMD PowerTune y AMD ZeroCore Power son tecnologías de escalado de frecuencia dinámico para GPU .
Los procesadores de VIA Technologies utilizan una tecnología denominada LongHaul (PowerSaver), mientras que la versión de Transmeta se denominó LongRun .
El chip AsAP 1 de 36 procesadores se encuentra entre los primeros chips de procesador multinúcleo que admiten una operación de reloj completamente sin restricciones (requiriendo solo que las frecuencias estén por debajo del máximo permitido), incluidos cambios arbitrarios en frecuencia, inicios y paradas. El chip AsAP 2 de 167 procesadores es el primer chip de procesador multinúcleo que permite a los procesadores individuales realizar cambios totalmente ilimitados en sus propias frecuencias de reloj.
Según las especificaciones ACPI , el estado de funcionamiento C0 de una CPU moderna se puede dividir en los llamados estados "P" (estados de rendimiento) que permiten la reducción de la velocidad del reloj y estados "T" (estados de aceleración) que Acelera aún más una CPU (pero no la velocidad de reloj real) insertando señales STPCLK (detener el reloj) y, por lo tanto, omitiendo los ciclos de trabajo.
Diferentes sistemas basados en ARM en chip proporcionan aceleración de CPU y GPU.
Tecnologías de ahorro de energía:
Tecnologías que mejoran el rendimiento: