![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Rédacteurs Messages : 1 659 Inscrit : 19 Nov 2020 Membre no 212 895 ![]() |
IBM PowerPC 604e, Domaine Public, Merci à Henrik Wannheden
Il n'y a pas eu un mais bien deux prototypes de PowerPC capable d'exécuter du code x86, implémentés totalement différemment, et destinés à s'installer dans des PC ou des Macintosh. Ce coup-ci vous allez être scotchés, je l'ai été en découvrant tout cela! Début 1994, IBM fabrique des CPU x86 sous licence Intel, conçoit aussi ses CPU POWER, et fait parti de l'alliance AIM avec Apple et Motorola. IBM aimerait à la fois continuer à vendre ses PC x86 PS/2 mais aussi faire d'une pierre deux coups en y introduisant l'architecture PowerPC mais pas sa coûteuse plateforme PReP. Apple aurait bien besoin d'une solution compatible PC pérenne et performante. Les deux CPU conçues coup-sur-coup et totalement différentes, expliquent les rapports souvent contradictoire que l'on peut lire, la seconde ayant été bien plus confidentielle, et pire une CPU a été installée dans les Macintosh avec la même référence sans offrir les mêmes fonctions. La force-brute d'un coté, on reconnaîtra bien là IBM, et de l'autre une solution novatrice, et on reconnaîtra là aussi IBM qui a un fabuleux historique d'innovations informatiques. PowerPC 615 : le bicéphale Pour avoir une puce compatible PC et PowerPC, on peut utiliser la force-brute, essentiellement mettre une CPU x86 et un CPU PowerPC sur la même puce, se partageant le bus au travers du cache L2 ainsi que peut-être d'autres unités, mais fonctionnant en alternance. IBM visait son implémentation dans ses PC, s'installant dans un socket OverDrive. Pas de problème de compatibilité PC avec un cœur 486 sous licence Intel et le socket OverDrive. Du coté PowerPC, il pourrait s'agit d'un cœur de PPC 604 sans qu'on en soit certain. En revanche un énorme problème dans un environnement hétérogène, puisque tout passage d'un environnement à l'autre se faisait via interruption avec possiblement un vidage de cache L1 pour conserver la cohérence mémoire. TLB compris, de manière logicielle avec traductions. Et un autre problème, le prix astronomique de la puce, la rendant d'office non-concurrentielle comme CPU x86. Un dernier, venant avec son nombre de transistors, elle chauffait énormément. Le double du prix, pas de mode permettant l'usage en parallèle qui eu justifié celui-ci. Si sous Windows le PowerPC avait pu être utilisé comme accélérateur mathématique pour le 486, et sur un PowerMac le 486 avait pu faire tourner DOS et Windows en parallèle et virtualisé, le tableau aurait été différent. Annoncée début 1994 sans référence et prévue pour 1995, puis appelé PowerPC 615, une dizaine de prototypes semblent avoir été fabriqués. À l'annonce IBM voulait aussi supporter le code 68000, tant qu'à faire! PowerPC 604e : l'hybride Quand le support x86 est entièrement matériel sur le PowerPC 615, à grand frais, le PPC 604e le supporte en partie matériellement et en partie logiciellement. Le 604e est en fait un PowerPC 604 associé à un décodeur d'instructions x86 simplifié permettant de les traduire matériellement en instructions RISC réellement exécutées. Et là sur un bus PowerPC (fini le socket overDrive pour PC) ! Pour limiter les coûts, le décodeur x86 est très limité, et les instructions 32 bits plus complexes sont émulés par logiciel, avec celui-ci chargé avant celui de l'OS, et un mécanisme d'interruption matériel se chargeant de lancer l'émulateur de manière transparente pour l'OS. Cela aurait permis de faire tourner DOS et Windows nativement, sans nécessiter de cœur x86 ni de décodeur complexe, au prix de ralentissements sur certains codes. Ce brevet d'IBM semble décrire sommairement l'architecture du PPC 604e: https://patents.google.com/patent/US5781750 Pour les plus anciens, IBM avait inventé cela pour simplifier l'implémentation de l'architecture S/360 sur certains modèles moins chers en émulant logiciellement des instructions complexes et rarement rencontrées, ainsi que des sous-unités comme la FPU. Au iota près du support logiciel transparent pour l'OS car il fallait pour les S/360 que l'OS implémente l'émulation. Quand le PPC 615 perdait un temps fou à passer d'un mode à l'autre, d'un cœur à l'autre en fait, le PPC 604e mettait seulement 5 cycles, le temps de remplir son pipeline. (pas de le vider) Mais quand le PowerPC 615 promettait d'être un bon PC équivalent à un 486DX4-100 ou un Pentium-60, le 604e avait des performances très variables suivant le code rencontré, le rendant non-concurrentiel dans des PC sur les logiciels les plus modernes optimisés pour le 486! Il faut noter qu'il y a eu une CPU PowerPC 604e dans nos Macintosh, avec une date de sortie correspondant, mais dont jamais la compatibilité PC x86 n'a été évoquée et surtout pas implémentée. Les dates semblent étrangement correspondre. Est-ce cette même puce compatible x86 mais sans support, un dérivé avec la compatibilité matérielle enlevée, ou une toute autre puce malgré la même référence?!? Microsoft dans l'affaire IBM aurait voulu avoir des versions de Windows NT et d'OS/2 supportant à la fois le x86 et le PowerPC nativement. Pour essayer d'imposer le PowerPC sur les PC. Windows NT avait une version PowerPC destiné à la plateforme PReP, qui n'est d'ailleurs pas celle qu'employait Apple! Courant 1995 sera dévoilée la plateforme commune CHRP. OS/2 PowerPC ne verra le jour qu'après ces deux échecs, fin 1995. Le problème est que l'investissement aurait été énorme pour Microsoft, je n'ai en mémoire aucun OS supportant simultanément et nativement deux architectures différentes, indistinctement et de manière interchangeable. La seconde architecture vient par émulation, transpilation, ou implémentée matériellement séparément et discutant au travers des bus via des drivers comme certaines cartes accélératrices mathématiques, ou les puces x86 des divers Macintosh PPC compatibles PC. Je pense que cela aurait nécessité de revoir l'architecture des noyaux de Windows NT ainsi que ses drivers et le HAL Hardware Abstraction Layer. Pour quelques ventes. Puis de maintenir cela sur la durée! IBM s'est vu opposer un refus poli mais ferme de Microsoft, ce qui aurait contribué à tuer les projets PPC 615 et PPC 604e. De bons Macintosh et de bons PC? Évacuons tout de suite le PowerPC 615 trop cher et chauffant énormément. Ces deux puces n'ont pas été conçues pour virtualiser une architecture en démarrant sur l'autre, mais de démarrer soit sur l'une soit sur l'autre, et de mélanger du code pour l'une et l'autre au sein du même environnement. Bootcamp avant l'heure avec un truc (inutile) en plus. Mais si le PowerPC 604e aurait fait un bon Macintosh PPC, il aurait fait un mauvais PC, on peut quand-même regretter de ne pas l'avoir eu dans nos Macintosh, ou plutôt sa compatibilité x86. Déjà les objectifs d'IBM et d'Apple se révélaient antagonistes... Les sources utilisées (liste partielle): https://en.wikipedia.org/wiki/PowerPC https://en.wikipedia.org/wiki/PowerPC_600#PowerPC_... https://en.wikipedia.org/wiki/IBM_386SLC#IB...Blue_Lightning) https://en.wikipedia.org/wiki/Cyrix_5x86 https://www.halfhill.com/byte/1995-11_cover3.html Lien vers le billet original -------------------- La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
|
|
|
![]() |
![]()
Message
#2
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Rédacteurs Messages : 1 659 Inscrit : 19 Nov 2020 Membre no 212 895 ![]() |
C'est pas mal compliqué effectivement et ça nécessite différentes couches chargées d'assurer des compatibilités matérielles, du jeu d'instruction aux périphériques, et logicielles.
Essentiellement IBM voulait avoir une CPU pour ses PC x86 capable de faire tourner aussi le code PowerPC de Windows NT PowerPC nativement sous Windows NT x86. L'idée était ainsi d'essayer d'imposer le PowerPC chez ses clients, principalement de très grands groupes du Top500, qui lui achetaient ses PS/2 x86 comme des petits pains. L'exercice avait de multiples problèmes, le premier c'est que ça aurait rendu ces machines plus chères, le second c'est que l'immense majorité des gens étaient très satisfait des PC ou PS/2 x86 dont moi à l'époque, le troisième c'est que pour des machines x86+PowerPC quasiment aucun développeur x86 ne se serait compliqué à produire du code PowerPC puisque compatible, le quatrième c'est que ni Windows 3.x ni le futur Windows 95 ne supportait autre chose que du x86 et que Windows NT avait des ventes marginales (son prix, ses besoins matériels, support des périphériques, etc.), le cinquième c'est que Microsoft a dit niet. Le PowerPC 615 était la réponse en force-brute avec deux cœurs séparés mais trop cher. Un PC 486 pour plus cher que le plus rapide des Pentium de l'époque! Le 604e une réponse plus pragmatique via un support hybride matériel+logiciel, mais alors un mauvais PC invendable face aux x86, plus lent qu'un 486 donc très décevant pour un PC. Apple qui était en pleine perdition, signifiant aussi un manque de logithèque face à Windows, voulait pouvoir proposer une compatibilité avec les logiciels pour Windows 3.x (pas Windows NT), sur ses Mac PowerPC, utilisables en même temps et à faible surcoût, moins cher que de rajouter une CPU Intel sur le bus. Le PowerPC 615 était un no-go par son prix, même si amélioré matériellement ou logiciellement pour offrir une virtualisation de Windows, le 604e par son absence de virtualisation possible, les programmes x86 tournant dans le même contexte (TLB) que les programmes PowerPC. Leurs buts et les moyens à développer étaient antagonistes, et mutuellement exclusifs les budgets n'étant pas inépuisables, à commencer par celui des clients. IBM abandonnera cette voie, et se résoudra d'ailleurs plus tard à proposer des serveurs x86 concurrents de ses PowerPC, pour ne pas perdre trop de parts de marché. Apple en revanche continuera dans cette voie, je vais en parler la semaine prochaine, mais aussi revenir dessus au passage au x86 car parfaitement logique et résolvant d'un coup un nombre incroyable de problèmes. C'est aussi pourquoi Rosetta 2 et leurs extensions propriétaires à ARM sont essentiels aujourd'hui et pourraient rester sur la durée. PS: il y a aussi une autre affaire dans l'affaire, la création de Transmeta qui a conçu des puces permettant sde se muer en PowerPC, ARM ou x86 à la demande... -------------------- La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
|
|
|
![]()
Message
#3
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 799 Inscrit : 24 Jun 2004 Lieu : Grenoble Membre no 20 409 ![]() |
Pour limiter les coûts, le décodeur x86 est très limité, et les instructions 32 bits plus complexes sont émulés par logiciel Dis comme ça, ça laisse supposer que, en limitant moins les coûts, c'est-à-dire, en réduisant le nbre instructions émulées par logiciel, cette approche aurait pu être efficace. Si les performances n'étaient pas bonnes c'est que trop d'instructions d'usage fréquent étaient émulées et que l'émulation était très inefficace. J'imagine que ce résultat était prévisible avant même le développement de la puce. Si oui, pourquoi cette économie ? Etait elle vraiment indispensable ? |
|
|
![]()
Message
#4
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Rédacteurs Messages : 1 659 Inscrit : 19 Nov 2020 Membre no 212 895 ![]() |
Pour limiter les coûts, le décodeur x86 est très limité, et les instructions 32 bits plus complexes sont émulés par logiciel Dis comme ça, ça laisse supposer que, en limitant moins les coûts, c'est-à-dire, en réduisant le nbre instructions émulées par logiciel, cette approche aurait pu être efficace. Si les performances n'étaient pas bonnes c'est que trop d'instructions d'usage fréquent étaient émulées et que l'émulation était très inefficace. J'imagine que ce résultat était prévisible avant même le développement de la puce. Si oui, pourquoi cette économie ? Etait elle vraiment indispensable ? C'est une excellente question! Je n'ai certes pas la réponse! On dirait que l'équipe d'IBM développant le PPC 604e s'est perdue. Visant des performances de 486DX4 (100 Mhz) mais incapable de les atteindre. Peut-être qu'ils visaient les performances d'un 486DX4 à 100 Mhz sur des logiciels pour 386, et qu'ils ont été dépassés par les évènements avec les éditeurs optimisants leurs logiciels pour 486 maintenant là depuis quelques années, et les Pentium bien présents et leurs optimisations spécifiques?!? Je pense que ça ne visait pas l'usage fréquent mais certains logiciels optimisés. Certainement parfait pour Windows 3.x, mais pas pour certains logiciels 32 bits. Ceci dit, ça amène le sujet de Transmeta parfaitement ou d'Apple PC... -------------------- La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
|
|
|
![]() ![]() |
Nous sommes le : 2nd August 2025 - 06:17 |