Aller au contenu

Motorola 88000

Un article de Wikipédia, l'encyclopédie libre.

Motorola 88000
Image illustrative de l’article Motorola 88000

Concepteur Motorola
Bits 32-bit
Lancement avril 1988
Architecture RISC
Type Load-store (en)
Endianness Bi
Extensions Graphics instructions (88110 only)

Le 88000 (m88k pour faire court) est une architecture de jeu 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.

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

[modifier | modifier le code]

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é

[modifier | modifier le code]

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

[modifier | modifier le code]

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.

Au dĂ©but des annĂ©es 1990, Motorola a rejoint l'alliance 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

[modifier | modifier le code]

Comme le 68000 avant lui, le 88000 Ă©tait considĂ©rĂ© comme une conception « à partir de zĂ©ro »[1]. 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

[modifier | modifier le code]
  • (en) Alsup, « Motorola's 88000 Family Architecture », IEEE Micro, vol. 10, no 3,‎ , p. 48–66 (DOI 10.1109/40.56325, S2CID 30607775)
  • (en) « Lifting The Lid Off The Motorola 88000 – To Find Do-It-Yourself Co-Processors », TechMonitor,‎ (lire en ligne)
  • « Motorola's 88000 Risc In Full Volume Production », sur TechMonitor, (version du sur archive.org)
  • (en) « Motorola's Risc, Set To Go In April, Is Tailored For Unix », TechMonitor,‎ (lire en ligne)

Notes et références

[modifier | modifier le code]
  1. ↑ (en) « LIFTING THE LID OFF THE MOTOROLA 88000 – TO FIND DO- IT-YOURSELF CO-PROCESSORS », sur Techmonitor, (consultĂ© le )

Liens externes

[modifier | modifier le code]