Diseño del procesador: ¿activar/desactivar bloques dinámicamente para ahorrar energía?

Me preguntaba si esto es posible y si se hace en los diseños actuales. Me pareció una idea bastante interesante. Aquí hay un pequeño diagrama que hice para ayudar a tratar de explicar:

Diagrama básico de CPU para ayudarme a hacer la pregunta

Así que digamos que soy inteligente y construyo un poco de hardware que rastrea el número de operaciones de coma flotante que he hecho últimamente. Me dice, oye, ¡no has hecho ninguna operación de FP en las últimas 2000 instrucciones! Y luego decide "apagar" todo el hardware de tubería de punto flotante. Por supuesto, cuando aparece una operación FP en la cola de instrucciones, debe volver a encenderla, tal vez con un retraso.

¿Tiene esto algún sentido? ¿Puede "apagar" partes específicas de su chip y obtener ahorros reales de energía? ¿Cómo (físicamente hablando en términos de circuitos) puede apagar partes del hardware? ¿Y qué tan difícil es volver a encenderlos?

¡Lo siento si esta no es una buena pregunta tradicional! Sé que no es muy específico.

Salud.

Respuestas (1)

Sí, puede apagar secciones específicas de un chip. En general, no ve esto en las CPU al apagar secciones de hardware como el exceso de bloques FP (como sugirió), principalmente porque esto conduciría a cambios de comportamiento extraños en la lógica en función de si una instrucción usó o no el apagado. bloques

Donde sí lo ves es en dos lugares:

  1. CPU con administración de energía con varios núcleos. El sistema operativo puede apagar los núcleos no utilizados en períodos de baja utilización de la CPU, pero luego el sistema operativo decidirá cuándo activar el núcleo y el núcleo alertará al sistema operativo cuando esté activo. Mientras tanto, el sistema operativo desvía todas las operaciones al núcleo (o núcleos) activo.
  2. En los microcontroladores, puede activar y desactivar ciertas funciones proporcionando energía a la sección funcional del dado. Entonces, por ejemplo: en la mayoría de los chips, puede encender o elegir no encender el convertidor analógico a digital, y no encenderlo (incluso cuando no esté en uso) le ahorrará una pequeña cantidad de energía (que puede ser importante en muy bajo consumo). aplicaciones).

La forma en que "apagas" una sección de un chip es bastante sencilla: tienes un transistor de potencia que controla el riel de entrada positivo a todos los transistores en una sección de la matriz del chip, y lo enciendes y apagas.

¡Excelente! Gracias. Bueno, me gusta considerarme un poco "investigador" y esto me vino a la cabeza. Es bueno saber que es factible. ¡Quizás más de esto sea el camino del futuro! Todo es poder hoy en día, ¿no?
De hecho, SPARC desactiva los bloques FPU no utilizados. (Lo siento, no hay referencia disponible, solo de mi memoria).