itanium 2 - heidelberg universityra.ziti.uni-heidelberg.de/pages/student_work/seminar/ws... ·...

Post on 03-Jun-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Itanium 2

Götz BeckerLehrstuhl für Rechnerarchitektur

1

Übersicht

● Einführung in die Itanium Architektur● Besonderheiten der Architektur

– Beispiele für deren Anwendung● Mikro-Architektur des Itanium 2● Compiler und Benchmarks● Ausblick

2

Itanium 2

● Nachfolger des Itanium,der ersten Implemantion von EPIC/IA-64

● Hersteller Intel● 1997 Itanium ● 2002 Itanium 2

3

EPIC, IA-64

● Explicit parallel instruction computing● ISA (instruction set architecture)

Gemeinschaftsentwicklung von Intel und Hewlett-Packard, angekünditg Juni 1994

● Ziel:Erweiterbare 64-bit ISA mithoher Ausdruckskraft für Parallelität

● Für „High Performance“ CPUs

4

EPIC - Ansatz

● Compiler kennt die Abhängigkeiten im Programmablauf– Kann mehr Arbeit in Optimierung stecken– Kann Informationen aus Profiling-Tests benutzen

● Vermeidung von aufwendigerOut-of-Order Logik im Prozessor– moderne Risc-CPUs z.b. Power5 von IBM

5

Wie erreicht man „High Perfomance“?

● mit vielen parallelen RechenwerkenFunctional Units (FU)

● mit Pipelining● mit einer Speicherhierarchie

6

VLIW

● VLIW (very long instruction word)feste Anzahl Operationen in einem VLIWDiese werden parallel von mehreren FUs ausgeführt

● Alle Operationen in einem VLIW müssen unabhängig sein

● Statische Instruktions Scheduling vom Compiler● Problem:

– Kontrollflußfehler– Cache-Misses können nicht versteckt werden

7

IA-64 Bundle

● VLIW mit 5bit Zusatzinfos● 128bit Bundle:

– 3 x 41bit Instruktionen● 2 Quellregister, 1 Zielregister, 1 Predikat

– 1 x 5bit Template● Kodiert 6 Instruktionstypen (A, I, M, F, B, LX)● Template kodiert Instruktions-Abhängigkeiten

41bit 41bit 41bit 5bit

8

IA-64 Bundle Instruktions Typen

M M F MMF

M I B MIB

[2]

9

IA-64 Register

stacked/rotating

fixed

[2]

10

ALATadvanced-load address table

● Kernstück der Data Speculation● Tabelle mit 32 Einträge● Addressiert durch

– die physikalische Speicheradresse– einem „ALAT register tag“

besteht u.a. aus der Registeradresse

Beispiel folgtspäter

11

Instruction Level Parallism (ILP)

Ausdrucksmöglichkeiten für ILP in IA-64:● Predication● Control Speculation● Data Speculation● Loop Pipelining

12

Predication:

compare

branch

branch

cmp pr1,pr2

pr1

pr1

pr2

pr2

If then else – Zerlegung durch Predication

Kein Branch mehr vorhanden!Kontrollfluß wird Datenfluß

13

Control Speculation

...

instr i

...

branch

ld r1 = mem

use r1

Problem:Compiler legt den load nicht vor den branchRiskiert Exception (Page Fault)

use eine Operation z.b. add, sub

?

14

Control Speculation

Compiler kann schon vor Branch laden:

ld.s speculative load

ld.c speculative check

checkt das NaT-Bit des Registers und lädt Wert falls noch nicht vorhanden

Fehlerbehandlung erst wenn Wert tatsächlich benötigt wird

ld.s r1 = mem

instr i

...

branch

ld.c r1

use r1

15

!

Control Speculation

ld.s r1 = mem

instr 1

use r1

instr 2

branch

chk.s use

...

Recovery code:ld r1 = memuse r1branch

16

Für komplexe Korrekturen:chk.s speculative check

Branch zu Recovery Funktion

Data Speculation

...

instr 1

instr 2

store mem?

ld r1 = mem!

use r1

Problem:

Compiler weiß nicht, ob ein Wert, der aus dem Speicher geladen wurde, noch gültig ist.?

17

Data Speculation

Compiler kann mit Hilfe der ALAT „spekulieren“

ld.a advanced loadlegt einen Eintrag im ALAT an

ld.c checked loadprüft ob Eintrag in ALAT vorhanden, neuladen wenn nicht

....

ld.a r1 = mem

instr 1

store mem?

ld.c r1

use r1

18

!

Data Speculation

ld.a r1 = mem

instr 1

use r1

instr 2

store mem?

chk.a r1

...

Recovery code:ld r1 = memuse r1branch

19

Für komplexe Korrekturen:chk.a speculative check

Branch zu Recovery Funktion

ALAT Semantik

● Eintrag anlegen– Ein ld.a legt einen Eintrag an

● Eintrag löschen– Falls ein store eine „überwachte“ Adresse (auch

Registeradressen) anspricht, wird dieser Eintrag gelöscht

Alle vorhandenen Einträge verweisen auf noch gültige Speicheroperationen

20

ALAT - Abfrage

● ld.c – checkt ob der Eintrag gültig ist und lädt bei einem

Miss den Wert erneut aus dem Speicher● chk.a

– checkt ob der Eintrag gültig ist und springt bei einem Miss zu einer Recovery Funktion

