Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der Parallelrechner auf einem Chip Referenten:Hansjörg Zingerle Werner Mairegger Die Intel Architecture 64 (IA-64)

Ähnliche Präsentationen


Präsentation zum Thema: "Der Parallelrechner auf einem Chip Referenten:Hansjörg Zingerle Werner Mairegger Die Intel Architecture 64 (IA-64)"—  Präsentation transkript:

1 Der Parallelrechner auf einem Chip Referenten:Hansjörg Zingerle Werner Mairegger Die Intel Architecture 64 (IA-64)

2 IA-64 Einführung Kostenentwicklung für Prozessorherstellung

3 IA-64 Einführung CISC

4 IA-64 Einführung Was ist EPIC? Komplett neue Prinzipien! EPIC (Explicitly Parallel Instruction Computing)

5 IA-64 Einführung Was charakterisiert einen Mikroprozessor? Die Architektur Der Befehlssatz Die Verarbeitungsmethodik Den Prozessortyp

6 Architektur(General Register) IA-64 besitzt 128 General Register GR0 – GR bit breit + 1 bit NaT(Not a Thing) Sind unterteilt in 2 Partitionen: 1 GR0 – GR31 Static GR 2 GR32 – GR127 Stacked GR

7 Architektur (Floating-point Register) IA-64 besitzt 128 Floating-point Register FR0 – FR bit breit Sind unterteilt in 2 Partitionen: 1 FR0 – FR31 Static FR 2 FR32 – FR127 Rotating FR

8 Architektur(Predicat Register) IA-64 besitzt 64 Predicat Register PR0 - PR63 1 bit breit Sind unterteilt in 2 Partitionen: 1 PR0 - PR15 Static PR 2 PR16 – PR63 Rotating PR

9 Architektur(Branch Register) Der IA-64 besitzt 8 Branch Register PR0 – PR7 mit 64-bit Breite

10 Architektur(Register) Integer RegisterFB RegisterBranch Register Predicat Register 32 Static 96 Rotatet 32 Static 96 Rotatet 16 Static 48 Rotatet NaT bit GR0 GR31 GR32 GR127 FR0 FR31 FR32 FR127 BR0 BR8 PR0 PR15 PR16 PR63

11 Architektur(Caches) L1 Data Cache 16 KB on Chip L1 Instruction Cache 16 KB on Chip L2 Unified Cache 96 KB Memory

12 Verarbietungsmehodik (Befehlsformat) IA-64 unterstützt Big- und Little-Endian bit order (z.B.HP-UX 11,Windows) Befehle sind zu dreierBündeln zusammengefaßt,+Tamplate 64 bit virtual Adress Space HW unterstützt 64 bit Pointer 18 Billionen Gigabites sind adressierbar 2^64 = 18,446,744,073,709,551,616

13 Befehlssatz(Befehlsformat) Instruction2Instruction1Instruction 0template bits41 bits 41 bits 5 bit Die Befehle des IA-64 sind gebündelt(bandle)

14 Verarbeitungsmethodik (RegisterRotating) Motivation: weniger Schleifendurchläufe weniger Sourcecode höherer Datenfluß mit weniger Befehlen gleichzeitige Zuteilung von Schleifen and die HW

15 Verarbeitungsmethodik (Register Rotating) IA-64 Traditional Load in R36 Load in R37 Load in R38 Load in R39 4 instructions Load in R36 1 instruction R36 R37 R38 R39 R40 R36 R37 R38 R39 R40

16 Verarbeitungsmethodik (Register Rotation) 36: 35: 34: 33: 32: PalmSpringsisSunny RRB=0 L1 R35 Palm

17 Verarbeitungsmethodik (Register Rotation) 36: 35: Palm 34: 33: 32: Palm SpringsisSunny St1 R35 RRB=0 Ld2 R34 Springs

