Die genaue Zeitlatenz für den „lw“-Befehl in einem Einzelzyklus-Datenpfad

Ich möchte die Zykluszeit eines Einzelzyklus-Datenpfads berechnen. Dann weiß ich aus dem Kurs, dass die Zeit die Ausführungszeit der längsten Anweisung sein sollte, die in MIPS 'lw' ist. Also versuche ich, die Zeitlatenz für 'lw' zu berechnen.

Ich denke, der längste Pfad / die längste Zeit für 'lw' wäre:

PC -> I-Mem -> Read-Reg -> ALU -> Data-Mem -> Mux(to select Mem to Register) -> Write-Reg

(Im Pfad, denke ich the mux to choose read-register1 or write-register, sing-extend for immediate valueund mux to choose read-data 2 or immediate valuewerden alle ignoriert, da die Schaltungen parallel sind, würden sie weniger Zeit in Anspruch nehmen als andere parallele Teile.)

Aber als ich versuchte, einige Lösungen zu finden, gab es einige unterschiedliche Antworten, aber keine ist mit meiner identisch.

Jemand sagte, die Zeit/der Weg sollte sein:

PC -> I-Mem -> Read-Reg -> Mux(choose the input of ALU) -> ALU -> Data Memory -> Mux(select Mem to Register) -> Write-Reg

Und einige andere Versionen:

PC -> I-Mem -> Read-Reg -> ALU -> Data Memory -> Mux(select Mem to Register)

Aber ohneWrite-Reg

Ich weiß wirklich nicht, was wirklich die richtige Antwort ist. Kann mir jemand helfen, dieses Problem zu lösen?

Antworten (1)

Zeichne es aus. Graphviz ist großartig für solche Dinge.

Der Taktzyklus beginnt mit dem PC und endet mit der Regsiter-Schreiboperation, die hier als quadratische Kästchen dargestellt ist. Alles andere (Ovale) ist kombinatorisch.

Datenflussdiagramm

Beachten Sie, dass es zwei Pfade zwischen I_memory und ALU gibt (wir können davon ausgehen, dass sich WriteRegisterMux nicht im längsten Pfad befindet). Es kann argumentiert werden, dass, da SignExtend keine Logik beinhaltet (es sind nur Drähte) und dass ein einfacher Mux schneller als RegisterRead ist, letzteres der kritische Pfad ist.

Daher sind die Taktflanken-zu-Taktflankenpfad-Verzögerungen:

  • PC-Clock-to-Output
  • Ich erinnere mich
  • Lesen registrieren
  • Alu
  • D Speicher
  • Datenmux schreiben
  • Registrieren Setup-to-Clock-Zeit schreiben

Die Antwort, die Sie gefunden haben und die ALUmux in den kritischen Pfad versetzt, ist verwirrt darüber, welcher Registerleseport für diese Anweisung verwendet wird.

Die andere Antwort lässt die Einrichtungszeit für das Schreiben von Registern weg, von der sie einfach annehmen können, dass sie Null ist.

Vielen Dank. Ich denke, Ihre Antwort ist wirklich klar und sie ist identisch mit meiner. Aber eigentlich sind alle Lösungen und Antworten von Hausaufgaben oder Übungen, die ich von Universitätswebsites und Lehrbüchern gesehen habe, wirklich unterschiedlich, was mich so lange verwirrt hat. Ich danke Ihnen für Ihre Erklärung. Ich denke, unsere Antwort ist wirklich richtig.