Die Telemetrie aktueller NVIDIA-Grafikkarten und die Voltage Frequency Engine (VFE)
Jetzt will ich NVIDIAs Boost (und in gröberer Form auch AMDs Power Tune) beschreiben und das gerade Gelesene etwas allgemeinverständlicher in einen Zusammenhang bringen, auch wenn ich mich dabei sicher etwas wiederholen muss (Schema unten). Die Aufgabe der sogenannten Telemetrie ist es, die maximale Grafikperformance bei möglichst minimaler Leistungsaufnahme und der entstehenden Nebenwirkungen wie z.B. die Abwärme zu erreichen und die ganzen Überwachungsdaten dafür heranzuziehen. Das Hauptanliegen besteht darin, die Kernspannung der GPU in Echtzeit möglichst so anzupassen, dass nur so viel Leistung zugeführt wird, wie man für die aktuelle Auslastung der GPU und das Erreichen der optimalen Taktrate auch wirklich benötigt.
Nennen wir es zunächst erst einmal ganz einfach Spannungskurve (das hat sicher jeder schon einmal gehört), auch wenn ich später noch weiter ins Detail gehen muss. Um es einmal gebrauchsfertig zu formulieren: Es wurden die einzelnen Boost-Steps samt Vorgabespannung hinterlegt, wobei der Takt der untersten Boost-Stufe durch einen sogenannten Offset verschoben bzw. festgelegt wird und sich der Rest dann aus den Berechnungen des Arbitrators (Mittlers) ergibt. Bei AMD legt man die Taktraten und Spannungen für einige vorgegebene DPM-States fest, was deutlich ungenauer (granulärer) ist, aber am Ende so ähnlich funktioniert.
Die Firmware schätzt in sehr kurzen Intervallen ständig den Energieverbrauch (quasi in Echtzeit), fragt gleichzeitig die ganzen Sensoren sowie die GPU-Vorhersage ab und bezieht die Telemetrie-Daten des Spannungsreglers bzw. der Eingangsüberwachung (Shunts, Bild unten) mit ein. Diese Werte werden an das vorprogrammierten DPM (digitales Power-Management), also den Arbitrator (Mittler) gesendet. Dieser Regelkomplex kennt auch die Power-, thermischen und Stromstärken-Limits der GPU (BIOS, Treiber), die er aus den jeweiligen Registern auslesen kann. Innerhalb dieser Grenzen kontrolliert er nun also die Temperaturen, alle Spannungen, Taktfrequenzen sowie die Lüftergeschwindigkeiten und versucht dabei stets, die maximale Performance aus der Karte herauszuholen. Wenn auch nur eine der Eingangsgrößen überschritten wird, kann der Mittler Spannung oder Takt zurücknehmen.
Das Nachteilige an so einer öffentlich sichtbaren (und mit geeigneter Software auch anpassbarer) “Frequenz-/Spannungskurve” ist, dass man sie eigentlich gar nicht so einfach pauschal festlegen kann. Das, was der Endanwender in Wirklichkeit nur modifizieren kann, ist eine gewisse partielle Verschiebung auf der Basis von zuvor errechneten, individuellen Grenz- und Richtwerten eines jeden einzelnen Chips unter den aktuellen Bedingungen! Hier kommt nun die sogenannte VFE ( Voltage Frequency Engine) ins Spiel, die einen flexiblen Rahmen bietet, um die Beziehung zwischen den Taktfrequenzen zu spezifizieren bzw. zu bewerten, die normalerweise eine Funktion von Spannung, Speedo und Temperatur ist. Oder um es kurz auf den Punkt zu bringen: Die ermittelte Spannung für jeden dieser Frequenzpunkte einer solchen Kurve ist eigentlich eine Funktion des Speedos der GPU, der durch das “Continuous Virtual Binning” bestimmt wird.
Ihr ahnt es schon, jetzt wird es etwas kniffliger. Wir erinnern uns gern an die ersten Absätze zum Binning und dem ATE-Fluss: Continuous Virtual Binning (CVB) nutzt statistische Modelle und Algorithmen, um die Leistung von Halbleiterbauteilen kontinuierlich und virtuell zu analysieren, anstatt sie tatsächlich physisch zu testen. “Continuous Virtual Binning” bedeutet in unserem Fall der GPU also, dass die Spannung bei einer Erhöhung des Speedos um denselben Betrag um 10 mV (reguläre Schrittgröße) abnimmt (basierend auf einer linearen oder quadratischen Gleichung). Die Spannung für jeden Frequenzpunkt ist eine Funktion der Temperatur der GPU.
Die Taktfrequenz und damit auch die Spannungen der GPU hängen von der Temperatur ab. Halbleiter (p-Typ und n-Typ) können entweder einen positiven oder negativen Temperaturkoeffizienten aufweisen und bei steigender Temperatur kann die Bewegung in MOS-Transistoren abnehmen. Diese Abnahme erhöht die Schwellenspannung (Threshold Voltage, Vt). Dies macht den Transistor langsamer. Daher wird eine Erhöhung der Temperatur die Taktfrequenz verringern und umgekehrt. Diese Temperaturabhängigkeit wird in derselben quadratischen Gleichung erfasst, die auch den Speedo des Chips nutzt. Da die in den Stufen vorgegebene Frequenz logischerweise gesperrt bleiben muss, erhöht sich die Spannung bei steigender Temperatur, um die angeforderte Frequenz noch zu erreichen (bzw. umgekehrt). Diese quadratische Gleichung, die die Beziehung zwischen den Frequenzen und ihren entsprechenden Spannungen erfasst, wird vom sogenannten VFE-Rahmen erfasst, der als Teil der Konfigurationsdaten in der VBIOS-Firmware auf dem EEPROM des Chips gespeichert ist und nicht mehr überschrieben werden kann.
Die Hauptfunktion der VFE besteht also darin, die Spannung und Frequenz der Prozessoren dynamisch anzupassen, um die Leistung und Energieeffizienz zu optimieren. Die VFE arbeitet eng mit der PMU (Power Management Unit) zusammen, um die richtigen Spannungs- und Frequenzwerte für verschiedene Betriebszustände und Lastbedingungen zu liefern. Dazu komme ich dann im nächsten Absatz. Zusammengefasst kann man sagen, dass die Voltage Frequency Engine und Speedo zusammenarbeiten, um die Leistung und Energieeffizienz zu optimieren. Die VFE ist für die Anpassung der Spannung und Frequenz verantwortlich, während Speedo die PVT-Variationen überwacht und die notwendigen Informationen für die VFE liefert, um die richtigen Anpassungen vorzunehmen.
So, jetzt holen wir besser erst einmal etwas Luft. Wobei es gar nicht so kompliziert ist, wie es sich vielleicht beim ersten Mal lesen mag. Um es kurz zu machen: Den Speedo kann man weder überlisten noch überschreiben. Was man manuell ändern kann, basiert immer auf dem jeweils hinterlegten Speedo und den Werten der VFE, auf die der Endkunde ebenfalls keinen Einfluss hat. Und nun wissen wir auch, dass eine gute Kühlung oft mehr wert ist als das brutalste OC. Es ist das gefürchtete Hund-Schwanz-Prinzip bei luftgekühlten Karten, wo eine Erhöhung des Power Limits für einen höheren Takt auch zu höheren Temperaturen und damit wieder niedrigeren Taktraten führt. Man kann das ewig treiben und die Karte wird doch nicht schneller. Nur durstiger. Genau deshalb ist das gegenteilige Untervolten ja so clever, weil es durch niedrigere Temperaturen höhere Boost Steps ermöglicht. Also quasi verlustfreies OC für lau.
Danke für die Spende
Du fandest, der Beitrag war interessant und möchtest uns unterstützen? Klasse!
Hier erfährst Du, wie: Hier spenden.
Hier kannst Du per PayPal spenden.
22 Antworten
Kommentar
Lade neue Kommentare
Mitglied
1
Urgestein
Mitglied
Mitglied
Urgestein
1
Neuling
Veteran
1
Urgestein
Urgestein
Urgestein
Urgestein
Alle Kommentare lesen unter igor´sLAB Community →