IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Les CPU des Mac : Les PowerPC x86 !!!, Réactions à la publication du 04/08/2024
Options
Paul Emploi
posté 4 Aug 2024, 06:25
Message #1


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 618
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é.
Go to the top of the page
 
+Quote Post
solex46
posté 4 Aug 2024, 08:27
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 530
Inscrit : 18 Jun 2014
Membre no 190 920



L'idée de pouvoir lancer des logiciels de deux environnements différents sur le même OS est séduisante, mais tient du rêve.

En effet, même sur un mac intel (qui n'est qu'un pur PC tournant sous mac OS) on ne peut même pas lancer un logiciel windows sans passer par une machine virtuelle. Ou Wine.
Ça vient simplement de l'OS, j'imagine ?
Ou c'est plus compliqué ?


--------------------
iMac 27" late 2013 - Mavericks, iMac 27" mid 2010 - Mavericks, iPad mini 1 - iOS 8. Et diverses vieilleries.
Mon site web : ANTIOPA NATURE
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 4 Aug 2024, 16:19
Message #3


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 618
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é.
Go to the top of the page
 
+Quote Post
linus
posté 5 Aug 2024, 22:34
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 788
Inscrit : 24 Jun 2004
Lieu : Grenoble
Membre no 20 409



Citation (Paul Emploi @ 4 Aug 2024, 17:19) *
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 ?
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 5 Aug 2024, 22:56
Message #5


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 618
Inscrit : 19 Nov 2020
Membre no 212 895



Citation (linus @ 5 Aug 2024, 23:34) *
Citation (Paul Emploi @ 4 Aug 2024, 17:19) *
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é.
Go to the top of the page
 
+Quote Post
downanotch
posté 6 Aug 2024, 09:07
Message #6


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 870
Inscrit : 11 Apr 2012
Membre no 175 864



Citation (Paul Emploi @ 4 Aug 2024, 07:25) *
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.

Je serais curieux de connaître la source de cette affirmation, je n'ai jamais rien lu de tel concernant le PowerPC 604e.

Citation
Mais si le PowerPC 604e aurait fait un bon Macintosh PPC [...]

Aurait ??? Le PowerPC 604e a été utilisé dans plusieurs PowerMacs (7300, 8600, ...)
Go to the top of the page
 
+Quote Post
NicoMac
posté 6 Aug 2024, 11:26
Message #7


Adepte de Macbidouille
*

Groupe : Membres
Messages : 74
Inscrit : 8 Oct 2002
Membre no 4 027



Citation (downanotch @ 6 Aug 2024, 10:07) *
Citation (Paul Emploi @ 4 Aug 2024, 07:25) *
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.

Je serais curieux de connaître la source de cette affirmation, je n'ai jamais rien lu de tel concernant le PowerPC 604e.

Citation
Mais si le PowerPC 604e aurait fait un bon Macintosh PPC [...]

Aurait ??? Le PowerPC 604e a été utilisé dans plusieurs PowerMacs (7300, 8600, ...)


J'ai eu du clone Power Computing équipé de 604e :
https://everymac.com/systems/powercc/index-...mac-clones.html


--------------------
Prenons le temps d'éduquer : l'ignorance conduit à l'extrémisme.
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 6 Aug 2024, 13:58
Message #8


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 618
Inscrit : 19 Nov 2020
Membre no 212 895



Citation (downanotch @ 6 Aug 2024, 10:07) *
Citation (Paul Emploi @ 4 Aug 2024, 07:25) *
Mais si le PowerPC 604e aurait fait un bon Macintosh PPC [...]

Aurait ??? Le PowerPC 604e a été utilisé dans plusieurs PowerMacs (7300, 8600, ...)

Tout est dans l'article, et en tronquant ce que j'ai écris tu commets là un contre-sens.

Citation
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.

Et l'explication complète est aussi dans l'article:
Citation
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?!?


Citation (downanotch @ 6 Aug 2024, 10:07) *
Citation (Paul Emploi @ 4 Aug 2024, 07:25) *
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.

Je serais curieux de connaître la source de cette affirmation, je n'ai jamais rien lu de tel concernant le PowerPC 604e.

Quand aux sources j'en ai justement mis 19 dans l'article, parce que j'étais certainement le plus étonné de tous à découvrir tout cela.
C'est Info World en grande partie pour le point du PPC 604e compatible x86, avec les déclarations officielles d'IBM.
Je les remets pour ceux qui comme toi auraient des difficultés à y accéder...

