Vor der Betrachtung des Power-Managements aktuellster Embedded-x86-Prozessoren, die in etwa 6 bis 60 W aufnehmen, ist es wichtig, die fundamentalen Grenzen der Silizium-Logik zu kennen. Aktuelle Power-Management-Systeme sollen sicherstellen, dass diese Grenzen nicht überschritten werden und unter allen Betriebsbedingungen für eine hohe Zuverlässigkeit und Funktionalität sorgen. Im Folgenden geht der Beitrag daher primär auf diese Einflussfaktoren für x86-Prozessoren ein, auch wenn es noch viele weitere Faktoren gibt.

Betriebsgrenzen einhalten

Eck-Daten

Embedded-Prozessoren wie Epyc und Ryzen von AMD mit x86-Architektur und in 14-nm-FinFET-Technologie sind auf optimale Rechenleistung ausgelegt, benötigen dafür aber ein ausgeklügeltes Power-Management. In diesem ersten Teil beschreibt der Beitrag die Grundlagen für die Notwendigkeit eines guten Power-Managements auf Transistorebene: den Einfluss des Arbeitstaktes auf die Leistungsaufnahme, Leckströme, Prozessorvarianzen und Workload. Letzterer ist von besonders hoher Bedeutung, da aktuelle Embedded-Prozessoren viele Funktionen integrieren, die vorher von externen Bausteinen übernommen wurden – bestes Beispiel hierfür ist die GPU.

Der Prozessortakt ist dabei wohl der offensichtlichste leistungsbegrenzende Faktor. Selbst Endkunden ist der Zusammenhang zwischen Performance und Taktrate bekannt. Der Arbeitstakt definiert, wie schnell die Logik geschaltet wird und wie schnell Befehle ausgeführt werden können. Zwar wird die Performance zweier Prozessoren, die bei gleichem Takt aber mit unterschiedlicher Architektur arbeiten, nicht gleich sein. Dennoch steigt bei beiden mit zunehmender Frequenz auch die Ausführungsgeschwindigkeit. Die Möglichkeiten zur Steigerung des Arbeitstakts – also der Frequenz eines Prozessors – sind jedoch durch mehrere Faktoren begrenzt. Die wichtigsten sind dabei Spannung und Strom.

Wer mit Transistortechnologie vertraut ist, weiß, dass die Spannung einen extrem wichtigen Einfluss auf die Frequenz hat. In einem Transistor erfordern schnellere Schaltvorgänge nämlich eine höhere Spannung, um die resistiven und kapazitiven Elemente eines Transistors überwinden zu können. Allerdings führen höhere Spannungen zu erhöhten Alterungseffekten. Dadurch sind der Spannungsbeaufschlagung Grenzen gesetzt, will man eine hohe Langlebigkeit gewährleisten. Schnellere Schaltvorgänge in einem Transistor erzeugen zudem auch höhere Ströme, da die kapazitiven Elemente hierbei stärker geladen und entladen werden. Auch wenn der einzelne Transistorstrom sehr klein sein mag, so können aktuelle Prozessoren doch über mehrere Milliarden Transistoren verfügen, sodass sich viele kleine Ströme schnell aufaddieren. Der Prozessor-Die ist normalerweise in einem Package untergebracht. Auch hier gibt es Grenzen, wie viel Strom effektiv zum Die lieferbar ist. Jedes digitale IC muss daher eine ideale Balance von Transistor-Spannung und -Strom erhalten, um seine maximal nutzbare Taktrate zu erreichen.

Arbeitstakt gleich Leistungsaufnahme

