29
HYPER - THREADING SEMINAR RECHNERARCHITEKTUR HYPER-THREADING TECHNOLOGY SERGE FOPOUSSI Serge Fopoussi UNIVERSITÄT BREMEN SEMINAR RECHNERARCHITEKTUR Prof. Dr. Rolf Drechsler

HYPER - THREADING

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: HYPER - THREADING

HYPER - THREADING

SEMINAR RECHNERARCHITEKTUR

HYPER-THREADING TECHNOLOGY

SERGE FOPOUSSI

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITEKTUR

Prof. Dr. Rolf Drechsler

Page 2: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITEKTUR

Prof. Dr. Rolf Drechsler

GLIEDERUNG

1. BACKGROUND : Arbeitsweise eines von Neumann-Rechners

2. ENTWICKLUNG VON PROZESSOREN

3. HYPER-THREADING :Die neue Technologie

4. KERN EINES PROZESSORS HYPER-THREADING

5. VERGLEICH ZWISCHEN EINEM PROZESSOR OHNE UND MIT HT FUNKTIONALITÄT

6. VERGLEICH DER LEISTUNGEN VON HT UND SMP

Page 3: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITEKTUR

Prof. Dr. Rolf Drechsler

BACKGROUND : Arbeitsweise eines von Neumann-Rechners

Ein Rechner verarbeitet eine Menge von Daten, diese werden

gespeichert und nach einem gewissen Schema rechnerintern

zwischen verschiedenen Modulen hin und her transportiert.

Page 4: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITEKTUR

Prof. Dr. Rolf Drechsler

BACKGROUND : Architektur eines von Neumann-Rechners

Ein zentralgesteuerter Rechner besteht aus drei Grundbestandteilen:

CPUROM RAM IO

Datenbus

Adreßbus

Speicher

Page 5: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITEKTUR

Prof. Dr. Rolf Drechsler

BACKGROUND : Arbeitsweise eines von Neumann-Rechners

1. PC ---> MAR2. #(Add.) ---> MBR3. MBR ---> IR4. Bitfolge wird decodiert.5. Inhalt vom PC wird aktualisiert.6. Befehl wird ausgeführt7. Initiierung der Fetch-phase für den nächsten auszuführenden Befehl.

Hier spielt die Zeit, welche benötigt wird zum Lesen aus dem Speicher, zur Interpretation und zum Ausführen des Befehls

eine große Rolle.

Page 6: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITEKTUR

Prof. Dr. Rolf Drechsler

ENTWICKLUNG VON PROZESSOREN

In der Vergangenheit wurde Leistungssteigerung durch:

➢ Höhere Taktrate Berechnung von mehr Instruktionen pro Zeiteinheit Unterbrechung des I.Flußes in der Pipeline durch Cache Misses, Interrupts

oder falsche Sprung-vorhersagen.

➢ Großere Caches Vergrößerung der L1 und L2 Caches Prozessor wird noch größer, komplexer, teurer. Steigerung der Schwierigkeiten Taktraten und Latenzeiten zu erreichen.

➢ Prefetchin der Mikroarchitektur von Prozessoren ermöglicht.

Page 7: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITEKTUR

Prof. Dr. Rolf Drechsler

ENTWICKLUNG VON PROZESSOREN

Eine andere Möglichkeit die Geschwindigkeit eines Prozessors zu steigern ist ILP (Instruktion Level Parallelism).

Man versucht die Anzahl der ausgeführten Instruktionen pro Taktzyklus zu erhöhen.

Mehrere Ausführungseinheiten: Infos werden parallel ausgeführt. Skaliert besonders gut, solange unabhängige Befehlen der CPUs zur

verfügung stehen. Schlechte Skalierung, solange das Programm (In Oder Execution)

ausgeführt werden müsst. (Beispiel: Pentium 1).

Besser OoO (Out of Order): Infos zur Verarbeitung vorher sortiert. CPU geht effektiver zur Sache Ressource liegen brach, solange sie nicht von einem Thread gebraucht

werden. (Beispiel: Pentium Pro)

Page 8: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

ENTWICKLUNG VON PROZESSOREN

Zusätzlich

Höhere Taktrate bedeutet Höhere Temperatur

Hersteller von Motherboard müssen sich an immer höherem Energieverbrauch der CPU anpassen.

Bessere Techniken müssen entwickelt werden.

Bestehende Ressourcen des Prozessors müssen effektiver ausgenutzt werden: Verbesserung der Pipeline in der Mikropro.Architekur.

HYPER-THREADING.

Page 9: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

HISTORY

