Seite 1 von 1

Ungültige Instruktionen auf dem P1

Verfasst: Mo 2. Aug 2021, 21:25
von thiloa
Hallo,

auf dem Propeller 1 gibt es ja mindestens 4 nicht definierte Instruktionen, mit den Instruktionscodes 4-7 (mit Instruktionscode meine ich Bits 31:26 der Instruktion).

Den Verilogdateien nach scheint der Propeller da wie bei den Instruktionen 0-3 (rdbyte,rdword,rdlong,hubop) vom Hub zu lesen, aber vorher den entsprechenden Cog nicht in den Wait State zu wechseln. Man kann damit quasi den aktuellen Wert des Hubs lesen ohne vorher zu warten.

Hat jemand mal das Verhalten dieser Instruktionen auf der Hardware untersucht? Stimmt das so?

Dieses Verhalten ist für meinen Simulator leider etwas ärgerlich... :roll:

Re: Ungültige Instruktionen auf dem P1

Verfasst: So 29. Aug 2021, 18:11
von Wuerfel_21
Dass die ungenutzen opcodes ALU-seitig den Hub-Instruktionen entsprechen ist mir auch mal aufgefallen, das mit dem Waitstate aber nicht.

Das sollte tatsächlich mal untersucht werden, was da eigentlich passiert. Könnte evtl. sogar nützlich sein? Wenn man solch eine Instruktion wo hin setzt, wo das hubfenster sicher da ist, würde das dann ein Speicherzugriff in 4 Takten sein?

Sollte für deinen Simulator aber eigentlich nicht von Bedeutung sein, hab noch kein existentes Programm gesehen, das diese Instruktionen benutzt. (WRxxxx mit WZ ist da sicherlich die häufigere Quelle von undefiniertem Verhalten).

Re: Ungültige Instruktionen auf dem P1

Verfasst: So 29. Aug 2021, 20:01
von PIC18F2550
Wenn ich mich richtig erinnere ist die innere Strucktur des P1 nicht für paralleles hub lesen gebaut.
Mann wird da was lesen aber die Wahrscheinlichkeit das der Wert falsch ist ist durch Adress vermischung in hub zwar gering aber warscheinlich.
Bei verwendung nur eines COGs steht da nichts im wege, aber sobald ein anderer mitmischt fangen die Probleme an. :SCHREIEN