TLB-Bug im Intel Core i7! – Oder doch nicht?
Seit dem frühen Montag Morgen stiftet eine Meldung im Internet mehr Verwirrung, als dass sie Klarheiten schafft. Dabei ist unter anderem die Rede von einem TLB-Bug, der noch schlimmere Züge annehmen soll, als dies beim ersten Phenom-Prozessor der Fall war. Wir haben bei Intel nachgefragt.
Der Grund für die voreiligen Berichterstattungen so manches Online-Mediums war ein Eintrag in einem Specifications Update zu den Core i7. Wie üblich sind die Aussagen in diesem Dokument sehr kurz gehalten, seit Jahren beinhalten sie auch eine Liste der Errata, der Fehler in den Prozessoren. Dabei geht es meist um Probleme, die unter sehr bestimmten Gegebenheiten auftreten können, was in der Praxis aber fast nie der Fall ist. Datiert ist dieses Dokument auf den 12. November 2008, also bereits fünf Tage vor den 17. November 2008, an dem der Intel Core i7 offiziell vorgestellt wurde. Auch wurde das Dokument bereits von diversen Seiten genauer betrachtet, wie nicht zuletzt ein Bericht von heise online vom besagten Tage beweist. Dieser Punkt sorgt insofern für zusätzliche Verwirrung, weil in dubiosen englisch-sprachigen Foren und selbst bei einigen Internet-Präsenzen das Dokument als völlig neu verkauft wird.
Da jedoch der Name „TLB“ in dieser Errata-Liste von Intel auftaucht, ist die (Online-)Welt aufgeschreckt und fühlt sich sogleich an das Phenom-Desaster des letzten Jahres erinnert. Ein Fehler in der Speicherverwaltung des Prozessors sorgte damals dafür, dass theoretisch Datenverluste auftreten konnten. Traditionell wird in einem Prozessor jede angeforderte virtuelle Adresse zuerst durch die „Memory Management Unit“ (MMU) in eine physische Adresse umgerechnet, bevor sie auf den Adressbus geschrieben wird. Die MMU verfügt über speziellen Cache-Speicher, den Translation Lookaside Buffer (TLB), welcher jeweils die letzten Adressübersetzungen in Form einer Tabelle abspeichert. Dabei wird die virtuelle (logische) Adresse in mehreren Arbeitsschritten zu einer meist baumartig organisierten Seitentabelle zur physischen Adresse umgerechnet. Dieser zeitintensive Vorgang wird aus Performancegründen im TLB gepuffert. Der TLB kann eine begrenzte Menge dieser Einträge halten und dadurch die Ausführung von Speicherzugriffen deutlich beschleunigen. Durch den Fehler „298“ in diesem Bereich sah sich AMD gezwungen, Teile davon komplett zu deaktivieren – der sogenannte TLB-Fix war geboren. Auch wenn dieser Fehler laut AMD in der Praxis nie auftrat, hatte der Fix fatale Folgen für den ersten Vier-Kern-Prozessor von AMD, vor allem auch im Bereich der Desktop-Prozessoren: massive Performanceeinbrüche. Die Server-CPUs wurden gar auf Eis gelegt und eine Auslieferung erst mit dem neuen B3-Stepping gestartet.
In den Specifications Updates von Intel ist auf dem Papier von ähnlichen Problemen zu lesen, die AMD vor einem Jahr mit dem „Barcelona“ hatte. Dabei spricht Intel davon, dass in seltenen Fällen die unsachgemäße Annullierung von TLB-Einträgen zu einem unvorhersehbaren Verhalten des PCs führt, was zu Systeminstabilitäten und Datenverlusten führen kann. Weiter besagt jenes Dokument in einer separaten Erklärung zu dem ersten Errata in dem Dokument aber auch, dass der Effekt nur auftreten kann, wenn eine Software selbst Einträge im TLB annulliert. In diesem Punkt liegt der Hund jedoch auch begraben. Bereits seit der Pentium-6- respektive Pentium-Pro-Familie wird auf Dinge dieser Art und Probleme mit dem TLB hingewiesen (Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide, 8,90 MB PDF-Dokument). Auch die Core 2 Duo hatten diese Art der „TLB Invalidation“, was Intel in vielen technischen Dokumenten, die auf der Internetseite bereitstehen, näher erklärt. Genau dieses Vorgehen der älteren Core-Prozessoren empfiehlt der Prozessorriese aktuell auch beim Core i7.
Eine bereits am Vormittag angefragte Stellungnahme zu diesem Thema von Intel blieb bis zum späten Abend aus. Die Kollegen der Presseabteilung in Deutschland müssten sich erst mit den Technikern, Ingenieuren und Pressevertretern in den USA in Verbindung setzen, um weitere, vor allem genauere Informationen zu erhalten, so Intel Deutschland gegenüber ComputerBase. Ob der Core i7 derzeit also vielleicht bereits zu langsam arbeitet, oder andererseits wie damals bei AMD noch künstlich eingebremst werden muss, oder letztendlich wie beim Core 2 Duo und den älteren Prozessoren einfach gar nichts passiert, wird die Antwort von Intel zeigen.