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 ProzessorarchitekturenDer 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ßkommaoptimierungenIn 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 MintIn 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.