Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Die Intel Architecture 64 (IA-64)

Ähnliche Präsentationen


Präsentation zum Thema: "Die Intel Architecture 64 (IA-64)"—  Präsentation transkript:

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

2 Kostenentwicklung für Prozessorherstellung
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 – GR127 64 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 – FR127 82-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 - PR 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)
Predicat Register Integer Register FB Register Branch Register NaT bit FR0 FR31 FR32 FR127 GR0 GR31 GR32 GR127 . +0.0 +1.0 BR0 BR8 PR0 PR15 PR16 PR63 32 Static 96 Rotatet 16 Static 48 Rotatet 32 Static 96 Rotatet

11 Architektur(Caches) L1 Data Cache 16 KB on Chip L1 Instruction Cache
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 ^64 = 18,446,744,073,709,551,616

13 Befehlssatz(Befehlsformat)
Die Befehle des IA-64 sind gebündelt(bandle) Instruction2 Instruction1 Instruction 0 template 41 bits 41 bits bits bit

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)
Traditional IA-64 R36 R37 R38 R39 R40 R36 R37 R38 R39 R40 Load in R36 Load in R37 Load in R38 Load in R39 4 instructions Load in R36 1 instruction

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

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

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

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

20 Verarbeitungsmethodik (Register Rotating)
32:sunny 127: 126: 125: Palm Springs is sunny St4 R35 Palm Springs is sunny RRB=-3

21 Prozessortyp(Adressierung)
Mit so vielen Bits Kann mann so viele Flächenvehältnis Adressen ansprechen 8 2^8= Visitenkarte ^16= Schriebtisch ^32=4.29*10^ Häuserblock ^64=1.89*10^ Erdoberfläche

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

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

24 Prozessortyp(Adressierung)
64-bit Addresse 2^64 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 RRX virt. page # offset TLB RID Virtual Page# Physical Page# Protection Physical Address

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 Explizit Parallel Instruction Computing
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
Source Code Parallel Machine Code Compiler 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 Sprung Typen Branch predict hints
IP-Offset Sprünge (21 Bit) Indirekte Sprünge via 8 Brach Registern Spezielle Sprungbefehle für Schleifen Branch predict hints Vorhersage des Compiler welchen Weg das Programm einschlagen wird Multi-way Branches Bis zu 3 Sprünge in einem Bündel Verkettete Muli-way Sprünge erlauben n-Wege Sprünge

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

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

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 IA-64 Traditionell A B C D A B C D

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

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 = //r3 = 8

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

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

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

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 Ld.s r1=... Instr. 1 Use r1 Instr. 2 Ld r1 Branch Use r1
Speculative use Recovery code Instr. 2 Ld r1 Branch Use r1 Chk.s r1 Brach

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

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

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

49 Advanced Load Address Table
oder kurz ALAT Ld.a reg# = Reg# addr ... St[addr] Chk.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 Mit SW Pipelinig Sequentielle Schleife Laden
Zeit Mit SW Pipelinig Sequentielle Schleife Zeit Laden Rechnen Ausgeben

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 IA-32 Alpha SPARC PowerPC
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-64 Trillian Project

61 Danke für Ihre Aufmerksamkeit


Herunterladen ppt "Die Intel Architecture 64 (IA-64)"

Ähnliche Präsentationen


Google-Anzeigen