Die Intel Architecture 64 (IA-64)

Slides:



Advertisements
Ähnliche Präsentationen
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Advertisements

CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
Befehlssatz und Struktur
KA – Rechnerarchitektur I ____________________________________________________________________________________________ ____________________________________________________________________________________________.
2.4 VLIW und EPIC-Prozessoren
Informatik Tagesprotokoll vom
Entwicklungstrends bei Mikroprozessoren
Fakultät für informatik informatik 12 technische universität dortmund 2.4 VLIW und EPIC-Prozessoren Peter Marwedel Informatik 12 TU Dortmund 2011/04/08.
Datenbankzugriff im WWW (Kommerzielle Systeme)
SAP R/3 - Speichermanagement
1 Energiebewusste Compilierung für digitale Signalprozessoren Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII Projekt Prozessorarchitekturen.
Funktionsmerkmale und Vorteile Die Intel Core i7 Prozessoren der zweiten Generation verfügen über folgende Funktionsmerkmale: Die Intel® Turbo-Boost-Technik.
Kapitel 3 5 Rechnerorganisation
Betriebssysteme für mobile Endgeräte
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.
Rechneraufbau & Rechnerstrukturen, Folie 10.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 10.
Lokale und globale Netzwerke
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK TotalView Debugger Vorgestellt von Marco Dyballa mail:
ilmenau.de Exploiting Pocket PC. ilmenau.de Exploiting Pocket PC PocketPC existiert seit über 5 Jahren (Windows CE seit ca. 10)
Medizinische Statistik und Informationsverarbeitung
Medizinische Statistik und Informationsverarbeitung Goldschmidt, Quade, Baur Institut für Medizinische Statistik, Dokumentation und Datenverarbeitung.
Vorlesung 4: Memory Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Technische Informatik II Rechnerarchitektur und Betriebssysteme Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter.
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Vorlesung, Wintersemester 2009/10M. Schölzel 1 Optimierungstechniken in modernen Compilern Einführung.
Prof. Dr. Bernhard Wasmayr
Beispiele für Mikroprozessoren 9
Von: Antoni Gazali Clarkson Laryea
AMDs Next Generation Die Hammer Familie Eine Kurzpräsentation von Frank Grümmert bei Herrn Prof. Dr.-Ing. Risse für das RST-Labor.
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
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
Inhalt Der Cell Prozessor Aufbau des Cells Platine Block Diagramm
Matrix Multiplication on CUDA
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Referat zum Thema „DLL“
Linux auf iSeries und pSeries Beat Rubischon Informatiksupport Departement Physik ETH Zürich.
Duo- und Quad Prozessor-Architektur
Was ist ein Betriebssystem?
Präsentation von Alexander Schönfeld
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
INTEL Pentium 4 Prozessor
Entwicklung der Programmiersprachen
Betriebssysteme & BIOS
DW-Architektur: Row Store vs Column Store
Service Computing   Prof. Dr. Ramin Yahyapour IT & Medien Centrum 19. Januar 2010.
3.4 CPU-Chips und Busse CPU-Chips
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Embedded Systems Prof. Dr. H. Kristl
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Anwendung von Microcontollern
Verzweigungen in Delphi
Programmieren in Assembler
Systemsoftware und Betriebssysteme
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Rechnerarchitekturen
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Einführung in Optimierungsprobleme auf modernen Rechnerarchitekturen
Moderne Rechner-Architekturen
Johann Baron von Neumann
Central Processing Unit von David Kleuker und Thomas Auner
Folie Einzelauswertung der Gemeindedaten
6. Übung Informatik 1 Inhalte: Der DLX-Prozessor
2.3 Implementierung von Prozessen
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Vom HW-Automaten zum Prozessor
מבוא למערכות מחשב ואסמבלי
 Präsentation transkript:

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

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

IA-64 Einführung CISC

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

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

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

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

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

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

Architektur(Register) Predicat Register Integer Register FB Register Branch Register NaT 64 0 81 0 63 0 0 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

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

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

Befehlssatz(Befehlsformat) Die Befehle des IA-64 sind gebündelt(bandle) 127 87 86 46 45 5 4 0 Instruction2 Instruction1 Instruction 0 template 41 bits 41 bits 41 bits 5 bit

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

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

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

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

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

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

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

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

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

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

Prozessortyp(Adressierung) 64-bit Addresse 63 0 2^64 pages

Prozessortyp(Region Register) bits 63-61 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.

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)

Prozessortyp(virt.memory modell) ###### RID RRX virt. page # offset 63 61 60 0 TLB RID Virtual Page# Physical Page# Protection Physical Address

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

EPIC, die nächste Generation

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

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

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

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;;

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

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

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

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)

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

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“

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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)

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.

Betriebssysteme

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

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

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

Weitere Informationen IA-64 http://developer.intel.com http://developer.intel.com/design/ia64 http://developer.intel.com/technology/itj/q41999.htm Trillian Project www.linuxia64.org

Danke für Ihre Aufmerksamkeit