– Recovery Funktion wird vom Compiler erzeugt– Bietet mehr Flexibilität, vergrößert den Code– Mögliche Kontrollflußänderung

21

Loop Pipelining

● Bsp: 6 Interationen einer einfachenload > load > op > store > branch Schleife

Durch spezielleSchleifenzähler in Hardware effizient umsetzbar.Spezielle Schleifen-Branch Befehle steuern LC und EC

[3] 22

Kannlängersein

Cache Hierarchie

L1i16K1 cycle

L1d16K1 cycle

L2256K5/6 cycle

L31,5M-9M12/14 cycle

SystemBus

R 48GB/s

R/W 24GB/s

R/W 48GB/s R/W 6,4GB/s

Cacheline Sizes:L1 64BL2/L3 128B

23

IA-64 Speicherhiercharchie

● Explicit data cache line prefetching– L1/L2/L3 addressierbar– Je 2 Versionen, direct oder delayable

● Cache Hints (.nt1, .nt2 , .nta)– welche Hiercharchiestufe eine Speicheroperation

ansprechen soll – impliziert Nutzungsdauer– Hinweis für Ersetzungsstrategie

● Instruction Prefetching

24

Explicit control of Memory Access Order

● Memory Fence mf– Stellt sicher, daß alle früheren Speicheroperationen

architektonisch sichtbar waren, bevor weitere zur Ausführung kommen

● Acquire Load ld.acq – Sichtbar vor allen folgenden Speicheroperationen

● Release store st.rel – Alle vorherigen Speicheroperationen sind sichtbar

25

Itanium 2 (Madison 9M L3) – 592 Millionen Transistoren[4]

26

[1] 27

Pipeline

● 8 Stufen Tief● 6-wide (6 parallele FUs)● 6 Integer ALUs● 6 Multimedia ALUs● 2 ext. Floating Point Units● 2 load- , 2 store-Units ● 3 Branch Units

28

Pipeline

[1]29

Instruction Issue

Pro Takt 2 Bundles = 6 Intructions in 11 FUsdynamische Verteilung auf freie FUsNicht alle Kombinationen sind möglich

[1]

30

Register Stack Engine

● Verwaltet Register File● Übernimmt Register Renaming● Kontrolliert Register Rotation● Bietet programmierbare Stackframes

– Inkl. Frame Overlaps und kompakten Frames● Simuliert ein unbegrenzt viele Register

– Lagert Register bei Bedarf automatisch ausund auch wieder ein

31

Register Stack Engine

[2]

32

Multi-way Branching

● Durch 2 abhängige Bundles– 6 in-order Instruktionen

● 3 Tests/Compares (z.b. MII) im Ersten● 3 predicated Branches (BBB) im Zweiten● Führt ein 3-fach Case in einem Takt aus

33

Multi-way Branching

[3]

34

Compiler

● Standard (kommerziell):– Intel – HP

● Open Source Projekte– Open Research Compiler (ORC)

● Unterstützt von Intel

– OpenIMPACT – Gelato● Unterstützt von HP

– gcc● Langsam

35

1-way SPEC results

int200_base fp2000_base0

250

500

750

1000

1250

1500

1750

2000

2250

2500

2750

Athlon64 FX 2.6 GHz

Pentium 4 3.5 GHz

Opteron 2.4 GHz

POWER5 1.9 GHz

Itanium 2 1.6 GHz

[5]

36

2-way SPEC results

int_rate200_base fp_rate2000_base0

5

10

15

20

25

30

35

40

45

50

55

POWER5 1.65 GHz

Opteron 2.4 GHz

PA-RISC 8800 1 GHz

Pentium 4 Xeon 3.2 GHz

Itanium 2 1.6 GHz

[5]

37

32-way SPEC results

int_rate200_base fp_rate2000_base0

100

200

300

400

500

600

700

800

900

POWER5 1.65 GHz

PA-RISC 8800 1 GHz

SPARC64 V 1.89 GHz

Alpha 21364

Itanium 2 1.6 GHz

[5]

38

Ausblick

● Patterson:„Surprising that an approach whose goal is to rely on compiler technology and simpler HW seems to be at least as complex as dynamically scheduled processors!“

● HP hat seine Itanium-Abteilung an Intel verkauft– Was macht nun Intel?– Inzw. Starke 64bit Konkurrenz im eigenen Haus

39

[6]

Itanium „Montecino“ 2005

● 1,72 Milliarden Transistoren![4]

40

Quellen

[1] Intel Itanium Archtecture Software Develper Manual Band 1-3http://www.intel.com/design/itanium/documentation.htm

[2] Vorlesungsfolien Prozessorarchitektur – Processor ArchitectureJoachim Gläß, Universität Mannheim, SS 2004

[3] Inside the Intel Itanium 2 Processor, HP Technical White Paper July 2002 http://www.dig64.org/More_on_DIG64/Itanium2_white_paper_public.pdf

[4] Microprocessor Report „ Best Servers of 2004“http://www.mpronline.com

[5] Ace´s Hardware SPEC CPU Dataminerhttp://www.aceshardware.com/SPECmine/Stand Dezember 2004

[6] Computer Science 252, Prof. Patterson Spring 2001http://www.cs.berkeley.edu/pattrsn/252501/Lec19-static.pdf

Vielen Dankfür Ihre Aufmerksamkeit

top related