Posté le 08/02/2010 à 17:54 Membre depuis le 16/06/2001, 69817 messages
http://www.classiccmp.org/pipermail/cctech/2008-April/093414.html

On either a bus error or an address error exception, the information
the processor puts in the exception stack frame is not sufficient to
either resume or undo the faulted instruction. [*] These errors were
considered fatal, and the typical "recovery" was to kill the process
that faulted. Obviously this is not conducive to implementation of
virtual memory.
Posté le 08/02/2010 à 18:27 Membre depuis le 24/04/2002, 4697 messages
Ah je vois, c'est probablement que l'adresse qui foire n'est pas empilée (seuls PC et SR le sont).
avatarMaintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Posté le 08/02/2010 à 21:47 Membre depuis le 16/06/2001, 69817 messages
vala, sans doute.

c'est très con d'ailleurs.
Posté le 08/02/2010 à 23:16 Membre depuis le 18/06/2001, -26075 message
Link (./31) :
Ah je vois, c'est probablement que l'adresse qui foire

Euh, c'est pas le PC ça justement ? cheeky
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 08/02/2010 à 23:19 Membre depuis le 10/06/2001, 40289 messages
Il veut dire l'adresse dont la lecture ou l'écriture a causé la faute.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 08/02/2010 à 23:34 Membre depuis le 15/06/2003, 8330 messages
Cela dit en théorie, ce n'est pas strictement nécessaire parce que tu peux désassembler l'instruction qui a foiré pour connaître l'adresse fautive… C'est juste de quelques ordres de magnitude plus lent. cheeky
Et puis à la base je pense pas que ce pauvre CPU ait été conçu pour avoir une mémoire virtuelle, donc c'est pas sa faute, et c'est pas un bug. :]
avatarLe scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes
Posté le 09/02/2010 à 00:05 Membre depuis le 18/06/2001, -26075 message
Mais c'est con de perdre le mmu pour si peu ... sad

K² : merci
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 09/02/2010 à 00:25 Membre depuis le 16/06/2001, 69817 messages
a l'époque du 68k000 le mmu c'était 'achement high tech tripo
Posté le 09/02/2010 à 06:57 Membre depuis le 11/06/2001, 19563 messages
GoldenCrystal (./35) :
Cela dit en théorie, ce n'est pas strictement nécessaire parce que tu peux désassembler l'instruction qui a foiré pour connaître l'adresse fautive… C'est juste de quelques ordres de magnitude plus lent. cheeky
Et puis à la base je pense pas que ce pauvre CPU ait été conçu pour avoir une mémoire virtuelle, donc c'est pas sa faute, et c'est pas un bug. :]

Pas exactement car dans mes souvenirs, le pc pointe vers l'instruction suivante, donc il faut que tu puisses remonter d'une instruction. Sinon ca aurait été bien plus simple.
Je ne suis même pas sûr de ce qui se passe pour des instructions du style move.l var1.l,var2.l
Edit: Reset / Bus Error / Address Error sont initiées dans les 2 cycles suivants l'anomalie (Group 0), donc tu peux effectivement avoir le pc au milieu d'une instruction.
Posté le 09/03/2012 à 23:29 Membre depuis le 27/04/2006, 60498 messages
avatarZeroblog

« 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
Posté le 10/03/2012 à 10:49 Membre depuis le 18/06/2001, -26075 message
Marrant. smile
Par contre, je comprends pas comment utiliser le fait que les copies de longwords soient faites en deux fois (comme certains jeux le font). A part le fait que move soit interruptible, qu'est-ce qu'on peut bien faire entre les deux ?
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 10/03/2012 à 14:54 Membre depuis le 27/04/2006, 60498 messages
Folco (./40) :
Par contre, je comprends pas comment utiliser le fait que les copies de longwords soient faites en deux fois (comme certains jeux le font). A part le fait que move soit interruptible, qu'est-ce qu'on peut bien faire entre les deux ?
Si c'est en RAM, je ne vois pas trop non plus (à part que c'est une race condition potentielle dans les systèmes avec plusieurs processeurs, mais ça c'est un effet indésirable).

Par contre ça peut jouer si tu accèdes à deux registres 16 bits consécutifs d'un périphérique en utilisant une seule instruction 32 bits. Vu qu'il y a souvent des effets secondaires des accès en écriture (et parfois même en lecture), l'ordre d'accès peut avoir une importance.

Exemple : certains périphériques qui possèdent plusieurs registres internes n'utilisent que 2 adresses externes : une qui sert d'index (le numéro du registre interne à lire/écrire), et l'autre dans laquelle tu mets ou récupère les données. Généralement ces 2 adresses sont consécutives. Pour gagner du temps, on peut faire une seule écriture 32 bits qui écrit l'index et les données, mais ça ne marche correctement que si c'est l'adresse d'index qui est écrite en premier.
avatarZeroblog

« 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
Posté le 10/03/2012 à 15:50 Membre depuis le 15/06/2003, 8330 messages
Zerosquare (./41) :
Exemple : certains périphériques qui possèdent plusieurs registres internes n'utilisent que 2 adresses externes : une qui sert d'index (le numéro du registre interne à lire/écrire), et l'autre dans laquelle tu mets ou récupère les données. Généralement ces 2 adresses sont consécutives. Pour gagner du temps, on peut faire une seule écriture 32 bits qui écrit l'index et les données, mais ça ne marche correctement que si c'est l'adresse d'index qui est écrite en premier.

Et à supposer qu'il n'y ait pas de latence à la modification de l'index au niveau dudit périphérique externe aussi, non ?
avatarLe scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes
Posté le 10/03/2012 à 15:55 Membre depuis le 27/04/2006, 60498 messages
Exact. C'est en général le cas, mais il y a des exceptions.
avatarZeroblog

« 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