Rechnerarchitektur (Subject) / Parallelität auf Instruktionsebene (Lesson)
There are 12 cards in this lesson
Erhöhung der Rechenleistung
This lesson was created by fuchsik.
This lesson is not released for learning.
- Parallele Strukturen bei Einprozessorsystemen Superpipeline-Architektur- Pipeline wird in eine größere Anzahl von Stufen unterteilt VLIW-Architektur- mehrere Befehle werden in „Superbefehl“ gepackt- Befehlsreihenfolge wird zur Compile-Zeit festgelegt > Static Instruction Scheduling Superskalar-Architektur- mehrere Befehle werden gleichzeitig in Pipeline gesetzt und parallel zueinander bearbeitet- Befehlsreihenfolge wird zur Laufzeit festgelegt > Dynamic Instruction Scheduling
- Superpipeline-Architektur (Superpipelining) starke Vergrößerung der Anzahl der Pipelinestufen> Arbeitsschritte können zeitoptimaler gestaltet und Taktfrequenz erhöht werden
- VLIW-Architektur (Very Long Instruction Word) Befehlswort großer Länge (>=128 Bit) enthält bis zu m Felder mit unabhängigen Befehlen (m=4...16)> bis zu m Operationen gleichzeitig ausführbar Prozessor stellt zu jedem Feld eine Funktionseinheit bereit:z.B. Addier-, Subtrahier- oder Multiplizier-Rechenwerke neben Registeroperationen nur Load/Store-Operationen (wie RISC)
- VLIW-Architekturen: Probleme Implementierungsschwierigkeiten Probleme bei der Programmentwicklung
- Superskalaritätsgrad / Superskalar-Architekturen Anzahl der maximal pro Takt zu initialisierenden Befehle des Prozessors
- Superpipeline Vor-/Nachteile Vorteile: hohe Taktfrequenzen erreichbar keine Parallelisierung erforderlich Nachteile: aufwendiger Systemaufbau durch hohe Taktfrequenzen Befehlsbearbeitung bei Datenabhängigkeiten oder Sprungbefehlen innerhalb der Pipeline schwierig
- superskalare Architektur Vor-/Nachteile Vorteile: mehrere Befehle/Taktzyklus erreichbar niedrigere Taktfrequenz bei gleicher Leistungsfähigkeit erforderlich Nachteile: Parallelisierung muss aufwendig im Compiler erfolgen nicht alle Aufgaben parallelisierbar große Chipfläche erforderlich wegen Paralleleinheiten
- superskalare Mikroarchitekturen: Methoden zur Befehlszuteilung statisches Scheduling: (>compilergesteuert) dynamisches Scheduling: (>hardwaregesteuert)
- statisches Scheduling (In-Order-Execution) Befehle werden in ihrer logischen Reihenfolge von einer breiten Pipeline oder mehreren nebenläufigen Pipelines ausgeführt nutzt lediglich Compilertechniken zur Separierung unabhängiger Befehle und ist sehr unflexibel Pipeline beginnt mit mehreren gemeinsamen Stufen > gabelt sich später in mehrere nebenläufige Teilpipelines auf Teilpipelines können komplette Rechenwerke oder nur einzelne Funktionseinheiten für spezielle Befehle enthalten
- dynamisches Scheduling (Out-Of-Order-Execution) durch Präsenz mehrerer paralleler Puffer und Execution Units wird versucht Ressourcen- und Datenkonflikte zu eliminieren geeignete, bereits decodierte Befehle werden aus einem Pool ausgesucht und unabhängig von ihrer logischen Reihenfolge ausgeführt um Funktionseinheiten des Prozessors besser auszulasten und Wartesituationen zuvermeiden, erfolgt Befehlsausführung nicht in logischer, sondern effizientester Reihenfolge Befehle werden nicht durch Compiler, sondern zur Laufzeit der Programme durch Prozessor-Steuerung parallelisiert und durch Hardware auf Pipelines verteilt
- dynamische Befehlszuteilung:Scoreboard verwaltet über mehrere zentral im Leitwerk realisierte Hardware-Tabellen aktuellen Bearbeitungszustand bereits decodierter Befehle steuert asynchron die nebenläufige Ausführung der Befehle
- dynamische Befehlszuteilung:Tomasulo-Methode Hauptidee sind Reservation Stations, die Zwischenpuffer für Operanden darstellen wird Befehl ausgeführt, arbeitet dieser nicht auf den eigentlichen Registern, sondern auf den assoziierten Reservation Stations (Prinzip des Register Renamings)