Hyperthreading & Co.: Das beschleunigt die CPU
Bis vor einigen Jahren schien der Weg zu mehr CPU-Leistung nur über eine höhere Taktfrequenz zu verlaufen. Doch irgendwann führt dieser Weg in eine Sackgasse. Denn wenn die CPU zu schnell ist, kann es trotzdem zu Verzögerungen kommen: Arbeitsspeicher oder Peripherie können die gewünschten Daten nicht rechtzeitig zur Verfügung zu stellen, weshalb der Prozessor warten muss und die potenzielle Rechenleistung gar nicht ins Spiel kommt. Die Lösung dieses Flaschenhals-Problems: Die CPU arbeitet mehrere Aufgaben gleichzeitig statt nacheinander ab. Diese Parallelisierung kommt in einem Prozessor auf mehreren Ebenen zum Tragen: Eine Stufe nennt sich „Pipeling“und lässt sich als Fließband für die Befehlsausführung sehen. Hierbei erfolgt die Unterteilung eines Befehls in verschiedene Phasen: Wechselt ein Befehl von der ersten in die zweite Phase, rückt sofort ein neuer Befehl in Phase 1. Je mehr Phasen oder auch Pipelines eine CPU besitzt, desto mehr Befehle lassen sich parallel verarbeiten. Der nächste Schritt bei der Parallelisierung ist das Multithreading. Hierbei hält der Prozessor mehrere Aufgaben (Threads) vor, die er abwechselnd abarbeiten kann. So lässt sich Thread 2 bearbeiten, während Thread 1 auf Daten aus dem Speicher wartet. Jedoch lassen sich nicht alle Aufgaben parallelisieren, da es vorkommen kann, dass beispielsweise ein Thread auf einen anderen warten muss. Damit der Prozessor bestimmte Aufgaben gleichzeitig abarbeiten kann, muss außerdem die Software entsprechend programmiert sein – das ist komplex und aufwendig. Intel hat eine weitere Technik namens Simultaneous Multithreading (SMT) bei seinen Prozessoren im Einsatz. Sie ermöglicht das parallele Abarbeiten von mehreren Threads. Diese Programmabläufe werden außerdem unabhängig voneinander bearbeitet, womit sie sich nur selten in die Quere kommen können. Auf diese Weise lässt sich die Rechenkraft des Prozessors besser aufteilen, was zu einem effizienteren Betrieb und unter anderem auch zu einer geringeren Leistungsaufnahme führt. Mit der Technik Hyperthreading (HAT) simuliert eine Intel-CPU dem Betriebssystem zusätzliche Prozessorkerne – aus einem Dualcore-Prozessor mit HT wird beispielsweise für Windows dann ein Quadcore. Ziel ist es, dadurch die Funktionseinheiten effektiver auszulasten und Speicherwartezeiten zu überbrücken. Noch effizienter gestaltet sich Hyperthreading, wenn das sogenannte Prefetching gut funktioniert: Diese Technik lädt Daten und Befehle schon vorab in den Speicher, weil sie glaubt, dass sie als Nächstes zum Einsatz kommen.