minimale Taktzyklen benötigt?

Der Befehlsaufruf Rn,sub ist ein Zwei-Wort-Befehl. Unter der Annahme, dass PC während des Abrufzyklus des ersten Wortes des Befehls inkrementiert wird, ist dies seine Registerübertragungsoperation

Rn<=PC+1;
PC<=M[PC];

Jemand hilft mir bitte, die minimalen Taktzyklen zu berechnen, die während des Ausführungszyklus der Anweisung benötigt werden. Ich bin Student der Informatik und nicht sehr gut in Mikroprozessoren, bitte erklären Sie, wie man minimale Taktzyklen zählt.

Sollte es in 8085 nicht 5 sein.

  1. Zum Laden von PC in ALU-Register
  2. Zyklus zum Erhöhen von PC (PC+1)
  3. Übertragung auf Rn vom Akkumulator.
  4. 2 Zyklen für Speicherleseoperation.

Bitte lassen Sie mich wissen, wo ich falsch liege? Bitte.

Erwähnenswert wäre die Art der Architektur. Der übliche Weg ist nicht wirklich, es zu berechnen, Sie würden es normalerweise im Architekturhandbuch nachschlagen, um es für den jeweiligen Prozessor zu finden. Wenn es sich um eine Art Aufgabe handelt, haben Sie vielleicht ein Blockdiagramm der CPU, die Sie hinzufügen könnten?
Minimum wird hier gefragt, also was wird das Minimum bei jeder möglichen Architektur sein? Und auch was wird sein, wenn es nur 8085 ist?
Wenn Sie beliebige Architekturen zulassen, ist die Antwort der minimalen Taktzyklen für jede Operation immer 1. Dies setzt eine Architektur voraus, die einen Assembly-Opcode hat, der direkt den beiden von Ihnen präsentierten Codezeilen entspricht, und diese Operation in einem einzigen ausführen kann Zyklus, ist 1 Taktzyklus. Nun, für reale Architekturen ist die Antwort wahrscheinlich ganz anders.

Antworten (1)

Um eine solche Frage zu beantworten, muss viel mehr Kontext angegeben und Annahmen explizit gemacht werden. Nur ein paar Probleme:

1) Die hier beschriebene Aufrufmethode ist typisch für ARM/Cortex und einige weniger bekannte Architekturen. Ein 8085 verwendet die gebräuchlichere Stack-basierte Methode.

2) Die meisten Architekturen haben dedizierte Hardware- und Datenpfade zum Inkrementieren des PCs, so dass die ALU nicht beteiligt sein muss und parallel zu einer anderen Operation durchgeführt werden kann.

3) Ein 8085 ist eine 8-Bit-Architektur mit einer 16-Bit-Adresse, daher beinhaltet das Erhalten einer Adresse aus dem Speicher zwei Speicherzugriffe (mit begleitenden PC-Inkrementen).

4) Sie scheinen anzunehmen, dass ein Speicherzugriff 2 interne Zyklen Zeit benötigt. IIRC war 1 für einen 8085 (aber ich könnte mich irren), und es ist oft viel viel mehr für moderne Prozessoren.

5) In Schritt 3) erwähnen Sie einen Akkumulator, Sie meinen wahrscheinlich das ALU-Ergebnisregister, das auf den meisten registerbasierten Architekturen kein vom Programmierer sichtbares Register ist.

6) Wenn das Speichern des Ergebnisses in Rn einen Zyklus dauert, erscheint es vernünftig anzunehmen, dass das Speichern der Zieladresse im PC auch einen Zyklus benötigt.