Die Kombination des Ohmschen und Jouleschen Gesetzes lehrt darüber hinaus, dass Spannung und Strom Verlustleistung erzeugen und dass beide Parameter einen direkten Einfluss auf die Leistungsaufnahme haben. Daher ist in der Realität die Begrenzung des Arbeitstaktes eigentlich eine Begrenzung der Leistungsaufnahme beziehungsweise des Stromverbrauchs. Schnellere Schaltvorgänge in einem Transistor führen zu einem höheren Stromfluss und können auch höhere Spannungen erfordern. Beides erhöht die Leistungsaufnahme. Für alle integrierten Schaltungen ist deshalb eine maximale Leistungsaufnahme definiert, damit Entwickler die Systeme entsprechend den Strom- und Kühlanforderungen auslegen können. Die Begrenzung der Leistungsaufnahme ist damit häufig auch der kritischste Begrenzungsfaktor für die Performance, insbesondere für die Prozessoren, die sich am unteren Ende der Leistungsaufnahme bewegen – also besonders energiesparend ausgelegt sind. Heutige Prozessoren auf Basis der x86-Architektur sind daher bei hoher Auslastung in der Regel mehr durch ihre Leistungsaufnahme begrenzt als durch ihren maximalen Arbeitstakt.

Die Die-Temperatur ist als ein weiterer Faktor zu berücksichtigen, auch wenn er nicht der Offensichtlichste ist. Im Prozessorbetrieb wird die aufgenommene elektrische Leistung in Wärme umgewandelt. Wärme beeinflusst jedoch sowohl die Betriebseigenschaften eines Silizium-Transistors als auch die Diffusionsrate der Dotierelemente an den Transistorübergängen. Letztendlich verändern sich durch Diffusion die elektrischen Eigenschaften eines Transistors, bis er nicht mehr richtig funktioniert und das Ende seiner Lebensdauer erreicht. Die Limitierung der Temperatur an den Übergängen in einem Prozessor ist daher entscheidend für die erwartete Lebensdauer. Deshalb definieren Prozessorhersteller auch maximale Die-Temperaturen. Die Einhaltung dieser Temperaturgrenzwerte ist eine der wichtigen Aufgaben des Power-Managements in einem Prozessor.

Leckströme

Bild 1: Anteil des Leckstroms für einen AMD-Embedded-Prozessor im 14-nm-FinFET-Fertigungsprozess.

Bild 1: Anteil des Leckstroms für einen AMD-Embedded-Prozessor im 14-nm-FinFET-Fertigungsprozess. AMD

Ein weiteres Grundprinzip von Silizium-Transistoren ist das Auftreten von Leckströmen an den Übergängen sowie zum Substrat. Die Höhe des Leckstroms in einem Prozessor eines bestimmten Prozesstyps kann je nach anliegender Spannung und Temperatur variieren und bei aktuellen Hochleistungs-Prozessoren enorm hohe Werte erreichen. Das liegt daran, dass dieselben Faktoren, die den Transistor schneller schalten lassen – also eine höhere Taktrate ermöglichen – auch die Leckströme erhöhen. Diese Leckströme erzeugen eine zusätzliche Verlustleistung, die zu der Leistungsaufnahme des Prozessors hinzuaddiert werden muss. Damit reduziert die Verlustleistung durch Leckströme auch die dem Prozessor zur Verfügung stehende effektive Leistung, also die Leistung, die für den arbeitenden Teil der Transistorschaltung zum Einsatz kommt. Bild 1 zeigt den Anteil der Leckströme an dem gesamten Leistungsverbrauch in Abhängigkeit des Stroms für einen AMD-Prozessor mit 14-nm-FinFET-Transistoren.

Bild 2: Der Anteil der Verlustleistung durch Leckströme in Abhängigkeit von der Temperatur für einen x86-Prozessor von AMD in 14-nm-FinFET-Technologie.

Bild 2: Der Anteil der Verlustleistung durch Leckströme in Abhängigkeit von der Temperatur für einen x86-Prozessor von AMD in 14-nm-FinFET-Technologie. AMD

Die Verlustleistung durch Leckströme steigt dabei exponentiell mit der Die-Temperatur an. In einer integrierten Schaltung erhöht sie sich um ein Vielfaches gegenüber der Betriebstemperatur. Das bedeutet, dass die Leistungsaufnahme eines Prozessors automatisch mit steigender Temperatur zunimmt, obwohl die restlichen Parameter wie Taktrate, Spannung und Rechenlast gleich bleiben. CPU-Hersteller müssen daher also entweder genügend Spielraum für die Erhöhung der Leistungsaufnahme bei steigender Temperatur einkalkulieren oder sie nutzen ein temperaturabhängiges Power-Management-Schema. Bild 2 zeigt für die oben erwähnte AMD-Prozessorfamilie die Verlustleistung durch Leckströme in Abhängigkeit von der Temperatur.

