Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

16.05.1997 - 

Die meisten PC-Anwendungen sind nicht betroffen

Auswirkungen des Intel-Bugs noch unklar

Zwei Tage vor der offiziellen Vorstellung der Pentium-II-CPU platzte die Bombe: Robert Collins diskutierte auf seiner Homepage "Intel Secrets" (siehe Kasten) einen Fehler, der nicht nur in Intels neuem Prozessor Pentium II - der ehemals "Klamath" genannte Pentium-Pro-Chip integriert die MMX-Befehlserweiterungen -, sondern offensichtlich in allen Prozessoren der P6-, also Pentium-Pro-Chipgeneration auftritt.

Der ehemalige Texas-Instruments-Mitarbeiter Collins benannte den Bug nach dem Vornamen eines Informanten - angeblich eines Universitätsprofessors - und dem Zeitpunkt, zu dem Collins Kenntnis von dem Problem erhielt: dem 11. April 1997.

Collins hatte geschrieben, der Bug könne auftreten, wenn Fließkomma- in Integer-Datentypen konvertiert werden. Fließkomma-Datentypen werden im Mikroprozessor im 80-Bit-Format abgelegt, Integer-Datentypen hingegen im 16- oder im 32-Bit-Format. Vor allem bei großen Zahlen paßt der konvertierte Gleitkomma-Datentyp nicht in das kleinere 16- beziehungsweise 32-Bit-Integer-Format.

Intel hat Collins Darstellung auf einer eigens eingerichteten Web-Seite (siehe Kasten) im wesentlichen bestätigt. Der Bug trete bei sogenannten Float-to-Integer-Store-Befehlen (FIST und FISTP) auf, wenn also Fließkomma- in Integer-Datentypen umgewandelt werden.

Den Grund für solch ein Vorgehen erklärt Arndt Bode, Prozessorexperte an der Technischen Universität München: "Manchmal möchte man die Zahlendarstellung platzsparender machen. Hierzu eignet sich die Darstellung als Integer-Zahl." Solch ein Verfahren sei üblich, allerdings mit einem Verlust an Genauigkeit verbunden.

Prozessoren signalisieren Software-Applikationen deshalb, wann ein durch einen Konvertierungsvorgang initiierter Fehler oder eine daraus resultierende Ungenauigkeit des Rechenergebnisses in der Gleitkomma-Einheit (Fließkomma/Floating Point = FP) des Chips auftritt. In der Regel setzt der Prozessor im Fließkommastatus-Register ein sogenanntes Flag, um auf das Problem aufmerksam zu machen.

Dan-0411 entfaltet seine Wirkung allerdings nur in solchen Fällen, in denen sehr große negative Zahlenwerte einen sogenannten Überlauf produzieren. Intel hat bestätigt, daß die Instruktionen "FIST(P)m16int" und "FIST(P) m32int" fälschlicherweise nicht feststellen, daß ein Operand zu groß ist, um in das Integer-Format zu passen. Normalerweise sollte diese Tatsache durch eine Fließkommastatus-Anzeige als "Invalid Operand Exception" (IE) gemeldet werden. Intel hat bei der Beschreibung des Fehlers bestätigt, daß die Pentium-Pro-Prozessoren abweichend von der Intel-Dokumentation "The Pentium Pro Family Developers Manual, Volume 2" und anders als frühere Intel-CPU-Generationen statt des IE-Flags fälschlich einen Precision Exception Flag (PE) setzen.

Linley Gwennap, Herausgeber des US-Fachblattes "Microprocessor Report", erklärt die möglichen Folgen des Intel-Bugs: Verlasse sich eine Software-Applikation auf die Falschmeldung der Pentium-Pro-Prozessoren, dann sei sie nicht mehr in der Lage, den wahren Fehler zu eruieren. In der Folge könne dies dazu führen, daß sinnlose Daten produziert würden.

Gwennap weist aber auch darauf hin, daß solch ein Fehler nur bei einer sehr begrenzten Zahl von Rechenoperationen auftreten kann. Die weit überwiegende Mehrzahl der PC-Applikationen wie Textverarbeitungen, Datenbanken und Tabellenkalkulationsprogramme würden nicht auf Fließkommaoperationen zurückgreifen. Sie seien deshalb von dem Intel-Bug ohnehin nicht betroffen.

Ariane-Explosion als Menetekel?

Intel veröffentlichte auf seiner Internet-Seite Stellungnahmen einer Reihe von Softwarehäusern wie unter anderem von Baan, Computer Associates, Corel, Autodesk, Oracle, SAS und Microsoft. In diesen bestätigen sie, erste Untersuchungen des Bugs hätten ergeben, daß dieser in ihren Produkten bislang keine erkennbaren Probleme erzeugt habe.

Collins selbst hält die Möglichkeit, daß der Fehler sich bemerkbar macht, für extrem gering. Je nachdem, wie groß der Integer-Datentyp sei (16 oder 32 Bit), betrage die Wahrscheinlichkeit, daß der Bug sich zeige, eins zu 8,6 Milliarden oder eins zu 562 950 Milliarden.

