Doping für CPUs — Möglichkeiten der Leistungssteigerung
Ansätze der Optimierung per Hardware (SMT)
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.