Ansätze der Optimierung per Hardware (Fortsetzung)
Simultaneous
Multi-Threading
Ein letzter Ansatz der Leistungssteigerung stellt das sog. Simultaneous Multi-Threading
(kurz SMT) dar. Mit Hilfe dieses Verfahrens ist es möglich, multiple Threads
parallel auf einem einzigen physikalischen Prozessor auszuführen, ohne,
wie bei TSMT oder SoEMT, zwischen den einzelnen Threads hin- und her springen
zu müssen.
Das Prinzip und
die Philosophie hinter SMT beruht darauf, mit möglichst wenig Mehrkosten
und Aufwand einen zweiten logischen Prozessor auf ein physikalisches Die zu
packen. Dies wird erreicht, indem einige Bestandteile des Prozessors verdoppelt
werden, andere wiederum partitioniert oder gemeinsam genutzt. Die bisher einzige
erhältliche Implementierung von SMT im x86-Bereich stellt der Intel Xeon
MP dar, sowie der in kürzlich von Intel vorgestellte Pentium 4 mit 3.06 GHz und Hyper-Threading. Ob es einen Prozessor von AMD mit Implementierung von Simultaneous
Multi-Threading geben wird ist noch offen, jedoch wird man Intel langfristig gewiß
nicht nachstehen wollen.
Die folgenden Ausführungen sind ausschließlich für den Intel
Xeon MP und Intel Pentium 4 HT zutreffend, da die Implementierung von SMT von
jedem Hersteller anders gelöst werden kann. Es kann demzufolge auch keine
generelle Aussage über die Effektivität von SMT gemacht werden. Um
klarzustellen, dass meine Ausführungen lediglich auf die genannten Prozessoren
zutreffen, werde ich im folgenden den Begriff verwenden, mit dem Intel seine
Prozessoren auch segnet: Hyper-Threading, oder kurz HT.
Die Hyper-Threading
Technologie macht, wie bereits erwähnt, aus einem physikalischen Prozessor
zwei logische. Angaben von Intel zufolge wurde dies mit lediglich 5% mehr Die-Fläche
erreicht und soll signifikante Performancevorteile bieten. Jeder logische Prozessor
besteht aus den acht x86 GPRs, den Kontrollregistern, einem APIC (inkl. APIC
Registern) und einigen Maschinenstatus-Registern. Alle restlichen, für den
Betrieb benötigten Ressourcen wie Caches, Recheneinheiten, die Pipeline
oder die Sprungvorhersage-Logik, müssen von den beiden Prozessoren geteilt
und somit gemeinsam genutzt werden.
Das - Intel zufolge - höchste Ziel bei der Implementierung von HT in den
Intel Xeon MP war es zum einen, die Ausführung von entsprechend optimierter
Software zu beschleunigen, jedoch gleichzeitig die Ausführung nicht-optimierter
Software nicht zu verlangsamen. Somit musste zum einen sichergestellt werden,
dass ein logischer Prozessor den anderen nicht zum Stillstand bringen kann und
zum anderen, dass die geteilten Ressourcen wieder vereint werden, wenn nur ein
einzelner Thread ausgeführt werden soll. Somit ist auch gleich ein weiteres
Feature eines Prozessors mit Hyper-Threading klar: Der Prozessor muss im laufenden
Betrieb zwischen Multi-Threaded Betriebsmodus und Single-Threaded Betriebsmodus
hin- und herschalten können.
Diesen Artikel bookmarken oder senden an ...