18 Verarbeitungsmethodik (Register Rotation) 35: Palm 34: Springs 33: 127: 126: PalmSprings PalmSpringsisSunny St2 R35 RRB=-1 Ld3 R34 is

19 Verarbeitungsmethodik (Register Rotating) 34: Springs 33: is 32: 127: 126: PalmSpringsis PalmSpringsissunny St3 R35 RRB=-2 Ld4 R34 sunny

20 Verarbeitungsmethodik (Register Rotating) 33: is 32:sunny 127: 126: 125: PalmSpringsis PalmSpringsissunny St4 R35 RRB=-3 sunny

21 Prozessortyp(Adressierung) Mit so vielen Bits... Kann mann so viele Flächenvehältnis Adressen ansprechen 82^8=256 Visitenkarte 162^16=65536 Schriebtisch 322^32=4.29*10^9 Häuserblock 642^64=1.89*10^19 Erdoberfläche

22 Prozessortyp(Adressierung) Wie sieht die virtuelle Adresse des IA-64 aus? virtual region number virtual page number offset virtual address

23 Prozessortyp(Adressierung) 64-bit Addresse Flacher virtuelle Speicher 2^64 bytes ^64 0

24 Prozessortyp(Adressierung) 64-bit Addresse ^64 0 pages

25 Prozessortyp(Region Register) bits beinhalten die 24 bit region identifiers(RIDs) Region Register erlauben effizientes Managment von Prozessen für Multi-tasking Anwendungen Region Register werden vom Betriebssystem zur Speicherverwaltung benützt (z.B. Region 0 für User Anwendungen, Region 1 für DLLs oder Region 7 für Daten vom Betriebssystem.

26 Prozessortyp(Adressierung) Prozessor arbeitet mit Kopie von Daten die im Voraus gefertigt werden die Daten werden in Chaches zwischengelagert Wo sich die Kopieen befinde ist in den TLBs vermerkt (TLB = translation look-aside buffer) Region Register (24bit)

27 Prozessortyp(virt.memory modell) ###### RID RRXvirt. page #offset Physical Address TLB RIDVirtual Page#Physical Page#Protection

28 Architektur(FunktionsEinheiten) 2 Integer units for A-type und I-type instructions 2 Floating-point units for F-type instructions 2 Memory units for M-type instructions 3 Branch units for B-type instructions

29 EPIC, die nächste Generation

30 E xplizit P arallel I nstruction C omputing Explizite Parallelität ILP (Instruction Level Parallelism) im Maschienencode Compilerunterstützung (Tipps vom Compiler an die Hardware) Binäre Kompatibilität innerhalb der IA-64 Familie Tools die ILP ermöglichen Predication Speculation Andere... Hardware zur parallelen Ausführung Viele Register Viele Funktionseinheiten (Rechenwerke) Skalaribilität

31 Istruction Level Parallelism ILP Compiler Source Code Parallel Machine Code Mehrere Funktionseinheiten

32 Istruction Level Parallelism ILP Der Chip muss keine Registerabhängigkeiten prüfen Die Parallelisierungslast fällt auf den Compiler Die IA-64 Instruktionen werden in 3er Bündeln mit Template übergeben (3x 41Bit + 7Bit Template = 128) Die IA-64 kann bis zu 6 Instruktionen im selben Takt ausführen

33 Instuctiongroups {.mii add r1 = r2, r3 sub r4 = r4, r5;; shr r7, r4, r12;; } {.mmi ld8 r2, [r1];; st8 [r1] = r23 tbit p1,p2 = r4, 5 }.mbb ld8 r45 = [r55] (p3)br.call b1=func1 (p4)br.cond Label1 } {.mfi st4 [r45] = r6 fmac f1=f2,f3 add r3=r3, 8;; }

34 Branch Architecture IP-Offset Sprünge (21 Bit) Indirekte Sprünge via 8 Brach Registern Spezielle Sprungbefehle für Schleifen Sprung Typen Vorhersage des Compiler welchen Weg das Programm einschlagen wird Branch predict hints Bis zu 3 Sprünge in einem Bündel Verkettete Muli-way Sprünge erlauben n-Wege Sprünge Multi-way Branches

