Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

Rechnen mit dem Mac: Die Entwicklung mathematischer Koprozessoren von 68k bis Apple Silicon

Als 1984 der erste Macintosh auf den Markt kam, stellte das Rechnen mit Gleitkommazahlen eine Hürde für Prozessoren dar – der Motorola 68000 war lediglich auf Berechnungen mit ganzen Zahlen ausgelegt. So wurde es anfangs Aufgabe der Software, entsprechende Routinen bereitzuhalten, um Gleitkomma-Arithmetik zu realisieren. Apple-Veteran Howard Oakley zeichnet in einem Blog-Beitrag nach, wie Gleitkommaoperationen immer mehr an Bedeutung gewannen.


Den Anfang stellte die „Standard Apple Numerics Environment“, kurz SANE, so Oakley. Sie wurde für die Modelle Apple II, Apple II sowie Lisa verwendet und fand Eingang in das ROM des ersten Macintosh. Auf deren Basis entwickelte Motorola den mathematischen Koprozessor 68881. Es dauerte bis 1991, bis Apple den Quadra auf den Markt brachte, der über einen Motorola 68040 mit integrierter Gleitkommaeinheit (Floating Point Unit, FPU) verfügte, und selbst im Jahr 1995 verkaufte Apple noch Macintosh-Rechner ohne FPU.

Wechsel der Prozessorarchitekturen
Der Umstieg auf PowerPC bedeutete auch einen Wechsel des Gleitkomma-Frameworks. Dies stellte eine Herausforderung für Entwickler dar, die ihre Anwendungen auf die fortan verwendeten PowerPC Numerics anpassen mussten. Aus dieser Zeit stammt das Kontrollfeld „PowerFPU“, welches Anwender in die Lage versetzte, SANE-Code auf PowerPCs auszuführen. Mit Mac OS X und G4-Prozessoren kam 1999 AltiVec dazu. Nur wenige Jahre später wechselte Apple auf Intel-CPUs, was erneute Umstellungen bedeutete. Ab 2009 wurden Gleitkommaberechnungen zunehmend auf Grafikchips ausgelagert; entsprechende Frameworks stellte Apple mit OpenCL und später Metal zur Verfügung.

Apple Silicon umfasst viele Fließkommaoptimierungen
In Apples eigenen Chips konnte Oakley vielfache Optimierungen auf Fließkommaberechnungen entdecken: Jeder CPU-Kern verfügt über spezialisierte Instruktionen, die GPU-Kerne unterstützen Metal 3, und dann wäre da noch ein Koprozessor namens AMX, den Apple als Betriebsgeheimnis behandelt. Um ihn (indirekt) zu nutzen, können Entwickler das Accelerate-Framework nutzen – macOS entscheidet dann eigenständig, welche Recheneinheit für die jeweilige Aufgabe optimal ist.

„Floating Point Explorer“ in Mint
In einem seiner zahllosen kostenlosen Software-Tools hat Oakley ein spezielles Werkzeug für Gleitkommaberechnungen integriert: In Mints kann man über das "Window“-Menü den Floating Point Explorer aufrufen. Mit ihm lassen sich Gleitkommazahlen in verschiedene Schreibweisen umwandeln. In den Kommentaren zu Oakleys Artikel findet sich ein Ratschlag für diejenigen, die mehr über Gleitkommaberechnungen in der Informatik wissen wollen: Ein digitaler Comic namens How Integers and Floats work erklärt auf verständliche Weise in unter 30 Seiten, wo die Unterschiede zwischen den Datentypen liegen.

Mints umfasst einen „Floating Point Explorer“, mit dem sich Zahlen im Hexadezimalformat als Dezimalzahlen anzeigen lassen und umgekehrt.

Kommentare

AndreasDV08.01.25 12:57
Es kam auch noch der 68882 heraus. So als Info. Ob dieser aber in der Apple Welt eingesetzt wurde, das weiß ich nicht. Da hatte ich noch kein Apple, ich war damals in der Amiga Welt
+6
twix
twix08.01.25 13:39
AndreasDV
Es kam auch noch der 68882 heraus. So als Info. Ob dieser aber in der Apple Welt eingesetzt wurde, das weiß ich nicht. Da hatte ich noch kein Apple, ich war damals in der Amiga Welt

Wie beim Amiga auch - es gab Modelle mit FPU, mit leerem FPU-Sockel und ohne.

Richtschnur ist, dass 68020 Macs mit einer 68881 und 68030 Macs mit einer 68882 aufgerüstet werden konnten (aber auch nicht alle).

Wenn du etwas tiefer einsteigen magst, ist eine taugliche App.

Beste Grüße
Peter
+3
AndreasDV08.01.25 14:05
twix

