Le 88000 (m88k pour faire court) est une architecture d'ensemble d'instructions RISC développée par Mitch Alsup chez Motorola dans les années 1980. Le MC88100 est apparu sur le marché en 1988, environ deux ans après les concurrents SPARC, MIPS et ARM. En raison de son lancement tardif et des retards importants dans la commercialisation du MC88110 de deuxième génération, le m88k n'a connu qu'un succès très limité en dehors de la plateforme MVME et des environnements de contrôleurs embarqués. Lorsque Motorola a rejoint l'alliance AIM en 1991 pour développer le PowerPC, le développement ultérieur du 88000 a pris fin.

Histoire

Contexte Motorola entrait dans les années 1980 en position de force : le Motorola 68000, récemment lancé, surpassait largement tout autre microprocesseur disponible sur le marché, et son architecture 32 bits se prêtait naturellement au marché émergent des stations de travail. En ce temps, Intel ne s'engageait pas de manière agressive dans les architectures 32 bits, et les autres fabricants de processeurs qui l'ont fait, notamment National Semiconductor, ont commis des erreurs lors de leurs lancements, laissant ainsi Motorola contrôler l'ensemble du marché à l'exception de celui dominé par Intel. À l'époque, Intel détenait environ 80 % du marché global des ordinateurs, tandis que Motorola contrôlait 90 % du reste.

C'est dans ce contexte qu'est apparu, au début des années 1980, le concept RISC. Dans un premier temps, un vif débat a opposé l'industrie pour savoir si ce concept améliorerait réellement les performances, ou si ses programmes en langage machine plus longs ralentiraient l'exécution en raison d'accès mémoire supplémentaires. Ce débat a pris fin au milieu des années 1980 lors de l'apparition des premières stations de travail basées sur le concept RISC : le Sun-3/80 (dernière version), fonctionnant sur un Motorola 68030 cadencé à 20 MHz, atteignait environ 3 MIPS, tandis que le premier Sun-4/260 équipé d'un processeur SPARC à 16 MHz basé sur l'architecture RISC, atteignait 10 MIPS. Hewlett-Packard, DEC et d'autres grands constructeurs ont alors tous commencé à se tourner vers des plateformes RISC.

Ce changement de paradigme sur le marché risquait de bloquer l'accès de Motorola au marché des stations de travail, l'un de ses seuls bastions et parmi les plus rentables. Apple restait son seul grand client en dehors de l'univers des stations de travail ; les autres utilisateurs du 68000, notamment Atari Corporation et Commodore International, peinaient dans un marché qui se standardisait rapidement autour des compatibles IBM PC.

L'approche de Motorola Les conceptions RISC ont été une démarche consciente visant à adapter le processeur aux types d’opérations appelés par les compilateurs de la plateforme concernée, à savoir le langage C dans le cas des stations de travail Unix. Le projet fondateur IBM 801 avait déjà observé que les compilateurs n’utilisaient généralement pas la grande majorité des instructions dont ils disposaient, mais privilégiaient plutôt la version la plus simple de ces instructions, souvent parce qu’elle s’exécutait plus rapidement. Pourtant, la circuiterie dédiée aux autres variantes de ces instructions ajoutait une surcharge même pour la version la plus simple. En éliminant ces instructions inutilisées du processeur, cette surcharge a été supprimée, libérant ainsi une surface importante sur la puce. Cette place disponible a permis d’augmenter le nombre de registres du processeur, ce qui a eu un impact bien plus important sur les performances que les instructions spéciales supprimées. Pour cette raison, on peut affirmer que le concept RISC est fondamentalement dicté par la conception réelle des compilateurs.

Les articles de Motorola sur la conception du 88000 évoquent des instructions en un seul cycle, de grands fichiers de registres processeur et d’autres caractéristiques emblématiques du concept RISC, sans jamais mentionner le mot « RISC » une seule fois. Comme des conceptions RISC existantes étaient déjà sur le marché, l’entreprise a décidé de ne pas tenter de rivaliser avec elles, mais plutôt de concevoir le processeur le plus puissant du monde. Pour y parvenir, elle s’est inspirée des notes de conception de l’un des ordinateurs les plus rapides d’une époque précédente, le supercalculateur CDC 6600. En particulier, elle a repris le concept de tableau de bord (scoreboard) du CDC 6600. Le scoreboard permettait au processeur d’analyser l’utilisation des registres par chaque instruction et de dispatcher immédiatement celles qui ne dépendaient pas de calculs antérieurs encore en cours ; cela rendait possible le réordonnancement des instructions, permettant ainsi à celles dont les données étaient prêtes de s’exécuter pendant que les autres attendaient le chargement de leurs données depuis le cache ou la mémoire. Ce réordonnancement des instructions pouvait améliorer l’utilisation des ressources jusqu’à 35 %.

La conception utilisait également des bus d’adresse séparés pour les données et les instructions. Cela entraînait un coût élevé en nombre de broches : les caches d’instructions et de données disposaient chacun de 32 broches pour l’adresse et de 32 broches pour les données, ce qui portait à 128 le nombre de broches utilisées par le système complet sur le « P-bus ». Cette architecture reposait sur l’observation qu’environ un tiers des opérations concernaient la mémoire, tandis que le reste traitait des données déjà chargées. Cela favorisait fortement l’existence d’un chemin dédié aux instructions, menant à un cache d’instructions externe. Initialement, les caches et les unités de gestion de la mémoire (MMU) associées étaient externes ; un contrôleur de cache pouvait être connecté soit au bus de données, soit au bus d’instructions, jusqu’à quatre contrôleurs pouvant être utilisés sur chaque bus. À l’intérieur du processeur, trois bus de 32 bits étaient mis en œuvre, reliés aux unités internes de différentes manières selon les besoins de lecture et d’écriture des registres.

