Forum › Autour de l’Amiga › Amiga OS 4 – MorphOS – UAE – AROS › FPGA Vs Emulation, un article intéressant
- Ce sujet contient 35 réponses, 8 participants et a été mis à jour pour la dernière fois par
Zarnal, le il y a 7 années et 1 mois.
-
CréateurSujet
-
6 février 2018 à 10 h 12 min #19032Staff
Zarnal
- Level 22
- Messages : 7930
Au gré de mon surf, je suis tombé sur cet article que j’ai trouvé assez intéressant.
https://byuu.org/articles/fpgas-arent-magic/
Et qui peut balayer certaines idées reçues (des deux cotés).
A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
-
CréateurSujet
-
AuteurRéponses
-
6 février 2018 à 11 h 02 min #19040Staff
Jim Neray
- Level 22
- Messages : 7202
Sympa le site rose looké html 3
J’ai pas tout lu faute de temps je m’y recollerai quand j’aurais quelques minutes à y accorder.
A500 - A500 Plus - A600 HD - A1200 - A2000 - A4000T - CD32 - C=64 - 1040STE - CPC6128
- Micromiga.com - La boutique Amiga -
Mon Amiga 500 Plus : A590, 2MB Chip, 2MB Fast, HD 1,2GB, Floppy ext.
Mon Amiga 1200 : Blizzard 1220/4, 2MB Chip, 4MB Fast, HD 80GB, Overdrive CD
6 février 2018 à 12 h 17 min #19065blackwarrior
- Level 2
- Messages : 43
Très instructif,
Effectivement l’émulation semble être la meilleure garantie de la préservation des anciens jeux.
Merci pour l’article
7 février 2018 à 10 h 04 min #19126StaffZarnal
- Level 22
- Messages : 7930
Ce qui semble être un complément :
https://byuu.org/articles/what-is-emulation/
A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
7 février 2018 à 11 h 51 min #19130TuKo
- Level 5
- Messages : 212
Écrit quand même par l’auteur de Higan, un émulateur donc… :) niveau objectivité, on est pas au mieux…
Il prêche pour sa paroisse en fait.
7 février 2018 à 12 h 03 min #19131guibrush
- Level 4
- Messages : 117
Article intéressant, mais très orienté. D’ailleurs, il se contredit lui-même. D’abord, il dit :
« Setting efficiency aside, there is absolutely nothing an FPGA can do that cannot be done in software. »
Ce qui veut clairement dire pour lui que tout ce que fait un FPGA peut être aussi fait par un émulateur. Oui, mais ensuite il dit :
« An FPGA contains a very large number of logic gates that operate in parallel, whereas a CPU contains microcode that interprets instructions and executes them in serial – at least, per core. »
Ce qui veut clairement dire qu’un CPU exécute les instructions données les unes après les autres.
Dès lors, si on essaye de faire un émulateur du 68080, on va se heurter à un problème : le 68080 exécute des portions de code en parallele. Il y a l’AMMX dont le pipeline est indépendant du cycle CPU, il y à le FPU et il y a l’hyper-threading, qui présente à l’OS plusieurs thread CPU. Or, un émulateur logiciel devra exécuter tout ce petit monde à la que leu leu. Certes, la puissance brut de la machine sur laquelle on ferait tourner cet émulateur fera que la différence sera imperceptible, mais on n’est tout de même pas dans la réplication exact du comportement de la machine d’origine. D’ailleurs, si UAE a mis si longtemps à réussir à émuler le chipset de l’Amiga avec le niveau de perfection qu’on lui connait actuellement, c’est parce qu’il a fallu fine tuner les interactions entre les différents composants, pas seulement les émuler.
Donc, à mon avis, dire qu’un émulateur peut faire tout ce que fait un FPGA, c’est assez éxagéré d’un point de vue technique. Mais d’un point de vue pratique, il est claire que la puissance des machines actuelles permet de gommer les défauts de latence et de synchro.
Il y a une autre chose qu’il ne faut pas perdre de vue : un développement en VHDL qui prend place dans un PFGA peut ensuite être utilisé pour fondre un ASIC, il s’agit du même prototypage. Un émulateur, par contre, restera un logiciel exécuté sur une machine hôte.
Finalement, l’argument donné selon lequel on peut réduire la latence de l’émulateur en démarrant directement dessus au lieu de passer par un système hôte tel que Windows et linux et super, sauf que pour l’instant personne ne l’a fait. Tout simplement parce que ça reviendrait à ré-écrire tout les drivers nécessaires à faire fonctionner la machine hôte.7 février 2018 à 12 h 39 min #19132StaffZarnal
- Level 22
- Messages : 7930
C’est surtout le fait concernant la potentielle différence de précision qui a retenu mon attention.
Orienté, j’en suis conscient. De plus byuu est quelqu’un d’assez susceptible, il l’a assez prouvé par le passé.
Il ne s’agissait nullement d’impliquer la vampire dedans mais plus l’émulation Amiga en général (bon ok l’article parle de la SFC mais les arguments se tiennent) car j’ai déja lu ici et là que soi-disant une émulation était moins précise qu’un FPGA et là je n’étais pas d’accord du tout. Pour le 020 cela peut largement se discuter, mais pas pour le 68000. Je parle de machines stocks uniquement bien sur, puisque niveau FPU WinUae s’en donne à coeur joie.
. Après, là où je rejoins byuu, c’est lorsqu’il dit qu’à partir du moment où le résultat est le même, peu importe l’art et la manière de l’obtenir. Je cite :
What we are dealing with in cases like the Super Nintendo, is we both want to reproduce the original hardware experience: we want people to provide games, and we want to play those games. We want users to input the same values, and get the same audiovisual outputs from them.
If the user inputs « 2+3 », and gets back « 5 » in the same amount of time as the original hardware, is it really fundamentally important how the « 5 » is generated?
Unfortunately, we do not have the original transistor-level diagrams of the original hardware. And so we have to deduce how they work. And to do this, there are a myriad of methods.
We can read developer manuals and technical datasheets, we can analyze software designed for these devices, we can write our own code to run on these devices and log how the hardware responds, we can probe the pins on the chips and watch how they behave on logic analyzers, we can even decap the original chips with nitric acid and scan them in with electron microscopes!
But at the end of the day, no matter how we do it, it’s all guess work until someone clones these chips at the transistor level.
Et tu as raison pour la machine hôte, il faudrait se concentrer sur un ou deux hard fixes. Le pi dans une future version pourra certainement être une solution.
A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
7 février 2018 à 14 h 23 min #19135guibrush
- Level 4
- Messages : 117
Oui, dans l’absolu, si on parle de vieille machine, qu’on le fasse en FPGA ou en émulation, le résultat au final peut arriver au même résultat, c’est claire. Pour ma part, mais là c’est subjectif, le plus gros problème de l’émulateur n’est pas l’émulation en elle-même, mais bel et bien la présence du système hôte. Pour moi, autant UAE est génial et super bien foutu, autant l’utiliser quotidiennement ne m’intéresse pas, car pour lancer UAE je dois d’abord lancer un os hôte. Alors si je le fais sur une machine genre un Pi qui boote d’abord Linux puis lance l’émulation, ça peut encore passer, car c’est assez transparent. Mais lancer windows pour ensuite lancer UAE, je me dis que si je fais ça, je ne vais pas dédier une machine à UAE (parce que finalement, c’est le principe de base d’un émulateur : utiliser une autre machine sans devoir l’acheter mais en la faisant tourner sur une machine que l’on possède déjà). Donc, je le lancerai sur mon ordinateur « principal ». mais dans ce cas, ou est l’Amiga ? Il y a un certain attachement physique de moin point de vue. Mais celà n’engage que moi.
En revanche, dans le cas de la vampire, le FPGA est bien plus pertinent, parce que nous n’en sommes qu’au début, parce que nous voulons pouvoir évoluer avec la montée en puissance des FPGA futurs, et surtout parce que nous voulons du Hardware Amiga !8 février 2018 à 11 h 49 min #19182StaffJim Neray
- Level 22
- Messages : 7202
Bon merci pour le résumé des points clés ca m’a fait gagner un peu de temps !
A500 - A500 Plus - A600 HD - A1200 - A2000 - A4000T - CD32 - C=64 - 1040STE - CPC6128
- Micromiga.com - La boutique Amiga -
Mon Amiga 500 Plus : A590, 2MB Chip, 2MB Fast, HD 1,2GB, Floppy ext.
Mon Amiga 1200 : Blizzard 1220/4, 2MB Chip, 4MB Fast, HD 80GB, Overdrive CD8 février 2018 à 13 h 16 min #19193StaffZarnal
- Level 22
- Messages : 7930
Chez nos amis anglais, cet échange sur la précision est en train de prendre de ces proportions.
Et la vidéo qui tue à 2mn
. Si j’ai bien compris il parle d’émulation d’electrons que le pi ne peut pas reproduire.
A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
26 mars 2018 à 14 h 23 min #21079StaffZarnal
- Level 22
- Messages : 7930
La latence sous émulation sur le point d’être totalement vaincue
http://eab.abime.net/showthread.php?t=88777&page=9
https://www.blurbusters.com/blur-busters-lagless-raster-follower-algorithm-for-emulator-developers/
La béta 0 de WinUae est impressionnante sous pinball dream d’après les premiers retours. Par contre cela a un coût en puissance requise.
je suis à 285% niveau CPU pour une simple émulation 500. Ou alors c’est qu’il faut une CG digne de ce nom. Ce n’est pas avec le core2duo que je vais aller loin.
Ou bien j’ai foiré un réglage.
A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
26 mars 2018 à 14 h 51 min #21080StaffJim Neray
- Level 22
- Messages : 7202
Un core2duo c’est sur que tu ne va pas casser 3 pattes à un canard
C’est bien que ca se précise … Pas si facile d’émuler une machine de plus de 30 ans à la perfection.
A500 - A500 Plus - A600 HD - A1200 - A2000 - A4000T - CD32 - C=64 - 1040STE - CPC6128
- Micromiga.com - La boutique Amiga -
Mon Amiga 500 Plus : A590, 2MB Chip, 2MB Fast, HD 1,2GB, Floppy ext.
Mon Amiga 1200 : Blizzard 1220/4, 2MB Chip, 4MB Fast, HD 80GB, Overdrive CD26 mars 2018 à 15 h 02 min #21083StaffZarnal
- Level 22
- Messages : 7930
Un core2duo c’est sur que tu ne va pas casser 3 pattes à un canard
C’est bien que ca se précise … Pas si facile d’émuler une machine de plus de 30 ans à la perfection.
Surtout qu’il ne tourne qu’à 1.5ghz au lieu de 2 et encore il faut passer par ThrottleStop sinon c’est 800mhz . Merci Dell et
son matosses accessoires propriétaires.A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
26 mars 2018 à 17 h 07 min #21093StaffZarnal
- Level 22
- Messages : 7930
Une misère
:
En fait c’est entre 180 et 210%
Cela ne fonctionne qu’en plein écran pour l’heure mais l’occupation cpu est la même.
C’est ma partie gpu intégré qui doit asphyxier le tout.
A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
26 mars 2018 à 18 h 40 min #21098StaffJim Neray
- Level 22
- Messages : 7202
Ouch GPU intégré avec mémoire vidéo partagée sur la ram centrale ?
A500 - A500 Plus - A600 HD - A1200 - A2000 - A4000T - CD32 - C=64 - 1040STE - CPC6128
- Micromiga.com - La boutique Amiga -
Mon Amiga 500 Plus : A590, 2MB Chip, 2MB Fast, HD 1,2GB, Floppy ext.
Mon Amiga 1200 : Blizzard 1220/4, 2MB Chip, 4MB Fast, HD 80GB, Overdrive CD26 mars 2018 à 18 h 49 min #21099StaffZarnal
- Level 22
- Messages : 7930
Ben bien sûr, ce n’est pas drôle sinon.
Un bon vieux chipset i965 Express mobile +-
128Mo384Mo des familles.Avec un driver windows 8 WDM qui d’origine n’aime pas du tout l’openGL.
A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.