Doping für CPUs — Möglichkeiten der Leistungssteigerung
Ansätze der Optimierung per Hardware (Multi-Threading)
Time-slice Multi-Threading
Das Prinzip des Time-slice Multi-Threading (kurz TSMT) basiert auf der Tatsache, dass Prozessoren trotz der zu Beginn genannten Fähigkeiten recht viel der zur Verfügung stehenden Rechenzeit mit Nichtstun oder Warten auf Daten verbringen. TSMT unterteilt die verfügbare Rechenzeit in fixe Einheiten auf der Zeitscheibe und wechselt nach Ablauf dieser eingeteilten Rechenzeit von einem Thread zum nächsten. Obwohl auch hierbei viele Recheneinheiten des Mikroprozessors, die theoretisch parallel arbeiten könnten brach liegen, wird dennoch der Zeitverlust bei langen Wartezeiten, beispielsweise einem Cache-Miss inkl. folgendem Fetch der Daten aus dem Speicher, reduziert.
Switch-on-event Multi-Threading
Das Switch-on-event Multi-Threading (kurz SoEMT) gleicht größtenteils dem TSMT, jedoch mit der kleinen aber entscheidenden Ausnahme, dass die Rechenzeit nicht fix eingeteilt wird, sondern lediglich bei Auftreten von längeren Wartezeiten von einem Thread zum nächsten gewechselt wird. Hierbei muss jedoch der “Hauptthread” die höchste Priorität haben, bei Auftreten einer längeren Wartezeit wird zu Threads mit niedrigerer Priorität gewechselt, bis die Wartezeit für den Prozessor vorüber ist (als gutes Beispiel dient auch hier wieder ein Cache-Miss mit anschließendem Fetch der Daten aus dem Arbeitsspeicher).
Der Vorteil gegenüber TSMT ist, dass einzelne Threads höhere Prioritäten haben können als andere und somit der Programmfluss gezielt gesteuert und optimiert werden kann, wohingegen beim TSMT immer feste Rechenzeiten zugewiesen werden, nach denen der Prozessor, ungeachtet der Tatsache ob bereits eine Terminierung des aktuellen Threads vorliegt oder nicht, zum nächsten Thread schaltet.
Beide Verfahren haben jedoch den Nachteil, dass auch hierfür eine im ersten Fall dezente, im zweiten Fall deutliche Änderung des Programmcodes notwendig ist. Desweiteren sind beide Verfahren weit von der optimalen Ausnutzung der Ressourcen entfernt.