AMD Turbo Core
# AMD Turbo Core

AMD Turbo Core ist eine Funktion zur automatischen Übertaktung von Hauptprozessoren von AMD, welche zuerst in den Sechskernprozessoren der Phenom II Reihe mit K10-Mikroarchitektur Verwendung fand. Turbo Core erlaubt die bedarfsorientierte dynamische Erhöhung des Prozessortaktes.

Turbo Core wird automatisch vom Prozessor aktiviert, wenn das Betriebssystem auf mindestens einem Kern die höchstmögliche Leistung („P0-Zustand“) abfragt. Für die Funktionalität dieser Technologie sind keine zusätzlichen Treiber oder zusätzliche Software erforderlich. Diese Funktion wird unter anderem auch als automatische oder dynamische Übertaktungsfunktion bezeichnet.

## Funktionsweise

Viele (oft ältere) Programme sind nicht auf die Nutzung mehrerer Prozessorkerne ausgelegt und nutzen auch bei einem modernen Mehrkernprozessor durch die Ausführung nur eines Threads nur einen Kern. Dadurch könnte ein höher getakteter Einkernprozessor eine solche Applikation schneller ausführen als ein Mehrkernprozessor mit niedrigerem Takt, auch wenn die Gesamtrechenleistung des Mehrkernprozessors höher liegt als die des Einkernprozessors. Die Thermal Design Power (kurz TDP; auch thermisches Budget) eines Prozessors beschreibt die durch das Kühlsystem maximal abführbare Verlustleistung des gesamten Prozessors. Ein Prozessor, bei dem nur ein Kern voll ausgelastet ist, nutzt die TDP nicht vollständig aus. Verbraucht der Prozessor sein thermisches Budget aufgrund inaktiver Kerne nicht vollständig, kann zum Beispiel ein Kern einen Teil des noch nicht verbrauchten Budgets nutzen, ohne dass die Kühleinrichtung mehr Wärme abführen müsste, als sie es in einem Zustand, in dem alle Kerne voll aktiv sind, abführen können muss.

### Erste Version in den Phenom-II-Prozessoren

Damit ein Prozessorkern als inaktiv gilt und Teile seiner TDP von anderen Kernen genutzt werden kann, muss der Kern mindestens im Halt-Zustand sein (in der ACPI-Tabelle als „C1-Zustand“ bezeichnet). Befinden sich mindestens die Hälfte der Kerne in diesem Zustand und wird vom Betriebssystem die höchstmögliche Leistung für mindestens einen Kern angefordert, können die verbleibenden aktiven Kerne ihren Takt um eine feste Stufe (je nach Prozessor 400 oder 500 MHz) erhöhen.

Ob ein Prozessor (speziell unter Volllast, bei der das Betriebssystem für alle Kerne eine Auslastung von 100 % meldet) seine TDP tatsächlich vollständig ausnutzt, hängt nicht zuletzt vom verwendeten Programm ab. Lastet ein Programm beispielsweise nur die Integer-Einheit aus, lässt aber die Gleitkommarechenwerke ungenutzt, entsteht weniger Wärme als bei Code, der alle Rechenwerke gleichermaßen auslastet. Prozessoren der so genannten „Black Edition“ bieten einige Einstellungsmöglichkeiten für Turbo Core. So kann man unter anderem festlegen, wie viele Kerne als inaktiv gelten müssen, damit der Prozessor seinen Takt erhöhen darf. Auch die Höhe der Turbostufe kann man einstellen. Erfahrene Übertakter können auch die Einstellungen für den P0-Zustand des Prozessors selbst festlegen.

## Prozessoren mit Turbo Core

* Einfache Version mit Beschränkung auf die Hälfte der Kerne:
   * Phenom-II-Reihe (K10-Mikroarchitektur) – erkennbar am „T“ am Ende der Versionsnummer
      * alle Prozessoren Phenom II X6 1xxxT (6 Kerne)
      * Phenom II X4 960T (4 Kerne)
* Verbesserte Version mit Leistungsmessung und dynamischer Taktung
   * AMD A-Serie (Llano)
      * alle Mobil-Varianten im Sockel FS-1, z. B. A8-3500M
      * einige Desktop-Varianten im Sockel FM-1: A8-3820, A8-3800, A6-3620, A6-3600, A6-3500
   * AMD C- und E-Serie (Bobcat)
      * AMD C-60
      * AMD E-450
   * AMD FX-Serie (Bulldozer)
      * alle CPUs (im Sockel AM3+)
   * Opterons
      * alle CPUs der 42xx- und 62xx-Serie außer dem Opteron 6204

## Geschichte

Während Intel schon 2008 ihre Turbo Boost genannte Übertaktungsfunktion mit der Nehalem-Mikroarchitektur auf den Markt brachte, stellte AMD die ersten Prozessoren mit automatischer Übertaktungsfunktion im April 2010 mit den ersten Sechskernprozessoren Phenom II X6 1055T und dem Phenom II X6 1090T vor. Diese einfache Version von Turbo Core war zuerst den Phenom-II-X6-Modellen vorbehalten. Im November 2011 folgte dann der Vierkernprozessor Phenom II X4 960T, der auf demselben Chip wie der Sechskerner basiert.

