EPIC, IA-64 und Itanium

Preview:

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

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

41 Bit 41 Bit 41 Bit 5 Bit

128 Bit Bundle

Instruktion Template

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

Itanium Übersicht

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

Recommended