Forum: Digitale Signalverarbeitung / DSP / Machine Learning 56k DSP und fehlerhafte Speicherzugriffe


von Leif H. (lyve)


Lesenswert?

Guten Tag zusammen,

im Rahmen einer Emulation der Motorola DSP 56300 Familie bin ich auf ein 
Problem gestoßen, bei dem mir das Motorola Family Manual nicht so recht 
weiterhilft. Ich hoffe, hier ein paar alte Hasen zu finden, die den DSP 
noch kennen :)

Wie verhält sich ein fehlerhafter Zugriff auf Speicher, also sowas wie:
1
move x0,x:>$ddeeff
2
move y:>$ddeeff,a

Bei einem gültigen Speicherbereich von, sagen wir mal nur $000000 bis 
$020000. Gemeint sind Zugriffe auf ungültige Speicheradressen.

Der Illegal-Instruction Interrupt wird wohl nur aufgerufen, wenn der 
Opcode wirklich ungültig ist, das ist aber bei obigen Beispielen nicht 
der Fall.

Im Simulator von Motorola passiert einfach gar nichts, beim Lesen ist 
der Wert $000000.

Die Frage ist, ob ich solche Zugriffe einfach ignoriere oder sie 
irgendwie speziell behandeln muss. Vielen Dank für Hilfe.

Leif

von Strubi (Gast)


Lesenswert?

Wenn ich mich recht entsinne, passierte beim 56002 bei solchen 
X/Y-Zugriffen gar nix, bzw. "Garbage in, Garbage out". Kann mich nicht 
entsinnen, ob's Mirror-Effekte gab.
Wie der 56300 implementiert ist, weiss ich nicht. Für einen Emulator 
wäre natürlich praktisch, wenn illegale Adresszugriffe eine Trap 
schmeissen.
Wo du vielleicht noch fündig wirst, sind die diversen Retro-Projekte zum 
Atari Falcon (Coldfire-Projekt, Suska, etc.), allerdings könnten da die 
56k-Implementierungen recht verwaist sein.

von Georg A. (georga)


Lesenswert?

So wie ich den 56k noch aus Atari-Zeiten kenne (ja, ich weiss der 56k3 
hat 24Bit Addressen), gibts da überhaupt nichts, was eine Art Bus Error 
ala 68k produzieren kann. Es gibt ja auch keinen externen BERR-Pin. D.h. 
wenn die Adressbereiche in der BIU nicht ausdekodiert sind, muss es 
intern ein automatisches Transfer Acknowledge geben. Was dann gelesen 
wird, fällt unter undefined, könnte in der Realität evtl. auch der 
letzte extern gelesene Wert sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.