Computerhardware: Schlusswort
Ich finde den Fehler nicht, die Werkstatt auch nicht
BearbeitenAls junger Ingenieur arbeitete ich in einem Rechenzentrum. Eines Tages erschien ein Professor der Astronomie mit ein paar Lochkarten. Er behauptete, unser Großrechner, ein Serienmodell aus den USA, würde die darauf befindliche Gleitkommadivision völlig falsch ausführen. Leider hatte er recht.
Gleitkommazahlen nimmt man, um mit sehr großen und sehr kleinen Zahlen zu rechnen. Ein Beispiel für eine Gleitkommadivision: 1,496 × 1011 m (mittlere Entfernung Erde-Sonne) geteilt durch 2,99792458 × 108 m/s (Lichtgeschwindigkeit) ergibt 499 Sekunden = 8,31 Minuten (so lange braucht das Licht von der Sonne zur Erde).
Der Großrechner arbeitete mit 48 Bit Genauigkeit und war − für die damalige Zeit − fast ein Superrechner. Jeden Morgen absolvierte er ein umfassendes Prüfprogramm. Und doch rechnete er falsch. Was war da kaputt gegangen?
Alle, die imstande waren, eine Gleitkommadivision mit 48-stelligen Dualzahlen Bit für Bit nachzurechnen, wurden zusammengetrommelt. Auf riesigen Blättern und Tapetenrollen rechneten wir nach. Der Großrechner führte endlos nur noch diese eine Division durch. Zwei Kollegen fuhren in der CPU mit dem Oszilloskop umher, um nachzuprüfen, an welcher Stelle Theorie und Praxis nicht mehr übereinstimmten.
Am nächsten Tag hatten wir das Problem gefunden: Der Rechner war nicht kaputt gegangen, sondern er und alle Rechner der Serie waren schon defekt ausgeliefert worden. Auf irgend einer Etappe des Entwurfs hatten die Konstrukteure etwas umgebaut und dabei vergessen, einen überflüssig gewordenen Draht aus den Fertigungsunterlagen zu streichen. Wir mussten „nur“ den überzähligen Draht aus der Zentraleinheit herausschneiden, und schon rechnete der Computer richtig.
Der Computer hatte nicht nur diese eine Division falsch gerechnet. Es gab unendlich viele Zahlenkombinationen, deren Division schon immer ein falsches Ergebnis geliefert hatte. Nur hatte es noch niemand bemerkt.
Natürlich haben wir uns gefragt, warum die Konstrukteure den Computer vor der Auslieferung nicht vollständig getestet hatten, mussten aber einsehen, dass sie das nicht gekonnt hatten.
Stellen Sie sich vor, Sie wollen Ihren PC allumfassend testen. Sie beginnen mit der Addition: 1+1, 1+2, 1+3, 1+4, ... bis 1+264. Dann 2+1, 2+2, 2+3 usw. bis 2+264. Insgesamt sind das 264 × 264 = 2128 Additionen. Nehmen wir an, Ihr PC läuft mit 3 GHz Takt und bewältigt drei Milliarden Additionen pro Sekunde, dann braucht er 1,134 × 1029 Sekunden oder 3,596 ×1021 Jahre. Sie können sich eine so lange Zeit nicht vorstellen? Ich auch nicht. Teilen wir die Jahre durch das Alter des Universums: 13,75 Milliarden Jahre sind seit dem Urknall vergangen. Der vollständige Test der Addition würde also 261 582 619 898 mal so lange dauern wie das Alter des Universums.
Und das war nur die Addition. Sorgfältige Konstrukteure würden noch die Subtraktion, Multiplikation und Division überprüfen und die komplexeren Funktionen wie Kehrwert, Wurzel, Potenz, Logarithmus, Sinus, Tangens ... Also halten Sie bitte weder sich noch die Techniker vom Computerservice für Idioten, wenn sie einen Fehler nicht finden können.
Auch in der Hardware Ihres PC stecken Fehler, die noch niemand gefunden hat. Aber deshalb brauchen Sie Ihren PC nicht wegwerfen. Sie selbst machen − ohne Sie beleidigen zu wollen − viel mehr Fehler als Ihr PC. Ob Jumbojet, Spaceshuttle oder Atomkraftwerk − sie werden von Menschen gebaut, die manchmal Fehler machen. Und wenn der PC ein merkwürdiges Ergebnis ausrechnet, denken Sie nie „weil es der Computer berechnet hat, muss es richtig sein“. Bleiben Sie kritisch. Benutzen Sie Ihren „gesunden Menschenverstand“.