Titelbild Kurzartikel AMD Phenom ohne TLB-Fix


Erratum 298, aka TLB-Bug, ist wie ein Gespenst: Jeder Phenom-User weiß, dass er existiert aber niemand konnte ihn bisher in freier Wildbahn provozieren. Doch wenn der Bug bisher nur unter Laborbedingungen aufgetreten ist, warum hat AMD dann jeden Phenom durch den so genannten TLB-Fix per BIOS eingebremst?

Nun, eine konkrete Antwort kann darauf nicht gegeben werden. Fakt ist aber, dass die derzeitige Berichterstattung im Internet davon spricht, dass der Bug im Labor unter Nutzung der Virtualisierungstechnologie sowie gleichzeitig voller Auslastung aller 4 Kerne reproduziert werden kann. In der Theorie kann dieser Bug jedoch auch in jedem einzelnen Phenom-System in nicht virtualisierter Umgebung auftreten, sodass AMD an dieser Stelle die Notbremse zieht.

Einerseits ist dieser Schritt verständlich. Nicht auszudenken, wenn durch einen Systemfreeze wichtige Daten nicht abgespeichert werden konnten, inkonsistente Daten entstehen oder schlichtweg umfangreiche Berechnungen unterbrochen werden. Daher wurden alle Mainboard-Hersteller von AMD angehalten, einen Fix im BIOS zu implementieren, der auch die theoretische Möglichkeit des Auftretens unterbindet, indem Teile der betroffenen Funktionseinheiten (L2-TLB) kurzerhand deaktiviert werden. Leider hat der Fix einen negativen Einfluss auf die Performance, was wir im Review des SAPPHIRE PURE CrossFireX PC-AM2RD790 beobachten konnten.

Doch welche Wege stehen einem User offen, der sich des Risikos bewusst ist und dennoch die volle Performance seines Systems nutzen will? Wir haben deshalb auf den folgenden Seiten 4 Wege dargestellt, wie der Erratum-298-Workaround gemildert oder gar deaktiviert werden kann.
[break=1. BIOS-Option]
Der erste und wohl komfortabelste Weg ist die Deaktivierung des Patches im BIOS.

Kurzartikel AMD Phenom ohne TLB-Fix


Bei einigen Mainboards findet man im BIOS entsprechende Optionen vor, wie auf diesem Bild des SAPPHIRE PURE CrossFireX PC-AM2RD790 beispielhaft dargestellt. Die Option "Apply Errata 298 Workaround" stellt dabei die Option der Begierde dar. Durch sie wird entschieden, ob der Patch aktiv gesetzt wird oder nicht.

Leider implementieren nicht alle Mainboardhersteller eine solche Option zur Abschaltung im BIOS. AMD hat empfohlen, den Fix als nicht abschaltbar zu gestalten, woran sich einige Hersteller bei der Programmierung ihrer BIOS-Versionen halten. So haben Nutzer des MSI K9A2 Platinum beispielsweise keine Wahl: In der aktuellsten BIOS-Version ist der Fix integriert, kann jedoch nicht abgeschalten werden.

Doch auch für diese leidgeplagten User gibt es Abhilfe.
[break=2. AMD Overdrive]
AMD Overdrive dürfte jedem Phenom-Nutzer ein Begriff sein. Mit diesem Tool lassen sich fast alle relevanten Einstellungen rund um Spannung und Takt des Phenom einstellen. In der neuesten Version 2.0.14 Beta (zum Download) ist ein sogenannter Turbo-Button integriert, mit welchem der TLB-Patch gemildert werden kann.

Kurzartikel AMD Phenom ohne TLB-Fix


Kurzartikel AMD Phenom ohne TLB-Fix


Kurzartikel AMD Phenom ohne TLB-Fix


Oben rechts im AMD Overdrive findet der User einen grünen Kreis vor. Klickt man darauf, wird der Kreis gelb umrandet, mit einem weiteren Klick ändert sich die Farbe zu rot.

Durch die Ampelfarben werden verschiedene Stati des TLB-Fixes markiert. Grün bedeutet dabei, dass der Fix aktiv ist, rot bedeutet nicht aktiv. Leider scheint dieser Turbo-Button nicht in allen Hardwareumgebungen zu funktionieren. So konnten wir bei Nutzung eines MSI K9A2 Platinum zwar einen Effekt beim Wechsel von grün zu rot beobachten, dieser fiel jedoch weitaus geringer aus, als es der Fall hätte sein sollen.

