Les CPU des Mac : Motorola 88000
Ça y est, on rentre dans le lourd, dans la tragédie Shakespearienne, où comme dans la vraie vie on ne peut être mieux trahi que par ses proches, ses intimes, ceux sur lesquels on compte, dans une lutte à mort et dans la souffrance si possible!
On est en 1988, a un tournant de l'histoire pour Apple et Motorola: la première trahison de ce dernier. Celui sans qui ni le Lisa ni le Macintosh n'auraient été possibles.
Apple vient de sortir le Macintosh IIx avec son 68030 qui explose littéralement le 68020 de son prédécesseur, deux fois plus rapide un an après, et tout laisse à penser que la gamme est sur des rails avec les futures évolutions, concurrençant le leader Intel en terme de performances mais aussi le couple formé avec Microsoft en terme d'interface et de logiciels!
Ça ne va pas se passer comme cela et Motorola va se prendre des rails et faire dérailler Apple...
IBM 801, MIPS, Sparc, ARM, etc. : Les CPU RISC
Il faut parler du concept appelé RISC à l'époque, qu'on appelle Load-Store aujourd'hui, qui regroupe plusieurs concepts: de multiples registres généraux, peu d'instructions par analyse statistique et réduction ou enlèvement de ces peu utilisées comme la multiplication, absence de micro-code, peu de modes d'adressages les calculs d'adresse étant effectuées via le jeu d'instruction et non au vol, et dans certains cas une absence de transactions mémoires transparentes remplacées par des barrières (fence).
IBM avait donné le La dès la fin des années 70, avec son 801, qui préfigurait tout un mouvement en terme de conception de CPU, avec 16 registres généraux 24 bits, un minimum d'instructions, pas de multiplication, pas de micro-code, un minimum de modes d'adressages.
Et tenez-vous bien, outre qu'il était très performant, il a eu de la descendance, dont l'architecture POWER et les PowerPC!
Les PowerPC descendent en ligne directe de la première CPU RISC historique.
ARM avait sorti en 1985 son ARM1 utilisé comme coprocesseur dans le Acorn BBC.
Les ARM avait déjà une spécificité, outre être une architecture dite "RISC", c'est de ne pas avoir de transactions mémoires, nécessitant d'ajouter des instructions pour garantir que ce qu'on relis est bien ce qu'on aurait pu précédemment écrire. Les barrières ou "fence".
C'est un point essentiel, on reviendra dessus la semaine prochaine...
L'ARM2 en 1986 sera sa vraie première CPU commercialisée, ajoutant au passage une instruction de multiplication, un choix pragmatique peut-être forcé par certains benchmarks. Il est 7 fois plus rapide que le 68000 avec 2 fois moins de transistors.
Il écrase le 80386 et le 68020. Les doigts dans le nez.
Sun avait lancé son Sparc aussi en 1986, et après 3 générations de station de travail basées sur la famille 68000 et le Sun386i basé sur l'Intel 386, les Sun-4 volaient de leurs propres ailes sans plus avoir besoin de Motorola.
Motorola a perdu un client historique, qui était aussi une vitrine pour ses CPU, Sun faisait rêver à l'époque!
Last but not least, il y a MIPS, et son R2000 qui a des performances exceptionnelles en 1986 et donc beaucoup d'entre nous ont utilisé son descendant R4000 dans la PlayStation de Sony!
Ces CPU RISC sont non-seulement très performantes, ou trop, mais surtout elles s'emparent de marchés que Motorola pensait contrôler. Et d'acteurs essentiels.
La famille 68000 entre CISC et RISC
Si on compare la famille 68000 avec les modèles d'Intel, il y a de nombreuses différences et des points communs, mais il a aussi des points communs avec les architectures RISC.
Même si elle a commencé avec du micro-code, celui-ci est abandonné dans le 68030 pour des raisons de performances, comme les RISC. Intel fera aussi ce choix.
Il a 16 Registres de Base, dont 8 registres de Données et 8 registres d'Adresses, plus proche du RISC que du x86. Il faudra attendre les x86 64 bits pour cela.
Le jeu d'instruction initial (79 instructions) est là aussi plus proche du RISC.
Mais il a des modes d'adressage complexes, qui se complexifieront avec le 68020 puis le 68030, plus complexes même que ceux des x86!
Et évidemment des instructions travaillant directement en mémoire, y-compris lisant, calculant et stockant un résultat d'un coup, on est très loin du modèle Load-Store où une instruction liée à la mémoire ne peut qu'exclusivement lire ou écrire sans effectuer de traitement.
Un autre de ses problèmes ultérieurs viendra du CCR (Condition Code Register), puisque sur de nombreuses instructions même sans calcul (déplacement de données) les drapeaux sont systématiquement calculés et mis, ce qui pour le coup le différenciera à la fois des RISC mais aussi des Intel x86. Ça économisait initialement quelques instructions, ce qui était bienvenu.
Mais cette spécificité crée une chaîne de dépendance sur ce seul registre, ce qui est probablement l'erreur de conception la plus importante de la famille 68000 sur le long-terme, compliquant incroyablement de potentielles implémentations Out-of-Order et même In-Order avec 2 pipelines.
Motorola en bonne position, mais qui s'érode
Une position en or pour Motorola, certes la seconde position, mais un placement indisputé à ce moment, 90% du marché non x86 qui lui-même représentait 80% du marché. 90% du restant du marché!
Même Sun qui eu fait une infidélité à Motorola avec l'unique Sun386i "Roadrunner" reviendra dans les clous et sous son giron. Byte avait pourtant énormément apprécié cette station de travail.
C'était juste une exploration pour Sun, en attendant de trouver sa propre voie...
Motorola a donc un avenir tout tracé avec la famille 68000, un marché assuré, des clients qui sont plus des partenaires et qui dépendent entièrement de ses avancées pour leurs futurs produits.
Mais perdant des acteurs historiques, comme Sun qui venait de créer son architecture RISC Sparc, tout indiquait que les futures stations de travail ou stations graphiques seraient RISC et donc sans la famille 68000 et sans Motorola.
Motorola croit au RISC
Motorola a donc pris acte et comme après le 6809 ayant abandonné le 8-bits pour créer la famille 68000 en indiquant que celle-ci était l'avenir, et d'une certaine façon elle le fut et avait encore du potentiel d'évolution après le 68060, décision fut prise de démarrer une famille 88000 RISC en s'inspirant avec deux ans de retard des produits concurrents.
L'espoir de Motorola était probablement d'amener ses clients, ses partenaires dépendants de son offre, à passer à une autre famille de CPU, pour à la fois les conserver, mais aussi rester compétitif en terme de performances et d'offre. En offrant eux-aussi du RISC.
La trahison de Motorola
Le fait est que Motorola a informé ses partenaires, après la sortie du 68030 qui est un énorme succès en dehors du monde x86, que ben voilà, l'avenir c'est le 88000, une architecture RISC incompatible, qu'il y aura des descendants au 68030 mais que c'est plus la priorité ou le futur, bien que la vache-à-lait de la compagnie et la ligne de vie de certains de ses clients.
Allez au-revoir.
L'avenir c'est le 88000 et plus la famille 68000 destinée à disparaître...
La première vraie trahison de Motorola.
Apple est acculé
Apple se retrouve dans une situation incroyable: la possibilité que son fournisseur, son partenaire, ne lui fournisse plus de futures CPU pour le Macintosh et que celui-ci s'éteigne.
Et ceci après avoir tout fait pour tuer la lignée Apple ][, écartant la possibilité d'une version 32 bits équipée d'un potentiel 65832 pourtant très prometteur, qui ne verra pas le jour faute de ce marché.
Pour moi une erreur stratégique, tant en terme de suivi logiciel qu'en terme d'offre commerciale.
On aura l'occasion d'y revenir en 1991!
Donc Apple sans plus aucune alternative, totalement dépendant de l'offre de Motorola!
En 1988 la lignée des Macintosh allait s'éteindre avec la famille 68000 qui l'a vu naître 8 ans après le premier prototype.
Apple n'a pas accepté cela, ni cette trahison de Motorola, ni cette perte et va prendre des mesures incroyables les 3 prochaines années, entre 1989 et 1991...