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