____foveon
_____fotografie_____infrared_____sonstiges_____

kontakt

artikel

stromsparen
handwerkszeug
standby
typ. Verbräuche


x100e - Temperaturbasierte CPU-Taktsteuerung mit RMClock
(Stand: März 2014)

 Um was geht es: Übliche Undervolting-Software kann man neben der reinen Spannungsabsenkung zur Abwärmereduktion auch zum intelligenten Steuern der Maximaltaktraten eines Prozessors verwenden. Nachfolgend soll am Beispiel des Notebooks Lenovo Thinkpad x100e und der Undervolting-Software RMClock auf das grundsätzliche Vorgehen eingegangen werden. Obwohl der Aufwand für einen alten Rechner wie z.B. den x100e kaum lohnt, ist das Prinzip doch auch für 'leistungsfähigere' AMD-Prozessoren wie z.B. Phenom, Llano oder Core 2 Quads interessant, um eine Art Turbofunktion moderner Prozessoren nachzurüsten. 

Grundlage für den hier vorgestellten exemplarischen Fall ist die Bedienung von RMClock, welche in folgendem Artikel detailiert beschrieben wird [1]. Nach Absolvieren der Anleitung sollten für einen Prozessoren ein Ensemble von Taktfrequenzen und zugehörigen nötigen Betriebsspannungen vorliegen.

x100e - Undervolting-Anleitung mit RMClock

Der nächste Schritt zur Vermeidung der Überhitzung ist die dynamische Regelung des maximalen CPU-Taktes anhand der Chiptemperatur.

 Regelungsprinzip: Man emuliert mit einer geeigneten Software die Turbofunktionalität moderner Core-i-Prozessoren über eine Software. Nachfolgend ist die 'Regelabfolge' aufgelistet:

a) Die CPU kann den Takt absenken, wenn zu wenig Arbeit ansteht und kann den Takt bis zum Maximaltakt anheben, wenn viel Arbeit ansteht.

b) Die CPU muss ihren Maximaltakt reduzieren, wenn eine Temperaturschwelle überschritten wurde.

c) Die CPU muss den Maximaltakt erhöhen, sofern eine gewisse Temperaturschwelle unterschritten wurde.

d) Die CPU darf in keiner Situation die Stromversorgung der Hauptplatine überlasten. Die würde einen Spannungsabfall und Rechenfehler oder Abstürze mit sich bringen.

Insbesondere Punkt d) bringt Risiken mit sich. Übertaktet man z.B. einen AMD A6-3400M z.B. von 1,4 GHz auf 3,0 GHz [2], zieht jeder CPU-Kern deutlich mehr Strom. Lastet man nur einen oder zwei der vier Kerne aus, mag dies für das Mainboard bekömmlich sein. Die Auslastung aller vier Kerne sowie der GPU kann die Stromversorgung des Mainboards überlasten und zu einem Spannunsgsabfall führen. Der Rechner läuft dann nicht mehr stabil.

Eine hardware-integrierte Taktregelung wie z.B. in Intels Core-i-Prozessoren erkennt die Auslastung aller Kerne sofort und senkt den Takt instantan. Dies ist über eine Software-Lösung, wie sie in diesem Artikel vorgeschlagen wird, nicht möglich. Bis die Steuersoftware die vollständige Auslastung erkennt, wäre die Spannungsversorgung bereits zusammengebrochen. Die Maximaltaktung muss daher durch die Auslastung aller Kerne (und der GPU) vorgegeben werden, eine Unterscheidung nach der Zahl der aktivierten Prozessorkerne ist nicht möglich.

Punkt d) werde ich nachfolgend ausklammern, da dies für den alten K8 X2 im x100e mangels Übertaktungsmöglichkeit sowieso keine Rolle spielt. Er erfolgt eine ausschließliche Temperaturregelung.

 Benötigte Software: 
