update
This commit is contained in:
50
Writerside/topics/02/RA/MU7Rechner.md
Normal file
50
Writerside/topics/02/RA/MU7Rechner.md
Normal file
@ -0,0 +1,50 @@
|
||||
# MU7-Rechner
|
||||
## Pipeline
|
||||
- erlaubt den nächsten Befehl zu holen während der letzte noch bearbeitet wird
|
||||
- für Implementierung notwendig:
|
||||
- Ergebnisse jeder Pipelinestufe in Zwischenregistern speichern
|
||||
- Stufen werden unabhängig voneinander
|
||||
- Stufen können gleichzeitig arbeiten
|
||||
- Für jede Stufe eigenes Instruktionsregister
|
||||
- steuert Abarbeitung des jeweiligen Befehls
|
||||
- Sprungbefehle führen zu äußerem Eingriff in den Ablauf der Pipelinestufen
|
||||
- kann Ausführung der jeweiligen Operation verhindern
|
||||
- **Moderne Pipelines:**
|
||||
- Pipelines mit 5-17 Stufen
|
||||
- längere Bearbeitung von Floatingpoint-Befehlen → lange Pipelines
|
||||
|
||||
## Datenpfad mit 5-Stufen Pipeline
|
||||

|
||||
|
||||
## Pipeline 6-stufig
|
||||

|
||||
|
||||
- **fetch**: nächsten Befehl aus Speicher holen
|
||||
- **dec**: Befehl dekodieren (Befehlsart ermitteln)
|
||||
- **reg**: Operanden aus Registerbank holen
|
||||
- **ALU**: ALU Berechnung / Speicheradresse berechnen
|
||||
- **mem**: Zugriff auf Speicher
|
||||
- **res**: Ergebnis in Registerbank zurückschreiben
|
||||
|
||||
## Pipeline-Hazard durch Registerzugriff
|
||||
read after write Hazard
|
||||
|
||||

|
||||
|
||||
## Nachteil der Pipeline: Sprungbefehle
|
||||
- Sprungbefehle brauchen 5 Takte zusätzlich um nächste gültige Instruktion auszuführen
|
||||
- alle Befehle in der Pipeline müssen verworfen werden
|
||||
- Ausweg: **Forwarding**
|
||||
- Nach Berechnung der neuen Sprungadresse
|
||||
- Direkt in IADR Register/PC schreiben
|
||||
- nur noch 3 Leertakte
|
||||
- ist in allen modernen Prozessoren vorhanden
|
||||
|
||||
|
||||
## Pipeline-Hazard durch Sprungbefehl
|
||||
Sprungverhalten einer Pipeline mit Forwarding
|
||||
|
||||

|
||||
|
||||
## Datenpfad mit 5-Stufen Pipeline und Forwarding des PC
|
||||

|
Reference in New Issue
Block a user