Im Juni 2011 wurden die ersten Prozessoren der A-Reihe (Llano) verkauft, welche die verbesserte Turbo-Core-Variante nutzen. Es entfällt die Beschränkung auf eine feste Anzahl inaktiver Kerne, ebenso sind jetzt mehrere Turbo-Stufen möglich. Die im Oktober 2011 vorgestellten AMD-FX-CPUs mit Bulldozer-Kern implementieren ebenfalls diese flexiblere Variante.

## Nachteile

Turbo Core bietet zwar die theoretische Möglichkeit, Programme, die nur einen Thread nutzen, schneller auszuführen, praktisch lässt sich auf einem normalen System dieser Vorteil aber nur schlecht nutzen. Um die Hälfte der Prozessoren im Turbo-Modus laufen zu lassen, müssen mindestens die Hälfte der Kerne inaktiv sein. Moderne Betriebssysteme verteilen die zu berechnenden und auszuführenden Anwendungen gleichmäßig auf alle verfügbaren Kerne, wodurch ein Prozessorkern nicht oft in den C1-Zustand wechselt, womit er wiederum nicht als inaktiv gilt und somit die anderen Kerne nicht höher takten können. Ein anderer Nachteil zeigt sich bei Windows, welches Prozesse, die nicht für mehrere Threads optimiert sind (Single Thread Applications), bei z. B. einem Vierkernprozessor aufteilt und dann auf jedem Kern 25 % des Codes abarbeitet, anstatt 100 % auf einem Kern zu berechnen. Obwohl hierbei nur ein Kern gleichzeitig aktiv ist, braucht der Kern Zeit, um in den C1-Zustand zu wechseln, sowie die restlichen Kerne Zeit brauchen, um die Taktfrequenz zu erhöhen. Technologien wie Core Parking können diese Nachteile aufheben, müssen sich aber erst etablieren bzw. in den vereinzelten Betriebssystemen durchsetzten. In der Realität kann Turbo Core aufgrund der bestehenden Problematik ohne Core Parking daher kaum einen Performancegewinn liefern.

## Unterschiede zu Turbo Boost

P-Zustände bei Turbo Core :

| P-Zustand OS | P-Zustand CPU | Zustand |
| - | - | - |
| P0 | P0 | Turbo-Stufe |
| P0 | P1 | Nominalbetrieb |
| P1 | P2 | Sparstufe 1 |
| P2 | P3 | Sparstufe 2 |
| P3 | P4 | Sparstufe 3 |
| P4 | P5 | Sparstufe 4 |

AMDs Turbo Core unterscheidet sich in mehreren Teilen von Intels Turbo Boost. Einer der großen Unterschiede besteht darin, dass bei Turbo Core mindestens die Hälfte der Kerne als inaktiv gelten muss, damit der Prozessor überhaupt den Turbo einschalten und damit eine höhere Taktrate erreichen kann. Anders als Intels Turbo-Variante kann Turbo Core somit nicht den Teil der TDP von zwei Kernen bei einem Sechskernprozessor nutzen. Während Turbo Core die Taktrate des Prozessors nur um eine feste Stufe erhöhen kann, können manche mobile Vierkernprozessoren von Intel bei nur einem aktiven Kern den Takt um bis zu 9 Multiplikatorstufen zu je 133,33 MHz erhöhen. Da es bei modernen Betriebssystemen aber selten der Fall ist, dass nur ein Kern des Prozessors ausgelastet wird, wird die höchste Multiplikatorhöchststufe aber in der Praxis nur selten bis gar nicht erreicht.

Während bei Turbo Boost ein Kern erst als inaktiv gilt, wenn er im C3-Zustand verweilt, gelten bei Turbo Core schon Kerne im C1-Zustand als inaktiv. Der Vorteil dessen liegt zum einen darin, dass der Prozessor schneller in den C1-Zustand wechseln und aus diesem wieder „aufwachen“ kann. Zum anderen ist es wahrscheinlicher, dass sich der Prozessor bei keiner Prozessorlast im C1 oder in einem tieferen Schlafzustand befindet als im ≥ C3-Zustand. Turbo Core benötigt zudem – anders als Turbo Boost – keinen zusätzlichen Eintrag in den BIOS- oder UEFI-Einstellungen. AMD hat weiter die P-Zustände des Prozessors von den P-Zuständen des Betriebssystems getrennt (Tabelle auf der rechten Seite). Fordert das Betriebssystem die volle Leistung an (P0-Zustand), geht der Prozessor allerdings zuerst in den P1- anstatt in den P0-Zustand. Der P1-Zustand steht hierbei nicht wie sonst für die erste Stromsparstufe, sondern für das Arbeiten mit Nominaltakt, womit der Turbo-Takt als höchst mögliche Leistung einen eigenen Eintrag erhält. So entsteht in der ACPI-Tabelle ein eigener Eintrag für die Turbo-Stufe, womit der Prozessor beispielsweise eine höhere Kernspannung in der Turbostufe einstellen kann. Die Auftrennung des P0-Zustand des Betriebssystems und des P0-Zustand des Prozessors sorgte beim Linux-Kernel mit den Versionsnummern 2.6.31, 2.6.32 und 2.6.33 dafür, dass die Kernel eine falsche Taktzahl auslesen und in Folge das System bis zu 27 % langsamer läuft. Zwar hilft das Abschalten der Stromsparfunktion Cool’n’Quiet, jedoch führt das zu einer erhöhten Leistungsaufnahme des Systems im Leerlauf von 10 bis 20 Watt. Die Linux-Kernel ab 2.6.35 sowie gepatchte Versionen der alten Kernelversionen weisen diese Problematik nicht mehr auf.