Gwennap gibt ferner zu bedenken, daß Collins den Bug nur durch eine Sequenz von Assembler-Instruktionen initiieren konnte. Insider argumentieren in diesem Zusammenhang, fast alle gängigen Applikationen seien heutzutage in Hochsprachen wie C oder C++ geschrieben. Entwickler, die in diesen Sprachen Anwendungen schreiben, würden in der Regel immer Kontrollabfragen einbauen, um die Überlaufproblematik bei der Konversion von FP- in Integer-Datentypen zu umgehen.

Diese Ansicht wird allerdings offensichtlich nicht von allen geteilt: So meinte ein Entwickler aus dem Bereich Avionik gegenüber der CW, es sei eher die Ausnahme, daß Kontrollmechanismen in Anwendungen integriert würden.

Träfe diese Aussage zu, wäre etwa die Besorgnis des Angestellten eines Atomkraftwerks-Simulationszentrums berechtigt, der sich im Internet zu dem Intel-Bug äußerte. Seine Berechnungen liefen auf einer ALR-Maschine, die mit vier Pentium-Pro-CPUs ausgestattet sei. In seinem Team habe man monatelang daran gearbeitet, fehlerbehaftete Simulationen zum Laufen zu bringen. Als Grund gab er Probleme an, die unter anderem durch die jetzt von Collins angesprochenen Überlaufzustände entstanden seien.

Insbesondere naturwissenschaftliche Applikationen sind also eventuell von Dan-0411 betroffen. In diesem Zusammenhang dürfte etwa interessant sein, daß Intel vergangenes Jahr mit dem US-Verteidigungsministerium (DOD) einen Vertrag abgeschlossen hat über den Bau eines massiv-parallelen Rechners, in dem in der Endausbaustufe über 9000 Pentium-Pro-Prozessoren einträchtig nebeneinander werkeln.

Inwieweit Collins allerdings gut beraten ist, die Explosion der Ariane-5-Rakete am 4. Juni 1996 in die logische Nähe des Intel-Bugs zu bringen, sei dahingestellt. Die Society for Industrial and Applied Mathematics (Siam) hatte in den "Siam News" den Fehler beschrieben, der 36 Sekunden nach dem Start der Rakete von Kourou in Französisch-Guayana aus zu deren Selbstzerstörung führte.

Im Gegensatz zu dem Intel-Bug handelte es sich bei der Ursache des Ariane-Unglücks um einen reinen Softwarefehler. Die Interpretation der mit der Auswertung der Ariane-Katastrophe befaßten Wissenschaftler in den "Siam News" legt nach Ansicht von Collins jedoch die Vermutung nahe, das Unglück sei auf eine ähnliche funktionale Charakteristik zurückzuführen wie bei der Pentium-Pro-Problematik. Auch der irrtümlichen Selbstsprengung der Rakete habe die Konversion von FP-Datentypen in Integer-Werte zugrunde gelegen, die letztendlich zu dem Desaster führte.

Für Intel könnte der aufgetretene Bug einen neuerlichen Gesichtsverlust bedeuten. Intel hatte Ende 1994 mit dem berühmt gewordenen, mit Dan-0411 aber nicht vergleichbaren "FDIV"-Bug in der Pentium-CPU ein Canossa-Erlebnis durchlitten. Seinerzeit mußte Intel wegen einer gigantischen CPU-Austauschaktion rund 500 Millionen Dollar abschreiben. Außerdem büßte der Chipmonopolist erheblich an Renommee ein, weil er zunächst versuchte, die Angelegenheit totzuschweigen. Erst auf Druck der Öffentlichkeit bequemte sich Intel zu einer offeneren Informationspolitik.

Intel behandelt Dan-0411 als "normales" Flag-Erratum. Der Bug rangiert als "Nummer 62" auf der von Intel veröffentlichten Pentium-Pro-Errata-Liste und als "Nummer 25" auf der Pentium-II-Errata-Liste. Intel bietet sogenannte Software-Workarounds an, will aber offensichtlich keine Austauschaktion in Gang setzen.

Internet-Adressenzum "Dan-0411"-Bug

Collins bietet auf seiner Homepage Programme zum Herunterladen an, mit denen Anwender die Funktionsweise der Prozessoren in ihren PCs prüfen können. Tests des Intel-Kritikers haben ergeben, daß weder frühere Intel-Chip-Generationen noch die "K6"-CPU von AMD diesen Fließkommafehler aufweisen. Er habe, schreibt Collins, den Bug nur bei Chips der Pentium-Pro-Familie gefunden. Die jeweiligen Homepages verzweigen zu Links, die weitere Informationen zum Thema Dan-0411 bieten.

- Robert Collins: http://www.x86.org

- Intel: http://www.intel.com/design/news/flag

- Microprocessor Report: http://www.MDRonline.com