In diesen Fällen hilft der folgende Weg.
[break=3. Crystal CPUID / RW-Everything]
Crystal CPUID

Der Geheimtipp zur Deaktivierung des Erratum-298-Workarounds heißt Crystal CPUID. Mit Hilfe des integrierten MSR-Editors lassen sich einige Adressregister umschreiben, wodurch der Patch deaktiviert wird.

Um zu zeigen, was getan werden muss und welche Auswirkungen dies hat, haben wir einige Screenshots angefertigt. Der Anfang bildet ein kurzer WinRAR-Benchmark mit aktiviertem TLB-Patch.

Kurzartikel AMD Phenom ohne TLB-Fix


Nur knapp über 500 KB/s schafft unser AMD Phenom auf dem MSI K9A2 Platinum mit neuestem offiziellen BIOS.

Als nächstes öffnen wir Crystal CPUID und starten den MSR Editor (unter "Function" zu finden). In dem sich öffnenden Fenster muss im Feld "MSR Number" nun der Wert "0xc0010015" eingegeben werden und anschließend auf "RDMSR" geklickt werden. Die nun eingelesenen Werte müssen in der Zeile darunter per Hand erfasst werden - mit Ausnahme der letzten Ziffer. Hier muss aus der Vorgabe "8" eine "0" werden (wie auf dem Screenshot zu sehen). Anschließend auf "WRMSR" klicken und schon ist das entsprechende Register abgeändert. WinRAR zeigt daraufhin bereits eine Veränderung.

Kurzartikel AMD Phenom ohne TLB-Fix
(Klick öffnet größeres Bild)


Im nächsten Schritt muss das Register "0xc0011023" eingelesen werden. Analog der gerade beschriebenen Vorgehensweise wird das Register wie auf dem Screenshot zu sehen abgeändert. Auch hier zeit WinRAR erneut eine leichte Performancesteigerung.

Kurzartikel AMD Phenom ohne TLB-Fix
(Klick öffnet größeres Bild)


Diese beiden genannten Register müssen bei allen 4 Kernen der CPU abgeändert werden. Dazu ist der MSR Editor zu schließen, im rechten oberen Teil von Crystal CPUID der Kern zu wechseln und anschließend der MSR Editor wieder zu starten. Hat man alle insgesamt 8 Register umgeschrieben, erhält man folgendes Ergebnis:

Kurzartikel AMD Phenom ohne TLB-Fix
(Klick öffnet größeres Bild)


Die Performance ist somit wieder auf dem Niveau, wie vor der Implementierung des Patches.

Leider ist bei diesem Weg nicht alles Gold, was glänzt. Die Veränderung der Register ist vergleichsweise zeitaufwändig. Hinzu kommt, dass diese Werte nach jedem Neustart neu gesetzt werden müssen, da die entsprechenden Register beim Reboot wieder auf den Default-Wert des BIOS zurückgesetzt werden. Zudem sollte man sich beim Erfassen der Änderungen nicht vertippen, da es sonst zu Instabilitäten oder gar Systemabstürzen kommen kann. Deshalb sei ausdrücklich erwähnt, dass die gezeigten Veränderungen auf eigene Gefahr durchgeführt werden.

RW-Everything

Unser Foren-Mitglied mibo hat uns noch auf einen weiteren Weg aufmerksam gemacht, den wir natürlich niemandem vorenthalten wollen. mibo hat eine Lösung gefunden, wie die bei Crystal CPUID veränderten Register bei jedem PC-Neustart automatisch gesetzt werden, ohne dass der User permanent manuell eingreifen muss. Die Lösung hierfür heißt RW-Everything. Und so geht´s:

1. Schritt
Installation von RW-Everything in einem beliebigen Ordner

2. Schritt
Erstellung einer Textdatei mit folgendem Inhalt:

>cpu 1
>wrmsr 0xc0010015 0 0x01000010
>wrmsr 0xc0011023 0 0x00200020
>cpu 2
>wrmsr 0xc0010015 0 0x01000010
>wrmsr 0xc0011023 0 0x00200020
>cpu 3
>wrmsr 0xc0010015 0 0x01000010
>wrmsr 0xc0011023 0 0x00200020
>cpu 4
>wrmsr 0xc0010015 0 0x01000010
>wrmsr 0xc0011023 0 0x00200020
>rwexit


3. Schritt
Umbenennung der Dateiendung in .rw (Dateiname nach Wahl)

4. Schritt
Erstellung einer Verknüpfung zur Anwendung RW-Everything

