¿Por qué los procesadores en funcionamiento utilizan más energía eléctrica?

16

En las brumas del tiempo cuando comencé a codificar, al menos hasta donde yo sé, los procesadores usaban una cantidad fija de energía. No había tal cosa como que un procesador estuviera "inactivo".

En la actualidad, existen todo tipo de tecnologías para reducir el consumo de energía cuando el procesador no está muy ocupado, principalmente mediante la reducción dinámica de la frecuencia de reloj.

Mi pregunta es ¿por qué correr a una velocidad de reloj más baja consume menos energía?

Mi imagen mental de un procesador es de un voltaje de referencia (digamos 5 V) que representa un 1 binario y 0 V que representa 0. Por lo tanto, tiendo a pensar en un 5 V constante que se aplica en todo el chip, con las diversas puertas lógicas desconectando este voltaje cuando está "apagado", lo que significa que se utiliza una cantidad constante de energía. La velocidad a la que se activan y desactivan estas puertas parece no tener relación con la potencia utilizada.

No tengo dudas de que esta es una imagen irremediablemente ingenua, pero no soy un ingeniero eléctrico. ¿Alguien puede explicar qué está sucediendo realmente con el escalado de frecuencia y cómo ahorra energía? ¿Hay alguna otra forma en que un procesador usa más o menos energía dependiendo del estado? Por ejemplo, ¿usa más energía si hay más puertas abiertas?

¿En qué se diferencian los procesadores móviles / de baja potencia de sus primos de escritorio? ¿Son más simples (menos transistores) o hay alguna otra diferencia fundamental de diseño?


fuente
8
Te equivocas, los procesadores nunca usaron la misma cantidad de energía con el tiempo, siempre fue variable. Simplificando las cosas significativamente, uno puede asumir que el poder solo se gasta en cambiar un solo valor de flip-flop. Por lo tanto, cuanto más se realice el cálculo por segundo, cuanto más cambien los registros internos sus valores, más energía se gastará.
2
Si recuerdo mis componentes electrónicos correctamente, la mayor parte de la energía "desperdiciada" (también conocida como "calor") es una fuga (también conocida como (pequeñas) cantidades de corriente que fluyen donde no debería ocurrir ningún flujo). Eso sucede más cuando estás a.) Usando un voltaje más alto y b.) Cambiando a frecuencias más altas. La mayoría de las CPU modernas reducen tanto el voltaje como la frecuencia en sus estados de baja potencia (e incluso si reducen solo uno de ellos, sigue siendo una ganancia).
3
@ SK-logic: muchos procesadores históricos usan la lógica ECL, que consume aproximadamente la misma cantidad de energía sin importar la frecuencia del reloj. Seymour Cray diseñó el CDC 8600, el Cray-1, el Cray X-MP, el Cray Y-MP, el Cray T90 para usar ECL. El artículo de lógica de Wikipedia ECL enumera algunos más de otras compañías. ¿Estás diciendo que esas máquinas nunca existieron, o estás diciendo que no cuentan como procesadores?
davidcary
Los procesadores también ahorran energía mediante el uso de una instrucción de detención. El núcleo del sistema operativo puede configurar un temporizador para activar el procesador y ejecutar esa instrucción para que el procesador se quede dormido.
Oskar Skog el

Respuestas:

24

La velocidad a la que se activan y desactivan estas puertas parece no tener relación con la potencia utilizada.

Aquí es donde te equivocas. Básicamente, cada puerta es un condensador con una capacidad increíblemente pequeña. Encendiéndolo y apagándolo "conectando" y "desconectando" el voltaje mueve una carga eléctrica increíblemente pequeña dentro o fuera de la puerta, eso es lo que lo hace actuar de manera diferente.

Y una carga eléctrica en movimiento es una corriente que utiliza energía. Todas esas pequeñas corrientes de miles de millones de puertas que se cambian miles de millones de veces por segundo se suman bastante.

