Benutzer:D-Kuru/baustellen/AMD Turbo Core

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





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 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 Prozessorkern als inaktiv gilt und der Teil der TDP die dem Kern normalerweise zugewiesen würde als ungenutzt gilt, muss der Kern mindestens im Halt Modus (in der ACPI-Tabelle als „C1“ State bezeichnet) verweilen und davor seine Taktfrequenz auf 800 MHz gesenkt haben. Befinden sich mindestens die Hälfte der Kerne in diesem Modus und wird vom Betriebssystem die höchst mö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 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. 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 Turbo Stufe kann man hierbei einstellen. Erfahrene Übertackter können dabei auch die Einstellungen für den P0-State des Prozessors selbst festlegen.

Prozessoren mit Turbo Core

[Bearbeiten | Quelltext bearbeiten]

Derzeit unterstützen nur die Sechskernprozessoren der Phenom II Reihe Turbo Core. Im Allgemeinen erkennt man einen Prozessor von AMD der Turbo Core unterstützt am „T“ am Ende der Versionsnummer (z.B. Phenom II X6 1090T: 6 von „X6“ steht hierbei für die Anzahl der Kerne; „1090“ ist die Versionsnummer; das „T“ besagt, dass der Prozessor Turbo Core unterstützt)

Während Intel schon 2008 ihre Turbo Boost genannte Übertacktungsfunktion mit der Nehalem-Mikroarchitektur auf den Markt brachte, stellte AMD die ersten Prozessoren mit automatischer Übertacktungsfunktion erst 2010 her, wobei die ersten Prozessoren mit besagter Funktion der Phenom II X6 1055T und der Phenom II X6 1090T waren. Bisher ist Turbo Core nur in Sechskernprozessoren inkludiert. Es sollen aber noch Vierkernprozessoren mit dieser Funktion folgen.

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 Modus 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 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 hierbei nur ein Kern gleichzeitig aktiv ist, braucht der Kern Zeit um in den C1 Modus zu wechseln sowie die restlichen Kerne Zeit 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 Betriebssystem durchsetzten.[1]

Unterschiede zu Turbo Boost

[Bearbeiten | Quelltext bearbeiten]
P-States bei Turbo Core
P-State
OS
P-State
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

AMD's Turbo Core unterscheidet sich in mehreren Teilen von Intel's 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-Status verweilt, gelten bei Turbo Core schon Kerne im C1-State als inaktiv. Der Vorteil dessen liegt zum einen darin, dass es der Prozessor 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 Core benötigt zudem − anders als Turbo Boost − keinen zusätzlichen Eintrag im BIOS. AMD hat weiters die P-States des Prozessors von den P-State des Betriebssystems getrennt (Tabelle auf der rechten Seite). 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. Die Auftrennung des P0-State des Betriebssystems und des P0-State 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.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Core Parking in Windows Server 2008 R2 and Windows 7 | Dr. Dobb's and Intel Go Parallel Programming




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