5. Schritt
Ergänzung der Verknüpfung um den Zusatz "/Command=(Dateiname nach Wahl).rw /Logfile=logfile.txt"

6. Schritt
Ablage der Verknüpfung im Autostart

Das Ergebnis dieser Schritte ist das Gleiche wie unter Nutzung von Crystal CPUID - nur wesentlich komfortabler. Bei jedem Neustart des PCs startet RW-Everything, arbeitet die Instruktionen ab und schließt sich selbstständig wieder. In wenigen Sekunden lässt sich so ein spürbares Ergebnis erzielen.

Vielen Dank an mibo für den hervorragenden Hinweis.
[break=Besonderheit Windows Vista 64 mit Service Pack 1]


Windows Vista stellt eine besondere Herausforderung für den versierten Phenom-User dar, wenn er den TLB-Fix deaktivieren will. Zum Einen, weil der Erratum 298 Workaround im Service Pack 1 von Windows Vista 64 implementiert ist (unabhängig einer Deaktivierung im BIOS) und zum Anderen, weil auch das komfortable umschalten via RW-Everything per Autostart "unschöne" Folgen hat.

Prinzipiell funktioniert RW-Everything nach wie vor und deaktiviert den Fix zuverlässig. Nachteilig ist jedoch, dass das Programm Windows Vista in den "Testmodus" versetzt. Nach der Installation von RW-Everything erscheint dieser Schriftzug in allen 4 Ecken des Monitors, was zwar praktisch keine Auswirkungen hat, dennoch nicht schön anzusehen ist.

Aber auch für diesen Fall gibt es eine komfortable Lösung, auf die uns unser Foren-Member schmackolino aufmerksam gemacht hat. Vielen Dank an dieser Stelle für den Hinweis, der für viele Vista 64-User ein Lichtblick ist. Und darum dreht sich alles: CrystalCPUID (einmal mehr).

Was benötigt man dazu:
Und so funktioniert es:

Zuerst müssen CrystalCPUID sowie "TLBDisable_v1.03" in den gleichen Ordner entpackt werden, danach sind folgende Schritte durchzuführen:

Als erstes muss der Aufgabenplaner von Windows gestartet werden, zu finden unter Programme -> Zubehör -> Systemprogramme -> Aufgabenplaner.

Kurzartikel AMD Phenom ohne TLB-Fix: Besonderheit Windows Vista 64


Nachdem der Planer gestartet ist, muss im Menü "Aktion" der Punkt "Aufgabe erstellen" ausgewählt werden.

Kurzartikel AMD Phenom ohne TLB-Fix: Besonderheit Windows Vista 64


In dem sich anschließend öffnenden Menü muss als erstes ein Name für die erstellte Aktion vergeben werden. Weiter unten muss der Haken für "Mit höchsten Privilegien ausführen" gesetzt werden, da das Programm im Administrator-Modus laufen muss.

Kurzartikel AMD Phenom ohne TLB-Fix: Besonderheit Windows Vista 64


Nachdem die allgemeinen Angaben gemacht wurden, muss auf den Reiter "Trigger" gewechselt werden.

Bei einer komplett neu erstellten Aufgabe muss an dieser Stelle die Schaltfläche "Neu" genutzt werden, zur späteren Modifikation entsprechend die Option "Bearbeiten".

Kurzartikel AMD Phenom ohne TLB-Fix: Besonderheit Windows Vista 64


An dieser Stelle müssen drei Punkte eingetragen werden:

  • Aufgabe starten: Bei Anmeldung
  • Einstellungen: Jeder Benutzer
  • Erweiterte Einstellungen: Aktiviert

Danach ist das Dialogfeld zu schließen.

Kurzartikel AMD Phenom ohne TLB-Fix: Besonderheit Windows Vista 64


Weiter geht es mit dem Reiter "Aktionen". Auch hier muss bei einer komplette neuen Aufgabe "Neu" gewählt werden, zur späteren Modifikation genügt "Bearbeiten"

Kurzartikel AMD Phenom ohne TLB-Fix: Besonderheit Windows Vista 64


Im oberen Teil des erscheinenden Fensters muss als Aktion "Programm starten" gewählt werden. Darunter befindet sich ein Feld, in das der Zielpfad des Programms eingetragen wird.

Wichtig dabei ist, dass sich die Datei "Phenom_TLB_Disable.exe" (im Archiv TLBDisable_v1.03 enthalten) im gleichen Ordner wie CrystalCPUID befindet, da das TLB-Tool auf CrystalCPUID zugreifen muss.

