Vor über 30 Jahren: der FDIV Bug im Pentium

turrican

Well-Known Member
Wer sich 1993 schon mit PC-Technik beschäftigt hatte, der hat damals vielleicht die Nachrichten um den FDIV Bug im Pentium mitbekommen, bzw war vielleicht sogar selber betroffen.

Ein ausführlicher Artikel zum Thema ist von Ken Shirriff erstellt worden, dieser ist auf seiner Webseite [1] abrufbar (Text in Englisch).

Ein Folgeartikel [2] beschreibt weiters die in die FPU des Pentium eingebauten Konstanten, am Beispiel von Pi.


[1] https://www.righto.com/2024/12/this-die-photo-of-pentium-shows.html
[2] https://www.righto.com/2025/01/pentium-floating-point-ROM.html
 
Cool, danke für die Links. Da hab ich nachher was zu lesen. :)

Fun Fact am Rande: Intel wollte der Welt mit der x87 FPU und ihrer optionalen 80 Bit Präzision etwas Gutes tun. Haben sie im Prinzip auch, so präzise in Hardware und damit effizient zu rechnen, war seinerzeit sonst nur wirklich großen und entsprechend teuren Maschinen vorbehalten. Oder tatsächlich wissenschaftlichen Taschenrechnern, weshalb viele wissenschaftliche Arbeiten der 70er, 80er und teils auch noch 90er Jahre auf der HP 41 Serie durchgeführt wurden. Später waren Computer dann schnell genug geworden, dass mit man ohne allzu große Performanceschwierigkeiten in Software beliebige Präzision erreichen konnte.

Da aber auf den meisten Systemen die x87 FPU in Standardeinstellung im 80 Bit Modus lief, wurde viele Software implizit unter der Annahme, dass die FPU mit eben jenen 80 Bit rechnen würde, geschrieben. Als amd64 kam, was in Standardeinstellung meist SSE mit nur 64 Bit Präzision für Floating Point Berechnungen nutzt, war diese Annahme nicht mehr gegen und es passierten unschöne Dinge. Das war zum Beispiel bei unserem Quake II Projekt der Grund, dass wir auch 32 Bit Builds gegen die SSE-FPU bauen und damit effektiv - und passend zum Schrotthardware-Thread - diverse ältere CPUs (Intel vor dem Pentium 3, AMD vor dem Athlon XP) ausschließen.
 
Zurück
Oben