Frage

Ich denke über diese Frage für eine Zeit:Wann ist ein ARM7(3 Rohrleitungen) Prozessor steigern Sie Ihre PC-Registrierung.

Ich habe ursprünglich gedacht, dass, nachdem eine Anweisung ausgeführt wurde, ist der Prozessor zunächst prüfen, gibt es eine Ausnahme in der letzten Ausführung, dann erhöhen Sie PC mit 2 oder 4 je nach den aktuellen Zustand.Wenn eine Ausnahme Auftritt, ARM7 ändern Sie den Abspielmodus, store PC in der LR vom aktuellen Modus und beginnen zu Prozess aktuellen Ausnahme verändern, ohne den PC registrieren.

Aber es macht keinen Sinn, wenn die Analyse der Rückkehr Anweisungen.Ich kann nicht herausfinden, warum PC zugewiesen werden, LR, bei der Rückkehr von einer unbestimmten-Anweisung-Ausnahme während der LR-4 von prefetch-abort-Ausnahme, nicht diese beiden Ausnahmen geschehen auf der Decoder-Status?Was mehr ist, laut meinem lehrbuch, PC wird immer zugewiesen werden, LR-4, bei der Rückkehr von prefetch-abort-Ausnahme-egal in welchem Zustand sich der Prozessor ist ARM(oder Daumen), bevor eine Ausnahme Auftritt.Ich denke jedoch, dass PC zugewiesen werden soll, LR-2, wenn die ursprünglichen Zustand ist der Daumen, da eine Daumen-Anweisung ist 2 bytes lang, statt 4 bytes, die einen ARM-Instruktion hält, und wir wollen einfach nur roll-back " - eine Anweisung im aktuellen Zustand.Ist es irgendwelche Fehler in meiner Argumentation oder etwas falsch mit dem lehrbuch.

Scheint eine lange Frage.Ich hoffe wirklich jemand kann mir helfen Holen Sie sich die richtige Antwort.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Sie kehren zurück auf LR von undefined-Anleitung Handhabung, weil die Punkte der Instruktion nach der einen, verursacht die Falle;Sie wollen nicht wieder die Undefinierte Anweisung erneut, es werden nur Treffer die gleiche Falle.

Sie kehren zum LR-4 von prefetch-abort-wenn Sie möchten, führen Sie den gleichen Befehl erneut aus;vermutlich, weil Sie haben zugeordneten Speicher in es, so es wird jetzt funktionieren.

An welchem Punkt in der pipeline ein ARM7 tatsächlich erhöht sich der PC ist irrelevant, da der Wert der PC während der Ausführung und damit der Wert von LR abort-Handler ist etwas, legte als Teil der ARM-Architektur-standard, basiert weitgehend auf dem, was die alten ARM2 hat mit seinem PC.

Ich denke jedoch, dass PC zugewiesen werden soll, LR-2, wenn die ursprünglichen Zustand ist Daumen

Das würde Sinn machen, aber dann wird der exception-handler müssten wissen, ob der ursprüngliche code, der Sie ausgelöst wurde auf ARM oder Thumb-code.Dies haben könnte, belastet die Kompatibilität zu, da war viel von nicht-Daumen-aware exception handling code.Anstatt also die Daumen-Architektur frisiert, die LR bei der Einreise in Ausnahme-Handler so, dass der handler könnte immer verwenden Sie den gleichen Befehl zurück, den Sie verwendet wurden, um die Verwendung für nicht-Daumen-code.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top