Rechnerarchitekturen 2
Rechnerarchitekturen 2 (RA2) | |
---|---|
Vertiefungsrichtung | II |
Vorlesung | |
Vorlesender |
Prof. Fengler |
Abschluß | |
Art | k.A. |
Die Studierenden verstehen detailliert Aufbau und Funktionsweise von fortgeschrittenen Prozessoren und Rechnern. Die Studierenden verstehen Entwicklungstendenzen der modernen Rechner- und Systemarchitektur. Methodenkompetenz:
- Die Studierenden sind in der Lage, Anwendungsbeispiele und Architekturvarianten zu entwickeln. Die Studierenden analysieren Leistungskennwerte von Rechnern und Rechnersystemen.
Systemkompetenz:
- Die Studierenden verstehen das Zusammenwirken der Funktionsgruppen von fortgeschrittenen Rechnern als System und in Rechnersystemen. Sie erkennen den Zusammenhang zwischen Architektur, Leistung und Anwendung anhand praktischer Übungen.
Sozialkompetenz:
- Die Studierenden sind in der Lage, praktische Problemstellungen der Rechnerarchitektur in der Gruppe zu lösen. Entwicklung der Prozessorarchitektur: Complex-Instruction-Set-Computing (CISC), Reduced Instruction-Set-Computing (RISC); Befehls-Pipelining; Skalare Prozessorarchitektur, Very-Long-Instruction-Word-Architektur, Out of Order-Execution; Simultaneous Multithreading.
Entwicklung der Speicherarchitektur:
- Adresspipelining, Burst Mode und Speicher-Banking; Speicherhierarchie, Cache-Prinzip, Cache-Varianten; Beispielarchitekturen;
Spezialrechner:
- Aufbau eines Einchip-Controllers; Einchipmikrorechner des mittleren Leistungssegments, Erweiterungen im E/A-Bereich; Prinzip der digitalen Signalverarbeitung, Digitale Signalprozessoren (DSP), Spezielles Programmiermodell;
Leistungsbewertung:
- MIPS, MFLOPS; Speicherbandbreite; Programmabhängiges Leistungsmodell (Benchmarkprogramme); Parallele Rechnerarchitekturen: Single Instruction Multiple Data, Multiple Instruction Single Data, Multiple Instruction Multiple Data; Enge und Lose Kopplung, Verbindungstopologien Entwicklung von Anwendungsbeispielen, Architekturvarianten und Berechnung von Leistungskennwerten
Prüfung
Klausur | |
---|---|
Termin | |
Datum: | 23.02.2011 |
Zeit: | 00:00 - 00:00 |
Ort: | k.A. |
Am Ende des Semester gibt es eine Klausur die über 90 Minuten geht.
Einführung
RA1/ TI2:
- Grundlagen Prozessor, Speicher, E/A, Maschinenbefehle
RA2:
- Weiterführung zu modernen Prinzipien
- Parallelität
- Konkret Architekturen
- Leistung
Problem:
- Zeit
- Befehle
- Zeit
* Arbeit * Leistung ⇒ =
Ziel:
- Leistungserhöhung
Warum: • komplexerer Applikationen
• moderne Software-Technik braucht mehr Hardware Ressourcen
Möglichkeiten: 1. Variante: Takterhöhung (bei gleicher Architektur)
T kann nicht kleiner sein als Durchlaufzeit der kombinatorischen Logik
→ Logik wird schneller durch Halbleitertechnologie → T kleiner
→ f größer
z.Z.: • Frequenzerhöhung begrenzt aufgrund Taktlaufzeiten auf IC (Integrated Circuit) • Takt muss bei allen Teilen des Prozessors (in bestimmter Toleranz) gleich sein.
→ Laufzeitunterschiede sind problematisch
2. Variante: effektivere Architektur, möglichst ohne Verringerung von T
--> Parallele Strukturen
n-stufige Kombinatorik m-FlipFlops Kombinatorik Z k X Z Y Takt Periode T Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur
- 3 -
2. Prozessorarchitektur 2.1 Ausgangspunkt Grundstruktur aus TI2 (Folie 3_20)
OR - Operanden Register
ALE - Arithmetik Logik Einheit, Ex-Einheit
BR - Befehlsregister
AST - Ablaufsteuerung
BA - Befehlsadressregister
BD - Befehlsdecoder
Befehlsablauf 1. Befehl lesen Instruction Fetch IF 2. Befehl dekodieren Instruction Decode ID 3. Operand lesen (aus Register) Operand Fetch OF 4. Befehl ausführen Execute EX 5. Operand rückschreiben (nach Register) Write Back WB
Zeitbedarf der Phasen IF Zeit für Speicherlesen --> siehe auch Kapitel 3 BD Zeitverbrauch steigt mit komplexerer Logik OF, WB Zeitverbrauch weniger dominant EX Zeitverbrauch steigt mit komplexer Logik
AST Steuerwerk/Rechenwerk (=Datenpfad) BD BR BA OR ALE Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur
- 4 -
2.2 RISC – Architektur „Reduced Instruction Set Computer“ (Rechner mit reduziertem Befehlssatz) Grundidee: nur einige wenige einfache Befehle → für komplexe Funktionen werden mehr Befehle in der Abarbeitung notwendig → Einfacher schnellere Logik (vor allem ID, EX) → gleichartiger Ablauf fast aller Phasen und Befehle → weniger Maschinenbefehl zur Verfügung --> Compiler hat das zu lösen → nur 2 Gruppen von Befehlen I) verarbeitende Befehle ohne Operandenspeicherzugriffe (d.h. Operanden, Resultate nur in Registern) II) Operandenspeichertransport Load Speicher → Register Store Register → Speicher 2.3 CISC – Architektur „Complex Instruction Set Computer“ (Rechner mit komplexen Befehlssatz) Grundidee: viele, verschieden Befehle, von sehr einfach bis komplex → bis an das Niveau einer höheren Programmiersprache Ziel: Weniger Befehle leisten (funktionell) mehr Bsp.: • i86 – Befehlssatz
• Pico – Java – Prozessor: Byte – Code -> Maschinenbefehlsniveau (ausgestorben)
CISC Befehle werden typischerweise durch „Mikroprogrammierung“ realisiert. (Grundidee F_4)
Dekoder: zeigt auf 1. Befehl der zum Makrobefehl gehörigen Mikrobefehlssequenz (MS) µSequenzer: Arbeitet MS sequentiell auf, Makrobefehle erzeugen Steuersignale für Rechenwerk, können evtl. in Abhängigkeit von Statussignalen des Rechenwerks verzweigen Bsp. Ablauf IF Makrobefehl Makrobefehl Dekoder 1. Befehl der Mikrosequenz Nächster Befehl der Mikrosequenz → Ausgabe Steuersignal Verzweigung bei Statussignal ja Befehl der Mikrosequenz Ende der Mikrosequenz IF des nächsten Mikrobefehls Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur
- 5 -
Operandenadressierung: 0 – Operandenadressierung: Es gibt eine Vereinbarung wo Operanden prinzipiell stehen (Bsp. F_5: Oberste Stackposition TOS: Top of stack) 1 – Operandenadressierung: Es gilt die Vereinbarung dass der 1. Operand und somit das Ergebnis immer in einem festen Register steht (Akkumulator)
Der 2. Operand ist in den Registern adressierbar
2/3 – Operandenadressierung: Bei 2 – Operandenadressierung sind die Operanden in Registern frei wählbar wobei das Ergebnis den 1. Operanden überschreibt
Bei 3 - Operandenadressierung sind die Operanden und das Ergebnis
frei wählbar
→ Daher können bei CISC die Operanden auch direkt im Speicher stehen
(Also nicht in den Prozessorregistern)
Vor und Nachteile RISC/CISC
CISC (komplexere Befehle) RISC (einfachere Befehle) Leistungsfähige Maschinenbefehle (+) → Compiler wird einfacher → kleinerer Programmcode (ca. halb so groß) → Optimierung in μ -Befehlsebene nicht möglich Weniger Leistungsfähige Befehle (-) → Compiler erzeugt leistungsfähigere
Funktionalität
→ größere Programmcode → bessere Möglichkeiten zur Optimierung Steuerwerk, μ -Sequenzer, Befehlsdecoder → Aufwendige Logik notwendig → mehr Chipfläche → mehr Leistungsverbrauch Evtl. Niedrigere Taktfrequenz
Relativ einfache Logik → kleinere Chipfläche → weniger Leistungsverbrauch Höhere Taktfrequenz möglich Unregelmäßige Ausführungszeit Regelmäßige Ausführungszeit → ungünstig für μ - Parallelität → günstig für μ - Parallelität
µ - Parallelität: Fähigkeit, Teile der Befehle in Prozessor parallel abzuarbeiten.
Warum CISC? CISC besitzt Aufwärtskompatibilität (ältere Programme sollen als
Maschinencode dennoch lauffähig sein). Deshalb gibt es Prozessoren, die
CISC und RISC mischen
Siehe konkrete Architektur (Pentium) Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur - 6 -
2.4 Pipelining Grundidee: • Konventionell: Alle Phasen eines Befehls werden sequentiell
abgearbeitet, erst danach folgt der nächste Befehl
• Dies ist jedoch Verschwendung, da immer nur bestimmte Teile des
Prozessors pro Phase aktiv sind.
• Daher ist es möglich mehrere Befehle in unterschiedlichen Phasen
gleichzeitig im Prozessor zu bearbeiten
F_6 oberes Schema: Befehle werden nacheinander komplett abgearbeitet F_6 mittleres Schema: Die 5-fache Anzahl von Zeit Befehle sind möglich. F_6 unteres Schema: Superpipelining ermöglicht die 10-fache Anzahl von Zeit Befehle
Aufgrund der kürzeren Taktphasen ist hier auch höherer Takt möglich
Reale Probleme bei der Pipeline: 1. Datenkonflikte (F_7 oben) Folgebefehle benötigen unter Umständen ein vorangegangenes noch nicht berechnetes Ergebnis:
→ Das Ergebnis wird erst in der WB - Phase verfügbar
→ Somit kann OF des Folgebefehls erst 2 Phasen später durchgeführt werden Lösung(einfach): erkennen und Lücken einfügen
2. Sprungkonflikte entstehen insbesondere durch bedingte Sprünge (Schleifen). Erst in WB – Phase bekannt, ob und wohin gesprungen wird I) Es wird nicht gesprungen, da die Sprungbedingung nicht erfüllt war. Es liegt somit kein Problem vor, die in der Pipeline befindlichen Befehle werden weiter linear bearbeitet II) Es wird gesprungen, da die Sprungbedingung erfüllt war. Somit ist es notwendig, die in der Pipeline befindlichen Befehle abzubrechen. Da kein Befehl in der WB – Phase war, gibt es auch keine falschen Ergebnisse. Es entsteht jedoch eine Lücke von 4 Phasen
Konflikte führen zu Leistungseinbußen → Verbesserungen sind notwendig Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur
- 7 -
Verbesserungsmöglichkeiten: 1. Datenkonflikte Result Forwarding (Bypass)
Ergebnis der ALU des Vorbefehls wird über Multiplexer (MUX) direkt auf einen ALU-
Eingang für Folgebefehle geschaltet, WB findet parallel statt
2. Sprungkonflikte • Wird gesprungen? → spekulieren • Wohin wird gesprungen? → Speicher für Sprungziele
Sprungvorhersage:
1 – Bit – Vorhersage (F_9 links, Mitte) • BHT (auch BPB): Speichertabelle mit Adressen der letzten durchgeführten
Sprungbefehle und 1-Bit zur Vorhersage • Bei Auftreten einer dieser Adressen Auslesen und Vorhersage
• Bei falscher Vorhersage Korrektur • Zur Begrenzung der Tabellengröße und zur Begrenzung der Vergleichszeit werden nur
einige untere Bits der Adresse verwendet
2 – Bit – Vorhersage:
• Vorhersage wird erst bei zweiter falscher Vorhersage verändert
Beispiel F_10:
1 – Bit Vorhersage: 2 falsche pro Schleifendurchlauf 2 – Bit Vorhersage: 1 falsche pro Schleifendurchlauf
Schleifenzahl dekrementieren Sprung bei nicht Null ja nein n-ma l OF EX WB OF EX WB ↓ ohne Forewarding ↓ mit Forewarding Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur
- 8 -
Weitere Sprungvorhersage • Mit Branch Target Buffer (F_11)
F_12 oben: • bei Zieladresse verfügbar in ID-Phase → ein ungültiger Befehl bei gesprungen
• bei Verfügbarkeit Zieladresse in Phase IF → kein falscher Befehl bei gesprungen
Schlecht balancierte Pipeline • Bei gleichen Phasenlängen (z.B. 1 Takt je Phase → Takt Befehl 1 ) • Fertige Befehlsabarbeitung nach 5 Takten
Bsp.: IF: 0,5 T
ID: 0,5 T OF: 1 T Befehlsabarbeitung 5 Takte EX: 2 T 1 Befehl alle 2 Takte fertig WB: 1 T
Lösungsmöglichkeiten
• Superpipeline, wobei nur Phasen mit höheren Zeitverbrauch in Teilphasen zerlegt werden • Parallelisierung der Hardware für die zeitaufwändigen Phasen z.B. 2 oder mehr Ex - Einheiten (genauer in Folgepunkten)
Frühzeitig im Befehlsablauf verfügbar Schon zum ID Adresse des Befehls Sprungzieladresse Vorhersage Vergleich Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur
- 9 -
2.5 Superskalare Architektur (F_14) • IF, ID wie normale Pipeline • danach Instruction Sheduler (IS) • Aufteilung der Befehle auf die folgenden parallelen Einheiten nach 1. Einheit ist frei 2. Befehl passt auf spezialisierte Einheit
• OF, EX, WB parallel für die Befehle • Ex – Einheiten typspezialisiert
Bsp.: 5 Einheiten
2x Integer Einheit 2x FP – Einheit 1x Load-Store-Einheit
Alternativ bei Superskalar
• ID aufteilen in ID1 → für welchen Ex-Einheiten-Typ (schneller kleiner Dekoder) ID2 → vollständiges Dekodieren der Operation (langsamere parallele komplexe Dekoder) Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur - 10 -
2.6 Very Long Instruktion Word – Architektur (VLIW, F_16)
• Befehls Wort enthält n Einzelbefehle, die parallel vom Speicher gelesen werden • Befehle stehen so im Speicher, wie sie direkt zur passenden EX-Einheit zugeordnet werden müssen (z.B. durch geeigneten Compiler) Falls kein passender Befehl vorhanden → Leerbefehl (NOP) einfügen • paralleles Durchlaufen durch alle Phasen • zeitlich unterschiedliche Phasenlänge hier kein Problem
Bsp.: IF, ID: je 0,5 T 5 EX-Einheiten
OF,WB: je 1 T alle 5 Takte → 5 Befehle fertig EX: 2 T 1 Befehl: 5T
• bei Kombination von Pipeline und VLIW gilt das nicht mehr:
Pipeline → alle 2 Takte eine Befehlsgruppe VLIW: 5 Befehle je Befehlsgruppe → alle 2 Takte 5 Befehle
VLIW – dynamischer
• nach parallelen Einlesen des verkürzten VLIW Befehlswortes Zuordnung auf parallele Einheiten durch spezielle Einheiten. (Instruction Queue und Multi-Issue, F_17), kein Umsortieren
• Vorteil: geringere Befehlsspeicherbedarf durch nicht notwendige NOPs
Typische Anwendung VLIW
• IA - 64 • Digitale Signalprozessoren
Probleme Superskalarer VLIW
• Datenabhängigkeiten: Parallel auf EX-Einheiten können nur Befehle sein, die nicht datenabhängig sind.
• Lösung: Superskalar → Scheduler (Hardware)
VLIW → Compiler Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur - 11 -
2.7 Out of Order „Außerhalb der Reihenfolge“ Grundidee: Befehle der laufenden Befehlsfolge werden vorgezogen, falls Ex-Einheiten frei sind, weil der aktuelle Befehl auf eine belegte spezialisierte Ex-Einheit wartet.
Erweiterungen gegenüber Superskalar (F_18) gegenüber Folie 14: • Instruction Pool: Puffer für eingelesene abarbeitungsfähige Befehle für die verschiedenen Ex-Einheiten. • Scheduler + Zuordnung von Befehlen aus dem Instruction Pool zu freien
Retirement Unit: Ex-Einheiten nach folgenden Kriterien: ♦ Befehl passt auf Ex-Einheiten
♦ Bef. nicht datenabhängig von noch nicht beendeten Befehlen → Hardware ermittelt zur Laufzeit Datenabhängigkeiten • Recorder – Buffer: Sortieren der beendeten Befehle in die Reihenfolge des Programmcodes im Befehlsspeicher
d.h. WB erfolgt in dieser Reihenfolge
• Registerrenaming (RR): Zuordnung logischer Register zu physischen Registern.
Grund: Benutzen vorgezogener Befehle die gleichen logischen
Register, sind aber nicht datenabhängig, erhalten sie andere physische Register
Vergleich Superskalar mit Out of Order (F_21, F_22) • Modellprozessor mit 4 Befehlsarten (F_21 oben links) • Registersatz A – H (F_21 unten rechts) • Bsp. Programm (F_21 oben rechts) • Ablauf Superskalar (F_21 unten links) • Hier 2 Ex – Einheiten → 2 Befehle parallel möglich, die nächsten 2 erst nach deren Ende.
Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur - 12 -
Ablauf Superskalar Ablauf Out of Order (F_22) • Befehl 1, 2 gleichzeitig in Abarbeitung
Ende für beide nach 3 Takten, da einer LOAD (3 Takte)
• Befehl 4 ist datenabhängig von Befehl 3 (Register A)
→ Befehl 3 abarbeiten, Befehl 4 wartet (eine Ex- Einheit nicht benutzt)
• Befehle 4,5 gleichzeitig in Abarbeitung • Befehle 6,7 gleichzeitig in Abarbeitung
Ende für beide nach 3 Takten, da einer LOAD
• Befehle 8,9 gleichzeitig in Abarbeitung • Befehl 10 in Abarbeitung (letzter vom Ausschnitt) • 1, 2 starten parallel
1 nach 1. Takt fertig, 2. nach 3 Takten fertig
• 5, 6 starten parallel im 2. Takt
2 läuft weiter; 2 LOAD – Befehle können um einen Takt versetzt parallel arbeiten (LOAD – Pipeline)
• 7,8 starten im 3. Takt parallel, 7 weil 5 fertig, 8
nicht abhängig
• 3, 9 starten parallel im 4. Takt, 3 weil 2 fertig
ist, 9 ist nicht abhängig
• 4 und 10 starten parallel im 5. Takt, 4 weil 3
fertig ist, 10 weil 8, 9 fertig
Gesamt 10 Takte: Nichtausnutzung einer Einheit → 5 Takte Gesamt 5 Takte Beide Einheiten immer ausgelastet (gilt nicht immer)
Dicke schwarze Linie in F_21, F_22 • logische Befehlsende, immer in Reihenfolge, wie im Programmkode,
d.h. bei F_22 Befehle 5 bis 10 erst nach 5. Takt
Vergleich VLIW statisch, dynamisch und Out of Order (F_19)
Verfügbar: 4 Ex-Einheiten VLIW statisch: kein Befehl für EX-Einheit → Einfügen NOP (No Operation)
VLIW dynamisch: keine NOP nötig aber leere EX-Einheiten können nicht genutzt Werden (evtl. Erzeugt Compiler sowas wie Out of Order)
Out of Order: freie Einheiten können genutzt werden Rechnerarchitekturen Mitschrift 2. Prozessorarchitektur - 13 -
2.8 Simultan Multithreading (SMT)-Architektur Grundidee: • Prozessor bearbeitet nicht einen sequentiellen Befehlsstrom, sondern 2 (oder
mehrere), die datenunabhängig sind.
• 1 Befehlsstrom ≙ 1 Thread (sequentiell ausführbares Teilprogramm, parallel zu
anderen Threads ausführbar)
• Threads sind abschnittsweise datenunabhängig.
Struktur: • F_20: Hier für parallele Abarbeitung von 2 Threads • 2x IF / ID + RR, WB, Reg Satz
→ je Thread sind diese Phasen unabhängig parallel
• Instruction Pool: Wartende Befehle beider Threads
enthält durch 2 Threads deutlich mehr unabhängige Befehle.
• Scheduler belegt EX - Einheiten nach Bedarf
Datenunabhängigkeit, sonst gleichberechtigt für beide Threads
• Recorderbuffer → zeitlich richtige Reihenfolge plus Zuordnungen zu dem
richtigen Thread
2.9 Globale Gegenüberstellung zur Mikroparallelität
Rechnerarchitekturen Mitschrift 3. Speicherarchitektur - 14 -
3. Speicherarchitektur
IF → Speicherzugriff Load/Store → Speicherzugriff
• Nicht mehr Befehle bearbeitbar als aus Programmspeicher lesbar • Befehle mit Speicheroperanden bremsen Prozessor, falls diese deutlich langsamer sind
VLIW löst das über paralleles Lesen von n Befehlen gleichzeitig
→ aber sehr breiter Befehlsbus (256 bit)
andere Verbesserungen: • schnellere Speicher • günstigere Architekturen
3.1 Speicherhierarchie F_24: je näher am Prozessor • desto schneller • desto kleiner • desto teurer pro bit
Prozessor Register: unmittelbar bearbeitete Operanden Pipeline kleine Befehlsgruppe
Cache (evtl. mehrere Ebenen): Untermenge des Hauptspeicherinhaltes
Möglichst die Inhalte, die aktuell oft gebraucht werden.
Hauptspeicher: Alle aktuell geladenen Programme und Daten
Hintergrundspeicher: lokale ladbare Programme und Daten
LAN-Server: Ladbare Programme und Daten mehrerer Nutzen
Internet: Programme und Daten der Welt Rechnerarchitekturen Mitschrift 3. Speicherarchitektur
- 15 -
DW 2 DW 1 Abstand Speicherzugriffsende DW 3 DW 4 DW 5 DW 6 DW 7 DW 8 3.2 Mikroparalleltität im Speicher 3.2.1 Adresspipeline (F_25) Speicherzugriff:
A: Adresse übertragen
AD: Adresse Dekodieren
DT: Datentransfer
• j ist unabhängig von i, dann 50 % Zugriff • Phasen möglichst gleichlang 3.2.2 Interleaving (F_26) DRAM- Bänke → getrennte physische Speicher mit eigener AD, DT Fortlaufendes Lesen 32 bit-Word
• Zugriffszeit bleibt gleich, aber 4 x mehr Zugriffe in der gleichen Zeit
• geht nur, falls Speicherworte aufeinander folgen
A2 A3
0 0 Bank 0
1 0 Bank 1
0 1 Bank 2
1 1 Bank 3
1
2
3
4
5
6
7
8
Speicherzugriff
A, AD DT
A i DT i
A j DT j Rechnerarchitekturen Mitschrift 3. Speicherarchitektur
- 16 -
3.2.3 Burst Mode Grundidee: • Prozessor gibt Anfangsadresse aus
• Speicher liefert Inhalt dieser und der nächsten n (z.B.4) Datenworte ohne neue Adressierung
Effekt: • Einsparung Ausgabe der Folgeadressen
• Geht nur bei kontinuierlichem Lesen
F_27 oben: • Adresse (Zeile, Spalte) mit Adresstaktsignalen RAS, CAS vom Prozessor
zum Speicher • Speicher liefert 4 Datenworte (D1 – D4) unmittelbar hintereinander zurück. • Ready kennzeichnet gültige Daten
F_27 unten: • Burst + Interleaving
• Nach Ausgabe Zeile, Spalte für 1. Bank.
→ Sofort Ausgabe Zeile, Spalte für 2. Bank → danach fast unmittelbar hintereinander 4 DW der 1. Bank + 4 DW der 2.Bank 3.3 Cache – Speicher Bisher: Systembus
Neu: System- System-
bus bus’ • kleiner, prozessornaher Speicher ist schneller • aktuell oft verwendete Befehle + Daten sind im Cache (hohe Wahrscheinlichkeit, dass sie mehrfach verwendet werden) • Cache enthält Kopien von HS – Inhalten
Prozessor Hauptspeicher Prozessor Hauptspeicher Cachespeicher mit Cachelogik
Rechnerarchitekturen Mitschrift 3. Speicherarchitektur - 17 -
3.3.1 Vollassoziativer Cache:
• Zu jedem Datenwort ist im Cache die volle Hauptspeicheradresse abgespeichert • Bei der Suche, ob Datenwort im Cache vorhanden sind mit der gewünschten Adresse parallel Schritte bei Cache – Treffer (DW im Cache) entsprechend
F_28:
Treffer – A(j) im Cache Kein Treffer – A(j) nicht im Cache
1. A(j) vom Prozessor zum Cache – Controller 2. Vergleich von A(j) mit allen Adressen im Tag – Bereich des Caches 3. A(j) gefunden A(j) nicht gefunden 4. D(j) zum Controller A(j) zum Hauptspeicher 5. D(j) zum Prozessor D(j) zum Cache – Controller 6. D(j) zum Prozessor und parallel in den Cache schreiben
Grundprinzip beim Schreiben:
Treffer Kein Treffer
1. A(j) + D(j) zum Cache – Controller 2. A(j) zum Cache mit Adressvergleich 3. A(j) gefunden, neue D(j) auf Speicherplatz mit A(j) schreiben A(j) nicht gefunden, A(j), D(j) zusammen eintragen 4. Paralleler Start mit 2. A(j) + D(j) zum Hauptspeicher und dort schreiben
F_29: • Im Cache HS-Adressen in beliebiger Reihenfolge
• jeder Eintrag im Cache zeigt auf genau einem Hauptspeicherplatz
F_30: • Bsp. für Tag- Vergleich F_31: • Interne Struktur voll assoziativer Cache
Je Tag / Datenwert für Vergleicher ( ) notwendig
→ Im Folgendem: Strukturen mit verringertem Vergleichsaufwand = Rechnerarchitekturen Mitschrift 3. Speicherarchitektur
- 18 -
3.3.2 Direct Mapped Cache F_32 → Datensicht
A n-1
Seite m
• • •
Seite 1
Seite 0
A 0
Zuordnung: • Cache – Eintrag zu HS-Eintrag (F_32)
• Tag → Teil Seitenadresse der Gesamtadresse • Datenbereich im Cache ist physisch normal adressiert: A0, A1, A.....A k-1
Eintrag Seitenadresse = Tag k mit physischer Adresse in der Seite Idx i zeigt auf Hauptspeicheradresse Tag k , Idx i
z.B.. A31...A25, A24...A0
→ gleiche physikalische Adresse nur von einer Seite möglich!
Bereiche mehrerer HS-Datenworte hintereinander → mehrere Cache-Datenworte hintereinander mit gleichem Tag
Vergleich mit Tag nur in der Zeile, wo die physische Adresse mit der gesuchten Adresse (Teil Adresse in der Seite übereinstimmt) (F_33); → d.h. nur 1 Vergleich Adresse
A31 – A25 A24 – A0 Seitenadresse Offset der Seite Rechnerarchitekturen Mitschrift 3. Speicherarchitektur
- 19 -
3.3.3 Mehrwege-Caches (n-way-set-associative caches) Direct mapped 2-way steigende Effektivität, . steigender Aufwand . n-way fully associative
Spezialisierte Caches z.B.: • Trace Cache, für Sprungvorhersage
• TLC (translation lookaside cache); für MMU
Cache-Strategien
• Lade – Strategie: Zeitpunkt der Cache-Eintragung demand/predemand • Ersetzungs-Startegie: Auswahl der zu ersetzenden Eintragung • Schreib-Strategie: Verhalten beim Speicherschreiben
Lokalität: • räumlich (spatial)
• zeitlich (temporal)
Ersetzungsstrategien
• LRU (Last recently used) benötigte Bits: ! log 2 n • Pseudo-LRU • Random: „untere Schranke“ • A priori optimal „obere Schranke“ „Kohärenz-Bit“ / „Dirty-Bit“
Zugriffszeiten: • Arbeitsspeicher: t A
• Cache: t C (t C < t A )
Mittlere resultierende Zeit: A C m t T t T T ⋅ − + ⋅ = ) 1( t Cachegröße 1 Direct Mapped 2 way Rechnerarchitekturen Mitschrift 3. Speicherarchitektur
- 20 -
3.3.8 Cache und Harvard- Architektur
aus RA1:
Vorteil:
F_41 links: • bis Caches Harvard • danach zum Hauptspeicher Princeton → bei Treffer Vorteil Harvard
• Erhöhter Verbindungsaufwand nur im Prozessor-IC
→ fällt kaum ins Gewicht
F_41 rechts: Harvard, auch außen hoher Verbindungsaufwand
3.4 Prinzipien von Kapitel 2 und 3 in einem Bsp. Prozessor (Pentium)
Princeton - Architektur Harvard - Architektur
geringerer Schnittstellenaufwand Daten- und Programmzugriffe parallel Rechnerarchitekturen Mitschrift 4. Microcontroller und Digitale Signalprozessoren
- 21 -
4. Microcontroller und Digitale Signalprozessoren
Einchip-Rechner (µC, DSP)
• Alle wesentlichen Funktionseinheiten auf 1 IC
→ typischen Anwendung im eingebetteten Rechner NS: Nutzerschnittstelle
Nutzer
Bsp.: Motorsteuergerät (Automobil): Eingebettetes System: Motor Sensoren: Drehwinkel Kurbelwelle Aktoren: Einspritzung Kraftstoff
Zündkerzenansteuerung
Zusätzliche digitale Hardware: Leitungsansteuerung
Aktoren + digitale Schutzverriegelung
Nutzerinterface: Gaspedal, Drehzahlmesser Rechennetz: CAN-Bus zu den anderen Steuergeräten → Rechner-IC typisch sehr leistungsfähig
z.B. Tri-Core (Infinineon)
Einchip – Rechner mit DSP-Eigenschaften Merkmale • autonom • spezieller Rechner → auf Anwendung zugeschnitten • hohe Typenvielfalt • große Unterschiede in der Leistung
Globale Unterschiede µC DSP Steuerungsaufgaben • binäre Steuerung + einfache Regelung
geringe Rechenleistung E/A i.A. komplexer Kleinerer Speicher Typ. Befehle: bit-Befehle
Preis: niedriger Stromaufnahme: niedriger Signalverarbeitung • komplexe Regelung • Filter usw. hohe Rechenleistung E/A eingeschränkter Größerer Speicher Typ. Befehle: MAC (multiply and accumulate) Begrenzende Arithmetik Preis: höher Stromaufnahme: höher
Rechnernetz
Rechner IC Zusätzliche digitale und analoge Hardware NS Sensoren, Aktoren Eingebettetes System (Mechanik, Elektromechanik) Rechnerarchitekturen Mitschrift 4. Microcontroller und Digitale Signalprozessoren
- 22 -
4.1 µC der unteren Leistungsklasse Bsp.: F_43 ATtiny 15L • Prozessor – Core: Prozessor und internes Registerfeld (nutzbarer Datenspeicher); Datenbreite 8 bit
• Flash – ROM: Programmspeicher: mehrfach beschreibbarer ROM und
Programmierlogik (realisiert das mehrfach mögliche Programmieren)
• Daten – EEPROM: elektrisch programmier- und löschbarer ROM: stabile Daten (Anfangswerte; Werte, die ohne U B erhalten bleiben sollen) Nicht im Zeitraster Maschinentakt les- und schreibbar
• E/A: Prinzip: alle E/A – Funktionen benutzen die Anschlüsse, die sonst als parallel digital (siehe RA1, Kap. 5) genutzt werden Ø PortB 6 binäre E/A – Anschlüsse Ø Timer/ Counter 0/1: Funktion siehe RA1, Kapitel 5 Ø Analog – Comparator: vergleicht 2 kontinuierliche Eingangsspannungen U 1 und U 2 I. U 1 > U 2 à Ausgang “1“ II. U 2 > U 1 à Ausgang “0“ III. 2 1 U U ≈ à Ausgang nicht exakt angebbar • ADC: Analog Digital Converter
Umwandlung analoge Spannung in Binärzahl
• Analog MUX: Multiplexer; Durchschalten von Eingängen auf ADC • Interrupt Unit: Einfacher Interrupt – Controller für Ø ADC Ø Digitale Eingänge Ø Analog Comparator Ø Timer • Watchdog - Überwachung der Prozessorfunktion und Fehlerbehandlung
Timer : (Interrupt, Reset) Prinzip:
• Oszillator: Erzeugt Takt für µC
• Timing & Controll: Logische und Zeitsteuerung des gesamten Controllers
Max Wert Zählerstand WD-Timer RSP fällt auf Grund Programm- fehlers aus Interrupt bzw. Reset Rücksetzen durch Programm (RSP) RSP Rechnerarchitekturen Mitschrift 4. Microcontroller und Digitale Signalprozessoren
- 23 -
4.2 µC der oberen Leistungsklasse Bsp.: F_44 Infineon C167 Unterschiede gegenüber 4.1: • Prozessor: 16 bit Daten, leistungsfähigerer Befehlssatz • Programmspeicher: größer, hier als Rom, aber auch programmierbare
(intern, extern möglich) Varianten existent
• Datenspeicher: 2x RAM/ zusätzlich zu Registern, einer für Datenaustausch mit
CAN-Controller
• Harvard – Architektur: getrennte Busse zu Programm/ Datenspeicher und EA • E/A: große Pin-Anzahl (112)
Alle parallel digital möglich, andere E/A-Funktionen benutzen sie mit
• EBC: Externes Speicherinterface
ca.
3 1
der EA – Pins notwendig
• ADC: wie 4.1 geringe Auflösung (16 Kanäle über analoge MUX) • 2 serielle E/A Controller (universell) • 5 Zähler/ Zeitgeber (GPT, general purpose timer) • PWM – Einheit (Puls – Weiten – Modulation)
• CCOM (Capture and Compare)
Timer von CAPCOM
Bei “*” z.B. Interrupt, Signalwechsel binärer Ausgang, Einlesen t T=const. t = variabel zwischen 0 und T t t t T T T Tiefpass PWM analoge U als Analog - U Vergleichsspannung (variabel) Zähler- stand t T t t t 0
1*
t variabel t ~ U Rechnerarchitekturen Mitschrift 4. Microcontroller und Digitale Signalprozessoren
- 24 -
• Interrupt – Controller+ PEC (peripheral event Controller)
relativ komplex im Vergleich zu 4.1, aber auch zu Universalrechnern
• CAN – Controller Nicht bei allen Infineon C16x- Varianten
Controller für CAN (controller area network) Kommunikationssystem im Automobil (Bosch, 80er Jahre) mit angeschlossenem RAM (xRAM)
• WDT Watchdog Timer à 4.1 • OSC/PLL (Oszillator + Phase look loop) à Takterzeugung • XTAL Anschluss für externen Quarz als frequenzbestimmendes Bauelement
Zusammenfassung:
µC der unteren Leistungsklasse µC der oberen Leistungsklasse • Voll funktionsfähiger Controller auf 1 IC • Keine externe Speichererweiterung • Applikationen begrenzt durch internen Speicher) • Sehr eingeschränkte E/A Pins à E/A Fkt. teilen sich diese • Leistungsfähig • Besonders geeignet für Automotive Steuergeräte
4.3 Einchip – Rechner der obersten Leistungsklasse (z.Z.)
Bsp.: ARM7TDMI F_45/46 F_45: • Prozessorkern § 32 bit-Daten § Einige Eigenschaften eines DSP à siehe im Folgenden F_46: • µC mit 2x Prozessorkern je Prozessor
• 1 Cache • 1 x RAM >> C167 RAM (siehe 4.2) • Externer RAM über DMA – Schnittstelle (Direct Memory Access)
• Boot – BIOS extern • Kein interner ROM à Applikationsprogramme werden geladen • Peripherie: typisch für Multimedia – Anwendungen • Mit PC – Kopplung (USB – Schnittstelle) Rechnerarchitekturen Mitschrift 4. Microcontroller und Digitale Signalprozessoren
- 25 -
4.4 Digitale Signalprozessoren Grundidee digitale Signalverarbeitung:
• Durchgeführt durch Analog - Digitalumsetzer • T t , U bit abhängig von Kenngrößen des
Eingangssignals
• max 2 1 f T f T ≥ = (Abtasttheorem Shannon; max. im Signalspektrum vorkommende Frequenz)
Bsp. für Abtastfehler
• Differentialgleichungen werden Differenzengleichungen
Typische Gleichung ... 2 1 − − + + = k k k K cx bx ax y
• Berechnung in Echtzeit: Berechnung von Zeitpunkt k muss K+1 abgeschlossen sein
à Architektur von DSP auf diese Art der Berechnung spezialisiert, um möglist kleines T t zu erzielen
U t T t U bit Rekonstruierte Kurve (Interpolation) Rechnerarchitekturen Mitschrift 4. Microcontroller und Digitale Signalprozessoren
- 26 -
4.5 Bsp. DSP Texas Instruments TMS 320 C24x • Prozessor: 32 bit Daten • Mehrere Shifter à Multiplikation mit 2-er Potenzen
(z.B. zur Zahlenbereichsanpassung + Multiplizieren)
• ALU – Besonderheiten - MAC – Befehle (Multiply and Accumulate)
à für Polynomberechnung - Begrenzende Arithmetik
• Programmspeicher geht nach Typ ROM oder FlashROM • 2 parallele RAM’s • Peripherie à ähnlich C167… aber weniger parallele E/A • ITAG: spezielles serielles Testinterface à für HW- Unterstützung von Programminbetriebnahme und Test unter Echtzeitbedingungen
4.6 Beispiel TigerSHARC (Analog Device) F_49/50
• 2 Verarbeitungsblöcke mit typischen DSP – Architektur 32 bit, nach außen 128 bit Daten • 2 Adressierungseinheiten + Programmsequenzer mit Sprungvorhersage
• Interner Speicher mit 4 Kreuzschinenschalter (Crossbar) – Anschlüssen à s. Kapitel 5 • 4 Bussysteme parallel mit je 128 bit Daten und 32 bit (1xnur 21 bit) Adressen • Peripherie (F_50) über SOC-Bus (System on Chip) • Keine Standard Peripherie, sondern 4 Links für entweder schnelle
Prozessorkernmultiplikation oder Peripherie
• Interface zu übergeordneten Prozessor und externen RAM + ITAG (w.o.)
maximal darstellbarer Zahlenbereich Ergebnisse Rechnerarchitekturen Mitschrift 4. Microcontroller und Digitale Signalprozessoren
- 27 -
Beispielprogramm PID – Regelalgorithmus für Elektrometer r(n): Solldrehzahl u(n): Steuergröße y(n): Istdrehzahl e(n) = r(n) – y(n): Regelabweichung P: Proportionalanteil à K p I: Integralanteil à K I D: Differentialanteil à K D
K p, K I , K D entsprechend regelungstechnischen Verfahren Motorwerk anpassen
Diskrete Gleichung
14 ns Ausführungszeit da einige 1 - Takt- und einige 2 – Taktbefehle
MHz f f MHz ns f T T 35 2 70 14 1 max ≈ ≤ ≈ ≤
Verschiebung nach Takt
n-2 n-1 n
t
n-2 n-1 n
t
ASM – Programm
à F_53 Rechnerarchitekturen Mitschrift 5. Parallele Architekturen
- 28 -
5. Parallele Architekturen
Makroparallelität, d.h. nicht im Prozessor, sondern mehrere Prozessoren Klassifikation nach Flynn:
S: Single I: Instruction M: Multiple D: Data
SISD: Einprozessorrechner à kein Parallelrechner SIMD: Der gleiche Befehl wirkt zu einem Zeitpunkt auf unterschiedliche Daten MISD: mehrere Befehle wirken gleichzeitig auf dieselben Daten MIMD: mehrere Befehle wirken auf mehrere (unterschiedliche) Daten
Befehls- und Datenspeicher können gemeinsam aber auch getrennt sein
Wichtige Klassen
• SIMD: z.B. Vektorprozessoren • MIMD: z.B. Multicore, Rechnernetz
SIMD – Prinzip
• z.B. PC – Prozessoren • z.B. MMX – Entwicklung (F_63) hier vorwiegend für Bearbeitung von Multimedia-Daten z.B. Bilder, Bildsequenzen u.a.
Synchronisation: Programmabläufe auf verschiedenen Prozessoren beeinflussen sich gegenseitig Kommunikation: Programme unterschiedlicher Prozessoren tauschen Daten aus Synchronisation: Spezialfall der Kommunikation à Austausch von Steuervariablen
Mögliche Strukturen • Variante Kommunikation über Speicher Grundvariante Shared Memory 1 n-Tor-Speicher + n Prozessoren (F_59 oben links) Problem: n größer → häufiges Warten der Prozessoren
→ Alternativ
P P
SP SP
Kommunikation u.
Synchronisation Shared Memory P local Memory P local Memory Unterschiedlicher Adressbereich Rechnerarchitekturen Mitschrift 5. Parallele Architekturen
- 29 -
• Distributed Memory (F_59 oben rechts) Ø Jeder Prozessor hat lokalen Speicher, Kommunikiation über andere Mechanismen • Virtual Shared Memory (F_59 unten links) Ø Distributed Shared Memory mit gemeinsamen Adressraum: Ø Zugriff mit Adresse Speicher m durch Prozessor m → normaler Speicherzugriff Ø Zugriff von Prozessor m auf Speicher k mit m ≠ k → Abwicklung über zusätzliche Kommunikation • Shared memory Variante (Distributed Shared Memory) Ø m * n – Tor – Speicher
→ deutlich kürzere Wartezeiten
• Shared memory + Distributed Shared memory
→ konzentrierter Aufbau aufgrund - hoher Verbindungsaufwand - notwendige kurze Leitungslängen
Ø Enge Kopplung: gemeinsamer Speicher → hohe Kommunikationslast möglich Ø Lose Kopplung Kommunikation über E/A → niedriger Kommunikationsumfang
• Verbindungsnetzwerke
F_61
P/S: Prozessor/Speicher L: Link zur Kommunikation
Max. Kommunikationslänge (MKL) = max. notwendigen Verbindungen für die Kommunikation von 2 Prozessoren (MKL à KL 2007 ) a) Linie (F_61) MKL = n-1 n: Anzahl der Prozessoren b) Ring MKL =
(ganzzahliger Teil)
Ø Linie mit verbundenen Anfangs- und Endelement c) Zweidimensionaler Torus MKL = √
(s. Literatur)
Ø Matrix mit verbundenen Randelementen Ø mit 6 Links → dreidimensionale Strukturen
P/S P/S Verbindungsnetzwerk P/S L1 L2 L3 L4 Rechnerarchitekturen Mitschrift 5. Parallele Architekturen
- 30 -
Crossbar (Kreuzschinenschalter) F_62 links Ø Knoten: Prozessoren, Speicher Bsp.: Waagerecht: P Senkrecht: SP Ø Jeder Prozessor kann auf jeden Speicher geschaltet werden: Alle P gleichzeitig auf einen SP (schlechtester Fall) → max. Wartezeit n * Zugriffszeit Alle P gleichzeitig auf unterschiedliche Speicher → max. Wartezeit 1 * Zugriffszeit Im Realen: → dazwischen
Ø Sonderfall: Crossbar nur für Prozessoren
Hypercube Ø n – dimensionaler Würfel
n=3 Links/Prozessor: n
Aufwand MKL = 3 = n
→ relativ kurze MKL bei vergleichsweise geringem Verbindungsaufwand
P 1 P 2 P 1 P 2 physikalisch 1P Rechnerarchitekturen Mitschrift 5. Parallele Architekturen
- 31 -
5.2 Wichtige Parallele Architekturmerkmale in heutigen Rechnerkonzepten SIMD: • Erweiterung im Universalprozessor
Register: • Segmentieren in Vektorregister (bei reduzierter Operandengenauigkeit)
Operationen mit 2 Registern parallel auf alle Teile 1 Befehl, 1 BA → n (Bsp4) Operationen und Ergebnisse
• Anwendung vorwiegend für Multimediadaten
n-Core – Prozessoren:
• z.B. 2/4 – Core – Prozessoren
• je Prozessor separate Caches
• Hauptspeicher, EA gemeinsam • Verbindungsnetzwerk zw. Prozessoren und Speicher/Buscontroller Crossbar • Problem der separaten Caches: Konsistenz gemeinsam genutzter Daten
• Spezielle Protokolle sichern Konsistenz ab
Bsp.: MESI – Protokoll (F_65) Zustände
M: Verändert E: Exklusiv (nur 1 Prozessor) S: Geteilt (mehrere Prozessoren) I: Invalid (nicht verwendbar) Übergänge (nicht ausführlich)
→ durch Protokoll wird Zugriff langsamer
Mehrprozessorboard: • Prozessoren mit Speicherinterface und Buscontroller (Anschluss E/A) oder
Prozessorkommunikation
• jeder Prozessor hat separaten RAM • untere äußere Prozessoren haben EA(IO)-Anschluss • Verbindung: Matrix 4x2 • aus konstruktiven Gründen 2 boards
Rechnerarchitekturen Mitschrift 5. Parallele Architekturen - 32 -
Hochleistungrechner (Massiv Parallel) • Hauptanwendung z.B. Wettervorhersage
Komplexe Simulation
• Hauptkonkurrenz: Grids
Bsp.: IBM Blue Gene/L
Verbindungsarchitektur: Mischarchtitektur • Direkte Kopplung der Prozessoren Torus (F_68)
Jeder Prozessor im Torus ist auch Prozessor in der weiteren Verbindungsstruktur
Weitere Verbindungen:
• Gbit – Ethernet (Baum) • Jtag: Verbindungen zur Knotensteuerung (eigentlich spezielles Interface zur Teststeuerung und Auswertung in der IC-Produktion)
Knotenarchitektur: • 2 Prozessoren, je mit Level 1 (L1)-Cache und Floating Point Unit (FPU) • Je ein L2 – Puffer • L3: Cache gemeinsam oder Speicher • Gemeinsamer externer Speicher (RAM – Controller) • Schnittstellen • Verbindung: JTAG, Ethernet, Torusverbindung • Zusätzliche globale Verbindung (z.B. Globale Interrupts)Rechnerarchitekturen Mitschrift 6. Leistungsbewertung
- 33 -
6. Leistungsbewertung
Physikalisch
Wozu?
Ø Hersteller: Verkaufsargument
Ø Anwender: eigene Anwendungen im akzeptierten Zeitaufwand
Leistungsentwicklung
L* Rechnerleistung
L** Leistungsbedarf Standardsoftware
Gründe für höheren Leistungsbedarf
Ø Komplexität der Anwendungen steigt
Ø Moderne Softwaretechnik braucht mehr Leistung
Befehlsanzahl → Arbeit Ø Messen? Ø Welches Programm? Ø Oder F_70 • RISC: Gleich lange Befehle außer Load/Store • CISC: Welche Befehle der Länge 1,2,3 Takte treten wie häufig auf • Programmmix untersuchen → relative Häufigkeit p i für Befehlsgruppe i
Durchschnittsbefehlsdauer
Bsp.: Normalbefehle CPI = 1 p NB = 0,7
Load/Store CPI = 3 p LS = 0,3
CPI G = 0,7 × 1 + 0,3 × 3 = 0,7 + 0,9 = 1,6 d.h. 1,6 Takte/Befehl Taktperiode T P [µs] Frequenz f=1GHz = 10³ MHz
2000 2005 2010 L* LB** Rechnerarchitekturen Mitschrift 6. Leistungsbewertung
- 34 -
Relative MIPS Ø Bezogen auf die historische VAX 11/780 (1 MIPS) Ø Bsp. 625 MIPS absolut = 625 relativ
Probleme von MIPS – Leistung Ø Befehlsmix repräsentativ? Ø Cache? Befehle haben kontextabhängig unterschiedliche Ausführungszeiten Ø Einflüsse von Betriebssystem, Compiler u.ä. → Alternative: Benchmark Programme • Synthetische oder Sammlung realer Programme
→ deren Ausführung messen → Vergleich • Ausgangspunkt Hochsprachenprogramm + Abarbeitung unter Betriebssystem möglich
Gleitkommaleistung Floating Point Operations per Second (FLOPS) Ø Berechnung ähnlich MIPS Ø Aber ausschließlich Gleitkomma – Operationen (i.a. gewichtet) Ø F_72
Speedup Parallele Architekturen Ø Wie viel wird ein Programm schneller abgearbeitet, wenn es von einem Prozessor ausgehend auf n Prozessoren aufgeteilt wird Ø ideal
Ø real
Serieller Anteil → nicht parallelisierbar
→ Kommunikationsoverhead i.a. größer bei Aufteilung auf mehr Prozessoren
1 1 2 3 4 2 3 4 optimale Prozessoranzahl o(n) überwiegt n Prozessoren
Vorträge
Nochmal alle Vorträge zusammen: Klick