https://en.wikipedia.org/wiki/PowerPC
https://en.wikipedia.org/wiki/PowerPC_600#PowerPC_615
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
https://www.emaculation.com/forum/viewtopic.php?t=8629
https://patents.google.com/patent/US5781750
https://go.gale.com/ps/retrieve.do?tabID=T0...e&inPS=true
https://go.gale.com/ps/retrieve.do?tabID=T0...e&inPS=true
https://go.gale.com/ps/retrieve.do?tabID=T0...e&inPS=true
https://go.gale.com/ps/i.do?id=GALE%7CA1627...=open-web-entry
https://archive.org/details/199511_byte_mag...p?q=powerpc+615
https://books.google.com.fj/books?id=djgEAA...p;q&f=false
https://books.google.ca/books?id=WzgEAAAAMB...ues_r&cad=1
https://books.google.ca/books?id=mjgEAAAAMB...615&f=false
https://books.google.ca/books?id=sDoEAAAAMB...604&f=false
https://www.os2museum.com/wp/os2-history/os...owerpc-edition/
https://en.wikipedia.org/wiki/Common_Hardwa...erence_Platform
https://en.wikipedia.org/wiki/PowerPC_Reference_Platform


--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post
downanotch
posté 6 Aug 2024, 14:32
Message #9


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 870
Inscrit : 11 Apr 2012
Membre no 175 864



La seule source qui mentionne un décodeur x86 dans le PowerPC 604e est un magazine, InfoWorld, dans un article écrit au conditionnel et se basant sur "des sources proches d'IBM". L'article date de juin 1995, soit plus d'une année avant la sortie du 604e, au mieux il s'agit d'un plan abandonné, au pire de simples affabulations. Une chose est sûre, le PowerPC 604e qui a été commercialisé n'a jamais contenu de tel décodeur.

Ce message a été modifié par downanotch - 6 Aug 2024, 14:32.
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 6 Aug 2024, 14:43
Message #10


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 618
Inscrit : 19 Nov 2020
Membre no 212 895



Citation (downanotch @ 6 Aug 2024, 15:32) *
La seule source qui mentionne un décodeur x86 dans le PowerPC 604e est un magazine, InfoWorld, dans un article écrit au conditionnel et se basant sur "des sources proches d'IBM". L'article date de juin 1995, soit plus d'une année avant la sortie du 604e, au mieux il s'agit d'un plan abandonné, au pire de simples affabulations. Une chose est sûre, le PowerPC 604e qui a été commercialisé n'a jamais contenu de tel décodeur.

Tes sources?

Note qu'il y a d'autres sources pour un PPC 604e compatible x86. Je t'invite à consulter tous les liens offerts.


--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post
downanotch
posté 6 Aug 2024, 15:00
Message #11


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 870
Inscrit : 11 Apr 2012
Membre no 175 864



Déjà le fait que tu n'as pas fourni de sources probantes, mais surtout le "user's manual" du 604e que j'ai possédé en version papier à l'époque (et qu'on trouve toujours en PDF chez NXP).
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 6 Aug 2024, 15:01
Message #12


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 618
Inscrit : 19 Nov 2020
Membre no 212 895



Citation (downanotch @ 6 Aug 2024, 16:00) *
Déjà le fait que tu n'as pas fourni de sources probantes, mais surtout le "user's manual" du 604e que j'ai possédé en version papier à l'époque (et qu'on trouve toujours en PDF chez NXP).

Donc tu choisis qui tu veux croire ou pas, suivant ton opinion, et tout ce qui va contre n'est pas "probant". C'est facile non?
Info World a été édité pendant près de 30 ans. Un magazine de référence, connu et reconnu. Fiable, pour ça que Google l'a numérisé. Et cette info en une!
Et secundo, dans le manuel, est-il écrit noir sur blanc qu'il n'y a pas de décodeur matériel x86? Je ne le pense pas rolleyes.gif

Pas plus d'ailleurs que les manuels Intel citent les cœurs x86 sous Minix.
Ou que les documentations Apple citent le jeu d'instruction appelé AMX, ou les mode d'exécutions et instructions propriétaires créés pour Rosetta 2.
Ça n'est pas cité dans les manuels ou documentation, donc tout cela n'existerait pas, même en étant vérifiable? Des "affabulations" selon toi? laugh.gif

Je me permets de remettre encore une fois ce qui est dans l'article, exact et vérifiable.
Citation
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?!?


--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post
downanotch
posté 7 Aug 2024, 08:33
Message #13


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 870
Inscrit : 11 Apr 2012
Membre no 175 864



