Nous utilisons des cookies pour améliorer votre expérience.

MacBidouille

News du dimanche 24 mars

Les CPU des Mac : IBM POWER

Nous voici en 1994 avec l'arrivée au printemps des premiers Macintosh PowerPC, les PowerMac, le second volet de notre parcours des CPU au cœur des Mac.
En guise de préambule, il me parait indispensable d'aborder l'origine des PowerPC, les IBM POWER nés en 1990, leurs inspirations, et ce que peut signifier "RISC".

IBM, Pionnier du RISC?

Il y a un beau narratif, présentant l'IBM 801 comme le premier processeur RISC.
Le projet 801 démarré en 1974 consistait en un processeur destiné aux autocommutateurs à grande échelle, nécessitant une puissance de traitement très élevé, énorme pour l'époque!

La voie choisie par IBM a été de réduire cette CPU au maximum en éliminant tout ce qui ne correspondait pas au cœur des besoins, incluant les instructions redondantes ou remplaçables par une série d'instructions plus simples tant que ça n'impactait pas négativement les performances dans l'usage ciblé.

Malheureusement le 801 resta à l'état de prototype et ne fut jamais produit ou utilisé.

Je suis en désaccord avec la présentation du 801 comme un processeur RISC, car si effectivement il avait très peu d'instructions, il n'était destiné qu'à un usage dédié très spécialisé, à l'inverse des CPU RISC qu'on a vu fleurir à la fin des années 80 et durant les années 90.
C'est une puce spécialisée programmable, tout comme un DSP est une puce spécialisée programmable, ou l'Intel 8089 une puce d'entrée/sortie programmable.

IBM pionnier du RISC!

Si le 801 n'était pas pour moi une CPU RISC par sa spécialisation, et surtout par l'absence de production et d'utilisation, IBM sorti en 1981 le ROMP au nom barbare, pour le coup une vraie CPU RISC 32 bits pipelinée sur 3 étages avec des instructions codées sur 16 bits.
16 registres 32 bits, du luxe en 1981, un espace virtuel adressable de 40 bits (1 To!!!), et le support de la mémoire virtuelle.
Il comportait 118 instructions, deux fois le nombre d'un Motorola 68000, avec 71% d'entre elles qui s'exécutaient avec un seul cycle de latence.

Il a servi pour le PC RT, une machine qui d'un certain coté aurait du marquer son époque tellement elle est passionnante, mais que peu d'entre nous connaissent.

Pour moi ROMP est un succès technique phénoménal, encore compétitif en 1986, 5 ans après sa sortie!

Qu'est-ce que le RISC

La définition a changé plusieurs fois, et n'a plus aucun sens aujourd'hui sur les CPU récentes aux milliers d'instructions, que ça soit x86 ou ARM.

Initialement RISC signifiait Reduced Instruction Set Computer, ordinateur à jeu d'instruction réduit, mais pour moi c'était plus la conséquence d'une optimisation de l'architecture qu'un but en soi. Avoir moins de transistors était le but premier.

On le retrouvera sur le 6502, qui se passait de ADD ou SUB pour se contenter des variantes avec retenue (Carry) ADC et SBC respectivement, moins de transistors se traduisant par une énorme économie de conception et la possibilité de le faire en petite équipe ayant peu de moyens.
De manière similaire le premier ARM et l'ARM2 ont été conçus en petite équipe, avec peu de moyens, et là aussi moins de transistors pour les mêmes performances, et une puce moins chère à produire.

La définition a évolué rapidement, puisque les CPU RISC des uns et des autres avaient de plus en plus d'instruction, pour définir un but d'exécuter une instruction par cycle dans plus de 90% des cas via un pipeline, pour cela il fallait passer au maximum par des registres et non des échanges mémoires, donc de nombreux registres qui n'étaient pas un but mais un moyen, et finalement séparer les instructions accédant à la mémoire ou la modifiant de celles effectuant des traitements, ce qui a donné le concept actuel du load-store à des iotas près.

Aujourd'hui, toutes les micro-architectures performantes sont de type load-store, même sur du x86 dont l'architecture et l'ISA sont appelés "CISC".
De la même manière, si le 68000 avait 56 instructions et l'ARM 2 seulement 27, dès le 68060 on était autour de 150 et le PowerPC 601 sorti un an avant était à plus de 200!
Si, au début, les CPU dites "RISC" avaient moins d'instruction c'était un moyen et non un but, une caractéristique émergente, mais dès 1993 ça n'était plus nécessairement le cas.
En revanche, là aussi un moyen et non un but, les instructions des CPU RISC étaient généralement plus simples, en privilégiant l'usage de plusieurs instructions à la suite sur la création d'instructions complexes. Le but, alors, était de diminuer la complexité.

Il y aurait beaucoup à dire sur les philosophies CISC, RISC, load-store, aussi aborder le VLIW qui est une troisième voie qui a échouée en beauté avec l'Intel Itanium destiné à remplacer le x86 pour le 64 bits, je n'irais certainement plus les opposer, car si on regarde une implémentation performante des x86 ou ARM 64 bits on verra des jeux d'instructions très riches en frontend, plus ou moins CISC, avec un backend de type load-store qui vient en droite ligne des micro-architectures RISC.
Plus aucune guéguerre à avoir entre CISC et RISC, aucun des deux n'a réellement gagné, ce qu'on utilise au quotidien a pris le meilleur de chacun!

POWER1 en 1990

IBM a sorti le premier POWER en 1990, destiné initialement aux nouveaux RS/6000, POWERstation et POWERserver, appelé POWER1 ou RS/6000 CPU.

On est dans les classiques RISC de l'époque, avec une architecture de type Harvard, 32 registres généraux 32 bits, et un pipeline sur 3 étages.
Exécution out-of-order (en désordre), et même renommage de registres qui fut une première, FPU intégrée et pipelinée capable de faire des FMAD, le POWER1 vise haut, tout comme avec son espace adressable virtuel de 52 bits (4000 To!).

Il serait descendant du ROMP, mais si c'est vrai pour le pipeline à 3 étages, le reste est tellement étendu, notamment les unités d'exécution interne qu'on peut écrire qu'il en est inspiré.

Une voie royale!

"On n'a jamais été viré pour avoir acheté IBM" - ancien mantra

Apple a choisi avec IBM un partenaire qui avait une superbe architecture de CPU, conçues pour des serveurs, des minis, mais aussi capable de les décliner jusqu'aux stations d'entrée-de-gamme avec des implémentations spécifiques comme le RSC (Risc Single Chip) monopuce.

Et IBM était un acteur majeur de la micro-informatique avec l'IBM PC 5150, les PS/2 et successeurs, immortel et pour longtemps!

IBM a vraiment été un pionnier de l'informatique et du RISC, depuis leurs premiers systèmes de fichage sous la houlette du CEO Watson, en passant par les 360 (Apollo 11!), 370, S/36, S/38, PC, PS/2, et les RS/6000 représentait son avenir du coté mini et stations de travail, mais aussi potentiellement celui d'Apple...

Sondage

Comptez-vous acheter un Vision Pro ?