Episode 5: Overclocking
oder: wie ich das schnellste Thinkpad der Welt erschuf
Die Modder haben es geschafft! Beharrlichkeit zahlt sich aus
Mein BIOS ist nun unlocked. Damit steht der nächsten Episode nichts mehr im Weg. Es geht ums Übertakten.
Eins vorweg: Ich höre oft Sätze wie
"Laptops sind nicht zum Übertakten geeignet" oder
"Batterielebensdauer wird durchs Übertakten zerstört!". Bitte erspart es mir. Beides ist, wenn man es richtig macht, Quatsch.
Grundlagen:
Das W530 hat eine Intel CPU der Ivy Bridge Generation. Diese hat einige Merkmale und Limits:
- Basisfrequenz (BCLK): Hierauf bauen Multiplikatoren auf. Diese ist seit Sandy Bridge 100MHz. Ein Multi von 20 bedeutet also 2GHz auf der CPU. Eine Übertaktung hierüber ist theoretisch möglich, aber nicht empfehlenswert, da andere Komponenten mit übertaktet werden (Speicher, PCIe Bus, Controller, etc.). Meist kommt man nicht über 103MHz. Zudem existiert eine solche Option meist gar nicht im BIOS.
- Nominalfrequenz (TSC): Die max. Taktfrequenz der CPU
ohne Turbo und unabhängig von der TDP. Bei meinem i7-3920XM ist dies 3.1GHz.
- Turbo-Frequenzen: wird die TDP unterschritten, kann die CPU über den Nominaltakt hinaus in den Turbo. Dieser wiederum spaltet sich in 4 Werte: 4C/3C/2C/1C. Dies beschreibt die Zahl aktiver (= nicht schlafender) Kerne. Ist nur 1 Kern aktiv, geht der Turbo bis zum Wert in 1C, und so weiter. Am Beispiel des i7-3920XM: 36/36/37/38, also 3.8GHz bei einem aktiven Kern, 3.7GHz bei zweien, etc.
- TDP: Thermal Design Power, sie limitiert den Turbo-Modus. Die CPU berechnet kontinuierlich ihren Stromverbrauch. Überschreitet dieser die aktive TDP, wird der Turbo-Multi verringert, bis die TDP wieder eingehalten wird. Dies kann bis herunter zur Nominalfrequenz geschehen (= gänzlich ohne Turbo). Die CPU darf i.d.R kurzzeitig (meist ca. 10-30 Sekunden) die TDP um 25% überschreiten, wird diese aber langfristig einhalten. Gängige TDPs sind 25 - 45W, selten auch 55W (XM CPUs). Ultrabooks und ähnliches Spielzeug haben meist noch wesentlich niedrigere TDPs.
- Temperatur: Ist ein wichtiger Faktor. Erreicht der Kern Tjmax (meist um die 100°C), drosselt die CPU von selber. Dies ist alles andere als gesund. Man sollte es nie soweit kommen lassen. Als Maximaltemperatur sollten 85-90°C anvisiert werden.
- Locked Multis: Bei den allermeisten Intel CPUs lassen sich die Turbo-Multis überhaupt nicht erhöhen. Ausnahmen bilden CPUs mit dem Zusatz K oder XM. Für Notebooks bedeutet das: Nur die irrsinning teuren Extreme Editions lassen sich überhaupt übertakten.
- Lock-Bits: x86 CPUs besitzen einige MSR (maschinenspezifische Register), welche sich für Antifeatures nutzen lassen. Werden solche Lock-Bits gesetzt, z.B. vom BIOS, bleiben diese read-only bis das Gerät neugestartet wird. Beim W520/530 ist Bit 20 im MSR 0x194 ein solches.
Unlocking:
Ich habe mein W530 mit i7-3920XM erworben. Eine Extreme Edition, also eigentlich unlocked? Pustekuchen. Lenovo setzt nämlich das 0x194[20] Lock-Bit. Viel Spaß bei der Suche in Intel Dokus danach, offiziell existiert es gar nicht. Nicht einmal Google kennt dieses Bit. Der entscheidende Hinweis kam von Unclewebb, Entwickler von
ThrottleStop. Für Hinweise zu undokumentierten MSR ist er eine super Anlaufstelle.
Man gehe zum BIOS-Modder seines Vertrauens und frage nach einem Unlock. Einfach? Nein. Es hat viele Versuche gebraucht, aber wir haben es letztlich doch geschafft. Der entsprechende Modder hat von mir dafür eine saftige Belohnung erhalten
Dank Extreme Edition und fehlendem MSR-Lock gehts jetzt endlich los.
Overclocking:
Windows-Nutzer können an dieser Stelle auf ThrottleStop zurückgreifen. Da ich Linux nutze, verwende ich TS unter Windows nur zum Reverse-Engineering. Mit
MSRFinder kann man prima beobachten, was TS eigentlich verändert hat.
Ich werde die nächsten Tage ein Script für Linux veröffentlichen.
- Schritt 1: Vergleichswerte messen
Mein i7-3920XM hat 31 Nominaltakt, Turbo 36/36/37/38, 55W TDP. Unter Normalbedingungen mit Volllast auf allen Kernen werden 45W verbraten (=Turbo voll ausgenutzt), unter simulierter Last (prime95) sind es um die 52W-55W. Da prime95 enge Schleifen und optimierte Instruktionen nutzt, kann es die CPU heftiger belasten, als viele andere Programme.
- Schritt 2: Turbo berichtigen
Was soll eigentlich der Blödsinn mit 36/36/37/38? Wenn die CPU offensichtlich 38 kann, und die TDP
so oder so den Turbo limitiert, warum zusätzlich anhand der Anzahl aktiver Kerne limitieren? Also kurzerhand auf 38/38/38/38 geschraubt. Jetzt haben wir echte 4x 3.8GHz!
- Schritt 3: Takt erhöhen
Jetzt gehts hoch. Langsam den Multiplikator erhöhen und prime95 laufen lassen, bis Fehler oder Abstürze auftreten. Dann einen Schritt zurück.
39, 40, 41, 42, 43 nicht so ganz, aber 42. Voilà,
4x 4.2GHz! Natürlich ist nun die elektr. Leistung auch gestiegen und kratzt an der TDP. Damit sind 4x 4.2GHz etwas theoretisch. Aber solange es nicht gerade Volllast mit prime95 ist, kein Problem.
- Schritt 4: Feuer unterm Arsch
4.2GHz ist ja ganz nett, aber ich will mehr. Dazu benötigt die CPU mehr Spannung. Zum Glück geht das ("Extra Turbo Voltage" in TS)
Hier ist
Vorsicht geboten, da nun ganz rasant die Verlustleistung der CPU und Spannungswandler steigt! Was vorher bei 3 aktiven Kernen verfeuert wurde, wird nun bei 2 aktiven genutzt. Achtung, die TDP-Berechnung bekommt davon nichts mit! Das heißt, wenn die CPU angibt, 55W zu verbraten, sind es bei erhöhter Spannung nun in Realität mehr.
Spannung anheben und weiter takten. 43, 44, 45, 46.
4.6GHz bei 0.137V extra.
4x 4.6 GHz
Wow. Hätte ich echt nicht erwartet. 47 würde noch eine weitere
extreme Spannungsanhebung benötigen, was ich nicht probieren werde. Knapp 0.14V extra sind bereits viel.
Mhh, mal rechnen. Die neuesten Thinkpads, P50/P70, besitzen Skylake CPUs. Der schnellste serienmäßige Skylake schafft bis 3.9GHz auf einem Kern. Da er 3 Generation neuer ist als mein Ivy Bridge, hat er ca. 15-20% mehr IPC (großzügig geschätzt). Damit ist er ca. äquivalent mit einem 4.5GHz Ivy Bridge.
Das schnellste serienmäßige Thinkpad derzeit ist langsamer als mein übertaktetes W530. Und da es meines Wissens vor mir noch niemand geschafft hat, Thinkpads seit Sandy Bridge nennenswert zu übertakten, bedeutet das:
Ich besitze nun das weltweit schnellste Thinkpad.
:thumbsup:
- Schritt 5: Letztliche Implementierung
Ich richte das ganze nun so ein:
Batteriebetrieb: 4.2GHz ohne extra Spannung - sollte keine nennenswerte Auswirkung auf die Laufzeit haben, oder diese sogar
verbessern! Wie das? Nunja,
Race-to-idle ist so eine Sache. Je schneller die CPU ist, desto schneller kann sie ihre Aufgabe abarbeiten und zurück in den stromsparenden Schlafmodus fallen. Das ist sparsam.
Netzbetrieb: 4.6GHz mit Spannungshub. 4.6GHz ist ein bischen schwierig in die TDP zu quetschen, aber machbar, wenn nicht alle Kerne laufen. Der Kühler schafft die zusätzliche Abwärme gerade noch so eben. Da die Standardspannung des i7-3920XM bei vollem Turbo ca. bei 1.2V liegt, kann man die reale Abwärme wie folgt berechnen:
(1.337V/1.2V)^2 * 55W = 68W. Weia :whistling: