Multicycle-Datenpfad vs. Single-Cycle-Datenpfad

Ich habe eine ziemlich einfache Frage, konnte aber beim Googeln keine gute Antwort finden.

Ich verstehe, wie Pipelining funktioniert, indem ich 1 Zyklus pro Schritt habe, jede Anweisung 5 Zyklen dauert und sie mit dem zweiten Schritt der vorherigen Anweisung beginnen, um die gesamte Ladung schneller abzuschließen.

Nach dem, was ich gelesen habe, hat Multicycle auch mehrere Schritte pro Anweisung, aber jede Anweisung beginnt, nachdem die vorherige Anweisung beendet wurde. Mit dem Vorteil, dass Anweisungen, die keine 5 Schritte lang sind, nicht die ganzen 5 Schritte durchlaufen müssen. Ich gehe davon aus, dass wir die Zeit des langsamsten Schritts für den Taktzyklus verwenden müssen, damit alle Schritte funktionieren.

Wenn dies korrekt ist, habe ich ein kleines Programm berechnet, das ich als Hausaufgabenaufgabe erhalten habe, bei dem der Einzelzyklus-Datenpfad schneller ist als der Mehrzyklus-Datenpfad. Ist das normal ? oder gibt es etwas über Multicycle-Datenpfad, das ich falsch habe?

Ihr Titel (Multi-Cycle versus Pipelined) stimmt nicht mit Ihrer Frage überein (Single-Cycle versus Multi-Cycle).
Ohne konkrete Zahlen ist das schwer zu sagen.

Antworten (1)

Bei einer Single-Cycle-Implementierung ist zu erwarten, dass die Taktfrequenz (bestimmt durch die längste Verzögerung durch alle Zugriffszeiten und die Logik) niedriger sein wird als bei einer Multi-Cycle-Implementierung (wobei vermutlich in jedem Zyklus nur ein Teil von der gesamte Datenpfad des Single-Cycle-Ansatzes wird verwendet).

Wenn dies für Ihre Implementierung nicht gilt, ist der interessante Punkt, warum.

Ja, mein Problem ist, dass bei der Berechnung der Programmausführungszeit die Implementierungszeit für einen einzelnen Zyklus schneller ist als die Zeit für mehrere Zyklen, was seltsam erscheint. In einem Mehrzyklus-Datenpfad ist jede Stufe ein Zyklus. Sind diese Stufen in Abhängigkeit von der Zeit der Stufe variabel? oder sind sie alle zur gleichen Zeit (z. B. langsamste Zeit) wie in einem Pipeline-Datenpfad?
Das hängt von der Umsetzung ab. Wie haben Sie die Zahlen (Zykluszeiten und Anzahl der Zyklen) erhalten?