HT. kommt aus dem Serverbereich, wo Rechnersysteme mit mehr als einem Prozessor zum Einsatz kommen.

Es ist hier möglich zwei Threads pro Taktzyklus zu verarbeiten.

Ein Thread : Kleinster ausführbarer Teil eines Tasks.

Ein Task ist ein sehr kleiner Teil eines Programms, den ein Prozessor auf einmal bearbeiten kann.

Thread-Programmierte Anwendungen profitieren davon.

Man kann von einer Verdoppelung der Leistung sprechen.

Page 10: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

DIE NEUE TECHNOLOGIE

HT-Technologie ist eine Technik, die SMT (Simultaneous Multi-Threading ) in einem einzigen physikalischen Prozessor ermöglicht.

Der physikalische Prozessor spaltet sich in zwei logischen / virtuellen Prozessoren auf.Die virtuellen Prozessoren teilen sich ein Teil der physischen Ausführungs-ressourcen.Das Architectural State (Umsetz-Logik) für jeden Prozessor einzeln ist somit doppelt vorhanden.

Ziel: Vorhandene Ressourcen effektiver ausnutzen.

Page 11: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

DIE NEUE TECHNOLOGIE

Page 12: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

KERN EINES PROZESSORS HYPER-THREADING

✔ Jeder Prozessor besitzt sein eigenes APIC (Advanced Programmable Interrupt Controller )✔ Trace Cache (L1 Cache), L2 Cache, Queues und Key-Buffers werden geteilt.

Page 13: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

KERN EINES PROZESSORS HYPER-THREADING

TC

✔ Two sets of next-instruction-pointers(IP) independently track the progress of 2 software Threads executing.

IP

Page 14: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

KERN EINES PROZESSORS HYPER-THREADING

✔ Es wird beim Trace Cache den Zugriff jedem Prozessor abwechselnd gewährt ( jedem Takt), solange die beiden Prozessoren Zugriff auf dem Cache haben möchten.

TC

Arch States

Arch States

The TC stores decoded Intructions

(uops)

Page 15: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

KERN EINES PROZESSORS HYPER-THREADING

✔ Beim TC Miss erhält ITLB (Intruction Translation Lookaside Buffer ) die Anfrage vom TC und übersetzt die IP-Adresse zu einer physischen Adresse. Die Anfrage wird an L2 Caches geschickt und der entprechende Bytes-Block wird zurückgegeben.

Page 16: HYPER - THREADING

✔ Nachdem die uops aus dem TC geholt werden, landen sie in der uops-Queues. Diese Schlange entkoppelt das vordere Ende (In Oder Execution Engine) vom hinteren (Out Of Order Execution Engine).

✔ Das OOO (Out of Order) Execution Engine hat folgende Funktionen :

➔ Allocation➔ Register Renamming➔ Scheduling➔ Execution

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

HYPER - THREADING KERN EINES PROZESSORS HYPER-THREADING

Page 17: HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

HYPER - THREADING KERN EINES PROZESSORS HYPER-THREADING

Page 18: HYPER - THREADING

✔ Wenn einer der Prozessoren aufgrund eines Cache-Miss blockiert wird, steht der gesamte Trace Cache dem anderen Prozessor zu Verfügung.

✔ Das OOO (Out of Order) Execution Engine verfügt über mehrere Zwischenspeicher zum:

➔ Wiederordnen (Reorder)➔ Nachverfolgen (Tracing)➔ Aufteilung (Sequencing) von Operationen.

✔ Der Allocator füllt diesen Zwischenspeicher auf.

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

HYPER - THREADING KERN EINES PROZESSORS HYPER-THREADING

Page 19: HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

HYPER - THREADING KERN EINES PROZESSORS HYPER-THREADING

✔ Wenn der Allocator seine Arbeit vollendet hat, landen die uops in zwei anderen Queues. Diese Queues sind so partitionniert, dass jeder virtuelle Prozessor maximal die Hälfte aller Einträge für sich verbuchen kann.

✔ Befinden sich dekodierte Instruktionen in der µop-Queue nur für einen virtuellen Prozessor, versucht der Allocator für diesen Prozessor jedem Takt Ressource zuzuweisen.

Page 20: HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

HYPER - THREADING KERN EINES PROZESSORS HYPER-THREADING

✔ Aus diesen Queues bedienen sich fünf Scheduler abwechselnd aus dem Topf jedes virtuellen Prozessors, um die Ausführungseinheiten (ALU, FPU...) Aufgaben zur Verarbeitung zuzuteilen.

Page 21: HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

HYPER - THREADING KERN EINES PROZESSORS HYPER-THREADING

✔ Nach der Ausführung werden die uops in ROB (Re-Order Buffer) gespeichert.

