1

Avec les récentes discussions sur Atariage sur le GPU in main, ainsi que la relecture des différents timings que SCPD avait fait il y a plusieurs années avec son analyseur logique et compte tenu de ce que je n'arrête pas de dire : que la Jaguar est certes une machine intéressante mais over bourrée de bugs et d'un manque flagrant d'optimisation matériel, donc une conclusion semble m'être évidente sur les performances du GPU in main.
Je me trompe peut être, je n'ai pas assez d'information sur le sujet, je n'ai pas d'analyseur logique (sinon j'aurai décortiqué tous les timings de la Jaguar en long en large et en travers probablement) ou peut être encore que c'est connu depuis longtemps et que vous allez me répondre : bah oui ! Tu savais pas ?"

Donc pour moi au vu des timings de SCPD une chose semble clair : lorsque le GPU exécute du code en DRAM, le pipeline est complètement inhibé ! Prefetch compris ! Certes la DRAM est moins rapide que la local RAM, mais pas à ce point ! D'ailleurs, en FPM il ne faut que 2 cycles pour un accès sur une même page, et ça se voit clairement sur les diagrammes : que fait le GPU pendant 10 cycles entre 2 accès DRAM pour exécuter seulement 2 instructions !!?

Voila comment je déchiffre le diagramme des timings que SPCD avait fait lors de l'exécution d'un code (simple) en DRAM (2 addq)

On part donc du principe après réflexion sur les timings, que le prefetch et le pipeline sont désactivé.
On voit d'abord que RAS est constamment au niveau bas, ce qui signifie que lors de la capture on était et on reste sur la même page, donc on ne compte pas ni la précharge ni le RAS to CAS qui de toute façon ne sont pas signifiant lors d'accès continu (3 cycles)
On part donc du moment au CAS passe au niveau bas qui correspond à la demande de chargement des instructions en cours. On peut voir avec les signaux OE que 32bit sont demandés. On est en FPM il ne faut donc que 2 cycles.
je ne sais pas où sont chargés ces 32bits, soit dans un tampon, soit dans la mémoire prefetch peu importe.
Le cycle suivant, les 1er 16 bits sont chargé dans le 1er étage du pipeline
de là il y a alors 4 cycles correspondant au 4 étages du pipeline pour l'exécution de l'instruction.
ensuite 1 nouveau cycle pour charger les 16bit suivant dans le 1er étage du pipeline, puis de nouveau 4 cycles pour exécuter l'instruction.

On retourne au début avec un nouvel accès à la DRAM en mode FPM

2 cycles d'accès + 1 cycle de chargement + 4 cycles d'instructions + 1 cycle de chargement + 4 cycles d'instruction : 12 cycles

Quand certains disent que le GPU in main est moins performant que le 68000, d'une certaines façon c'est vrai ! En terme d'instructions par cycle c'est indéniable, heureusement que le JRISC tourne 2 fois plus vite !

Dans le meilleurs des cas avec le prefecth le 68000 peut exécuter 1 instruction tous les 4 cycles (bon ok, comme sur la Jaguar c'est mal foutu je crois que c'est 5) on est quand même à environ 2.7 mips à 13,3Mhz
Ici avec le GPU in main 1 instruction tous les 6 cycles, environ 4,433 mips, certes c'est mieux mais bordel, quel manque d'optimisation !!

j'ai étudié un peu le problème rapidement il aurait pourtant été possible selon moi de faire en sorte que le GPU tourne aussi vite en DRAM qu'en RAM local. Dans le meilleurs des cas bien sûr : quand il à le BUS pour lui seul ou assez longtemps, pas de rupture de flux d'instructions (JMP, etc) pas d'instruction avec accès à la DRAM (encore que...)
Avec notamment : un plus grand tampon (64bit ou 2*64bit... + ?) , rétablir le prefech pour l'accès en DRAM, rétablir le pipeline, voir même charger le 1er étage du pipeline avec les 1er 16bit de l'accès DRAM si nécessaire (bah, ça fait gagner 1 cycle dans certains cas...) le but du jeu étant de faire en sorte de toujours avoir une instruction à charger dès que le 1er étage du pipeline est vide.

Bref, SPCD ton avis ?
avatar

2

(au passage c'est SCPCD et non SPCD ou SCPD ou autres tongue)

Faut arrêter de dire qu'il y a "over bourrée de bugs" : il n'y a pas tant que ça de bugs pour un hardware aussi complexe, ils sont tous référencés et pour la majeure partie ils sont contournables. Il y a quelques majeurs et y en a que très peut qui sont bloquant.
Va voir une errata de PIC Microchip et là on en reparle tongue


lorsque le GPU exécute du code en DRAM, le pipeline est complètement inhibé ! Prefetch compris !
Non c'est faux, il n'y a absolument aucune différence entre le mode local et le mode externe sur le pipeline d’exécution.
La différence se fait uniquement et seulement sur le délai de lecture des données causé par le nombre de couches à traverser pour lire la DRAM.


En local, t'as la garantie que le prefetch est rempli en 1 cycle, ce qui fait que tu as quelques chose comme ça : (non contractuel)
TgsL

En externe, le GPU doit accéder au bus externe, donc passer la gateway, prendre la priorité sur le bus ce qui va ensuite déclencher la lecture de la DRAM.
Le contrôleur (si c'est un accès DRAM) va commander la lecture de la DRAM, puis latcher les datas, puis le mettre à la disposition du GPU, qui va ensuite enregistrer dans le prefetch.
Ce qui va donner un truc comme ça : (non contractuel : ce n'est pas exactement ce qui se passe au cycle près, mais c'est l'idée qui compte)
2zt5


* legend :
R : lecture
W : ecriture
RH : read high word
RL : read low word



Quand certains disent que le GPU in main est moins performant que le 68000, d'une certaines façon c'est vrai ! En terme d'instructions par cycle c'est indéniable, heureusement que le JRISC tourne 2 fois plus vite !

Dans le meilleurs des cas avec le prefecth le 68000 peut exécuter 1 instruction tous les 4 cycles (bon ok, comme sur la Jaguar c'est mal foutu je crois que c'est 5) on est quand même à environ 2.7 mips à 13,3Mhz
Ici avec le GPU in main 1 instruction tous les 6 cycles, environ 4,433 mips, certes c'est mieux mais bordel, quel manque d'optimisation !!
Oui, le GPU reste plus performant car ses instructions tiennent (quasi) tous dans 16-bit et la majeur partie font les opérations en 1 cycles.

Sur la jag, les accès mémoire 68k sont sur 5cycles (en vitesse 68k) car le bus de la jag est 64-bit donc il faut réaligner les données en lecture et en écriture ce qui est fait proprement via un cycle supplémentaire.
Après y a peut-être moyen de le faire de manière transparente mais je vois pas comment ça peut être fait proprement tout en restant dans l'idée d'avoir un bus CPU générique.


j'ai étudié un peu le problème rapidement il aurait pourtant été possible selon moi de faire en sorte que le GPU tourne aussi vite en DRAM qu'en RAM local. Dans le meilleurs des cas bien sûr : quand il à le BUS pour lui seul ou assez longtemps, pas de rupture de flux d'instructions (JMP, etc) pas d'instruction avec accès à la DRAM (encore que...)
Avec notamment : un plus grand tampon (64bit ou 2*64bit... + ?) , rétablir le prefech pour l'accès en DRAM, rétablir le pipeline, voir même charger le 1er étage du pipeline avec les 1er 16bit de l'accès DRAM si nécessaire (bah, ça fait gagner 1 cycle dans certains cas...) le but du jeu étant de faire en sorte de toujours avoir une instruction à charger dès que le 1er étage du pipeline est vide.
En supposant que l'on garde le prefetch de 32-bit et que l'on burst des lectures en se disant que de toute façon ça sera exécutés : ça n'est pas viable car dès qu'il y aura un conflit de registre, une instruction longue (div, ou autres) tout ce qui sera lue sera poubelle et faudra relire. (en gros la plus grande partie du temps quand c'est pas optimisé ou sur des traitements génériques) Sans compter que ça complexifie aussi pas mal vu qu'il faut garder un suivit de ce qui est lue du PC.

Ajouter un plus grand prefetch, outre le fait que ça complexifie beaucoup pour un gain pas spécialement transcendant, pose aussi d'autres problèmes.
Admettons que l'on passe juste à 64-bit le prefetch :
En local, ça veut dire qu'il faut faire 2 requêtes de lecture (vu que la ram interne est 32-bit), ça veut dire que tu ne peux pas commencer à exécuter les instructions tant que ton prefetch n'est pas chargés => tu perds 1 cycles à chaque jump par rapport à la solution actuel.
On peut se dire "pourquoi attendre le 2eme LW?", car y a les cas où on jump sur le 2eme LW, ça voudrait dire de détecter tous les cas différents de gestion du flux d'instructions dont probablement des cas tordus.
On peut se dire aussi "pourquoi ne pas charger le prefetch aligné en LW au lieu de Phrase en local", mais dans ce cas, ça veut dire d'avoir une logique complexe pour gérer 2 cas différents de remplissage du prefetch (ie ram interne et la ram externe), vu que en externe les accès 64-bit sont uniquement possible alignés sur 64-bit.
Sinon l'autre solution ça serait de faire exclusivement des burst de 2 LW pour unifier le traitement local et externe, on ne perd plus le cycle, mais ça complexifie pas mal les accès mémoires.



En conclusion, il n'y a aucune autres solutions viable et efficace qu'un cache.
avatar

3

Et il ne faut pas perdre de vue les contraintes qu'avait le design : temps, budget, superficie de silicium, fréquence maximum. Il y a sûrement eu des compromis à faire, vu qu'apparemment ça passait tout juste avec les moyens de l'époque.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4

Ha.

GPU in Main == utiliser la memoire principale pour le GPU?

C'est en effet surprenant qu'il n'y ai pas de cache au niveau de chacun des chip, Tom, Jerry mais aussi le 68k. Et d'autant plus quand le GPU semble avoir pipeline assez long. Mais bon personne n'avias encore l'experience du Pentium 4 a l'epoque grin

Il y a un DMA ou autre qui permet de copier du code depuis la RAM externe dans la RAM interne?
Ceci dit j'imagine que le probleme reste le meme, que ca soit le code ou les données aller chercher dans la RAM externe reste lent.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

5

(tes photos ne sont pas passées)

Si le pipeline et le prefetch fonctionne réellement lors d'accès à la DRAM, alors il y a clairement un manque d'optimisation du fonctionnement. 10 cycles entre 2 accès DRAM ? Sérieux ? Désolé mais c'est injustifiable. De toute façon il y a tellement de latence entre 2 accès que du coup,
le pipeline ne sert à rien puisque le temps que le chargement suivant s'effectue, tout le pipeline est déjà vide.

La 1ere optimisation serait de latcher les données venant du bus dram directement dans le buffer du prefetch, et si possible et si nécessaire de latcher les 1er 16bit dans le 1er étage du pipeline. On gagne plusieurs cycles sur un évènement qui a des chance de se produire fréquemment (prefetch vide, 1er étage du pipeline vide)
D'après ce que tu dis, la logique du contrôleur mémoire DRAM est mal optimisé et il n'y a aucune gestion de prefetch à ce niveau.

Je n'invente rien, c'est le b.a-ba d'un processeur "moderne", et je ne parle pas de prédiction. Il vaut mieux charger au max en avance et de tout jeter si nécessaire, que de passer son temps à attendre.

Pour le 68000 (et d'autres cas d'ailleurs) on peut utiliser un funnel. c'est un circuit logique qui permet de passer d'une taille de bus à une autre sans buffer. C'est utilisé dans le TT par exemple. T'as un bus 64bits d'un coté, de l'autre ça te sort l'octet, le mot, le long mot que tu veux. Et inversement
avatar

6

Zerosquare (./3) :
Et il ne faut pas perdre de vue les contraintes qu'avait le design : temps, budget, superficie de silicium, fréquence maximum. Il y a sûrement eu des compromis à faire, vu qu'apparemment ça passait tout juste avec les moyens de l'époque.

je suis bien d'accord avec ça, je n'arrête pas de le dire : fait dans la précipitation.

Là, l'accès du GPU à la DRAM on dirait un truc fait au dernier moment, pas étonnant qu'en plus cette partie soit à moitié bugué. Ce n'est absolument pas normale que l'accès soit aussi long.
avatar

7

Merci à SDPCB pour ses explications.

grin
avatar
MK !
Collectionneur, retrogamer.
Enfin, un peu moins maintenant.

8

Godzil (./4) :
Ha.

GPU in Main == utiliser la memoire principale pour le GPU?

C'est en effet surprenant qu'il n'y ai pas de cache au niveau de chacun des chip, Tom, Jerry mais aussi le 68k. Et d'autant plus quand le GPU semble avoir pipeline assez long. Mais bon personne n'avias encore l'experience du Pentium 4 a l'epoque grin

Il y a un DMA ou autre qui permet de copier du code depuis la RAM externe dans la RAM interne?
Ceci dit j'imagine que le probleme reste le meme, que ca soit le code ou les données aller chercher dans la RAM externe reste lent.

Qu'il n'y ai pas de cache ça dénote juste le manque de temps et le coût. Et là clairement ce n'est pas la latence de la DRAM qui est en cause de toute façon, 2 cycles en FPM c'est quand même pas le bout du monde. Allez, probablement 3 parce qu'il faut aussi que le signal CAS revienne à 1 avant d'être réactivé pour la colonne suivante, à priori... Et du coup, les 106MB/s, c'est franchement du pipeau. Enfin, je sais qua c'est comme ça qu'on mesure en mode marketing, même pour un seul accès mais quand même. En électronique on parle plutôt en temps d'accès minimum et maximum.

Il n'y a absolument aucun DMA dans la Jaguar (faut oublier la SNES à ce niveau). Ou alors si, le Blitter... Mais la encore quand on regarde les timings, y a un sérieux manque d'optimisation.
avatar

9

DEATH (./5) :
(tes photos ne sont pas passées)
Chez moi ça marche (c)
Quelqu'un à une idée de comment les afficher correctement ? (j'ai mis sur mon site vu que le "envoyer un fichier depuis votre ordinateur" n'avait pas l'air de fonctionner et j'ai la flemme de retester)


Si le pipeline et le prefetch fonctionne réellement lors d'accès à la DRAM, alors il y a clairement un manque d'optimisation du fonctionnement. 10 cycles entre 2 accès DRAM ? Sérieux ? Désolé mais c'est injustifiable. De toute façon il y a tellement de latence entre 2 accès que du coup,
le pipeline ne sert à rien puisque le temps que le chargement suivant s'effectue, tout le pipeline est déjà vide.
Non, ce n'est pas un "manque d'optimisation", c'est tout simplement l'effet de bord de la synch successif de signaux et tu peux pas y couper si tu veux monter en fréquences.


La 1ere optimisation serait de latcher les données venant du bus dram directement dans le buffer du prefetch, et si possible et si nécessaire de latcher les 1er 16bit dans le 1er étage du pipeline. On gagne plusieurs cycles sur un évènement qui a des chance de se produire fréquemment (prefetch vide, 1er étage du pipeline vide)
C'est tout simplement impossible de faire ça car non seulement ça va être super compliquer à coder, mais en plus tu oublies tous les problèmes de partage de bus ainsi que tous les problèmes de temps de propagation d'avoir des MUX de partout sur un bus de 64-bit et le tout sans compter les problèmes de fonderie.


D'après ce que tu dis, la logique du contrôleur mémoire DRAM est mal optimisé et il n'y a aucune gestion de prefetch à ce niveau.
Non, ce n'est pas "mal optimisé", c'est juste que le GPU n'est pas seul sur le bus et donc il faut aussi de la logique pour gérer les priorités et le partage de bus et donc il y a des synch.


Je n'invente rien, c'est le b.a-ba d'un processeur "moderne", et je ne parle pas de prédiction. Il vaut mieux charger au max en avance et de tout jeter si nécessaire, que de passer son temps à attendre.
La phase n°1 c'est le prefetch, la phase n°2 c'est un cache, la phase n°3 c'est le superscalaire, la phase n°4 c'est la prédictions avec pre-execution d'instructions en parallèle, la phase n°5 c'est l'hyperthreading.
Ce que tu dis c'est de faire la phase n°4 sur la phase n°1, ce qui n'est pas envisageable car tu vas bouffer la bande passante des autres CPU pour au final ne rien faire : d'où l’intérêt d'avoir implémenté les phases n°2 & 3 avant.
Chaque phase nécessite un niveau d'implémentation plus compliqués et donc de la surface de silicium en plus (sans compter le temps de dev/tests en plus).

Comme dit par Zero, TOM était aux limites de ce qui était possible de faire dans le process utilisé de l'époque, donc ce n'est pas possible de faire beaucoup mieux.
Il y a des défauts, mais c'est comme ça, ce n'est pas possible de faire des miracles non plus wink.
avatar

10

SCPCD: Il y a combien de clock domain dans TOM?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

11

SCPCD (./9) :
Quelqu'un à une idée de comment les afficher correctement ?
Il faut les stocker ailleurs que chez Free, par exemple ici : https://www.imgur.com/

Godzil (./10) :
SCPCD: Il y a combien de clock domain dans TOM?
Au moins deux : il y a une horloge principale, et une horloge pour la vidéo. Dans la Jaguar les deux sont reliées ensemble, mais on peut les séparer et ça fonctionne correctement (c'est ce que SCPCD avait fait sur sa Jaguar overclockée, pour que la sortie vidéo reste à 50/60 Hz).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

12

Godzil (./4) :
C'est en effet surprenant qu'il n'y ai pas de cache au niveau de chacun des chip, Tom, Jerry mais aussi le 68k.
À l'époque les caches étaient très coûteux en surface de silicium (et donc en coût de fabrication). C'est aussi pour ça qu'il n'y a pas davantage de SRAM locale.

Godzil (./4) :
Et d'autant plus quand le GPU semble avoir pipeline assez long.
Pas vraiment, c'est un design RISC assez classique :
Z0NU

Il y a juste plus de cycles à cause de la latence en cas d'accès à de la mémoire externe, et accessoirement pour l'instruction de division (qui est exécutée à part du reste).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

13

Je vois, merci smile
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

14

Zerosquare (./12) :
À l'époque les caches étaient très coûteux en surface de silicium (et donc en coût de fabrication). C'est aussi pour ça qu'il n'y a pas davantage de SRAM locale.
Et c'est quoi qui a changé ?
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

15

Brunni > Tout simplement la taille des transistors qui est plus petite donc on peut en mettre plus sur la même surface et donc on peut faire plus de chose pour un surcout moindre.


Godzil (./10) :
SCPCD: Il y a combien de clock domain dans TOM?
Au moins deux : il y a une horloge principale, et une horloge pour la vidéo. Dans la Jaguar les deux sont reliées ensemble, mais on peut les séparer et ça fonctionne correctement (c'est ce que SCPCD avait fait sur sa Jaguar overclockée, pour que la sortie vidéo reste à 50/60 Hz).
On peut éventuellement prendre en compte aussi la clock dérivé de l'horloge principale pour le CPU externe (ici /2 pour le 68k)
avatar

16

Zerosquare (./12) :
Godzil (./4) :
C'est en effet surprenant qu'il n'y ai pas de cache au niveau de chacun des chip, Tom, Jerry mais aussi le 68k.
À l'époque les caches étaient très coûteux en surface de silicium (et donc en coût de fabrication). C'est aussi pour ça qu'il n'y a pas davantage de SRAM locale.
Il faut pas oublié non plus que les caches c'est pas magique non plus : quand t'as un seul proc c'est facile à gérer, quand tu en as 5 qui peuvent modifier n'importe quel région, il faut penser à les mettre à jour ou à minima invalider les zone des caches impactés et c'est tout de suite plus compliqué à faire. wink
avatar

17

C’est vrai que les prix de la SRAM et DRAM n’on vraiment commencer à chuter que cet début/mi 90, bien trop tard pour la jag,

Pourquoi ils n’ont pas fait un bus à temps partagé? Ram trop lente pour travailler à 2 ou 3 fois la vitesse des composants?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

18

Largement, oui : si tu multiplies l'horloge par 2, ça fait un temps de cycle de moins de 19 ns. Et La DRAM standard à l'époque avait un temps d'accès de 70 ns.

Et le temps partagé à d'autres inconvénients :
- si un processeur n'a pas besoin d'accéder à la mémoire, le cycle correspondant est "gâché" pour rien
- comme les accès sont entrelacés, on ne peut pas faire de bursts pour accélérer les accès consécutifs à une même page

Le temps partagé est une bonne solution pour les machines dont le CPU est relativement lent (c'est ce qu'ils ont fait sur l'Atari ST par exemple), mais ça devient un boulet quand tu as besoin de davantage de perfs.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

19

Zerosquare (./18) :
Largement, oui : si tu multiplies l'horloge par 2, ça fait un temps de cycle de moins de 19 ns. Et La DRAM standard à l'époque avait un temps d'accès de 70 ns.
.

Le temps d'accès minimum sur Jaguar est de 2 cycles en FPM. Ce qui donne des mémoires avec un temps d'accès maximum de 100ns
La Jaguar est équipé de mémoires 70ns. La Jaguar pourrait tourner à 40MHz
avatar

20

À condition que le reste du système suive. Et ce n'est pas le cas, à 37.5 MHz ça commence à être instable (et c'est sur une seule console, rien ne dit que toutes celles qui ont été fabriquées aient autant de marge) :
Overclocked JaguarAtariAge ForumsHi ! (from Jaguar Mods topic ) I think Fredifredo is thinking about something else thats going to be revealed soon icon_wink.gif The new mod for the jaguar is the Overclock ! It was the 3rd June that I have success to overclock the Jag, but no time to make videos All my cartridge games (about 33)...


Il faut prendre en compte la dissipation thermique aussi. Même à 26.6 MHz, le chipset chauffe déjà pas mal.

EDIT : d'ailleurs, 2 cycles et 70 ns, ça ne donne pas une fréquence maxi de 40 MHz, mais de... 28.57 MHz. Tiens tiens smile
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

21

MetalKnuckles (./7) :
Merci à SDPCB pour ses explications.

grin
bang
Atari Jaguar :
http://perso.orange.fr/jaguar-64bit/

! Jagware !

22

Zerosquare (./20) :
À condition que le reste du système suive. Et ce n'est pas le cas, à 37.5 MHz ça commence à être instable (et c'est sur une seule console, rien ne dit que toutes celles qui ont été fabriquées aient autant de marge) :
Overclocked JaguarAtariAge ForumsHi ! (from Jaguar Mods topic ) I think Fredifredo is thinking about something else thats going to be revealed soon icon_wink.gif The new mod for the jaguar is the Overclock ! It was the 3rd June that I have success to overclock the Jag, but no time to make videos All my cartridge games (about 33)...


Il faut prendre en compte la dissipation thermique aussi. Même à 26.6 MHz, le chipset chauffe déjà pas mal.

EDIT : d'ailleurs, 2 cycles et 70 ns, ça ne donne pas une fréquence maxi de 40 MHz, mais de... 28.57 MHz. Tiens tiens smile

Ce n'est pas comme ça que ça fonctionne.

Le temps d'accès d'une DRAM est donnée à partir de RAS low et il ne défini pas le temps d'accès potentiel en FPM mais un peu quand même (ça dépend des constructeurs, il faut vérifier les spécifications pour chacun)
Comme sur Jaguar le FPM est de 2 cycles fixe, mécaniquement ça limite les possibilité de choix au niveau de la vitesse de la DRAM. Il faut une mémoire compatible avec un TCAC de maximum 2 cycles et il se trouve que suivant les constructeurs, à 40MHz il faudra une mémoire avec un temps d'accès max entre 85 et 100ns. Par contre il faudra augmenter le RAS to CAS d'1 cycle.
Ce sont des calculs qui datent, mais de mémoire avec un accès à 70ns, à 40MHz on peut rester dans les valeur minimales. c'est à dire 1 cycle RAS to CAS (parce que ça fait un total de 3 cycles, soit 75ns). Sauf erreur d'ailleurs les DRAM même à 100ns pourraient cycler le FPM à 40MHz en 1 cycle (25ns), c'est la Jaguar qui limite.
avatar

23

Ouh la non au temps pour moi, c'est loin tout ça... c'est sans compter le tPC
Le problème des DRAM c'est leur putain de timings à la con complètement tordu.
Donc sur une DRAM FPM à 70ns le cycle FPM (tPC) est typiquement de 45ns, ce qui donne un accès max à quelques 22,2222... MHz
Bref on ne peut donc pas cycler le FPM en 1 cycle à 40Mhz, il faudra bien 2 cycles.

A 40MHz il faudrait bien vérifier les timings pour chaque constructeur, parce qu'avec un temps d'accès de 100ns le plus souvent le cycle FPM est de 55ns, ça dépasse un peu...
Je ne sais pas si la Jaguar cycle réellement le FPM en 2 cycles d'horloge et si elle utilise les mêmes timings pour le 1er accès, mais si c'est bien le cas ça veut dire qu'au delà de 37,5 MHz il faut obligatoirement de la DRAM 70ns ou alors il faut augmenter le nombre de cycle RAS to CAS (la boot ROM le règle à 1), sinon, ça ne passe pas et ça va planter.
avatar

24

Ah flute SCPCD je viens de m'apercevoir que je n'arrête pas d'écorcher ton pseudo.
avatar

25

d'un autre coté il est fort en Jaguar mais il est nul aux chiffres et aux lettres...
avatar