Welcher Mikroprozessor hatte als erster eine integrierte FPU ?

  • Hallo,


    mich treibt seit einigen Tagen die Frage um, welcher in Serie gebaute Mikroprozessor als allererster eine integrierte FPU hatte. Im Mainstream kam das ja mit 486 und 68040 Ende der 80er.

    Vermutet habe ich bisher, dass es im Bereich der RISC-Workstations schon eher üblich war. Aber schnelle Google Suchen haben eher gezeigt, dass auch frühe MIPS und Sparc-Workstations eher mit mit separater FPU kamen.


    Bisher sind meine frühesten Kandidaten:

    NEC V60 - 1986

    Inmos T800 - 1987


    Kennt jemand noch CPUs mit FPU, die in der Zeit rauskamen?

  • Kennt jemand noch CPUs mit FPU, die in der Zeit rauskamen?


    Clipper von Fairchild - aber die haben die FPU auch extern.


    Such mal nach dem Vorgägner von PA-RISC / HP. Da könnte ich mir das vorstellen, aber das hat insgesamt nicht gut funktioniert (Abwärme).



    edit: "FOCUS" hießen die. https://de.wikipedia.org/wiki/HP_Focus

    und verbaut in sowas http://www.hpmuseum.net/display_item.php?hw=367


    nach dem Hewlett-Packard-Journal August 1983 haben die zwar Floating Point Instructions aber noch keine echte FloatingPoint Hardware onboard. Zumindest würde ich das so verstehen. https://archive.org/details/hp_journal_1983-08



    ( davor (1982) das "schnelle" System hieß "PHOENIX" und sieht ganz anders aus, war aber auch massiv floating-point fähig. Aber nicht das, wonach Du suchst: https://www.cpushack.com/2017/…ssor-rise-of-the-phoenix/ (zweites Bild) und http://www.hpmuseum.net/display_item.php?hw=593 das Gerät dazu )

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

    2 Mal editiert, zuletzt von ThoralfAsmussen ()

  • Schonmal interessant. Anscheinend haben die floating point Unterstützung (teilweise) im Microcode, aber eben keine dedizierte FP-ALU.

    Wenn man bei den Zeitangaben im HP Journal mal 18MHz zugrundelegt, brauchte eine 32-Bit Integer Addition 5 Takte und eine 64-Bit Float Addition 108 Takte.


    Jetzt wäre mal interessant, wie schnell die besten Software-Floatingpoint-Routinen für 68020/30 und 80386 im Vergleich waren...

  • Wirklich schnelle Software-FP-Routinen würd ich am ehesten in Demos vermuten. Zumindest Addition und Multiplikation sollte es da geben. Da kann man am ehesten was in alten DemoErklärbärTexten finden.


    http://www.oldskool.org/ da würde ich wohl anfangen zu wühlen oder im Usenet, soweit archiviert vorhanden, suchen. Evtl. kann man auch mal bei Doom vorbeischauen, da wurde auch massiv getrickst und das gibt/gab es auch mit Artikeln, die beschrieben haben, was genau da im Code passiert. edit: bei hornet.org finden sich auch solche Tutorials zu Effekten etc., da kann man sich auch mal durchwühlen, ob man nicht optimierte Addition/Multiplikation Sachen findet.


    108 Takte ist ganz schön viel ...



    Schnell ist ja nicht immer alles, bei HP mußten auch immer die Ergebnisse "gut" stimmen.

    Gerade für dei 3D Geschichten gibt es im Demo Bereich einiges, was man nicht vernünftig "generisch" benutzen konnte - da mußte genau auf den Wertebereich aufgepaßt werden, darin hat sowas aber gut gepaßt und war SEHR schnell.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

    Einmal editiert, zuletzt von ThoralfAsmussen ()

  • Mit FP meine ich natürlich "floating point" und zwar konform zum IEEE 754 Standard mit all den Features, die es für ernsthafte numerische Anwendungen braucht: denormalisierte Darstellung, Rundungsmodi, Ausnahmebehandlung, NaN/Inf etc.


    In Demos und für 3D wurde ja früher meist Festkomma-Arithmetik verwendet, was natürlich auf reinen Integer ALUs wesentlich performanter ist.


    Beim Amiga OS gab es aber auch die Wahl zwischen schnelleren ("fast") float und IEEE floats (mathffp.library vs mathieeesingbas.library). Aber natürlich wollte man (als Raytracing-Fan) eine FPU und C-Compiler, die direkt diese nutzen, statt der OS-Mathe-Libs ;)

  • Im PC-Bereich müsste dass der 486DX sein (1989). Der 486SX war die selbe CPU nur ohne FPU. Der 487er erweiterte den SX um eine FPU (in Wirklichkeit war der 487 ein 486DX und hat den SX einfach deaktiviert).


    Der 386SX war die "Celeron-Edition" des 386DX (beide ohne FPU). Der 387er war eine externe FPU


    Der 8086/286 hatte den externen 8087/287 als FPU.

    ::solder::Ich "darf" beruflich basteln...

  • Diese kleinen CPUs waren halt Nischenprodukte. Selbst der 486 hat sehr spät nach 1990 eine Rolle gespielt. Leistungsfähige FPUs kamen halt lange noch seperat.

  • Im PC-Bereich müsste dass der 486DX sein (1989). Der 486SX war die selbe CPU nur ohne FPU. Der 487er erweiterte den SX um eine FPU (in Wirklichkeit war der 487 ein 486DX und hat den SX einfach deaktiviert).


    Der 386SX war die "Celeron-Edition" des 386DX (beide ohne FPU). Der 387er war eine externe FPU


    Der 8086/286 hatte den externen 8087/287 als FPU.

    Bei dem 486SX habe ich noch im Sinn, das dies die Die's sind, die Fehler beim FPU-Test auf 486DX gezeigt haben und das die FPU schon bei der Produktion "Kaputt" war. Die langsamste 486DX-CPU, die kenne, ist die mit 25MHz. Kennt jemand eine von Intel heraus gegebene 486'er CPU mit weniger als 25MHz?

  • Das war damals das Gerücht. Beim AMD Triple-Core war die Sache klar. Hier könnte es sein, dass z.B. die 16Mhz SX vollwertige DX waren, die aber nur 20Mhz oder weniger verkraftet hätten (man hatte damals mehr Spiel beim Binning).

    DX gab es nur ab 25 Mhz, SX kenne ich persönlich nur als 20Mhz (habe ich als unverkäufliches Gut im Shop, 16 Mhz gab es aber auch).


    Auch mit dem Overdrive bliebe es eine Gurke. Bin am überlegen, ob der Chipsatz auch DX33 Mhz macht und ich das entsprechend umlöte

    ::solder::Ich "darf" beruflich basteln...

    Einmal editiert, zuletzt von PC-Rath_de ()

  • Transputer T800 hatte integrierte FP. Das war aber auch so gegen Ende der 80er.

  • T800 hatte ich ja auch erwähnt, laut Wikipedia 1987. Ende 80er war wohl die verbesserte Version T805 raus.


    Klar waren die Nische und alleine sicher nicht so viel besser als 68040 oder 80486. Der Gag war da die Parallelisierung mit bis zu n anderen Transputern.

    Müsste jetzt googeln, wie gross n war, aber sicher >=128.


    Pixar hat damit ihren Renderman-Supercomputer gebaut…

    In Deutschland gabs doch auch sowas… Name vergessen…

    Einmal editiert, zuletzt von RexRetro ()

  • Da steht aber drin, warum das mit der Revolution nichts geworden ist ... " ... ein T414 kostete damals 600 Mark ..." und den kleinen T424, der wohl im ersten Artikel beschrieben worden, hat die Firma nicht mehr weiter forciert. Dabei wären 5MHz und 32Bit und 4kByte und v.a. skalierbar für viele Anwendungen völlig ausreichend gewesen. Sie haben sich da quasi selbst das Bein im Bastlertümpel weggenommen - und damit natürlich den 6502 Ansatz nicht wiederholen können. Müßte man mal schauen, was der kleine Chip so gekostet hat. Bedarf unfd Potential hätte es ja gegeben, etwa als Bildbeschleuniger für Amiga, mit z.B. 4 Transputern, aber eben nicht für > 2500 ...


    Sehr schön sind auch die Artikel von Dick Pountain zu dem Thema (BYTE).

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Mir geht es hier eigentlich in keinster Weise darum, wie sinnvoll, wettbewerbsfähig oder erfolgreich eine CPU (-Familie) war. Sonst sind wir sehr schnell dabei, dass alles ausser Intel x86 eigentlich "Nische" war.


    Die Frage ist nur: ab wann wurde floating-point Funktionalität in single-chip Mikroprozessoren marktreif?


    Kann gut sein, dass das dann nicht wirklich einen großen Markt fand, weil:

    a) Leute, die richtig FPU Leistung brauchten, weiterhin einen Supercomputer kauften

    b) Leute, die kaum FPU brauchten, auch mit "Softfloat" zufrieden waren

    c) frühe Exoten wie V60, T800 halt im Endeffekt ein zu schlechtes Preisleistungsverhältnis hatten, im Vergleich zu 80386+80387 oder 68020+68881


    Allein die Existenz von 486SX und 68LC040 zeigt auch, dass 1990-93 sicher viele PC/Mac/Amiga Anwender kaum Bedarf für Fließkomma-Leistung hatten und da lieber Geld sparen wollten.


    IMHO könnten echte 3D-Games (also nicht Raycaster wie Doom) zusammen mit reinen Rasterizer-3D-Karten (also ohne transform & lighning Einheiten) dann aber ein Ausschlag gewesen sein, dass man ordentlich Fließkommaleistung im Mainstream-PC wollte.

    Da waren aber die "alten" FPUs auch wieder überfordert und es mussten SIMD-Float-Einheiten her, wie 3Dnow!, SSE und AltiVec.

  • Selbst der J11 hatte die FPU getrennt, obwohl auf dem selben Chip.

    Auf jeden Fall dürften die VAX CPUs mit FPU gelten.


    CVAX, ca. 1990

    J11 kam wohl 1983 und hatte FP im Microcode oder als separaten FP-Datapath-Chip. So wie ich es verstand, bestand ein CPU-Modul auch immer aus mindestens 2 Chips.


    Als zeitgleiche Entwicklungen bei DEC, wie bei HP mit diesem FOCUS: so richtig passte eine ausgewachsene 32-Bit CPU mit FP nicht auf einen Chip, also muss man FP in Microcode "emulieren", oder in Multi-Chip aufteilen.


    Was ich zu CVAX gefunden habe, sagt eher, dass es - zumindest 1985 - noch eines separaten FP-CoPro bedurfte (

    2.4.10 Floating Point Instructions


    These instructions are implemented in hardware only if an external
    floating point unit is present in the system.

    Und Wikipedia:

    The CFPA (CVAX Floating Point Accelerator) is a floating point coprocessor for the CVAX 78034.

    The CFPA contains 65,000 transistors on a die measuring 7.3 by 9.1 mm (66.43 mm2). It is fabricated in DEC's first-generation CMOS process, CMOS-1, a 2.0 μm process with two layers of aluminium interconnect. It is packaged in a 68-pin surface mountable chip carrier.

    Wahrscheinlich war es Mitte der 80er einfach noch kein wirtschaftlicher Vorteil, CPU und FPU auf einem Chip zu vereinen.

  • Ja, mit dem CVAX wurde der CFPA verheiratet, irgendwie deucht mir da war noch was. Irgendwas bringe ich durcheinander.

  • IMHO könnten echte 3D-Games (also nicht Raycaster wie Doom) zusammen mit reinen Rasterizer-3D-Karten (also ohne transform & lighning Einheiten) dann aber ein Ausschlag gewesen sein, dass man ordentlich Fließkommaleistung im Mainstream-PC wollte.

    Da waren aber die "alten" FPUs auch wieder überfordert und es mussten SIMD-Float-Einheiten her, wie 3Dnow!, SSE und AltiVec.


    Na, am Anfang wäre da wohl ein normaler FPA schon auch SEHR hilfreich gewesen (für die reinen Geometriedaten). Müßte man mal schauen, wie z.B. Turok und LaraCroft das so machen.


    Aber es - 3D - ist ein schönes Stichwort, wo Du noch nachschauen könntest: bei Evans & Shuterland. Die hatten zumindest den Bedarf und auch die Kunden, die auch solche Hardware-Neulösungen ermöglichen konnten.

    13.3 Evans and Sutherland – Computer Graphics and Computer Animation: A Retrospective Overview

    Vielleicht findet man ja da was - das wäre dann auch im passenden gesuchten Zeitfenster.


    Bei den Workstation ist z.B. bei Sun lange Zeit am Anfang Weitek drin. Und MIPS und sind zwar wohl schon mit FPA Interface und Chip entworfen, aber eben extra (3000+3010), erst mit der https://en.wikipedia.org/wiki/R4000 kommt das "on-die", 1991 (!).


    Ansonsten würde mir noch Japan einfallen (Toshiba, Fuji, NEC), wo man mal suchen könnte.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Muss jetzt mal sein: ein wenig Offtopic: Mal LaraCroft in der originale-Edition mit der 3dfx-Voodoo1-Edition verglichen? Unvergleichbar...

    ::solder::Ich "darf" beruflich basteln...

  • Moin!

    Mit FP meine ich natürlich "floating point" und zwar konform zum IEEE 754 Standard mit all den Features, die es für ernsthafte …


    Naja, das schränkt schon etwas ein, IEEE 754 kam ja erst 1985 raus und IBM umd DEC hatten eigene FP-Formate. Außerdem nutzt man ja heute auch „ernsthaft“ BFLOAT16 …


    Aber ich hätte noch einen Vorschlag: der 16bit-Mikroprozessor Fairchild F9450, eigentlich fürs Militär gedacht (MIL-1750A). Der hatte 1985 tatsächlich eine integrierte FPU mit 32bit und 48bit FP-Datentypen - aber nicht IEEE. FPADD 32bit in 3us @ 20MHz.

    CPU of the Day: Fairchild F9450 – Commercial Military | The CPU Shack Museum

    Viele Grüße aus Aachen, Fritz


    Elektor SC/MP | Elzet-80 m & z280 | Mac IIcx | Quadra 700 | PowerBook 100 | Newton 100 | IBM XT/370 & AT/370 | IBM 5155, 5160, 5161, 5162, 5170 | Parsytec PowerXplorer, 2x MultiCluster XP, MultiCluster 3-64