Intel Turbo Boost
# Intel Turbo Boost

Intel Turbo Boost (auch Turbo Boost Technology und kurz Turbo Boost) ist eine Funktion zur automatischen Übertaktung von Hauptprozessoren von Intel, welche in einigen Versionen der Nehalem-Mikroarchitektur Verwendung finden. Turbo Boost erlaubt die bedarfsorientierte dynamische Erhöhung des Prozessortaktes.

Turbo Boost wird automatisch aktiviert, wenn das Betriebssystem die höchstmögliche Leistung („P0-State“) abfragt. Da diese „Performance States“ (abgekürzt P-States) in der ACPI-Tabelle geregelt sind, welche jedes moderne Betriebssystem unterstützt, sind für die Funktionalität dieser Technologie keine zusätzlichen Treiber oder zusätzliche Software erforderlich. Diese Funktion wird unter anderem auch als automatische oder dynamische Übertaktungsfunktion bezeichnet.

## Funktionsweise

Da ältere Programme oft nicht auf die Nutzung mehrerer Prozessorkerne ausgelegt sind, benutzen sie auch bei einem modernen Mehrkernprozessor nur einen Thread oder Kern, wodurch ein höher getakteter Einkernprozessor eine solche Applikation schneller durchführen kann als ein Vierkernprozessor mit niedrigerem Takt, auch wenn dessen Gesamtrechenleistung höher liegt als die des Einkernprozessors. Da die Thermal Design Power (kurz TDP; auch thermisches Budget) bei einem Prozessor die durch das Kühlsystem maximal abführbare Verlustleistung des gesamten Prozessors beinhaltet, reizt ein Prozessor, bei dem nur ein Kern voll ausgelastet ist, 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. Damit ein Kern den ungenutzten Teil der TDP nutzen kann, muss bei Turbo Boost allerdings die Temperatur sowie die Strom- und Leistungsaufnahme unterhalb bestimmter Grenzen liegen. Die Temperatur wird dabei von einem Sensor im Prozessor ausgelesen. Die Kernspannung kennt der Prozessor selbst, da er sie als Zielwert an den Spannungswandler der Hauptplatine übermittelt hat. Über eine Extraleitung erhält der Prozessor vom Spannungswandler über ein zwar recht ungenaues, analoges Signal die Information, wie viel Strom er gerade liefert, multipliziert mit der Kernspannung reicht diese Information für den Prozessor aber trotzdem aus, um die ungefähre Leistungsaufnahme abschätzen und damit überprüfen zu können, ob die TDP schon ausgereizt ist.

Damit der Teil der TDP, die einem Prozessorkern normalerweise zugewiesen würde, als ungenutzt gilt, muss der Kern mindestens im (Deep) Sleep-Modus (in der ACPI-Tabelle als „C3“-State bezeichnet) verweilen. Das heißt, dass in diesem Modus keiner der beiden dem Betriebssystem mittels Hyper-Threading vorgetäuschten parallelen Threads eines physischen Kerns einen Prozess ausführen darf. Ist dies der Fall und wird vom Betriebssystem die höchstmögliche Leistung für mindestens einen Kern angefordert, wird der Multiplikator vom Prozessor automatisch in Einzelschritten erhöht, wobei pro Multiplikatorstufe (im Intel-Jargon werden diese Turbo-Stufen auch als „Speed Bins“ bezeichnet) der Takt um 133,33 bzw. 100 MHz erhöht wird. Die maximal erreichbare Multiplikatorstufe hängt von der Anzahl der aktiven (C0 „Operating State“, C1 „Halt State“ bzw. C1E „Enhanced Halt State“ und C2 „Stop Grant“ bzw. C2E „Enhanced Stop Grant“) bzw. schlafenden (≥ C3-State) Kerne ab, wobei Intel bei der Herstellung die Information, um wie viele Multiplikatorstufen bei wie vielen aktiven Kernen erhöht werden darf, sowie die maximale erreichbare Multiplikatorstufe im Prozessor speichert. Wenn der Prozessor einen der gegebenen Wärme-, Strom- oder Leistungs-Grenzwerte überschreitet, geht es in gleichen Multiplikatorstufen wieder abwärts, wobei ein Prozessor bis zu 200 Mal pro Sekunde seine Taktfrequenz auf diese Weise ändern kann.