Une autre caractéristique de cette nouvelle conception était sa prise en charge intégrée de co-processeurs spécialisés, ou « unités de fonctions spéciales » (SFU). En plus des instructions internes prises en charge nativement, il prévoyait des blocs de 256 instructions réservés à l’usage des co-processeurs. Cette fonctionnalité s’adressait aux concepteurs souhaitant personnaliser le système : de nouvelles unités fonctionnelles pouvaient être ajoutées sans modifier l’architecture d’ensemble d’instructions existante, garantissant ainsi la compatibilité logicielle pour les fonctionnalités principales. Chaque processeur 88000 était livré avec l’unité SFU1 déjà intégrée, à savoir l’unité de traitement en virgule flottante (FPU). Les instructions de branchement et de saut intègrent une option de branchement retardé (.n), qui peut être spécifiée pour s’assurer que l’instruction séquentielle suivante est exécutée avant l’instruction cible du branchement, indépendamment de la condition de branchement. L’utilisation d’une instruction de branchement ou d’une autre instruction susceptible de modifier le pointeur d’instruction dans la slot de retard de branchement est déconseillée afin de préserver la compatibilité future.

Mise sur le marché Dès 1987, il était largement connu que Motorola concevait son propre processeur RISC. Surnommé « 78000 » par l’industrie informatique, en hommage au 68000, il est devenu le 88000 lors de sa sortie en avril 1988.

En raison de la complexité de sa conception, le processeur ne tenait pas sur une seule puce. Le 68030, lancé un an plus tôt, intégrait 273 000 transistors, incluant l’unité arithmétique et logique (ALU) et l’unité de gestion de la mémoire (MMU) sur le même silicium, l’unité de traitement en virgule flottante (FPU) étant proposée en option sous forme de puce séparée. À l’inverse, le 88000 regroupait l’ALU et le FPU sur la puce MC88100 à 750 000 transistors, tandis que la MMU et un cache de RAM statique de 16 Ko étaient intégrés dans la puce MC88200, également à 750 000 transistors. Contrairement au 68030 où le FPU était véritablement en option, un système 88000 fonctionnel ne pouvait être conçu sans au moins une puce MC88200. Les systèmes pouvaient intégrer plusieurs puces MC88200, permettant ainsi d’augmenter la taille du cache et de multiplier les chemins d’accès à la mémoire principale pour améliorer les performances.

Conçu pour le haut de gamme du marché, il était présenté comme le processeur 32 bits le plus rapide au monde lors de sa sortie. Fonctionnant à 20 MHz, il atteignait 34 000 Dhrystones ou 17 VUPS, contre environ 12 MIPS pour un SPARC de 12,5 MHz de la même époque dans une SPARCstation, ou autour de 3,3 MIPS pour le 68030 cadencé à 20 MHz. Il était également disponible en version 25 MHz, offrant 21 MIPS et 48 387 Dhrystones.

À l’époque, Motorola commercialisait le 88000 exclusivement auprès du haut de gamme du marché, ciblant des secteurs tels que « les télécommunications, l’intelligence artificielle, les graphismes, l’animation en trois dimensions, la simulation, le calcul parallèle et les supercalculateurs », tout en suggérant que la série 68k existante continuerait d’être utilisée sur le marché des stations de travail. En réalité, la plupart des clients potentiels ont ignoré le 88000, et le système a connu peu d’adoption.

Mise sur le marché bis Comme la version initiale avait peu été utilisée en dehors des produits de Motorola, et que ses clients traditionnels commençaient à se tourner vers d’autres architectures RISC, l’entreprise a relancé cette conception sous forme de puce unique, le MC88110. À la fin des années 1980, plusieurs entreprises examinaient activement la série 88000 pour un usage futur, notamment NeXT, Apple Computer et Apollo Computer, mais elles y ont renoncé toutes avant que le MC88110 ne soit finalement disponible en 1992.

Une tentative a été faite pour populariser ce système via le groupe 88open, à l’image de ce que Sun Microsystems tentait de faire avec son architecture SPARC. Il semble que cette initiative ait échoué dans les faits.

Abandon Au début des années 1990, Motorola a rejoint l’effort AIM pour créer une nouvelle architecture RISC basée sur l’architecture IBM POWER. Elle a intégré certaines fonctionnalités du 88000 (comme une interface de bus compatible) dans la nouvelle architecture PowerPC afin d’offrir à sa base de clients une sorte de voie de migration. À ce stade, le 88000 a été abandonné dès que possible.

Architecture Comme le 68000 avant lui, le 88000 était considéré comme une conception « à partir de zéro ». Il s’agit d’une architecture load/store purement 32 bits avec des caches d’instructions et de données séparés (architecture de von Neumann à caches divisés) et des bus de données et d’adresse distincts. Elle repose sur un ensemble d’instructions réduit mais puissant et utilise un espace d’adressage plat.

Une caractéristique architecturale inhabituelle est que les instructions entières et les instructions en virgule flottante utilisent le même fichier de registres.

Bibliographie

Notes et références

Liens externes

m88k website m68k/m88k reference website Dolphin m88k Dolphin Server Technology Badabada.org about m88k hardware and computers

Catégorie:Microprocesseur Motorola