✔ ROB entkoppelt die Ausführungsenheit von der Retire Modul.

✔ Die Hälfte von ROB (Re-Ordner Buffer), Load und Store Buffers werden jedem virtuellen Prozessor zugeteilt.

Page 22: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

KERN EINES PROZESSORS HYPER-THREADING

Page 23: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

VORTEILE VOM HT

Durch diese Verlängerung der Pipeline :

Werden die Arbeitslast auf die einzelnen Stufen der Pipeline stärker aufgeteilt.

Diese Aufteilung ermöglicht die Verhinderung von Hotspots im Prozessor, wie eine bessere Verteilung der Abwärme im gesamten Prozessoren.

Die Schaltzeiten pro Pipeline-Stufe werden kleiner ( Das Signal benötigt weniger Zeit vom Anfang zum Ende einer Pipeline-Stufe.

Page 24: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

NACHTEILE VON HT

Durch diese Verlängerung der Pipeline :

Wird falsche Sprungvorhersage deutlich anfälllig.

Die Zeit zum Leeren und Wieder-Füllen der Pipeline verlängert sich.

Die Pro-Mhz-Leistung sinkt entsprechend.

Beispiel: Pentium 4 mit HT.DER NACHTEIL DER NIEDRIGEREN PRO-MHZ-LEISTUNG IST KLEINER ALS DER VORTEIL DER HÖHEREN TAKTLEISTUNG.

Page 25: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

VERGLEICH ZWISCHEN EINEM PROZESSOR OHNE UND MIT HT FUNKTIONALITÄT

Beide Threads werden genauso schnell berechnet, wie der erste auf dem herkommlichen Prozessor.

Page 26: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

VERGLEICH DER LEISTUNGEN VON HT UND SMP

Page 27: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

VERGLEICH DER LEISTUNGEN VON HT UND SMP

Es gibt zwei Variante von Mehr-Prozessor-Systemen :

SMT (Simultaneous Multithreading : HT) SMT bedeutet 2 oder mehrere virtuelle Prozessoren in einem System.

Damit erreicht man eine Leistungssteigerung von bis zu 35 % ohne zusätzliche spezielle PC Komponente. Programme müssen angepasst werden.

2. SMP (Symetrische Multi-Processing) << Mehr- Prozessor-System>> SMP bedeutet 2 oder mehrere logische Prozessoren in einem System.

Damit erreicht man eine Leistungssteigerung von bis zu 90 %. Es wird dafür ein spezielles Motherboard benötigt, welches das

Doppelte kostet, als ein Motherboard für Single Prozessor System. Schlechtes Preis/Leistungsverhältnis. Programme müssen angepasst werden.

Page 28: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

Zusammenfassung

Eine CPU mit HT besteht weder aus 2 physischen Prozessoren, noch werden Anwendungen doppelt so schnell ablaufen.

Es ist Aufgabe des Betriebssystems, anfallende Arbeiten auf die beiden virtuellen Prozessoren zu verteilen. Da die meisten Anwendungen nicht threaded-programmiert sind, kann das BS nicht sinnvoll die Rechenlast verteilen.

Dafür ist es aber möglich Multitasking zu betreiben ohne in den „Idle Modus“ gelanden zu müssen.

HT versucht die Belegung von FPU und andere Units des Prozessors durch den aktuell bearbeitenden Thread zu optimieren, indem ein damit bestückter Prozessor durch seine zweite Allocator Unit zwei Threads parallel laufen läßt.

Page 29: HYPER - THREADING

HYPER - THREADING

Serge Fopoussi UNIVERSITÄT BREMENSEMINAR RECHNERARCHITECTUR

Prof. Dr. Rolf Drechsler

Zusammenfassung

Vielen Dank für Eure Aufmerksamkeit !

Quelle:

http://www.thors-hardware.net/new_page/tests/systeme/hyperthreading.htmlhttp://www.computerbase.de/artikel/hardware/prozessoren/was_hyperthreading/http://www.google.de/search?q=cache:rfaRACCLu5gJ:www.cs.wisc.edu/~david/courses/cs752/reader/koufaty.pdf+HYPERTHREADING+TECHNOLOGY++IN+THE+NETBURST++MICROARCHITECTURE&hl=dehttp://www.informatik.uni-bremen.de/agra/ger/lehrmat.php?id=19http://monet.unibas.ch/~guggisbe/kurs/lek1/VonNeumannmod.htmhttp://www.3dcenter.org/artikel/2004/02-04.phphttp://www.wissen.de/xt/default.do?SEARCHTYPE=topic&MENUNAME=Suche&query=Thread