220 likes | 360 Views
EPIC, IA-64 und Itanium. Eine Kurzpräsentation von Jan Hübbers bei Prof. Dr.-Ing. Risse im Fach Labor Rechnerstrukturen an der Hochschule Bremen 12.12.2002. Zielsetzung des Itaniums. Parallelität ohne Laufzeit Overhead Minimierung von Latenzzeiten Überwindung von Ressourcenknappheit.
E N D
EPIC, IA-64 und Itanium Eine Kurzpräsentation von Jan Hübbers bei Prof. Dr.-Ing. Risse im Fach Labor Rechnerstrukturen an der Hochschule Bremen 12.12.2002
Zielsetzung des Itaniums • Parallelität ohne Laufzeit Overhead • Minimierung von Latenzzeiten • Überwindung von Ressourcenknappheit
Was ist EPIC? (1) • Explicit Parallel Instruction Computing • Compiler findet parallelisierbare Instruktionen (ILP, Instruction Level Parallelism) • Reorganisation des Bytecodes zu parallelen Datenströmen zur Compilerzeit • Hohe Ausnutzung der parallelen Funktionseinheiten • Mehrere parallele Instruktionen pro Takt
Was ist EPIC? (2) • Sehr starke Determinierung der Nutzung der Hardware durch den Bytecode • Sehr gute Compiler nötig • Sehr(!!) gute Assembler-Programmierer nötig • Einsparung von komplexer Out Of Order Logik
Was ist IA-64? • Neues Instuction Set (ISA) von Intel • X86 (IA-32) direkt ausgeführt • Very Long Instruction Word (VWLI) 128 Bit • 3 Instruktionen à 41 Bit + 1 Template à 5 Bit 128 Bit Bundle 41 Bit 41 Bit 41 Bit 5 Bit Template Instruktion
IA-64 ISA • 3*7 Bit Operanden = 21 Bit • 14 Bit Opcode • 6 Bit Prädikaten-kombinationen • Insgesamt 1 Bundle • Group = mehrere Bundles bis Stop-Bit
Itanium Pipeline • 10-stufig In-Order-Execution • 6 parallele Stränge = 2 Bundles
Itanium Daten • 3 Branch Einheiten • 2 Integer Einheiten • 2 Integer/Load/Store Einheiten • 2 FP Einheiten • L1 Cache 16KB+16 KB • L2 Cache 96 KB • L3 Cache 2 MB / 4 MB on Module • 800 MHz • 25 Mio. Transistoren
Itanium Register • 128 generelle Integer Register, 64 Bits breit • 128 FP Register, 82 Bits breit • 64 1-Bit Prädikat Register • 8 Branch Register, 64 Bits breit
Verzweigungen • Prädikate • Beide Seiten einer Verzweigung ausführen • Nacher die falsche Verwerfen • Vermeidet Misprediction • Vorhersage • Statisch durch Programmierer • Dynamisch durch CPU
Hinweise & Spekulationen • Vorzeitiges Laden/Speichern von Daten • Vor Verzweigungen möglich • Advanced Load Address Table (ALAT ) verhindert Inkonsistenzen • Ebenfalls determiniert (Programmierer / Compiler) • Bis hin zu Vorhaltezeit und Ort von Daten
Register Rotation (1) • Software Pipelining von Schleifen • Enorme Zeitersparnis • Überlappende Schleifendurchläufe • Iteration N benutzt logisch das gleiche Register wie Iteration N+1 • Physikalisch jedoch unterschiedliche Register • Überwachung mit Prädikaten
Register Rotation (2) • Effizienter Prozedur Wechsel • Rotation bildet einen Stack nach • Kein „push/pop“ nötig • Im Falle eines Register-Überlaufs • Register Save Engine (RSE) pusht/popt transparent • Aber CPU stall
Fliesskomma Einheit • multiply-accumulate (MAC) • Integermultiplikation in der FPU • Dedizierte Transfer/Transformationsmodi • SIMD in der FPU
Speicher Anbindung/Verwaltung • 2^36 Bit phys. Adressen (64 GB) • 2,1 GB/s bei 2*133MHz*64 Bit
Itanium 2 • Bessere Speicheanbindung 6,4 GB/s 2*200MHz*128 Bit • L3 Cache on Die • 8 Pipeline Stufen • 2^44 Bit phys. adressierbar (18 TB)
Betriebssysteme • MS .NET Server • HP-UX • Linux – 64 (Trillian)
Mögliche Anwendungen • Wissenschaftliche Bereiche • Starke FPU • Grosse Datenbanken • Grosser Speicherbereich
Betriebsarten • 64-Bit Modus • Für 64-Bit OS • IA-64 Befehlssatz • IA-32 real mode, IA-32 V86 mode, IA-32 protected mode • Von IA-32 Modi kann IA-64 aufgerufen werden • 32-Bit Modus • Für 32-Bit OS • PA-RISC Emulation
Pro und Contra • Pro • Weg von x86 • Großer adressierbarer Speicherbereich • Ausnutzung von Parallelität • Contra • „Zu neu“ • Migration nicht zwingend • 64-Bit Software nicht ausgereift • I/O Performance nicht so toll
Ausblick • Itanium 1 war ein Flopp • Itanium 2 tut sich schwer • Opteron zZ attraktiver • Allerdings ist zB HP hinter Itanium • .Net Server für IA-64 • Langfristig setzt sich IA-64 gegen x86-64 durch