35 Beispiel Hints hint B,Target compute0 compute1 compute2 compare(a==b) B: branch_if_eq -> Target... Target: :

36 Predication Cmp a, b Jump.eq X = 1 jump X = 2 Load Cmp a, b -> p1, p2 p2X = 2p1X = 1Load if else then Traditionell IA-64 Die Kondition wird aufbauend auf die qualifizierenden Prädikaten ausgeführt Die IA-64 stellt 64 Predicate Register zur Verfügung

37 Predication... Die Technik der Basic Blocks (Teil von Sprung bis zu nächsten Sprung) erlaubt es schon im Voraus Teile auszuführen Der „then“- und „else“-Zweig können zeitgleich (mit der Kondition), oder spekulativ schon vorher, ausgeführt werden Unvorhersagbare Sprünge werden eliminiert Zeitverluste bei falschen Vorhersagen fallen weg (Hints, parallel ausgeführt)

38 Parallel Compares A B C D ABC D Traditionell IA-64

39 Parallel Compares... AND: Prädikate mit logisch „und“ verknüpfen OR: Prädikate mit logisch „oder“ verknüpfen ANDOR: Kombination zwischen „und“ und „oder“ Die IA-64 besitzt 3 neue Typen von Vergleichen

40 Beispiel if ((a==0) || (b<=5) || (c!=d) || (f & 0x2)) { r3 = 8; } cmp.ne p1 = r0, r0 //p1 auf false add t = -5, b;; //t = b - 5 cmp.eq.or p1 = 0,a //a==0 cmp.ge.or p1 = 0,t //b<=5 cmp.ne.or p1 = c,d //c!=d tbit.or p1 = 1,f,1;; //f&0x2 (p1) mov r3 = 8 //r3 = 8

41 Control & Data speculation Instr. 1 Instr. 2 Branch Ld r1=... Use r1 Barrier Instr. 1 Instr. 2 St[?] Ld r1=... Use r1 Barrier Control speculation: Bewegt Ladebefehle vor einen Sprung Data speculation: Bewegt Ladebefehle vor einen möglichen Überscheibebefehl

42 Control speculation Instr. 1 Instr. 2 Branch Ld r1=... Use r1 Barrier Traditionelle Architektur Bei traditionellen Architekturen ist die Überschreitung der Grenze (Barrier) nicht möglich!

43 Control speculation Instr. 1 Instr. 2 Branch Ld.s r1=... Use r1 Chk.s r1 Detect exception Propagate exception Deliver exception IA-64 Recovery code

44 Control speculation Control speculation bewegt Ladebefehle vor Sprünge Fehler werden im NaTBit (NaTVal) vermerkt Chk entdeckt evt. Fehler und ruft einen recovery Code auf um den Fehler zu beheben Durch die Control speculation verkürzen sich die Ladezeiten

45 Hosting uses Instr. 1 Instr. 2 Branch Ld.s r1=... Use r1 Chk.s r1 Speculative use Use r1 Ld r1 Brach Recovery code

46 Data speculation Instr. 1 Instr. 2 St[?] Ld r1=... Use r1 Barrier Traditionelle Architektur Bei traditionellen Architekturen ist die Überschreitung der Grenze (Barrier) nicht möglich!

47 Data speculation Instr. 1 Instr. 2 St[?] Ld.a r1=... Use r1 Chk.c r1 IA-64 Data speculation bewegt Ladebefehle vor gefährliche Überschreibebefehle Spekulativ geladene Daten werden in ALat vermerkt Auch spekulative Benützungen sind erlaubt

48 Hosting uses Instr. 1 Instr. 2 St[?] Ld.a r1=... Use r1 Chk.a r1 Speculative use Use r1 Ld r1 Brach Recovery code

