Rechnernetze und Organisation

Transcription

Rechnernetze und Organisation
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Rechnernetze und Organisation
Rechnernetze und Organisation
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RISC
RNO
VO07_risc
1
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Übersicht
Rechnernetze und Organisation
Motivation
RISC-Merkmale
RISC-Instruktionsformat
Pipelining
Sparc, MIPS, Arm, PowerPC
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
2
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Motivation
Warum RISC
– Compiler nutzen komplexe CISC-Instruktionen kaum
• Nur 80% der Instruktionen überhaupt benützt
• Die häufigsten Instruktionen sind sehr einfach
– 80% der ausgeführten Instruktionen nützen nur 20% des Instruktions-Sets
» Einfache Instruktionen mit einfachen Adressierungsarten am häufigsten
Rechnernetze und Organisation
– Geänderte Speicher- / Prozessor-Verhältnisse
• Viel größere Speicher
– Speicher wird günstiger
• Speicher relativ langsam
– Prozessortakt viel schneller als Speicher
– CISC-Prozessoren zu komplex
• Langsamer Takt
RISC-Grundidee: „Make the average case fast!“
– Einfache Instruktionen
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
schnell ausführen
RNO
VO07_risc
3
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Typische RISC Merkmale
Instruktionsformat
– Alle Instruktionen sind 32-Bit lang
Rechnernetze und Organisation
Nur einfache Instruktionen
Die meisten Instruktionen benötigen einen Takt
Einfache Datentypen
Instruktion benötigt einen Takt für Ausführung
– Instructions-Pipeline
Register
– Mehr Register: 32 – 128 32-Bit Register
– General-purpose Register
Nur einfache Adressierungsarten
Auf Architektur abgestimmte Compiler
32-Bit oder 64-Bit Wortbreite
Caches zum Puffern von Daten und Instruktionen
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
4
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Anwendungsgebiete von RISC-Prozessoren
Mobile Geräte
Nokia N90 UMTS Mobiltelefon
– Handys, PDA, MP3-Player
Router
Spielkonsolen
Arm9 Prozessor
220 MHz
48 MB RAM
Foto © Nokia
Rechnernetze und Organisation
– XBox, Sony Playstation, Nitendo
Apple MACs
– Power Mac G5, iMac,
Powerbook,
• Mac Mini nun auch mit x86
Workstations
MS XBox360 Spielkonsole
PowerPC (Triple Core)
3.2 GHz
512 MB RAM
– Sun Workstations
– HP Workstations
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
Foto © Microsoft
RNO
VO07_risc
5
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
RISC Prozessoren
Sparc (Sun Microsystems)
– 32- und 64-Bit Prozessor
– In Sun Solaris Workstations eingesetzt
MIPS (Mips)
– 32- und 64-Bit Prozessor
Rechnernetze und Organisation
Foto © Sun
Microsystems
ARM (Arm)
– 32-Bit Prozessor für Embedded
– XScale
PowerPC (IBM)
– Apple MAC
– Foto: Power5 :
• 8 Dual-Core Chips in einem Gehäuse
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
Foto © IBM
RNO
VO07_risc
6
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Load-Store Architektur
Instruktionen verändern nur Prozessor-Register
Speicherzugriff nur über Load- und Store-Instruktion
– Load: Holen von Wert in Prozessor-Register
– Store: Speichern von Register-Wert in Speicher
– Keine Adressierungsarten für Speicherzugriff
Rechnernetze und Organisation
Speicherzugriffe sind teuer
– Benötigen Zeit und Programmspeicher
– Speicher-Stack ist ungünstig
Mehr Prozessor-Register (32)
– Vermeiden Speicherzugriffe
– Auch für Parameterübergabe
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
7
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
RISC Instruktionsformat
32-Bit Instruktionsformat
– Einheitliches Format für alle Instruktionen
• Selbe Länge: 32-Bit
– Instruktion-Fetch wird vorhersagbarer
• Nächste Instruktion: Instruction-Pointer IP + 4
Rechnernetze und Organisation
– Pipelining einfacher möglich
• Dekodierung der Opcodes erleichtert
– Positionsfelder (z.B. Quell- und Zielregister) an selber Stelle
• 3 Operanden
6
5
Arithmetic
Opcode
Source1
Source2 Destination ShiftAmt
Branch
Opcode
Source1
Source2
Jump
Opcode
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
5
5
5
6
Function
Address / Immediate
Target address
RNO
VO07_risc
8
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Instruktions-Pipeline
Unterteilung der Ausführungseinheit in Stufen
Data
Memory
ALU
RegisterFile
Instruction
Memory
SRC1
SRC2
DEST
IMM
+4
Rechnernetze und Organisation
Instruction
Pointer
– 3-stufige Pipeline: Fetch, decode+operand, exec+store
– 4-stufige Pipeline: Fetch, decode+operand, exec, store
– 5-stufige Pipeline: Fetch, decode, operand, execute, store
Fetch
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
Decode +
Registers
RNO
Execute
Memory
Write
Back
VO07_risc
9
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Pipelining
Beispiel: Wäschewaschen
–
–
–
–
Waschen
Trocknen
Stapeln
Einräumen
Ohne
Pipelining
Anna
Bernd
Cornelia
Zeit
Mit
Pipelining
Waschen
Trocknen
Rechnernetze und Organisation
Bügeln
Ablegen
Pipelining beschleunigt nicht einzelne Instruktionen!
– Pipelining beschleunigt Sequenz von Instruktionen
– 1 Ladung Wäsche (0% Beschleunigung)
• Ohne Pipelining: 4 Zeiteinheiten;
Mit Pipelining: 4 Zeiteinheiten
– 4 Ladungen Wäsche (56% Beschleunigung)
• Ohne Pipelining: 16 Zeiteinheiten;
Mit Pipelining: 7 Zeiteinheiten
– 816 Ladungen Wäsche (74,9% Beschleunigung)
• Ohne Pipelining: 3264 Zeiteinheiten;
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
Mit Pipelining: 819 Zeiteinheiten
VO07_risc
10
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Instruktions-Pipeline
JMP Sub1
[...]
Pipelines ermöglichen Parallelität
– Pipeline-Stufen („Stages“) arbeiten parallel
• Jede Stufe bearbeitet andere Instruktion
Rechnernetze und Organisation
– In jedem Takt wird eine Instuktion
begonnen und eine beendet
• Nach gewisser Vorlaufzeit
• Befehlsfrequenz = Taktfrequenz
– Speedup bestimmt durch
• Anzahl der Pipeline-Stufen
• Langsamste Stufe
• Pipeline-Füllungsgrad Clock
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
Sub1: ADD
MOV
SHR
CMP
JNZ
EAX,
ECX
[EDI], EAX
EAX,
4
EAX,
10
Failure
JMP
Fetch
ADD
Fetch
MOV
Fetch
SHR
Fetch
CMP
Fetch
JNZ
Fetch
Decod
JMP
Decod
ADD
Decod
MOV
Decod
SHR
Decod
CMP
Decod
Oprnd
Oprnd
JMP
Oprnd
ADD
Oprnd
MOV
Oprnd
SHR
Oprnd
Exec
Exec
Exec
JMP
Exec
ADD
Exec
MOV
Exec
Write
Write
Write
Write
JMP
Write
ADD
Write
VO07_risc
11
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Instruktions-Pipeline
Durchsatz versus Latenz: Was ist Performance?
– 1 Instruktion dauert fünf Takte
• Latenzzeit
– Zeit um ein Datum zu berechnen
– In 5 Takten 5 Instruktionen
Rechnernetze und Organisation
• Durchsatz
– Instruktionen pro Zeit
– Mips: Million instructions per second
Durchsatz ist wichtiger als Latenz
– Beispiel: Flüssiges Video statt minimale Zeit von DVD zu TFT
– Latenz nur selten von Bedeutung (Real-Time-System)
Pipelining verbessert Durchsatz
– Latenz wird eher schlechter
• Mehr Takte mit kürzerer Periodendauer
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
12
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Instruktions-Pipeline
Dependencies („Abhängigkeiten“) / Hazards („Gefahr“)
– Datenabhängigkeit zwischen Instruktionen
• Pipeline-Stufe benötigt noch zu berechnende Information
• Kann Stalls („Blockierung“) bewirken
– Pipeline-Stufe nicht mit sinnhafter Instruktion gefüllt werden
– Beispiel1: Bedingter Sprung
CMP AL, `q`
JZ
exit
• Exekution nachfolgender Instruktionen wird aufgehalten
Rechnernetze und Organisation
– Beispiel2: Sequenz von Berechnungen
MOV EAX, 10
• Instruktion benötigt Ergebnis von vorheriger
ADD EBX, EAX
– Lösung: Pipeline-Stalls
• Einfügen von Leerzyklen
Mit zunehmender Pipeline-Tiefe steigt Hazard-Wahrscheinlichkeit
– Detektieren von Dependencies ist aufwändig
• Umfangreiche und komplizierte Hardware nötig
– Lösen von Dependencies durch Stalls
• Senkt Auslastungsgrad der Pipeline
– Geringerer Durchsatz
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
13
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Pipelining versus Multi-Processing
Multi-Processing
– Auch eine Form der Parallelität
– Benötigt mehr Hardware-Aufwand
• Zumindest doppelt so viel (Dual Core)
– Muss von Applikation unterstützt werden
Foto © Intel
Rechnernetze und Organisation
• Für SW-Entwicklung nicht transparent
Pipelining ist für ProgrammiererInnen transparent!
Kosten von Pipelining sind geringer
– Nur zusätzliche Register
– Kompliziertere Controll-Unit
• Aufspüren und lösen von Dependencies
1
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
1
RNO
VO07_risc
14
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Compiler
Compiler auf Architektur abgestimmt
– Registeranzahl
• Statt Stack
– Pipeline-Eigenheiten
• Vermeiden von Stalls durch Dependencies
– Vermeiden von Cache-Misses
Compiler werden mit Hardware entwickelt
Rechnernetze und Organisation
– Gleichzeitige Entwicklung
Techniken
– Gezieltes Ausnützen von parallelen Ausführungseinheiten
– Reordering von Instruktionen
• Um Stalls zu vermeiden
– Einfügen von Delayed-Slot- oder Leer-Instruktionen
– Verwenden von Bibliotheken
Assembler
– Bei super-skalaren Architekturen nicht effizient
• Pipeline-Eigenschaften und Ausführungseinheiten meist schlecht genützt
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
15
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
RISC-Prozessor: Sparc
Offene Prozessor-Architektur mit kostenloser Lizenz von Sun
Microsystems (1985)
– Scalable Processor Architecture (Sparc)
32-Bit Prozessor mit 64-Bit Instruktionen
– Sparc V9 (Ultra Sparc I) ab 1995!
Rechnernetze und Organisation
69 32-Bit Instruktionen
Skalierbare Anzahl General-Purpose Register
– 40-520 Register je nach vorhandenen Ressourcen
Eigenheiten:
Logo © Sun
– Stack-Cache in CPU: Register-Windows
• Unterteilung des Registersatzes in Windows
– Instruktionen sehen nur Ausschnitt (32 von 100)
– Verschieben des Ausschnitts bei Calls / Returns
»
Überlappung der Ausschnitte für Parameterübergabe
– Pre-Execution: Instruktion nach Branch wird immer ausgeführt
• Um Pipeline-Stall zu verhindern
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
16
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
RISC-Prozessor: MIPS
Seit 1991 entwickelt (Hennessy)
– Standford Universität + MIPS
Anwendung
– Cisco Router, Nitendo 64, Playstation 2, Playstation portable
Rechnernetze und Organisation
32 General-purpose Register
94 32-Bit Instruktionen
1-Takt Instruktionen
5-Stage Pipeline
Produkte: MIPS R2000, R3000,
Logo © Mips
– R4000: 64-Bit Erweiterungen
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
17
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
RISC-Prozessor: ARM
32-Bit RISC Computer von Advanced RISC Machines
– Englische Entwicklung ab 1983
– Lizenzvergabe an Hersteller
Besonderheiten
Logo © ARM
– 16-Bit Instruktionen (Thumb-Instruktionen)
Rechnernetze und Organisation
• Sparen Speicher
• Werden dekomprimiert
– Verschiedene Versionen (Arm4, .. Arm7, Arm9, ...)
• Funktionsumfang angepasst an Anwendung
–
–
–
–
Digitales Signal Processing (DSP)
Java Beschleunigung (Jazelle)
Media: Single Instruction Multiple Data (SIMD)
Virtueller Speicher
Anwendungen
– Apple iPod, ...
Intel XScale
– Basierend auf ARM mit Modifikationen
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
18
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
RISC-Prozessor: PowerPC
32-Bit und 64-Bit Prozessor
– Seit 1991: IBM, Apple, Motrola
– Für Embedded-Bereich und PCs
64-Bit Prozessor (G5)
Logo © IBM
– Dual-Core seit 2005
Rechnernetze und Organisation
Anwendung
– Computer: Apple MacIntosh, IBM pSeries Server
• Mac OS X, Linux
– Spielkonsolen: MS XBox 360, Sony Playstation 3
– Großrechner
• Gute Skalierbarkeit für Mehrprozessor-Systeme
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
19
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Weitere Konzepte
VLIW / EPIC
– Z.B. Intel Itanium
– VLIW: Very long instruction word
• 128-Bit breite Instruktionen
• Oft aus parallel auszuführenden Instruktionen zusammengesetzt
– EPIC: Explicitly parallel instruction computing
Rechnernetze und Organisation
• Compiler kennt Architektur des Zielprozessors
• Compiler ordnet Aufgaben selbst Ausführungseinheiten zu
– EPIC enthält viele RISC-Ideen
• Superskalare Pipeline-Architektur
– Compiler
• Übernehmen viel von Komplexität
– Ziele
• Vermeiden von Sprüngen
• Minimieren von Speicherzugriffen
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
20
IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie
Zusammenfassung
RISC
– Vereinfachtes Instruktions-Set
• Ermöglicht schnelle und einfache Hardware-Implementierung
– Pipelining als Konzept
• Um hohen Durchsatz zu erzielen
• Einfache und einheitliche Instruktionen sehr hilfreich
Rechnernetze und Organisation
RISC entwickelt sich weiter
– Superskalare Ausführungseinheiten
– VLIW, EPIC
Literatur:
– Rob Williams, „Computer Systems Architecture“,
Addision-Wesley, 2001: Kapitel 21, 22.
Dr. Johannes
Professor
HorstWolkerstorfer
Cerjak, 19.12.2005
RNO
VO07_risc
21

Documents pareils