Benutzer:D-Kuru/baustellen/Intel Turbo Boost

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen




Intel 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öchst Mö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.

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 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 ungenuzten 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 vortäuschten Threads eines physischen Kerns einen Prozess ausführen darf. Ist dies der Fall und wird vom Betriebssystem die höchst mö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 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 wie viele Multiplikatorstufen bei wie vielen aktiven Kernen erhöht werden darf, sowie die maximale erreichbare Multiplikatorstufe im Prozessor speichert. Wenn der Prozessor eine 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 wo 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 Leistungswerten nicht eingeschaltet wird liegt dies mit unter an einer BIOS Einstellung die diese Funktion komplett deaktiviert. Eine andere Möglichkeit liegt darin dass im BIOS die Stromsparfunktion („SpeedStep“ bzw. „EIST“) abgeschaltet wurde und damit dem Prozessor die C-Sates verweigert werden, womit ein Kern immer als aktiv gilt und somit der ihm zugewiesenen Teil der TDP nicht umverteilt werden kann.

Beispiel der Funktionsweise

[Bearbeiten | Quelltext bearbeiten]

Ein Core i7-920XM Extreme Edition hat eine Normtaktfrequenz von 2'000 MHz. Die höchst mö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 & 4 Kerne aktiv: 2'000 + 2 x 133,33 = 2'000 + 266,66 ≃ 2'266 *
  • 2 Kerne aktiv: 2'000 + 8 x 133,33 = 2'000 + 1'066,64 ≃ 3'067 *
  • 1 Kern aktiv: 2'000 + 9 x 133,33 = 2'000 + 1'199,97 ≃ 3'200 *

* Alle Angaben (bis aus die einstellige Multiplikatorstufen) sind in MHz angegeben

Prozessoren mit Turbo Boost

[Bearbeiten | Quelltext bearbeiten]

Derzeit unterstützen Turbo Boost die Prozessorfamilien Core i5 der 600er und 700er Serie sowie die Core i7 Prozessoren der 800er und 900er Serien. Sämtliche Prozessoren der Core i3, Celeron Dual-Core, Pentium Dual-Core sowie Core 2 Duo Reihe mit den Nummern Exxxx, die Prozessoren der Core 2 Quad Reihe mit den Nummern Qxxxx sowie die Pentium Prozessoren der Reihe G6xxx unterstützen Turbo Boost nicht.

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.[1][2]

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.[3] 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 deaktivier. Ein weiteres Problem dieser Technologie war die Schwierigkeit die Vorteile dieser Technologie zu nutzen sofern das System nicht im Einkernmodus gestartet wurde.

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 mindestens zwei Kerne sich 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 eine Single Thread Application 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 der das Programm nicht zwischen den verschiedenen Kernen wechseln würde.[4] Technologien wie Core Parking können diese Nachteile aufheben, müssen sich aber erst etablieren bzw. in den vereinzelten Betriebssystem durchsetzten.[5]

Unterschiede zu Turbo Core

[Bearbeiten | Quelltext bearbeiten]

Intel's Turbo Boost unterscheidet sich in mehreren Teilen von AMD's 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 gilt, 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 weiters 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 Linux Kernel ab 2.6.35 sowie gepatchte Versionen der alten Kernelversionen weisen diese Problematik jedoch nicht mehr auf.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Intel® Turbo Boost Technology in Intel® Core™ Microarchitecture (Nehalem) Based Processors
  2. Intel Launches Fastest Processor on the Planet
  3. Tech ARP - Intel Dynamic Acceleration
  4. Intel’s Turbo Boost: Lynnfield Gets Afterburners : Intel Core i5 And Core i7: Intel’s Mainstream Magnum Opus
  5. Core Parking in Windows Server 2008 R2 and Windows 7 | Dr. Dobb's and Intel Go Parallel Programming




headline: processors supp., diff turbo core

Source: c't, 16/2010, Seite 170