Ja ich weiß. Der A1200 hatte nur die CPU. Den CoPro konnte man nachträglich einlöten! Der A3000 konnte man aber mit einem CoPro kaufen. Bei dem A4000er weiß ich nicht wie das da war. Alle anderen Modelle der Amiga Serie hatten keine Vorbereitung für den CoPro gehabt. Das ging nur durch eine Turbokarte oder eine Karte mit Fast RAM inkl. CoPro
+3
centris08.01.25 14:15
Ich habe bis heute keine Ahnung, was dies genau ist bzw. wie es genau funktioniert. Ich weiß nur, das ich damals einen Mac nachgerüstet habe. Vielleicht einen LC II oder LC III.
+1
tranquillity
tranquillity08.01.25 14:28
AndreasDV
twixJa ich weiß. Der A1200 hatte nur die CPU. Den CoPro konnte man nachträglich einlöten! Der A3000 konnte man aber mit einem CoPro kaufen. Bei dem A4000er weiß ich nicht wie das da war. Alle anderen Modelle der Amiga Serie hatten keine Vorbereitung für den CoPro gehabt. Das ging nur durch eine Turbokarte oder eine Karte mit Fast RAM inkl. CoPro

Ich hatte in meinem Amiga 4000 die FPU nachrüsten lassen, weil ich mit der Software Maple gearbeitet habe (ob das wirklich nötig war weiß ich leider nicht mehr genau).
Lange langen ist‘s her …
(Später kam dann eine 68040er Turbokarte zum Einsatz, aber warum weiß ich auch nicht mehr … wahrscheinlich versprach ich mir davon höhere Arbeitsgeschwindigkeit). Müsste den Amiga nochmal antesten, ob er nach Jahrzehnten auf dem Dachboden noch funktioniert?!
+1
twix
twix08.01.25 14:34
AndreasDV
Der A3000 konnte man aber mit einem CoPro kaufen. Bei dem A4000er weiß ich nicht wie das da war.

Die Amiga 4000 mit 68ec030 hatten keine MMU (daher 'ec') und nur einen leeren FPU-Sockel für eine 68882. Die 68040 hatten die FPU integriert.
Bei Turbokarten gab es ec040 (ohne MMU und ohne FPU) und lc040 (mit MMU aber ohne FPU). Gleiches Schema galt für die 68060.

Genug des Alteisens nun

Beste Grüße
Peter
+2
gfhfkgfhfk08.01.25 14:37
Der Artikel ist schlecht.

SANE wurde nur dann genutzt, wenn man Programme für Computer schreiben wollte die keine dedizierte FPU hatten. Die Prozessoren für die Apple II Serien unterstützen von Apple aus keine FPU. Sowohl in den Apple II wie auch Apple Lisa war es möglich eine Am9511 FPU von AMD nachzurüsten. Bei der Lisa war extra dafür ein Steckplatz vorhanden. Was die Berechnung drastisch beschleunigte.

Bei Motorola wurde die 68881 FPU parallel für die 68020 CPU entwickelt, und bei den UNIX Anbietern auch direkt im System verbaut. Apple selbst hat nur zwei Macs mit 68020 verkauft den MacII und den LC. In ersterem war der 68881 ab Werk verbaut und beim LC ließ er sich über eine Karte nachrüsten.

Die 68k FPU unterstütze IEEE 754 Single, Double und Extended 80Bit Gleitkommazahlen.

Mit dem 68030 kam dann die 68882 FPU, die pro Takt ca. 25% schneller als der 68881 (bis 33MHz) war und ferner für höhere Taktraten (bis 50MHz) geeignet war.

Es war damals üblich für FPU lastigen Programme auf dem Mac zwei Versionen zu erstellen. Die Version ohne direkten FPU Support nutzte SANE die andere enthielt direkt FPU Code für die Motorola FPU.

Beim PowerPC war die FPU immer integriert und drastisch schneller als bei 68k. Dafür konnte sie nur noch IEE754 Single und Double Precision. Der 80Bit Support entfiel.

Damals gab es einen Benchmark für Mathematica, um die Performance der Rechner zu vergleichen. Der Eigenvalues Test ist für die FPU Problematik sehr anschaulich.
  • Performa 630 (68LC040@33MHz ohne FPU) 1323s
  • PowerMac 6100/66 (PPC601@66MHz 68k Code ohne FPU) 550s
  • Quadra 840AV (68040@40MHz mit FPU und FPU Code) 68s
  • PowerMac 6100/66 (mit nativen Code) 11s
