Intel Pentium 4 3,06 GHz
mit Hyperthreading |
/Hardware/CPU |
|
|
|
Was ist Hyper-Threading?
Aus eins mach zwei !
Nun gibt es an dem Dual- oder Multiprozessor
System auch einen kleine Haken. Man muss zwei Prozessoren haben und das geht auf
den Geldbeutel. Außerdem ist die Anzahl der Anwendungen, die wirklich ein
Dual-Prozessor System vollständig ausnutzen noch eher gering. Wie gesagt handelt
es sich hierbei hauptsächlich um Programme aus der Grafikabteilung, die immer
wiederkehrende mathematische Berechnungen durchführen (Rendering,
MPEG-Kompression, etc.) Nicht gerade "Allerwelts-Applikationen". Die Kosten für
ein solches System lohnen also nicht unbedingt. Vor allem dann, wenn man jeden
der zwei Prozessoren nur zu 50% auslasten würde.
Es gibt allerdings noch den Aspekt, den wir
zu Beginn schon einmal erwähnt hatten. Der Prozessor in einem System wird nur
selten wirklich zu 100% ausgelastet. Es gibt immer wieder einmal Phasen, in
denen der Prozessor quasi wartet, Ressourcen also ungenutzt bleiben.
Man müsste also einen Weg finden, den
Prozessor wirklich zu 100% auszulasten. Sollte es wirklich einmal Wartezeiten
geben, in denen der Prozessor nicht an einem Thread weiterarbeiten kann, so
sollte er in dieser Zeit möglichst sofort Arbeiten an einem Thread übernehmen.
Die Idee beim
Hyper-Threading ist nun die Ressourcen eines einzigen Prozessors so zu nutzen,
dass er in der Lage ist mehrere Threads, wenn auch mit Einschränkungen, simultan
zu bearbeiten. Dazu wird der Prozessor in zwei virtuelle Prozessoren aufgeteilt.
Um dies zu erreichen gibt es in solch einem Prozessor eine
architecture state (Umsetz-Einheit) für
jeden virtuellen Prozessor. Diese teilen sich aber eine einzige
Ausführungseinheit (physical execution resource). Die Umsetz-Einheit
inklusive aller Register (general-purpose
registers, control registersund,
machine state registers) und APIC (advanced
programmable interrupt controller) ist also doppelt
vorhanden. Die nur einmal vorhandenen Ressourcen der CPU werden so gleichmäßig
auf die beiden Umsetz-Einheiten verteilt. Sollte eine der Einheiten einmal keine
Ressourcen benötigen, so werden diese in einigen Fällen komplett der anderen zur
Verfügung gestellt. Teilweise darf eine Einheit aber auch nur maximal die Hälfte
der vorhandenen Ressourcen nutzen. Dennoch ist weitgehend gewährleistet, dass
beide Einheiten "gleichberechtigt" sind und zusätzlich eine der anderen nicht
unnötig Ressourcen "stehlen" kann. Wenn also nur eine virtuelle CPU benutzt wird
ist der Prozessor nahezu genauso schnell wie ein normaler Prozessor ohne Hyper-Threading.
Das
Interessante an dieser Technik ist, dass die Anzahl der Transistoren, die benötigt
werden um die Umsetz-Einheit aufzubauen, im Vergleich zum Gesamtprozessor
extrem klein ist (nur ca. 5% des Prozessors), da sich diese alle anderen Einheiten auf dem Prozessor wie
Cache, Ausführungseinheit, Sprungvorhersage, Control-Logik und Busse teilen.
Oder anders ausgedrückt, die Steigerung der Herstellungskosten ist minimal.
Aus Prozessorsicht bedeutet
dies nun, das Kommandos der virtuellen Prozessoren fortdauernd und simultan auf
einer gemeinsamen Ausführungseinheit ausgeführt werden. Aus Softwaresicht
sind aber zwei Prozessoren vorhanden, die von Programmen parallel genutzt
werden können. Die Software denkt also sie hätte ein Dual
Prozessor System vor sich.
Wer sich gerne komplett in die Tiefen der
Prozessortechnik einlesen möchte, was sicherlich nur wenige möchten, der kann
dies direkt in den speziellen Intel Veröffentlichungen tun. Der Umfang der
Erläuterungen würde hier den Rahmen sprengen.
Die Intel Webseite über den neuen
Pentium 4 mit HT findet man unter:
Intel Pentium 4 Prozessor 3,06 GHz mit HT-Technologie
Dort kann man übrigens auch gleich einen Dell
Komplett-PC mit dem neuen Prozessor gewinnen.
Detailinformationen zu Hyper-Threading findet man auf
folgenden Seiten
Hyper-Threading Technology Architecture and Microarchitecture
PDF
- Hyper-Threading Technology
Nächste Seite: Vorraussetzungen
|