Prozessordesign: Blöcke dynamisch ein-/ausschalten, um Strom zu sparen?

Ich habe mich gefragt, ob dies möglich ist und ob es in aktuellen Designs durchgeführt wird. Schien mir eine interessante Idee zu sein. Hier ist ein kleines Diagramm, das ich gemacht habe, um es zu versuchen und zu erklären:

Grundlegendes CPU-Diagramm, um mir bei der Frage zu helfen

Nehmen wir also an, ich bin schlau und baue ein bisschen Hardware, die die Anzahl der Gleitkommaoperationen verfolgt, die ich in letzter Zeit durchgeführt habe. Es sagt mir, hey, Sie haben in den letzten 2000 Anweisungen keine FP-Operationen durchgeführt! Und beschließt dann, die gesamte Gleitkomma-Pipeline-Hardware "herunterzufahren". Wenn eine FP-Operation in der Befehlswarteschlange auftaucht, muss sie diese Leistung natürlich wieder einschalten, möglicherweise mit einer Verzögerung.

Ist das sinnvoll? Können Sie bestimmte Teile Ihres Chips "herunterfahren" und echte Energieeinsparungen erzielen? Wie (physikalisch in Bezug auf Schaltkreise) können Sie Teile der Hardware ausschalten? Und wie schwer ist es, sie wieder hochzufahren?

Tut mir leid, wenn das keine gute traditionelle Frage ist! Ich weiß, es ist nicht sehr spezifisch.

Beifall.

Antworten (1)

Ja, Sie können bestimmte Bereiche eines Chips ausschalten. Im Allgemeinen sehen Sie dies nicht in CPUs, indem Sie Hardwareabschnitte wie die überschüssigen FP-Blöcke (wie Sie vorgeschlagen haben) herunterfahren, hauptsächlich weil dies zu seltsamen Verhaltensänderungen in der Logik führen würde, je nachdem, ob eine Anweisung das Ausschalten verwendet hat oder nicht Blöcke.

Wo Sie es sehen, ist es an zwei Stellen:

  1. Power-managed CPUs mit mehreren Kernen. Das Betriebssystem kann ungenutzte Kerne in Zeiten geringer CPU-Auslastung herunterfahren, aber dann entscheidet das Betriebssystem, wann der Kern aktiviert wird, und der Kern benachrichtigt das Betriebssystem, wenn er aktiv ist. In der Zwischenzeit leitet das Betriebssystem alle Operationen an den aktiven Kern (oder die aktiven Kerne) weiter.
  2. Auf Mikrocontrollern können Sie bestimmte Funktionen aktivieren und deaktivieren, indem Sie den Funktionsabschnitt des Chips mit Strom versorgen. Zum Beispiel: Bei den meisten Chips können Sie den Analog-Digital-Wandler mit Strom versorgen oder nicht mit Strom versorgen, und wenn Sie ihn nicht mit Strom versorgen (auch wenn er nicht verwendet wird), sparen Sie eine kleine Menge Strom (was bei sehr geringem Stromverbrauch wichtig sein kann). Anwendungen).

Wie Sie einen Abschnitt eines Chips "herunterfahren", ist ziemlich einfach: Sie haben einen Leistungstransistor, der die positive Eingangsschiene zu allen Transistoren in einem Abschnitt des Chips steuert, und Sie schalten diesen ein und aus.

Exzellent! Danke schön. Nun, ich betrachte mich selbst gerne als „Forscherin“ und so kam mir das in den Sinn. Gut zu wissen, dass es machbar ist. Vielleicht ist mehr davon der Weg der Zukunft! Heutzutage ist alles Macht, richtig?
Tatsächlich schaltet SPARC unbenutzte FPU-Blöcke ab. (Entschuldigung, keine Referenz zur Hand, nur aus meiner Erinnerung.)