-1
gfhfkgfhfk08.01.25 14:40
AndreasDV
Der A3000 konnte man aber mit einem CoPro kaufen.
Beim Amiga 3000 war die FPU immer verbaut. Bei der 16MHz Version war aus Spargründen der 68881 verbaut und bei der 25MHz Version der 68882.
0
THH
THH08.01.25 17:48
Ach was war das für eine Zeit. Immer wieder schön zu lesen, wie hier so jeder seine liebe Müh mit der Technik-Performance hatte.
Ich selbst auch, hatte ich doch damals schon mit dem Quadra 840AV anfangend versucht animierte Videos zu rendern ... Stunden über Stunden ... Nächte über Nächte.
Dann mit dem dem PowerPC 8100/100 war es dann gut 8x schneller. Später dann der 9500. Zum Glück musste ich nicht mein Geld damit verdienen ... hat alles soooo lange gedauert. Ich muss aber sagen, dass man sich auf die Hardware immer verlassen konnte, nach so vielen Stunden rechnen kaum ein Absturz!
0
Marcel_75@work
Marcel_75@work08.01.25 20:02
Ich komme ursprünglich auch vom AMIGA (und davor noch C64)…

Immer wieder schön zu sehen, das hier auch ein paar andere 'alte Hasen' mit am Start sind.

Bei den AMIGAs fehlte leider nicht nur die FPU in einem Großteil der Modelle, sondern vor allem auch die MMU.

Die meisten hatten halt nur einen A500 oder A1200, die wenigsten einen A2000/3000/4000.

Und da es leider keinen Speicherschutz im damaligen AMIGA OS gab, stieß das eigentlich geniale 'preemtive Multitasking' (je nachdem welche Programme man parallel nutzte) schnell an seine Grenzen und ein Konflikt führte unweigerlich zur hassgeliebten 'Guru Meditation' (also zu einem Komplettabsturz, beim klassischen Mac OS die "Bombe").

Es war aber trotz alledem eine tolle Zeit und ich bin sehr froh, dass ich einen Teil der AMIGA-Fachzeitschriften von 1989/90/91 usw. noch aufgehoben habe (immer wieder schön, mal darin zu schmökern).

Denn es gab zur dieser Zeit wirklich beeindruckende Grafik- und und vor allem auch Videokarten (im Vergleich zu dem, was im PC- und Mac-Markt genutzt wurde) und auch geniale Software wie z.B. Scala MultiMedia / InfoChannel oder auch Lightwave usw.

Wenn Commodore nur rechtzeitig vor der Pleite im April 1994 eine standardisierte Grafikschnittstelle (RTG) und idealerweise auch gleich noch einen standardisierten Netzwerk-Stack in AMIGA OS integriert hätte, wäre die Geschichte der IT in den 1990er und 2000ern eventuell eine andere geworden… *träum*

So aber gab es nach dem Bankrott nicht nur konkurrierende kommerzielle Grafiktreiber (CyberGraphics vs. Picasso96 Grafiktreiber), sondern auch verschiedene Netzwerk-Lösungen (AmiTCP, MiamiDX, Genesis, Roadshow + Roadie, …), ganz zu schweigen vom "Kleinkrieg" zwischen den Hardware-Herstellern bezüglich der Turbokarten mit PPC-Unterstützung.
0
gfhfkgfhfk08.01.25 20:52
Marcel_75@work
Bei den AMIGAs fehlte leider nicht nur die FPU in einem Großteil der Modelle, sondern vor allem auch die MMU.
Keines der damals verbreiteten OS für Kleincomputer verfügte über Speicherschutz, weil die Hardware dafür zu teuer war. D.h. auch kein einziger Mac hatte das, außer man ließ auf ausgesuchter Hardware A/UX laufen. Aber AMIX gab es ja auch.
Marcel_75@work
Und da es leider keinen Speicherschutz im damaligen AMIGA OS gab, stieß das eigentlich geniale 'preemtive Multitasking' (je nachdem welche Programme man parallel nutzte) schnell an seine Grenzen und ein Konflikt führte unweigerlich zur hassgeliebten 'Guru Meditation' (also zu einem Komplettabsturz, beim klassischen Mac OS die "Bombe").
AmigaOS hatte die Nachrüstung von Speicherschutz schon in der ersten Version angedacht, und dafür ein spezielles Flag für die Speicheranforderung eingebaut. Dazu kam es allerdings nie. Da AmigOS auf TRIPOS aufbaute (dos.library), hätte man wohl leichtes die Multiuser Fähigkeit von TRIPOS wieder einbauen können.
0
Marcel_75@work
Marcel_75@work08.01.25 22:43
gfhfkgfhfk: Sehr interessant, hattest Du denn einen AMIGA mit nachgerüsteter MMU und darauf dann Amiga Unix (aka Amix) mal angetestet?
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.