Citation (Paul Emploi @ 6 Aug 2024, 16:01) *
Citation (downanotch @ 6 Aug 2024, 16:00) *
Déjà le fait que tu n'as pas fourni de sources probantes, mais surtout le "user's manual" du 604e que j'ai possédé en version papier à l'époque (et qu'on trouve toujours en PDF chez NXP).

Donc tu choisis qui tu veux croire ou pas, suivant ton opinion, et tout ce qui va contre n'est pas "probant". C'est facile non?

Je ne crois rien, je constate qu'il est fait mention d'un décodeur x86 dans le PowerPC 604e date d'une année avant la sortie du processeur, sur la base de sources non officielles. Et qu'ensuite, plus aucune source officielles ou pas n'en parle.

J'en reste là pour ma part.
Go to the top of the page
 
+Quote Post
captaindid
posté 22 Aug 2024, 18:13
Message #14


Adepte de Macbidouille
*

Groupe : Membres
Messages : 240
Inscrit : 6 Sep 2004
Lieu : entre la chaise et le clavier
Membre no 23 160



Citation (Paul Emploi @ 6 Aug 2024, 16:01) *
...
Et secundo, dans le manuel, est-il écrit noir sur blanc qu'il n'y a pas de décodeur matériel x86? Je ne le pense pas rolleyes.gif
Pas plus d'ailleurs que les manuels Intel citent les cœurs x86 sous Minix.
Ou que les documentations Apple citent le jeu d'instruction appelé AMX, ou les mode d'exécutions et instructions propriétaires créés pour Rosetta 2.
Ça n'est pas cité dans les manuels ou documentation, donc tout cela n'existerait pas, même en étant vérifiable? Des "affabulations" selon toi?
...


Je reviens sur cette vieille histoire de fonctions "cachées" dans les CPU, puisque visiblement on ne peut plus commenter les nouvelles récentes:
je ne sais pas si les CPU 604e qu'il y avait dans les macs avaient des décodeurs x86, mêmes partiels, ou alors si ce projet d'un CPU complètement différent porte le même nom, par coïncidence, les équipes de projets qui nomment leurs projet en interne ne s'embêtent pas toujours pour savoir si le nom est déjà pris, ce qui n'arrive jamais pour un nom commercial, un service juridique veille à ce que ça n'arrive pas.
toujours est-il que si une série de 604e avait inclu ce décodeur x86, je pense que ça se serai vu: die légèrement plus gros, consommation légèrement plus élevée.
J'en veux pour preuve l'épisode ubuesque d'une série de pentium4 : prescott
alors que les pentium4 précédents étaient tous 32 bits, et qu'AMD venait de lancer ces premiers CPU 64 bits, Intel se devait de répliquer: la révision 'E' de ces CPU embarquait donc officiellement tous les transistors pour exécuter du code 64 bits, en plus du code 32 bits, et en plus du code 16 bits, héritage et BIOS obligent!
or au dernier moment, juste avant le lancement commercial de cette révision, sans qu'on ne sache pourquoi, ces transistors ont été désactivés; bugs insolubles ? problèmes de licence avec AMD ? on n'a jamais su!
on se retrouvait donc avec un CPU 32 bits (et 16 bits aussi!)
et là où je voulais en venir, et qui est raccord avec cette histoire de 604e avec peut-être un décodeur x86 "caché", c'est que ce bon vieux prescott 'E' avec ses transistors supplémentaires 64 bits "cachés" consommait plus que son prédécesseur, ce qui lui faisait atteindre des sommets de conso et de chaleur à dissiper, déjà que toute la série des pentium 4 ne restera pas dans l'histoire pour sa frugalité!
la révision 'E' était très bruyante et désagréable l'été notamment, mais toute médaille ayant son revers, ça pouvait surement s'averer pratique l'hiver!
la révision suivante 'F' avait enfin le code 64 bits activé:
en exécutant du code 32 bits, les 'E' et 'F' consommaient à peu près pareil, la partie 64 bits étant idle sur les deux.
si on devait exécuter du code 64 bits sur le 'F', logiquement il devrait chauffer encore un peu plus, ces transistors supplémentaires étant activés;
je n'ai jamais pu le constater, à l'époque on faisait surtout du windows XP 32bits sur PC.