Michael Borgwardt
fuente
Eso es lo que sucede en la memoria: memoria DRAM. La memoria del procesador (el caché) usa SRAM que no está implementado con condensadores ...
77
@ m3th0dman: no estoy hablando de elementos destinados a ser condensadores. Cada transistor, cada elemento dentro de la CPU tiene una capacitancia.
7

Como señala el comentario de SK-logic, la mayor parte del poder se gasta realmente en cambiar el flip-flop en lugar de un estado estable.

Para reducir dinámicamente hay dos cosas principales que puede hacer IIRC.

  1. Si no se sincronizan áreas enteras de un chip, puede apagar la alimentación de esas áreas por completo

  2. El árbol del reloj en sí mismo es uno de los drenajes de energía más grandes del sistema, en gran medida porque es la parte de conmutación más rápida de un sistema. Por lo tanto, reducir la potencia en el árbol del reloj en sí es significativo.

jk.
fuente
¿Qué es el árbol del reloj?
akaltar
2
@akaltar el total de todas las líneas que distribuyen la señal del reloj a cada elemento del procesador que necesita sincronizarse con el reloj.
Michael Borgwardt
6

La potencia consumida por un circuito electrónico tiene dos componentes:

  • la fuga, que es más o menos independiente de la constante de frecuencia y dependerá de la tecnología y el voltaje de trabajo;
  • la potencia de conmutación, que depende de la frecuencia (se debe a la carga y descarga de varias capacitancias, transistores y cables)

Para reducir el consumo, los diseñadores de procesadores utilizan varias técnicas:

  • modificando la frecuencia dependiendo de la carga (esto actuará solo en la potencia de conmutación)
  • reduciendo la potencia o incluso apagando partes de los circuitos cuando no son necesarios

Estas técnicas tienen como resultado que, dependiendo de su carga, puede estar mejor, desde el punto de vista de consumo de energía, ya sea reduciendo la frecuencia o haciendo un "sprint" a toda velocidad y luego cortando un subconjunto de los circuitos.

Un programador
fuente
También es posible que reducir la frecuencia permita reducir el voltaje de funcionamiento (porque los transistores son un poco más lentos) para reducir las fugas.
TEMLIB
0

Correr a una velocidad de reloj más baja no afecta la energía requerida para realizar una tarea fija. Incluso podría aumentar la energía requerida si tiene en cuenta las fugas y puede apagarse por completo.

Cuando una velocidad de reloj más baja ahorra energía, también es posible reducir el voltaje de funcionamiento. La reducción de voltaje a menudo ahorra suficiente energía para compensar la necesidad de permanecer activo durante más tiempo.

Sean Houlihane
fuente
No estoy de acuerdo Sean. Bajar la velocidad del reloj reduce todas las pérdidas de conmutación parásita involucradas en toda la cadena de reloj, que es masiva en una CPU típica. Mi Atom netbook funciona a 1GHz, si me estrangulo la CPU hasta 500 MHz que funciona el refrigerador y visiblemente consume menos potencia desde el suministro, y se hace afectar a la tarea - se tarda el doble de tiempo completo.
rdtsc
2
@rdtsc Cuidado ahora. Sean escribe energía , no poder .
tubería
@rdtsc Estás confundiendo poder y energía. Primer orden, una tarea específica requerirá un número fijo de ciclos de reloj. Piense cómo responderá una batería a su tarea en los dos puntos de operación diferentes.
Sean Houlihane
Ahh si. Todavía estoy trabajando en la primera taza de café aquí. :) Tendría que medirlo, pero creo que la energía utilizada será en realidad un poco más con una frecuencia de reloj más baja, ya que una CPU moderna tiene tantos eventos periódicos para manejar por segundo. Habrá más de estos para un reloj más lento, y más significa más tiempo para completar la tarea.
rdtsc
Algunos antecedentes relacionados leyendo anandtech.com/show/9330/exynos-7420-deep-dive/6
Sean Houlihane