Ansätze der Optimierung per Hardware (Fortsetzung)
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.
Diesen Artikel bookmarken oder senden an ...