Was versteht man unter Hyperthreading?
Neuere Intel-P4-CPUs können einen Teil der Befehlsabarbeitung intern parallelisieren, anders
(start vereinfachend) ausgedrückt: während Teile der CPU noch mit der Abarbeitung eines Befehls in der Pipeline befaßt sind, kann unter bestimmten Randbedingungen schon mit der Bearbeitung des nächsten Befehls begonnen werden.
Das ganze wird zum einen durch die Onboard-Caches (Befehls- und Daten-Pipelines) und zum anderen durch das doppelte Bereithalten bestimmter Funktionseinheiten der CPU ermöglicht. Außerdem müssen Logikeinheiten vorhanden sein, die die anstehenden Befehlsequenzen dahingehend analysieren, ob die quasi-parallele Bearbeitung wirklich sinnvoll ist (manchmal ist die Abarbeitung einer Operation eben von dem Ergebnis der vorangehenden Operation abhängig, man denke an bedingte Programmverzweigungen oder numerische Berechnungen).
So wird dann eine Befehlssequenz "auf Verdacht" erst mal parallel bearbeitet, das Ergebnis der vorgezogenen Bearbeitung des zweiten Befehls muß aber gelegentlich verworfen werden, was den Effekt von HT wieder mindert. Das Wort "Hyperthreading" bezieht sich auf die Begriffswelt der Multitasking-Programmierung, wo man quasi-gleichzeitig ablaufende, voneinander entkoppelte Prozesse als "Thread" (wörtlich: Faden, im Sinne von "roter Faden") bezeichnet. Von der Softwareseite aus gesehen, erscheinen Rechner mit den gegenwärtig verfügbaren HT-CPUs als Dual-Prozessor-Systeme, effektiv ist HT aber i. d. R. weniger leistungsfähig als zwei echte CPUs.
Trotzdem freut man sich über den irgendwo zwischen 1 und 2 liegenden Gewinnfaktor. HT treibt die Komplexizität der CPU-Chips enorm in die Höhe (man denkt auch über die Entwicklung von 4..n-fach-Hyperthreading-CPUs nach, und das wird dann erst richtig "hyper"), und manchmal werden Intels Bemühungen auf diesem Gebiet auch als verzweifelter letzter Versuch angesehen, die Performance ihres CISC-(Complex Instruction Set CPU)-Konzeptes in Richtung des Endes der Fahnenstange zu treiben.
Mehr Informationen unter: http://www.intel.com/info/hyperthreading/
Das ganze wird zum einen durch die Onboard-Caches (Befehls- und Daten-Pipelines) und zum anderen durch das doppelte Bereithalten bestimmter Funktionseinheiten der CPU ermöglicht. Außerdem müssen Logikeinheiten vorhanden sein, die die anstehenden Befehlsequenzen dahingehend analysieren, ob die quasi-parallele Bearbeitung wirklich sinnvoll ist (manchmal ist die Abarbeitung einer Operation eben von dem Ergebnis der vorangehenden Operation abhängig, man denke an bedingte Programmverzweigungen oder numerische Berechnungen).
So wird dann eine Befehlssequenz "auf Verdacht" erst mal parallel bearbeitet, das Ergebnis der vorgezogenen Bearbeitung des zweiten Befehls muß aber gelegentlich verworfen werden, was den Effekt von HT wieder mindert. Das Wort "Hyperthreading" bezieht sich auf die Begriffswelt der Multitasking-Programmierung, wo man quasi-gleichzeitig ablaufende, voneinander entkoppelte Prozesse als "Thread" (wörtlich: Faden, im Sinne von "roter Faden") bezeichnet. Von der Softwareseite aus gesehen, erscheinen Rechner mit den gegenwärtig verfügbaren HT-CPUs als Dual-Prozessor-Systeme, effektiv ist HT aber i. d. R. weniger leistungsfähig als zwei echte CPUs.
Trotzdem freut man sich über den irgendwo zwischen 1 und 2 liegenden Gewinnfaktor. HT treibt die Komplexizität der CPU-Chips enorm in die Höhe (man denkt auch über die Entwicklung von 4..n-fach-Hyperthreading-CPUs nach, und das wird dann erst richtig "hyper"), und manchmal werden Intels Bemühungen auf diesem Gebiet auch als verzweifelter letzter Versuch angesehen, die Performance ihres CISC-(Complex Instruction Set CPU)-Konzeptes in Richtung des Endes der Fahnenstange zu treiben.
Mehr Informationen unter: http://www.intel.com/info/hyperthreading/