Zu Empfehlen ist zudem das Argument "-nopop". Damit wird nach dem Start des Tools nach erfolgtem Bootvorgang eine Hinweismeldung unterdrückt, die der User sonst noch wegdrücken muss.

Nachdem auch die letzten Angaben zur Aktion gemacht und alle Fenster geschlossen wurden, wird der TLB-Fix fortan bei jedem Bootvorgang im Windows abgeschalten. Und das ohne zusätzlichen Usereingriff oder gar einen unschönen Testmodus. Allerdings müssen wir an dieser Stelle noch ein mahnendes Wort in Richtung aller potenziellen Nutzer dieses Tipps richten.

allgemeine Warnung

So interessant auch diese Möglichkeit zur Abschaltung des Erratum 298-Workarounds ist, so vorsichtig sollten Anwender auch damit umgehen. Denn seitdem unsere Kollegen von AnandTech einen Kurztest eines Phenom im B3-Stepping durchgeführt haben, ist ein wenig Licht ins Dunkel um Erratum 298 gekommen.

AnandTech zitiert ein Statement von AMD, in welchem erstmals von konkreten Situationen gesprochen wird, in denen der TLB-Bug zuschlägt. Und eine dieser Konstellation ist Windows Vista 64 bei Verwendung des Benchmarks SPEC CPU 2006. Da nicht auszuschließen ist, dass der Bug auch bei anderen frei verfügbaren Programmen auftritt, sollten Vista 64-User besondere Vorsicht walten lassen.
[break=4. Linux-Patch]
Es gibt selten Situationen, in denen Windows-User zugeben, dass es Linux-Nutzer einfacher und besser haben. Der TLB-Bug ist eine dieser seltenen Situationen.

Während Windows-User nur die Wahl haben, zwischen Patch an oder aus zu wählen und mit den Konsequenzen zu leben, können sich Linux-User entspannt zurücklehnen, zumindest wenn sie die x86-64 Version einsetzen, denn nur hier sind die A-/D-Bits per Software manipulierbar. Durch Einspielen eines Kernel-Patches werden die theoretischen Bug-Folgen eliminiert, gleichzeitig lässt die Systemperformance aber nur minimal nach, da hier keine Funktionseinheiten deaktiviert werden, sondern durch Emulation die Accessed und Dirty Bits gesetzt werden.

Als grober Umriss für die Verfahrensweise hier eine kurze Anleitung, welche unser technischer Administrator tomturbo bis zum 4. Schritt im Selbstversuch ausprobiert hat. Der dafür nötige Code kann hier heruntergeladen werden.

1. Schritt
Der aktuelle Kernel-source wird in ein Verzeichnis nach Wahl kopiert.

2. Schritt
Mittels "make distclean" wird der Kernel auf den Auslieferungszustand zurück gesetzt.

3. Schritt
Anschließend muss der Patch mittels "patch -p1 -i /patch/dir/amdpatch" in die Kernel-Source eingefügt werden.

4. Schritt
Als nächstes steht mit "make menuconfig" die Konfiguration des Kernels (64bit, NUMA enabled, SMP, Treiber, usw.) auf dem Plan.

5. Schritt
Abschließend muss der Kernel mit dem Befehl "make" übersetzt und installiert werden.

Nach Abschluss des 5. Schrittes kann sich der Linux-User freuen. Erratum 298 ist umgangen und die Performance nur minimal beeinflusst.
[break=Fazit]
Titelbild Kurzartikel AMD Phenom ohne TLB-Fix


Die vergangenen Seiten haben gezeigt, dass Phenom-Usern trotz aller widrigen Umstände Wege zur Verfügung stehen, den Erratum-298-Workaround zu mildern oder zu deaktivieren. Dabei hat jede Variante ihre Vor- und Nachteile, weshalb jeder User, der mit dem Gedanken spielt, sein System ohne TLB-Fix zu nutzen, sich für die für ihn günstigste Variante entscheiden muss.

Bis auf den Linux-Fix haben jedoch alle eines gemeinsam: Sie umgehen lediglich die vom TLB-Patch verursachten Folgen - nämlich den Performanceverlust. Die Ursachen des Bugs werden dadurch nicht bereinigt. Daher bleibt zu hoffen, dass zukünftige Phenom-Steppings ohne das Gespenst "Erratum 298" des Weges kommen.

Wir hoffen, durch diesen kurzen Artikel einigen Usern geholfen zu haben, die nach Wegen aus dem Performancetal, verursacht durch den TLB-Patch, gesucht haben.

...weitere Artikel
...diesen Artikel im Forum diskutieren