Pipeline — Änderungen 6315 → 6316

Zeile 14: Zeile 14:
 
In der ersten Phase (IF) wird der Befehl aus dem [[Cache]] bzw. dem Arbeitsspeicher geladen. Anschließend wird der Befehl in der DE-Phase dekodiert und die von dem Befehl verwendeten Register geladen. In der EX-Phase wird der Befehl ausgeführt, falls es sich um einen arithmetisch-logischen Befehl handelt oder die Adressberechnung durchgeführt, falls es sich um einen LOAD/STORE-Befehl handelt. In der MEM-Phase wird das adressierte Wort eines LOAD/STORE-Befehls geladen bzw. gespeichert. In der WB-Phase werden veränderte Register zurückgeschrieben.
 
In der ersten Phase (IF) wird der Befehl aus dem [[Cache]] bzw. dem Arbeitsspeicher geladen. Anschließend wird der Befehl in der DE-Phase dekodiert und die von dem Befehl verwendeten Register geladen. In der EX-Phase wird der Befehl ausgeführt, falls es sich um einen arithmetisch-logischen Befehl handelt oder die Adressberechnung durchgeführt, falls es sich um einen LOAD/STORE-Befehl handelt. In der MEM-Phase wird das adressierte Wort eines LOAD/STORE-Befehls geladen bzw. gespeichert. In der WB-Phase werden veränderte Register zurückgeschrieben.
 
Wie man bereits hier schon sieht eignen sich [[RISC]]-Prozessoren sehr viel besser zum Pipelining, da die Befehle relativ einfach sind und deshalb sehr viel leichter in einheitliche Phasen unterteilt werden können. Beispielsweise wäre es nicht möglich einen Befehl mit indirekter Adressierung in das DLX-Pipelineschema zu zwingen, da es nicht möglich ist vor der Ausführung eines arithmetisch-logischen Befehls in irgendeiner Weise auf den Speicher zuzugreifen.
 
Wie man bereits hier schon sieht eignen sich [[RISC]]-Prozessoren sehr viel besser zum Pipelining, da die Befehle relativ einfach sind und deshalb sehr viel leichter in einheitliche Phasen unterteilt werden können. Beispielsweise wäre es nicht möglich einen Befehl mit indirekter Adressierung in das DLX-Pipelineschema zu zwingen, da es nicht möglich ist vor der Ausführung eines arithmetisch-logischen Befehls in irgendeiner Weise auf den Speicher zuzugreifen.
−
Davon abgesehen zeigt sich, dass man verschiedene Befehle in unterschiedlichen Pipelinestufen parallel bearbeiten kann. Damit erreicht man bei gleicher Taktfrequenz natürlich keinen erhöhten Durchsatz (Anzahl der Befehle die in einem Zeitintervall die Pipeline verlassen), sondern nur eine höhere Latenz (Zeitspanne zwischen dem Eintreten und dem Verlassen eines Befehls in die bzw. aus der Pipeline). Der Vorteil einer Pipeline ist nun, dass man den Prozessor weit höher takten kann als einen ohne Pipeline. Der Grund dafür ist, dass eine Pipelinestufe physisch kleiner ist als der Prozuessor ist und ein Signal sehr viel weniger Zeit benötigt um vom Anfang der Pipelinestufe bis zum Ende vorzudringen (im Ggs. zum gesamten Prozessor).
+
Davon abgesehen zeigt sich, dass man verschiedene Befehle in unterschiedlichen Pipelinestufen parallel bearbeiten kann. Damit erreicht man bei gleicher Taktfrequenz natürlich keinen erhöhten Durchsatz (Anzahl der Befehle die in einem Zeitintervall die Pipeline verlassen), sondern nur eine höhere Latenz (Zeitspanne zwischen dem Eintreten und dem Verlassen eines Befehls in die bzw. aus der Pipeline). Der Vorteil einer Pipeline ist nun, dass man den Prozessor weit höher takten kann als einen ohne Pipeline. Der Grund dafür ist, dass eine Pipelinestufe physisch kleiner ist als der Prozessor ist und ein Signal sehr viel weniger Zeit benötigt um vom Anfang der Pipelinestufe bis zum Ende vorzudringen (im Ggs. zum gesamten Prozessor).
  
 
TODO:
 
TODO: