Les CPU de nos Mac : le PowerPC G4
Nous y voici, en 1999, avec cette claque qu'est le PowerPC 7400 dénommé "G4" par Apple.
Le bon
Le bon c'est que le PowerPC G4 est un PowerPC avec les qualités des PowerPC, un très bon parallélisme interne encore renforcé sur cette génération pour l'unité générale mais aussi par les choix fait pour l'unité vectorielle.
La première génération a été promise avec des fréquences de 400 Mhz, 450 Mhz et 500 Mhz.
Enfin les 500 Mhz!
C'est une bonne CPU généraliste avec un bon niveau de performance pour les traitements entiers ou flottants traditionnels, de la classe du Pentium-III concurrent.
Mais avec quelque-chose en plus!
La brute
Le PowerPC G4 est une brute, et il a foutu une claque monumentale à Intel!
Intel qui se moquait des Mac dans d'anciennes publicités se retrouve alors comme l'arroseur arrosé avec des pubs montrant un Pentium-III escargot ou grillant sous sa propre chaleur!
Sa principale force c'est son unité vectorielle 128 bits implémentant le sous-ensemble d'instructions Altivec, et appelée Velocity Engine par Apple, VMX par IBM, etc. Son implémentation a été conçue par Motorola en collaboration avec IBM et probablement sous la férule d'Apple.
Intel avait SSE qui implémentait aussi un sous-ensemble d'instructions vectorielles 128 bits sur le Pentium III, mais il y avait des différences fondamentales en terme d'architecture, qui faisaient que dans les faits, le PowerPC G4 écrasait son concurrent tant en terme de performances théoriques que pratiques.
Intel avait conçu son unité SSE comme une extension des unités existantes de sa CPU, dialoguant avec celles-ci via ses registres et intégrée dans les pipelines de traitement généraux, avec un jeu d'instruction limité. Intégrée ou plutôt inféodée à l'unité générale.
IBM en revanche avait conçu Altivec comme une unité vectorielle RISC indépendante, avec son pipeline séparé, alimenté par le décodeur commun, et sans échange possible de données directement avec les registres généraux, mais un jeu d'instruction riche. L'indépendance (sauf décodage d'instructions).
Le choix d'IBM se révèlera le meilleur et son implémentation Superscalaire par Motorola excellente, pouvant effectuer 2 instructions vectorielles par cycle sur cette génération quand le P3 n'en effectuait qu'une seule!
IBM aura une implémentation différente, et ne l'utilisera pas immédiatement sur ses puces pour serveurs car n'en ayant à-priori pas l'usage.
On retrouvera un tel choix architectural plus tard avec le sous-ensemble d'instruction Neon sur les architectures ARM, qui si elles peuvent échanger avec les registres généraux cela se fait aussi lentement qu'au travers du cache L1 donc avec de fortes pénalités (latences).
Là aussi pour que les instructions Neon 128-bits puissent avoir leur propre plan de vol et on voit sur les Mac Mx que ce choix architectural donne d'excellent résultats en général.
Le truand
Dès la sortie, Motorola n'a pu fournir les puces promises, Apple devant baisser toutes les fréquences de 50 Mhz sur les machines livrées: 350 Mhz, 400 Mhz et 450 Mhz. La barre des 500 Mhz ne sera pas atteinte. On sait où tout ça mènera...
Il y aura de nombreuses évolutions, des fois profondes comme les "Apollo 6" (7451 amélioré, 7455 totalement reconçu), incluant d'énormes progrès sur les pipeline généraux et vectoriels qui auraient du faire changer le nom du dernier car vraiment générationellement plus avancé et proposé à 733 Mhz et plus dont le PowerMac G4 QuickSilver dual-CPU 1 Ghz.
Mais Steve Jobs envisageait un monde où les ordinateurs ne serait pas coincés sur un bureau et raccordé au secteur, un monde d'ordinateurs portables.
Et le PowerPC G4 ne répondait pas à cette demande comme il l'aurait souhaité, car consommant plus qu'il le voulait pour cet usage, même sur les dernières déclinaisons, et malgré le développement par Apple de puces de support destinées à optimiser la consommation de leurs portables.
Pour conclure
Le G4 a été une énorme réussite.
Après plus d'une décennie où j'ai ignoré le monde Mac, j'y suis revenu par un Mac mini G4 1.25Ghz 256Mo/40Go qui m'a fait switcher...
Au travail j'utilisais un Pentium4 2.5 Ghz deux fois plus rapide, en fait avec une fréquence deux fois plus élevé ne confondant pas, mais sur certains de mes codes Java le "mimi" allait bien plus vite!
Déjà se profilaient des problèmes de fabrication par Motorola, ne respectant pas ses engagements dont les fréquences annoncées, et de définition-produit qui issu du monde d'IBM avait plus sa place sur une station de travail ou un serveur que sur des micro-ordinateurs de plus en plus portables!