Für die Steuerung des x100es braucht man die Professional-Version des RMClock Utilitys. Dies kostet zur Zeit 4 € [3].

 Schritt 1 - Erstellung von Profilen: Die Implementation von Regel a) (Wählen des aktuellen Takts anhand der CPU-Auslastung) erledigt RM-Clock von selbst, dies ist im Artikel [1] beschrieben. Das voreingestellte Profil 'Performance on demand' regelt z.B. den momentanen CPU-Takt im Bereich zwischen 800 und 1600 MHz.

Für die Implementierung der Temperatursteuerung benötigt man mehrere Profile mit unterschiedlichen Maximaltaktraten. Dazu erzeugt man im RMClock unter 'Profile' mit einem Klick auf 'New Profile' ein eines neues Profil:

Ich habe die Profile PoD-xxxx genannt, mit xxxx für die maximale Taktrate. So darf die CPU mit PoD-1600 z.B. zwischen 800 MHz und 1600 MHz takten, je nach Auslastung. In PoD-1400 wird die oberste Taktstufe abgewählt, entsprechend bleibt noch der Bereich zwischen 800 und 1400 MHz usw. Die genaue Abstufung kann obriger Abbildung entnommen werden. Wie genau man ein Profil erstellt, ist in [1] beschrieben.

 Schritt 2 - Definieren von Ereignissen: Unter 'Professional features' findet man den Button 'Events'. Dort kann man mit 'New...' ein neues Ereignis definieren.

So wird mit nachfolgender Abbildung z.B. ein Ereignis definiert, das beim Überschreiten der CPU-Temperatur von 59°C ausgelöst wird. Wiederholt man das ganze mehrmals, bekommt man die oben abgebildete Ereingnis-Liste. Die Vergabe von ordentlichen Namen wie z.B. 'T>59" erleichtert den darauf folgenden Schritt.

 Schritt 3 - Definieren von Aktionen: Als letzten Schritt muss man die Aktionen definieren, die beim Eintreten verschiedener Ereignisse ausgelöst werden. Hierzu gibt es unter 'Actions' eine Liste, in der man mit 'New...' neue Aktionen definiert:

Im darauf folgenden Dialog werden beim Erreichen bestimmter Ereignisse bestimmte Profile eingeschaltet. Beispielhaft wird mit folgenden Einstellungen bei Überschreiten der 60°C Marke das Profil 'PoD-900' eingeschaltet, womit der Maximaltakt auf 900 MHz begrenzt wird.

Die Reihenfolge der Aktionen ist dabei für RM-Clock wichtig. Von oben beginnend wird die Liste abgearbeitet, wobei der erste positive Eintrag die Aktion festlegt. Daher kommen zuerst die Maximaltaktbegrenzungen (Absenkung auf 900 MHz und 1100 MHz), dann erst die Maximaltakterhöhungen (auf 1600 MHz, 1400 und 1100 MHz).

 Ergebnisse: Bei meinem x100e wurden die Profile so gestaltet, dass der Lüfter nie die erste Stufe überschreiten sollte. Hierzu muss die CPU-Temperatur unter der 60°C Marke bleiben.

Nachfolgend ein synthetisches Szenario, in welchem die CPU durch 'ORTHOS CPU Loader' unter Volllast gesetzt wurde. Durch das manuelle Zuhalten der Luftauslass-Öffnung staute sich die Wärme und man sieht, wie die CPU nach gut einer Mintue ihren Maximaltakt drosselt um dann zwischen 1100 und 1400 MHz zu schwanken. Die Chip-Temperatur wird durch die Steuerung immer knapp unter der 60°C Marke gehalten.

Speziell bei Quad-Core CPUs mit Übertaktungsfunktion wie z.B. den AMD Llano-APUs könnte man mit einer Temperaturregelung eine Software-basierte Turbofunktion nachrüsten. Parallelisierte Software würde die APU stark aufhitzen und zum Absenken der Maximaltaktrate zwingen, während die geringere Wärmeproduktion beim Ausführen von Einkern-Software höhere Taktraten erlaubt.

Quellen:

[1] - x100e - Undervolting-Anleitung mit RMClock (auf dieser Internetseite)

[2] - http://arstechnica.com/civis/viewtopic.php?t=1160289

[3] - http://cpu.rightmark.org/products/rmclock.shtml

März 2014