Verwirrung um möglichen TLB-Bug in Intels Core i7
In einer Reihe von Meldungen diverser Onlinemedien ist derzeit von einem "TLB-Bug" in Intels neuer Prozessorarchitektur mit den Modellen der Serie Core i7 die Rede. Auslöser dürfte wohl die berühmt-berüchtigte Webseite Fudzilla(öffnet im neuen Fenster) gewesen sein, die früh über das potenzielle Problem berichtete.
Fudzilla zitiert dabei Auszüge aus einem von Intels "Specification Updates". Dieses PDF-Dokument(öffnet im neuen Fenster) gehört zur regelmäßigen Dokumentation von Fehlern in Intel-Prozessoren, die Intel seit dem legendären FDIV-Bug des Pentium(öffnet im neuen Fenster) veröffentlicht. Jeder Prozessor enthält Fehler, die in der Regel nur bei unsinnigen Code-Kombinationen auftreten, wie sie in Betriebssystemen oder Anwendungen nicht vorkommen.
Zudem sind die meisten dieser von Intel "Errata" genannten Phänomene nur unter ganz bestimmten Randbedingungen zu beobachten, wie beispielsweise einer Kombination von Hardwarekomponenten, verschiedenen Spannungen für die Teile der CPU und Temperaturen.
Fehler im "Translation Lookaside Buffer", kurz TLB, waren durch AMDs K10-Prozessoren vom Typ Opteron und Phenom ins Licht der Öffentlichkeit gerückt. Zwar beteuerte AMD, dieser Fehler sei noch nie im Praxiseinsatz aufgetreten, veröffentlichte aber ein BIOS-Update, das den Prozessor rund 15 Prozent langsamer machte. Bei den Opterons mit Barcelona-Kern wurde sogar die Auslieferung gestoppt.
Intel schreibt in seinem Specification Update Ähnliches: " Unter seltenen Umständen kann die fehlerhafte Ungültigkeitserklärung von TLB-Einträgen zu einem unvorhersehbaren Verhalten des Systems wie Abstürzen oder ungültigen Daten führen.". Dafür gebe es ein BIOS-Update, das PC-Herstellern und BIOS-Programmierern bereits zur Verfügung gestellt werde.
Allerdings steht in diesem PDF auch, dass der Effekt nur auftreten kann, wenn Software selbst Einträge im TLB für ungültig erklärt. Die Aufgabe dieses sehr kleinen, aber sehr schnellen Speichers ist es, virtuelle Speicheradressen in physikalische umzusetzen. Der TLB kann so auch von einem Betriebssystem, das vollständigen Zugriff auf die CPU hat, zur Speicherverwaltung eingesetzt werden. Dass eine Anwendung den TLB manipulieren kann, ist sehr unwahrscheinlich.
Zwei Absätze vor dem Hinweis auf ein BIOS-Update auf Seite 36 des PDF steht zudem, dass Intel seine Unterlagen für Programmierer aktualisieren will, weil der Core i7 erstmals in einer Intel-CPU über Caches für "Page Tables" verfügt. Diese Tabellen für Speicheradressen, bei AMD auch "Nested Page Tables" genannt, sorgen für eine schnelle Umschaltung zwischen verschiedenen Zuständen des Prozessors, was beim Betrieb von virtuellen Maschinen mehr Geschwindigkeit bringt. Dass die Dokumentation angepasst werden muss, begründet das PDF wie folgt: "Diese Information ist notwendig, um Betriebssystemen dabei zu helfen, ungültige Page-Table-Strukturen richtig zu verwalten."
Bisher weist diese Seite(öffnet im neuen Fenster) zum Befehl "INVLPG – Invalidate TLB Entry" in Intels Entwicklerleitfaden schon darauf hin: "Der Befehl INVLPG ist von der Implementierung abhängig, und seine Funktion kann in künftigen Intel-Architekturen anders implementiert werden."
Damit ist noch nicht ganz geklärt, ob der TLB im Core i7 selbst Fehler produziert, oder ob es sich beispielsweise um eine Inkompatibilität mit älterer Virtualisierungssoftware handelt. Intel Deutschland wollte zu dem umstrittenen Eintrag im Specification Update nicht unmittelbar Stellung nehmen, dies soll durch die Entwickler der CPU und die Dokumentationsautoren in den kommenden Tagen geschehen.
- Anzeige Hier geht es zu Intel-Prozessoren bei Alternate Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.