RISC-Pipelines im Detail

Die überschaubare Pipeline einer RISC-CPU verdeutlicht, woran Intels Prescott mit seiner Megapipeline scheitert: Daten-, strukturelle und Kontrollfluss-Hazards bringen die Pipeline ins Stocken und bremsen die CPU aus.

Die Darstellungen in unserem Beitrag Grundlagen der RISC-Architektur und Klassifizierungssysteme für Prozessoren beruhen im Wesentlichen auf einer Abstimmung zwischen dem Befehlssatz, den notwendigen Adressierungsarten, dem Registersatz einschließlich der Special-Purpose-Register sowie der Pipeline-Grundstruktur. Letztere spielt insofern eine Rolle, weil die Beschränkung auf vier Pipeline-Stufen die Zusammenfassung von Execute und Memory Access bedeutet. Eine 5-stufige Pipeline mit den Phasen Fetch, Decode/Load, Execute, Memory Access und Write back böte beispielsweise die Möglichkeit zu erweiterten Adressberechnungen (indizierte Adressierung) in der Execute-Phase. Dies muss aus Zeitgründen im Rahmen der 4-stufigen Pipeline entfallen.

Die Grundstruktur der RISC-Pipeline ist in Bild dargestellt. Eine Instruktion, die durch die Fetch-/Predecode-Unit geladen wird, durchläuft diese Pipeline in vier aufeinander folgenden Takten. Die jeweils durchlaufene Pipeline-Stufe bearbeitet im nächsten Takt bereits den nächsten Befehl. Dieses Grundprinzip bedeutet eine mögliche Beschleunigung um den Faktor vier.

Das Bild zeigt ebenfalls die übrigen Einheiten der Modell-CPU MPM3 in der Basisversion. Diese Einheiten haben teilweise reinen Support-Charakter (wie etwa die Takterzeugung), wirken teilweise jedoch auch Pipeline-übergreifend (Bus Interface Unit, Register File) und sind dadurch besonders zu betrachten.