Prozessorvarianzen

Das Silizium-Fotolithographieverfahren zur Herstellung von Halbleitern weist inhärente Unvollkommenheiten auf, die sich als Varianzen in der Transistorbauweise zeigen und somit deren Betriebseigenschaften beeinflussen. Solche Varianzen zeigen sich nicht nur bei unterschiedlichen Chargen von Silizium-Wafern, sondern auch auf einem einzelnen Wafer. Sie können dazu führen, dass ein Prozessor-Die aus einem Bereich des Wafers eine höhere Spannung für dieselbe Frequenz benötigt als seine Nachbarn oder höhere Leckströme aufweist. Bild 1 veranschaulicht auch diese Varianzen der Leckströme recht gut. Und da die elektrische Leistung ein Schlüsselfaktor für die Bestimmung der erreichbaren Performance bei einem bestimmten Prozessor ist, ergeben sich daraus natürlich auch Schwankungen bei der Performance.

Prozessorhersteller kategorisieren die Dies daher in unterschiedliche Gruppen und ordnen diese unterschiedlichen Prozessormodellen mit unterschiedlichen Spezifikationen zu (beispielsweise 25 W und 35 W), um die Ausbeute zu maximieren. Der Hersteller bestimmt für jedes Modell den Spielraum dieser Varianzen, wobei kostengünstigere Modelle in der Regel höhere Varianzen aufweisen dürfen. Auch diese variablen Varianzen müssen mit aktuellen Power-Management-Lösungen umgehen können.

Anderer Workload, anderer Energiebedarf

Um das Verhalten des Power-Managements komplexer Mikroprozessoren zu verstehen ist es wichtig zu wissen, dass selbst bei gleicher Auslastung des Prozessors unterschiedliche Workloads – also ausgeführte Befehlssequenzen – zu einer unterschiedlichen Leistungsaufnahme führen können. Das heißt, dass sich die Leistungsaufnahme der zentralen Recheneinheit (CPU) je nach Workload signifikant unterscheiden kann, selbst wenn der Core in beiden Fällen zu 100 Prozent ausgelastet ist – also permanent mit der Ausführung von Anweisungen beschäftigt ist. Dies kann geschehen, weil unterschiedliche Befehle unterschiedliche Mengen an Transistorlogik in einem Core stimulieren. So wird eine komplexe Fließkommaberechnung mehr Transistoraktivität in der CPU auslösen als eine einfache Datenverschiebung. Die Bewegung von Daten von einem CPU-Mehrzweckregister zu einem anderen erfordert nur eine kleine Anzahl von Gates, wohingegen ein komplexer AVX- oder SSE-Befehl zur Durchführung einer Multiplikationsakkumulation mit 256 Bit Breite viele tausend Gates aktivieren kann. Workloads können solche Vorgänge als Teil eines Algorithmus wiederholen, wodurch sich der Stromverbrauch nochmals erhöht. Die potenziell unterschiedliche Leistungsaufnahme zwischen den einzelnen Workloads wird sogar noch größer wenn berücksichtig wird, dass nahezu alle heute verkauften x86-Mikroprozessoren Multi-Core-Prozessoren sind und die meisten heute auch noch viele weitere Funktionen integrieren, die zuvor extern ausgeführt wurden.

GPU an Bord

Die Integration der Grafikprozessoreinheit (GPU) ist dabei am bedeutendsten, da es sich dabei um einen sehr großen, dedizierten Rechenkern handelt. Der Grafikprozessor kann in manchen x86-Prozessoren mehr Transistoren umfassen als die CPU-Kerne bieten, weil Applikationen zunehmend grafiklastiger geworden sind. Dies gilt insbesondere für Unternehmen wie AMD, die speziell auf sehr leistungsfähige, integrierte Grafikeinheiten in ihren Mikroprozessoren setzen. Gemischte Workloads, die eine Kombination aus CPU- und GPU-Befehlen gleichzeitig ausführen, können diesen Effekt der differierenden Leistungsaufnahme sogar noch verstärken.

Bild 3: Stromverbrauch einer CPU mit zwei unterschiedlichen, rein auf die CPU beschränkten Arbeitslasten (AMD-Embedded-RX-421BD-SoC, Prime 95 v29.3 b1 Large FFT, Microsoft Sysinternals CPU Stress v1.0), Prime 95 simuliert hier den Extremfall.

Bild 3: Stromverbrauch einer CPU mit zwei unterschiedlichen, rein auf die CPU beschränkten Arbeitslasten (AMD-Embedded-RX-421BD-SoC, Prime 95 v29.3 b1 Large FFT, Microsoft Sysinternals CPU Stress v1.0), Prime 95 simuliert hier den Extremfall. AMD

Bild 3 zeigt ein Beispiel dafür. Hier wurde der Stromverbrauch einer CPU mit zwei unterschiedlichen, rein auf die CPU beschränkten Arbeitslasten auf einem zufällig ausgewählten AMD-Embedded-RX-421BD-SoC auf Basis der Excavator-Architektur gemessen. Beide Workloads haben einen einzelnen CPU-Core unter Beibehaltung der maximalen Taktfrequenz konstant zu 100 Prozent ausgelastet. Dafür wurde Prime 95 genutzt, denn dieses Programm simuliert den Extremfall. Es wird deshalb auch oft als „thermischer Virus“ bezeichnet. Die Werte der Leistungsaufnahme für den anderen Workload wurden auf dieses Niveau normiert.

Die Werte in Bild 3 zeigen, dass der Stromverbrauch eines CPU-Kerns bei einem weniger stromhungrigen Workload nur rund 57 Prozent gegenüber Prime 95 betrug. Extrapoliert auf mehrere physische Cores ist leicht erkennbar, dass die Unterschiede bei der Leistungsaufnahme je nach Workload sehr groß ausfallen können. In diesem Fall konnte die CPU die maximale Taktrate von 3,5 GHz auf dem aktiven Kern halten, ohne den Bereich der Leistungs- oder Stromdrosselung zu erreichen, sodass auch der Arbeitstakt nicht reduziert werden musste.

Bild 4: Vergleich eines einfachen 3D-Workloads vom Microsoft-Direct-X-9-SDK (Blobs) mit Furmark, einem externen GPU-Workload.

Bild 4: Vergleich eines einfachen 3D-Workloads vom Microsoft-Direct-X-9-SDK (Blobs) mit Furmark, einem externen GPU-Workload. AMD

Der Leistungsbedarf von GPU-Workloads verhält sich ähnlich. Bild 4 vergleicht einen einfachen 3D-Workload vom Microsoft-DirectX-9-SDK („Blobs“) mit Furmark, einem extremen GPU-Workload, der auch zu der Klasse der thermischen Viren zählt. Die GPU-Frequenz wurde künstlich auf 720 MHz begrenzt, um eine Leistungsbegrenzung zu vermeiden und die volle mögliche Differenz im Stromverbrauch darzustellen.

Die Daten der Leistungsaufnahme der GPU zeigen, dass die Blobs-Anwendung nur 82 Prozent der Leistung von Furmark erfordert. Es ist auch zu erwähnen, dass die Zunahme der Verlustleistung bei steigender Arbeitslast auch die Temperatur in einer gegebenen Systemumgebung erhöht. Und wie oben bereits geschrieben, führt eine höhere Temperatur auch zu einer nochmals höheren Verlustleistung durch Leckströme, sodass der Unterschied im Mehrbedarf an Leistung nochmals größer ausfällt. Soll allein die Mehrleistung, die allein durch den Workload verursacht wird, erhalten bleiben, müsste die Die-Temperatur konstant bleiben. Darauf wurde in diesem Test verzichtet. Allerdings betrug die Abweichung nur wenige Grad, sodass die Ergebnisse nicht signifikant beeinflusst wurden.

 

Dieser Beitrag beruht auf Unterlagen von AMD.