tout ça pour dire que des fonctionnalités cachées ne le sont pas vraiment quand on observe la consommation du CPU, en plus des photos de die où la surface allouée aux fonctionnalités cachées se voit!
il me semble de mémoire que le 604e dans nos macs (je ne parle pas d'un éventuel prototype de même nom) ne consommait pas plus que le 604, à même fréquence et même finesse de gravure, bien sûr, sinon comment les comparer?
c'est pourquoi je ne pense pas que le 604e dans nos macs contenait un décodeur x86, l'avantage du powerPC par rapport au camp d'en face, à cette époque là, était bien la frugalité des CPU, et leur puissance; après, ça c'est gâté sur ces deux points, hélas!

Ce message a été modifié par captaindid - 22 Aug 2024, 18:18.


--------------------
"What else?" - George Clooney
Go to the top of the page
 
+Quote Post
captaindid
posté 24 Aug 2024, 18:04
Message #15


Adepte de Macbidouille
*

Groupe : Membres
Messages : 240
Inscrit : 6 Sep 2004
Lieu : entre la chaise et le clavier
Membre no 23 160



Citation (Paul Emploi @ 4 Aug 2024, 07:25) *
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.
...
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.

Pour continuer mes élucubrations sur le 604e, je suis globalement d'accord avec toi sur l’intérêt d'avoir un décodeur x86, même partiel.

Cependant, toi, tu imagines une petite usine à gaz pour faire tourner nativement Windows sur un Mac PowerPC. Un peu comme sur les Mac Intel avec Bootcamp, au démarrage tu choisis Windows ou MacOS.
C'est dur à concevoir, idéalement ça devrait pouvoir tourner avec plusieurs versions de Windows, dont celles à venir;
sachant qu'à l'époque il y avait encore deux familles de Windows totalement différentes, la branche NT, et la branche 95 disparue après l'innommable windows Meuuuh, et je ne parle pas de la branche 3 en 16 bits déjà abandonnée.

Il aurait fallu faire en sorte que Windows, ayant accès à toute la mémoire et pouvant donc allouer toute partie de celle-ci, ne puisse pas écraser l'émulateur x86. Il y a un moyen sûr pour ceci: que windows tourne dans une machine virtuelle, ainsi il n'a pas le contrôle de la mémoire , donc il faut un hyperviseur. Ce dernier est de plus nécessaire pour émuler l'architecture PC (les chipsets sur la carte mère) et le BIOS, les hardware et firmware mac étant rigoureusement incompatibles.

Ma vision est beaucoup plus simple: sur les Mac de l'époque du 604, qui tournaient donc sous MacOS 8 puis 9, il existait déjà une appli: Virtual PC; elle faisait déjà tout le nécessaire, création d'une machine virtuelle, émulation du hardware PC et du BIOS.
bien sûr ce logiciel émulait un Pentium et donc traduisait le code X86 en code PPC à la volée, avec un ralentissement de 4 fois, selon wikipédia.
C'est là qu'aurait pu entrer en jeux le 604 avec décodeur x86.
L’émulateur x86 software de Virtual PC aurait juste été modifié - tout en gardant cette version pour les autres PPC : 603 et 604 sans x86.

Plutôt que de traduire toutes les instructions x86 "à la main", il exécute directement celles connues du décodeur x86, et ne traduit que les instructions inconnues de ce décodeurs, mais étant plus rarement utilisées, le ralentissement induit par cette traduction serait plus léger. Bien sur ce n'est pas l'émulateur qui trie les instruction connues et inconnues, sinon ça ralentirait trop , et là autant tout traduire "à la main"; tout le code x86 est balancé au 604e qui exécute celles qu'il connait et sinon il génère une interruption matérielle, que le gestionnaire intercepte et l'émulateur traduit l'instruction fautive en une ou plusieurs instructions PPC et rend la main.

On pourrait même imaginer un système encore plus simple, où on ne passe même plus par le gestionnaire d’interruptions; mais où le 604e sauterait directement à l'émulateur (son adresse serait connue car inscrite dans un registre supplémentaire affecté à cette tache). Dans le cadre d'une boucle, au deuxième passage, on appellerait même plus l'émulateur mais les instructions déjà traduites en PPC qui seraient dans un cache.
Ainsi, le ralentissement, du aux instructions x86 inconnues du décodeur partiel, seraient minimes
On aurait donc un mac pouvant exécuter des programmes windows (pas en natif mais dans une machine virtuelle) à une vitesse proche de celle d'un vrai PC, et pour pas cher, beaucoup moins en tout cas qu'une carte d'extension PC avec chipset et CPU et ram etc...


--------------------
"What else?" - George Clooney
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 25 Aug 2024, 12:36
Message #16


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 618
Inscrit : 19 Nov 2020
Membre no 212 895



Je te suis, et ça parait crédible.

Les sauts interpréteur x86 <-> code x86 transpilé en PPC par JIT étant un classique de l'émulation, on trouve cela dans les premières JVM intégrant de la compilation JIT par exemple.


--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 17th July 2025 - 04:55