Forum: PC Hard- und Software Abarbeitung eines Assemblerbefehls


von Torben (Gast)


Lesenswert?

In meinem Schulbuch steht, dass die Abarbeitung eines Assemblerbefels 
innerhalb eines Maschinenzyklus geschieht. Ein Maschinenzyklus setze 
sich allerdings aus 4 Taktzyklen zusammen.

Wie muss man das denn verstehen? Warum sind es ausgrechnet 4 Taktzyklen 
und nicht 5? Hat das was mit dem Fetch-Decode-Execute-Zyklus zutun?

Vielen Dank für eure Hilfe.

von Christian M. (Gast)


Lesenswert?

Evtl. hilft Dir das weiter:

https://de.m.wikipedia.org/wiki/Mikroprogrammsteuerwerk

Gruss Chregu

von Programmierer (Gast)


Lesenswert?

Torben schrieb:
> Ein Maschinenzyklus setze sich allerdings aus 4 Taktzyklen zusammen.

Das trifft nur auf bestimmte alte Architekturen zu. Aktuelle Prozessoren 
können sogar pro Takt mehrere Befehle abarbeiten (z.B. "Dual-Issue", 
Superskalare Verarbeitung). Das hängt alles stark vom Modell ab.

von Theor (Gast)


Lesenswert?

Na! Es wird wohl kaum nur dieser eine Satz dastehen, oder?. Am besten 
mal die Seite posten. Dann kann man das Thema mal "aufbauen".

Diese 4 stimmt für eine bestimmte Struktur. Vermutlich ein 
hypothetisches Modell einer CPU, die im Rahmen des Schulbuches wohl auch 
erklärt wird. Eine feste Regel ist das nicht.

Das hat tatsächlich mit dem Fetch-Decode-Execute-Zyklus zu tun. Sollte 
auch in dem Schulbuch erklärt sein.

Es gibt eine Reihe verschiedener Varianten bei denen die Anzahl der 
Takte als auch die Abfolge und Verschränkung des F-D-E-Zyklus mit der 
Ausführung und dem nachfolgenden F-D-E-Zyklus in verschiedener Weise 
gestaltet sind.

Allgemeine Antworten gibt es darauf nicht.

von (prx) A. K. (prx)


Lesenswert?

Torben schrieb:
> Ein Maschinenzyklus setze sich allerdings aus 4 Taktzyklen zusammen.

Das tut es bei einer ganz bestimmten CPU aus dem Lehrbuch. Bei einer Z80 
bestand der erste Maschinenzyklus der Abarbeitung aus 4 Taktzyklen, 
weitere Zyklen von Befehlen aber aus nur 3 Takten. Beim 6502 Prozessor 
hingegen bestanden alle Maschinenzyklen aus nur einem Takt, während es 
beim 8051 gleich 12 waren.

von Larry (Gast)


Lesenswert?

Was im Schulbuch steht, ist zweifelsfrei richtig.
Und es ist das was der Lehrer hoeren will.
Und es hat ueberhaupt keinen Sinn, den Lehrer vom Gegenteil
ueberzeugen zu wollen.

Fuer Details warum es gerade vier sind, kannst du auf
die Datenblaetter der Firma Mikrotschip zurueckgreifen.

von Sebastian S. (amateur)


Lesenswert?

Bitte keine Zitate aus dem Zusammenhang reißen!

>In meinem Schulbuch steht, dass die Abarbeitung eines Assemblerbefels
>innerhalb eines Maschinenzyklus geschieht. Ein Maschinenzyklus setze
>sich allerdings aus 4 Taktzyklen zusammen.
Die Aussage trifft auf den XXX-Prozessor der Firma YYY zu. Eine 
Verallgemeinerung sollte man sich verkneifen.
Ich bin mir nicht ganz sicher, aber anno Z80 traf das auch mal zu.

So brauchen z.B. einige Atmels nur einen Takt pro Befehl und trotzdem 
bei anderen Befehlen zwei oder mehr.

Bei etwas komplexeren Prozessoren, lässt sich das sowieso nicht mehr 
vorhersagen. Da werden einzelne Befehle in Sub-befehle zerlegt und in 
einer prefetch queue sozusagen vorgekaut.
Das hat dann genau soviel mit dem nobel Essen im Restaurant zutun, wie 
das was später im Magen ankommt.

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.