[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Penti2
Hardware
Erratum 62 sorgt für Aufregung
Von Michael Wilde
Ein Fehler in den High-End-Pentium-Prozessoren vermasselte
Chip-Hersteller Intel die
Präsentation der neuesten Prozessorgeneration.
Eigentlich hätte die letzte Woche für den Chip-Giganten Intel
besonders erfolgreich verlaufen sollen: Der
Aktienkurs befindet sich wieder im Aufwind, und kurz vor dem
Verkaufsstart des neuen
Prozessor-Flaggschiffs Pentium II erreicht das Papier fast den
einstigen Höchststand. Am Dienstag
morgen präsentierte ein stolzer Intel-Europa-Chef Hans G. Geyer in
München den "schnellsten
Intel-Prozessoren aller Zeiten", doch nur wenige Stunden später zeigte
sich Wall Street verschnupft - der
Wert der Intel-Aktie fiel dramatisch. Schuld war ein eher
unbedeutender Fehler in den neuen Chips.
Entdeckt hatte den Bug der Amerikaner Robert Collins. Er betreibt
schon seit mehreren Jahren einen
Web-Server mit der Bezeichnung Intel Secrets, auf dem er regelmäßig
einige Ungereimtheiten der
Intel-Chips veröffentlicht. Im Laufe der Jahre haben sich diese
Internet-Seiten zu einem wahren Mekka
für all jene entwickelt, die glauben, Fehler in Intel-Produkten
gefunden zu haben.
Am 11. April wandten sich nach Collins Worten zwei "prominente
Mathematik-Professoren" an ihn, um
sich einen Fehler in der Fließkomma-Recheneinheit des neuen Pentium II
bestätigen zu lassen.
Collins konnte den Fehler in den Modellen Pentium-II sowie Pentium Pro
verifizieren und taufte ihn nach
dem Vornamen seines Informanten sowie dem Eintreffen der Meldung
"Dan-0411". Der
Original-Pentium als auch der Pentium mit Multimedia-Zusatz MMX und
der K6 vom
Hauptkonkurrenten AMD funktionieren ohne diese Fehler.
Schon kurze Zeit, nachdem Collins in der Internet-Newsgroup
comp.sys.intel "Dan-0411" publiziert
hatte, begannen Branchendienste und Nachrichtenagenturen auf der
ganzen Welt hektisch die Kunde
vom angeblichen Intel-Fehler zu verbreiten.
Der Medienhype kam nicht von ungefähr. Im Jahre 1994 wurde schon
einmal ein Prozessoren-Fehler in
einem Intel-Chip bekannt, doch der Branchengigant reagierte damals
unklug: Erst nach langem Zögern
entschloß sich der Konzern, zu einem Umtausch der betroffenen Chips -
eine Aktion, die fast eine halbe
Milliarde Dollar gekostet hat.
Diesen Fehler wollte Intel-Chef Andy Grove nicht widerholen: Das
Unternehmen ging in die Offensive
und teilte der Öffentlichkeit mit, daß man selbstverständlich Chips
austauschen werde. Falls sich
herausstellen sollte, daß diese fehlerhafte Rechenergebnisse
produzieren. Am Freitag bestätigte Intel
verschämt auf seinen Internet-Seiten den Fehler der betroffenen
Prozessoren. Von einem Umtausch war
nicht mehr die Rede.
Zuvor schon hatten bereits die Labors renommierter
Computerzeitschriften den neuen Fehler bestätigt -
so zum Beispiel die in Deutschland erscheinende C'T und die
US-Zeitschrift PC WEEK. Doch einen
Vergleich mit dem berühmten Pentium-Bug von 1994 mochten auch sie
nicht ziehen.
Im Unterschied zu 1994, als Intel versuchte, einen ernsthaften Defekt
herunterzuspielen, fällt es den
Fachjournalisten heute schwer, überhaupt ein Szenario zu entwickeln,
in dem "Dan-0411" eine
Auswirkung zeigen könnte. Die betroffenen Chips verrechnen sich nicht
etwa, sondern sie unterschlagen
nur unter bestimmten Umständen einen Hinwies darauf, daß eine ohnehin
recht waghalsige
Rechenoperation nicht zum Erfolg geführt hat.
Intel-Kritiker Robert Collins kann seinerseits zwar auch kein
konkretes Beispiel für eine Software
nennen, die durch den Fehler beeinflußt wird, doch allein sein Hinweis
auf den Absturz der
Ariane-5-Rakete in Juni 1996 heizte die Phantasie kräftig an. Collins,
der die Bug-Veröffentlichungen
insgesamt zurückhaltend kommentiert, gibt aber auch zu verstehen, daß
Ariane durch eine schlecht
programmierte Software und nicht etwa durch einen defekten Chip vom
Kurs abgekommen sei.
Größere Gefahren sieht dagegen der US-Physiker Martin Atkinson-Barr,
der Collins auf
Ungenauigkeiten in seiner Dokumentation aufmerksam machte. Doch auch
er kann kein Beispiel
aufführen, in dem "Dan-0411" unkorrekte Ergebnisse produziert. Seine
Überlegungen sind eher
akademischer Natur: Prozessoren speichern Zahlen intern in
verschiedenen Formaten ab. Beispielsweise
gibt es eigene Formate für ganze Zahlen und solche für
Fließkommazahlen - und diese jeweils in
verschiedenen Größen. Geschickte Programmierer wählen immer das für
die jeweilige Aufgabe
passende Format, denn je einfacher dieses ist, desto schneller kann
der Chip Berechnungen ausführen.
Bei einer einzelnen Rechenoperation ist der
Geschwindigkeitsunterschied nicht wahrzunehmen, doch
wenn in technisch-wissenschaftlichen Anwendungen (etwa bei
Konstruktions- und
Simmulationsprogrammen) oder pro Sekunde Millionen Operationen
notwendig werden, beeinflußt die
Wahl des richtigen Formats die Leistung der Anwendung massiv.
Unter Umständen kommt es dabei vor, daß der Prozessor angewiesen wird,
die Daten intern von einem
Format ins andere zu kopieren. Dabei muß er jedoch die jeweiligen
Grenzen beachten und darauf
hinweisen, wenn es zu Problemen kommt. So sieht es zumindest die
Spezifikation der Chips vor.
Das wohl einfachste heute noch verwendete Format ist zum Beispiel das
16-Bit-Integer. Es kann
Ganzzahlen zwischen 0 und 65535 aufnehmen, und der Prozessor kann
damit alle denkbaren
Rechenoperationen durchführen. Addiert man beispielsweise 40000 und
60000, und soll das Ergebnis
weiterhin im Ausgangsformat gespeichert werden, so kommt es zu einem
Überlauf, denn 100000 liegt
deutlich über der Grenze von 65535.
Der Prozessor würde nach dieser fehlgeschlagenen Operation durch ein
Statusbit auf den Überlauf
hinweisen. Es bleibt der Software überlassen, dieses Bit auszuwerten
oder von vornherein dafür zu
sorgen, daß es nicht zu solchen Pannen kommen kann. Nach allem, was
bisher bekanntgeworden ist,
greift die Software grundsätzlich nicht auf diese Statusinformation
zurück, sondern überprüft die
Fehlerbedingung selbständig.
"Dan-0411" zeigt sich zwar in einem ähnlichen, doch sehr viel
komplexeren Zusammenhang. Erst wenn
der Prozessor sehr, sehr kleine negative Zahlen in einem
Ganzzahlenformat speichern soll, und es dabei
zu einem wie eben beschriebenen Überlauf kommt, könnte unter Umständen
das Statussignal nicht
gesetzt werden.
Die Genauigkeit solcher Zahlen sprengt die menschliche
Vorstellungskraft, denn im konkreten Fall geht
es um 80-Bit-Integer (0 bis 1208925819615000000000000). Diese sind im
Vergleich zur
16-Bit-Variante nicht etwa fünfmal so groß, wie man auf den ersten
Blick meinen könnte. Jedes
zusätzliche Bit verdoppelt die Anzahl der möglichen Werte. Die so
entstehenden Größenordnungen
benötigen höchstens technisch wissenschaftliche Anwendungen. Weder die
vom Computer erstellte
Steuererklärung noch der zu Windows mitgelieferte Taschenrechner sind
also von "Dan-0411"
beeinträchtigt.
Wahrscheinlich dürfte überhaupt kein Windows-Programm betroffen sein.
Die Mitarbeiter von PC WEEK
haben bei ihren Tests herausgefunden, daß Windows das Integer-Format,
bei dem sich "Dan-0411"
bemerkbar macht, gar nicht verwendet. Der News-Service der Zeitschrift
C'T meldet darüber hinaus,
daß die wohl meistbenutzte Windows-Entwicklungsumgebung, Microsoft
Visual C++, das besagte
Statussignal nicht zur Kenntnis nimmt. Intel verweist in seinem
Statement darauf, daß schon in den
Definitionen der wesentlichen Computer-Sprachen das Statusbit keine
Rolle spielt. Es kann in damit
entwickelten Anwendungen keine Probleme verursachen, selbst wenn es zu
einem Überlauf kommen
sollte.
Erstaunlich an der ganzen Affäre ist, daß eine offensichtlich minimale
Ungereimtheit die Branche in helle
Aufregung versetzt, denn gerade den Fachleuten dürfte bekannt sein,
daß ein so komplexes Produkt wie
der Pentium-Prozessor nicht fehlerfrei sein kann. Der bereits im
November 1995 vorgestellte Pentium
Pro verknüpft beispielsweise auf der Größe eines Daumennagels 5,5
Millionen Transistorfunktionen. Da
wäre es eine unglaubliche Leistung, wenn das Produkt mit nur einem
Fehler behaftet wäre.
Tatsächlich waren bis vor einigen Tagen 61 Defekte beim Pentium Pro
dokumentiert und bereits 24 beim
gerade erst vorgestellten Pentium II. Dennoch sah bisher kein
Entwickler einen Grund, deshalb Alarm zu
schlagen. Intel hatte die Fehlfunktionen als sogenannte Errata im
Processor Specification Update
offengelegt und jeweils Verfahren vorgeschlagen, wie Programmierer die
teilweise obskuren
Ungereimtheiten umschiffen können.
So zum Beispiel beim Fehler Nr. 46, der ebenfalls dafür sorgt, daß das
Statusbit nicht gesetzt wird,
wenn ganz bestimmte Befehle direkt aufeinanderfolgen. Abhilfe: Die
Programmierer plazieren einen
Dummy-Befehl zwischen die beiden Operationen, und der Spuk ist
beseitigt. Intel schlägt jetzt vor,
vorab zu überprüfen, ob es zu einem Überlauf kommen kann oder ein
anderes Statusbit zu überprüfen,
das einen ähnlichen Hinweis gibt wie das defekte.
"Dan-0411" wird als "Erratum 62" beziehungsweise "Erratum 25" Einzug
in die Dokumentation halten
und somit entschärft.
Softwareprogrammierer wären übrigens froh, wenn ihre Produkte nur so
wenige Fehler enthielten, denn
sie besitzen Listen mit Hunderten von bekannten Fehlern. Doch diese
geben sie nicht gern weiter, denn
das macht die Kunden nervös.
Michael Wilde ist freier Journalist in Hannover. Er beschäftigt sich
seit zehn Jahren mit den Themen
Datenfernübertragung, Online-Dienste und Internet.
SPIEGEL ONLINE 20/1996 - Vervielfältigung nur mit Genehmigung des
SPIEGEL-Verlags