Quelle FPU choisir sur un vieux Mac

Dans les vieux processeurs utilisés dans les Macintosh des années 80 et 90, les calculs flottants (la fameuse FPU) passent par une puce externe dans certains cas. Chez Motorola, il en existe deux, mais quelles sont les différences ?

Chez Motorola, les 68000, 68010, 68020 et 68030 n’intègrent pas de FPU, mais peuvent recevoir une FPU externe, la 68881 ou la 68882. Dans le cas des 68040, il existe des modèles avec une FPU intégrée (68040) et d’autres sans (68LC040), sans possibilité d’en ajouter une. La seule solution dans ce cas là passe par le changement du CPU. Sur les anciens CPU, donc, il existe deux versions de la puce externe. Selon plusieurs sources, la version 68882, compatible directement avec la 68881, serait nettement plus rapide (10 à 40 % selon les sources). J’ai donc commandé une 68881 sur eBay, pour tester dans mon Macintosh LC. La machine a en effet un emplacement pour une FPU sur une carte réseau, alors que les générations suivantes l’ont sur la carte mère (seulement les traces sur le LC II). J’ai testé sur le LC parce que le CPU tourne à 16 MHz et que la FPU que j’ai reçu est annoncée comme une 16 MHz. Les 68882, plus récentes, tiennent normalement des fréquences plus élevées. En pratique, il faut au moins que la FPU tienne la même fréquence que le CPU, donc.

La carte et deux FPU


Sans FPU


Avec une 68881


Avec une 68882

Mon premier test a été un programme de fractale (assez lent). Ce genre de programme tire bien parti d’une FPU, tout comme certains logiciels de bureautique (type Excel). Les jeux l’utilisent très rarement à cette époque, contrairement à ce qui se passe aujourd’hui. Plus largement, la FPU a globalement assez peu d’intérêt dans les années 80 et 90, ce qui explique son absence. Sur le LC avec la 68882, il faut 7 minutes et 3 secondes pour générer l’image. Avec la 68881, ça prend 6 minutes et 2 secondes. Pas très concluant, donc. Enfin, sans FPU, le programme ne se lance même pas. Dans les deux cas, avec la FPU, ça reste plutôt lent.

Le programme de fractale (6 à 7 minutes pour ça)

J’ai aussi lancé un benchmark pour vérifier (MacBench 3.0, les versions suivantes n’aiment pas un System 7.1 avec seulement 10 Mo de RAM). Avec la FPU 68882, le score est de 0,12 (1 % de ce que peut faire un PowerPC 601 à 60 MHz). Avec la 68881, le score est de 0,11. La différence est franchement faible, de l’ordre de la marge d’erreur. Sans FPU, le score est de 0,01, ce qui montre bien l’intérêt de la FPU sur les calculs flottants.

Pas de FPU : 0,01


68881 : 0,11


68882 : 0,12

FPU ou pas ? 68882 ou 68881 ?

Bonne question. La FPU ne s’impose pas vraiment dans une machine de cette époque : les programmes qui l’utilise sont rares et dans la majorité des cas, trouver une machine avec un 68040 complet amènera un bien plus gros gain. Pour se donner une idée, à 25 MHz, la FPU d’un 68040 est 10 à 15 fois plus rapide qu’une 68882. Disons que si la machine a un emplacement et que vous avez la puce, pourquoi pas. Et laquelle ? Cette question, elle, ne se pose pas réellement. La 68882 est plus courante, souvent moins onéreuse, un rien plus rapide (même si les 40 % avancés par Motorola ressemblent à une blague) et supporte souvent une fréquence plus élevée. Pour le test, je n’ai trouvé facilement que des 68881 à 16 MHz par exemple. Enfin, notamment pour les différents UNIX compatibles avec les Mac, la 68882 est préférable. En clair, si vous devez acheter une FPU, allez directement vers une 68882. Mais si vous avez déjà une 68881 qui fonctionne, pas besoin de changer.