Ob ein Prozessor (speziell unter Volllast, wenn 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 Hitze als bei Code, der alle Rechenwerke gleichermaßen auslastet. Wenn Turbo Boost trotz unterhalb der Grenze liegender Temperatur-, Strom- und Leistungswerte nicht eingeschaltet wird, liegt dies mitunter an einer BIOS- oder UEFI-Einstellung, die diese Funktion komplett deaktiviert. Eine andere Möglichkeit liegt darin, dass im BIOS/UEFI die Stromsparfunktion („SpeedStep“ bzw. „EIST“) abgeschaltet wurde und damit dem Prozessor die C-States verweigert werden, womit ein Kern immer als aktiv gilt und somit der ihm zugewiesenen Teil der TDP nicht umverteilt werden kann.

### Beispiel der Funktionsweise

Ein Core i7-920XM Extreme Edition hat eine Normtaktfrequenz von 2.000 MHz. Die höchstmöglichen Turbo-Stufen sind 2 bei vier und drei aktiven Kernen, 8 bei zwei aktiven Kernen und 9 bei nur einem aktiven Kern. Mit jeder erhöhten Turbo-Stufe steigt der Multiplikator um eine Stufe und damit der Takt um 133,33 MHz. Vorausgesetzt, dass die Temperatur-, Strom- und Leistungsgrenzwerte noch nicht überschritten wurden, kann der Prozessor damit folgende maximale Taktfrequenzen erreichen:

| 3 bzw. 4 | Kerne: | 2.000 MHz | + | 2 × 133,33 MHz | = | 2.000 MHz | + | 266,66 MHz | ≈ | 2.267 MHz |
| - | - | - | - | - | - | - | - | - | - | - |
| 2 | Kerne: | 2.000 MHz | + | 8 × 133,33 MHz | = | 2.000 MHz | + | 1.066,64 MHz | ≈ | 3.067 MHz |
| 1 | Kern: | 2.000 MHz | + | 9 × 133,33 MHz | = | 2.000 MHz | + | 1.199,97 MHz | ≈ | 3.200 MHz |

Seit der Sandy Bridge-Mikroarchitektur beträgt der Referenztakt 100 statt 133,33 MHz.

Eine detaillierte Frequenztabelle der einzelnen CPUs kann auf den Intel-Supportseiten abgerufen werden:

### Prozessoren mit Turbo Boost

Turbo Boost wird nur von den Prozessorfamilien Core i5 sowie den Core-i7-Prozessoren unterstützt. Die mit Sandy Bridge eingeführte Version 2.0 von Turbo Boost unterstützen ebenfalls nur die Core-i5- sowie i7-Prozessoren. In allen Pentium- und Core-i3-Prozessoren ist diese Technologie nicht integriert.

## Geschichte

In einem White Paper von Intel vom November 2008 wird über Turbo Boost berichtet, welche als neue Technologie in den auf der Nehalem-Mikroarchitektur basierenden, noch im selben Monat veröffentlichten Prozessoren erstmals Verwendung finden soll.

Eine Turbo Boost ähnliche Technologie namens Intel Dynamic Acceleration (IDA) war schon in einigen auf der Core-2- bzw. der Core-Mikroarchitektur basierenden Centrino-Prozessoren enthalten. Dieser Technologie wurde aber nicht die gleiche Verbreitung und Aufmerksamkeit zu teil, wie sie Turbo Boost erfährt. So wurde IDA im BIOS der meisten Laptops deaktiviert. Ein weiteres Problem dieser Technologie war die Schwierigkeit, die Vorteile dieser Technologie zu nutzen, sofern das System nicht im Einkernmodus gestartet wurde.

2011 veröffentlichte Intel Version 2.0, welche erstmals in den Hauptprozessoren der Sandy Bridge-Familie Verwendung fand.

## Nachteile

Turbo Boost 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 über die maximal mögliche Multiplikatorstufe (bei Core i5 und Core i7 sind dies bei allen Prozessoren, die Turbo Boost unterstützen, 0 bis 2 Stufen) bei drei und vier aktiven Kernen hinauszukommen, müssen sich mindestens zwei Kerne im C3-Schlafmodus befinden. Moderne Betriebssysteme verteilen die zu berechnenden und auszuführenden Anwendungen gleichmäßig auf alle verfügbaren Kerne, wodurch ein Prozessorkern nur selten in den C3-Modus wechselt, womit er wiederum nicht als inaktiv gilt und somit sein TDP-Anteil nicht umverteilt werden kann. Ein anderer Nachteil zeigt sich bei Windows, das 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 es sich um Single-Thread-Programme handelt und damit nur ein Kern aktiv ist, brauchen die anderen Kerne Zeit, um in den C3-Modus zu wechseln, und der aktive Kern Zeit, um die Turbo-Stufen zu erhöhen, wodurch die Taktfrequenz bei dieser Variante niedriger ist, als wenn das Programm nicht zwischen den verschiedenen Kernen wechseln würde. Technologien wie Core Parking können diese Nachteile aufheben, müssen sich aber erst etablieren bzw. in den vereinzelten Betriebssystem durchsetzten.

## Unterschiede zu Turbo Core

Intels Turbo Boost unterscheidet sich in mehreren Teilen von AMDs Turbo Core. Einer der großen Unterschiede besteht darin, dass Turbo Boost den TDP Anteil eines inaktiven Prozessorkerns gleich umverteilen kann und nicht – anders als 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. Während Turbo Core die Taktrate des Prozessors nur um eine feste Stufe erhöhen kann (je nach Prozessor 400 oder 500 MHz), können manche mobile Vierkernprozessoren von Intel bei nur einem aktiven Kern den Takt um bis zu 9 Multiplikatorstufen 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 Core schon Prozessorkerne im C1-State als inaktiv gelten, gilt bei Turbo Boost ein Kern erst als inaktiv, wenn er im C3-State verweilt. Der Nachteil daran liegt zum einen darin, dass der Prozessorkern schneller in den C1-State 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-State. Turbo Boost benötigt – anders als Turbo Core – zudem einen zusätzlichen Eintrag im BIOS. AMD hat des Weiteren die P-States des Prozessors von den P-States des Betriebssystems getrennt. Fordert das Betriebssystem die volle Leistung an (P0-State), geht der Prozessor allerdings zuerst in den P1- anstatt in den P0-State. Der P1-State steht hierbei nicht wie sonst für die erste Stromsparstufe, sondern für das Arbeiten mit Nominaltakt, womit der Turbotakt 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 Turbo-Stufe einstellen kann. Zwar verursachte die Auftrennung des P0-State des Betriebssystems und des P0-State des Prozessors bei einigen Versionen des Linux-Kernel Probleme, wobei die Kernel eine falsche Taktzahl auslasen und in Folge das System bis zu 27 % langsamer lief, die Kernel ab 2.6.35 sowie gepatchte Versionen der alten Kernelversionen weisen diese Problematik jedoch nicht mehr auf.

## Turbo Boost Technology 2.0

Turbo Boost 2.0 ist die Weiterentwicklung der ersten Generation, die zum ersten Mal in den Prozessoren mit Sandy-Bridge-Mikroarchitektur zum Einsatz kam. So wie bei der alten ist auch die neue Version nur ab Systemen mit Core-i5- und i7-Prozessoren mit einer Versionsnummer ab Bereich 2xxx verfügbar, in späteren Generationen auch auf einigen Core i3 Prozessoren.

Neu bei Version 2.0 ist, dass die Prozessoren unter bestimmten Voraussetzungen alle Kerne für einen kurzen Zeitraum höher übertakten und die TDP überschreiten dürfen, wobei für einen kurzen Zeitraum mehr Verlustwärme produziert wird als der Kühler auf Dauer abführen kann, wobei hier die thermische Trägheit des CPU-Kühlers ausgenutzt wird. Je nach Situation kann dieser Zustand typischerweise bis zu 25 Sekunden anhalten. Zusätzlich zur dynamischen Übertaktung des Hauptprozessors wird seit Sandy Bridge auch der Grafikprozessor bei Belastung übertaktet, was bisher den Mobilprozessoren vorbehalten war. CPU und integrierte GPU teilen sich hierbei die TDP, womit je nach Software mal der Anteil der CPU und mal der der GPU den größeren Teil der Verlustwärmeleistung im Betrieb bildet.

Da auf den Mainboards mit den Chipsätzen der 6er-Serie der Referenztakt nur mehr 100 statt 133,33 MHz beträgt, fallen die Takterhöhungen der einzelnen Stufen ebenfalls geringer aus. Wie viele Taktstufen bei wie vielen gleichzeitig aktiven Kernen jeweils hochgeschaltet wird, ist nach wie vor je nach Prozessor unterschiedlich.