49 Advanced Load Address Table oder kurz ALAT Reg#addr Reg# addr... St[addr] Chk.a reg# = ? Ld.a reg# =

50 ALAT Beim Aufruf von Ld.a wird ein Eintrag gemacht Überschreibende Befehle löschen die Einträge wieder aber auch ld.c.clr ld.a.clr Ist ein Eintrag in der ALAT so sind die Daten bereits geladen => kein Eintrag => Daten nicht da => Springe zu recovery code

51 Software Pipelining Sequentielle Schleife Laden Rechnen Ausgeben Zeit Mit SW Pipelinig

52 Software Pipelining Was macht SW Pipelinig möglich Predication um die Pipeline Ebenen zu kontrollieren Spezielle Sprungbehandlung Spezielle Register LC (Loop counter) und EC (Epilog counter) Register rotation: verhindert das Überschreiben von Registern Predication rotation: verhindert das Überschreiben der Prädikate

53 Compiler Nur neue, auf den Prozessor optimierte Compiler werden dessen Leistungsfähigkeit voll ausschöpfen können Intel & HP arbeiten an einem Compiler für C/C++ und Fortran Interessanterweise gibt nicht nur der Compiler dem Prozessor Hinweise (z.b. Hints) sonder auch die Hardware den Compiler (optimale Ausnützung des Prozessors)

54 IA-32 Kompatibilität Benutzer erwartet von der IA-64 Kompatibilität zu bestehenden Systemen Für Programme in höherer Programmiersprache können durch Recompilaton leicht portiert werden Für Programme die direkt auf die Ressourcen des Prozessors zugreifen (OS, Peripherie,...) gibt es bereits neune Betriebssysteme „Dynamic Translation“ übersetzt die Befehle der IA- 32- und PA-RISC Systemen während der Laufzeit! Kaum Leistungsverlust Einmal übersetzte Befehle werden im Speicher aufbewahrt (größerer Speicherbedarf)

55 OS für die IA-64 PA-RISC HP-UX und Linux (Trillian Project) IA-32 Alle IA-32 werden auf IA-64 portiert Alpha Digital UNIX wird portiert! SCO UNIXWARE „FOREVER“ SPARC SUN ist an SPARC gebunden und wird nie „INTEL“ verwenden!! PowerPC IBM hat noch Probleme! Aber AIX wird die IA-64 unterstützen.

56 Betriebssysteme

57 Intel Itanium IA-64 beginnt mit dem Itanium Prozessor Als Plattform dient der Intel 460GX Chipsatz Mehr als 4 Betriebssysteme (LINUX, MS Win auf der wirklichen Hardware gestestet) 230M Transistoren, 25M auf dem Prozessor und 295M auf dem L3 Cache

58 Zusammenfassung IA-64 repräsentiert die wichtigste Entwicklung seit dem 80386er. IA-64 bewegt sich jenseits der traditionellen Architekturen Compiler, Hardware Unterstützung, Massive Ressourcen IA-64 besitzt Tools um moderne high-end Anwendungen zu unterstützen E-business Technical computing

59 Kommentare... IA-64 ist eine erweiterbare Architektur (MacKindley, Madison, Deerfield sind bereits in Entwicklung) Die IA-64 wird Nachfolger des Intel Xeon und demnach vor allem in Server- und Workstationbereich eingesetzt werden Also zunächst für die höchsten Leistungsklassen und nicht für den Privatanwender IA-64 ist größer als herkömmliche Prozessoren IA-64 hat einen größeren Leistungsverbrauch Intel geniest momentan recht viel Kritik an dieser Neuentwicklung

60 Weitere Informationen IA Trillian Project

61 Danke für Ihre Aufmerksamkeit


Herunterladen ppt "Der Parallelrechner auf einem Chip Referenten:Hansjörg Zingerle Werner Mairegger Die Intel Architecture 64 (IA-64)"

Ähnliche Präsentationen


Google-Anzeigen