Comme j’en ai parlé récemment sur Twitter, et que certains ne connaissaient pas : la famille des 68000 ne s’arrête pas au 68040, loin de là. Motorola a notamment proposé le 68060 (il n’existe pas de 68050), un processeur rapide qui peut dans certains cas remplacer le 68040. Mais pas dans les Mac.
Chez Apple, le dernier Motorola utilisé est le 68040. Mais le 68060, plus rapide et assez proche du Pentium dans son architecture (superscalaire), n’a jamais été utilisé dans les Mac. On le trouve par contre dans quelques Amiga (Amiga 4000T en 1995) et – surtout – dans les cartes d’accélération pour les Amiga et Atari. Le 68060 a l’avantage de pouvoir fonctionner (presque) directement dans un emplacement prévu pour un 68040. Les adaptateurs existent, et se placent entre le socket et le CPU. Il adaptent les broches, diminuent la tension de fonctionnement – le 68060 fonctionne en 3,3 V, le 68040 en 5 V – et doublent la fréquence. Un 68060 en mode 68040 intègre en effet un multiplicateur de bus. Un appareil avec un 68040 à 33 MHz (par exemple) passe donc à 66 MHz, avec en plus les gains architecturaux. Si Motorola a validé les 68060 au mieux à 80 MHz, les dernières révisions (rev6) gravées en 320 nm montent sans soucis à plus de 100 MHz.
Pas dans les Mac
Le cas du Mac est un peu compliqué. L’absence de 68060 à l’époque semble lié à deux choses, une raison officielle (et technique) et une raison officieuse. La première, technique, c’est que le 68060 dispose de deux modes de fonctionnement, user et supervisor. Le premier est totalement compatible avec le 68040, le second – utilisé par Mac OS – possède quelques différences. Même chose pour la FPU, comme pour le 68040, le 68060 ne dispose pas de toutes les fonctions de la FPU dédiée (68882) et émule certaines choses en software. D’un point de vue pratique, une modification de la ROM du Mac est nécessaire, pour interpréter correctement les (rares) différences entre le 68040 et le 68060. L’explication officieuse, c’est que Daystar (une société spécialisée dans les cartes d’amélioration) avait une carte à base de 68060 pour les vieux Mac, mais qu’Apple n’a pas donné accès à la ROM pour intégrer les modifications nécessaires. Au lancement du PowerPC chez Apple, un Motorola 68060 à 66 MHz aurait en effet permis de rendre un Mac éqiuipé d’un 68040 plus rapide qu’un Mac équipé d’un PowerPC. A l’époque, la majorité des logiciels utilisait encore du code 68000 émulé sur le PowerPC et les performances restaient assez faibles (typiquement, un PowerPC 601 en émulation offrait souvent des performances moins bonnes qu’un 68040 rapide en natif). Ca a changé plus tard avec des PowerPC adaptés (le PowerPC 603e et sa mémoire cache de 16 ko) mais au lancement, c’était un mauvais plan pour Apple.
Les solutions modernes ?
En 2018, il serait techniquement possible de proposer un adaptateur. Basilisk (un émulateur) dispose en effet des routines pour modifier la ROM (c’est évidemment plus simple de patcher une ROM en mémoire) et des solutions pour remplacer la ROM d’un Mac par une version modifiable existent. Il doit dont être possible de modifier une ROM et d’utiliser un adaptateur pour améliorer un Mac. Mais est-ce vraiment utile quand l’émulation permet d’obtenir de bonnes performances avec un simple Raspberry Pi et quand il reste possible d’installer des PowerPC rapides dans les autres cas ? Surtout que je n’ai pas abordé un point : le prix. Les 68060 « complets » (avec une FPU) valent assez cher, même pour les variantes à 50 ou 66 MHz. Il faut compter parfois plus de 100 € pour un CPU, ou se passer de la FPU avec un 68LC060, un peu moins onéreux.
Il y a quelques années (même beaucoup d’années) le 68060 devait être monté sur les cartes Medusa (clones Atari) et, comme ça coinçait, c’est comme ça que l’Hades est né, avec un 68060.
Il semble qu’il y ait eu des tentatives de mettre un 68060 dans un quadra 840 av avec un adaptateur socket 68040-68060 (comme ceux utilisés sur les A3000/4000).
Voir https://www.macuser.de/threads/68060-im-quadra.293796/ (en allemand)
Le résultat: initialisation mais blocage à l’écran gris. Probablement du au fait que le processeur tourne en mode superviseur (comme le requiert Mac OS) plutôt qu’utilisateur: le mode superviseur du 68060 n’est pas entièrement compatible avec le 68040, contrairement au mode utilisateur. Comme dit sur https://arstechnica.com/civis/viewtopic.php?f=19&t=553543, dès qu’une requête d’interruption arriverait (accès DD, etc) le système planterait, ce qui est probablement ce qui se passe.
Cela dit, vu qu’il est a priori possible de booter Basilisk II en mode 68060 – auquel cas la ROM est patchée pour initialiser le CPU et traiter les différences, il devrait être possible de faire un dump de ROM (donc patchée pour le 68060) depuis Basilisk II avec une ROM Quadra 840 AV, puis programmer de vraies EEPROMs puis essayer de nouveau avec un 68060 dans un Quadra 840 AV
L’obstacle du mode superviseur et sous-routines incompatibles (FPU state frame layout ou PTEST) pourrait peut-être être résolu en utilisant une ROM modifiée provenant d’un dump ROM de Fusion/Basilist/ShapeShifter (qui patchent la ROM aux endroits non-compatibles) à partir d’un Amiga équipé d’un 68060. En utilisant effectivement une barrette ROM-inator chargée avec le dump ROM.