TweakPC



Intel Pentium 4 3,06 GHz mit Hyperthreading

/Hardware/CPU

Leistungssteigerung - wie es früher war

Immer schön der Reihe nach

Das Ziel eines jeden neuen Prozessors ist es natürlich, ihn zu verbessern. Und in erster Linie steht dabei an, seine Leistung zu steigern. Bisher geschah dies immer durch Steigerung der Taktfrequenz, Verbesserung des Zugriffs auf die Daten (Cache) oder durch Optimierung der eigentlichen Abarbeitung der Befehle im Prozessor. Mit diesen Methoden hat man auch erreicht, das die Taktfrequenz selbst nichts über die Geschwindigkeit des Prozessors aussagt. Denn auch die Effizienz, also wie viele Kommandos ein Prozessor pro Takt abarbeiten kann, lässt sich steigern indem diese teilweise in mehren Ausführungseinheiten parallel verarbeitet werden. Dies ist jedoch nur bis zu einem gewissen Maß möglich, da bestimmte Programmteile einfach nacheinander ausgeführt werden müssen. Diese kleinsten Programmteile werden als "Threads" bezeichnet.

Die bisherigen Methoden funktionieren zwar noch, sind aber mit erheblichem Aufwand verbunden der sich vor allem in höheren Kosten, oder anderen Problemen, wie ständig steigender Leistungsaufnahme und höheren Temperaturen oder erheblichem Materialaufwand (=mehr Transistoren = größerer Die) auswirkt.

Da die CPU bei der Arbeitung eines Threads selten komplett ausgelastet ist, bietet es sich geradezu an hier anzusetzen und die CPU effektiver zu machen und genau dies hat zu der Idee das Hyper-Threading geführt.

Zwei arbeiten schneller als Einer

Aus eins mach zwei !

Sicherlich hat jeder von Ihnen schon einmal von Dual-Prozessor Systemen gehört. In solchen Rechnern arbeiten zwei CPUs parallel und teilen sich quasi den Rest des Computers, sprich Speicher, Festplatten etc. Mit dem Pentium III oder dem Athlon MP sind solche Dual-Systeme möglich und auch halbwegs bezahlbar, im Gegensatz zu den wirklich extrem teuren XEON Systemen.

Die Vorteile eines solchen Systems sind recht offensichtlich. Zunächst einmal hat man die theoretische Rechenleistung des Systems verdoppelt. Dieses Spielchen lässt sich weiter treiben, bis man zu Mulitprozessor-Systemen gelangt, die mehrere hundert CPUs besitzen können.

Leider gibt es dabei ein Problem, die Prozessoren wollen auch zu 100% ausgenutzt sein. Das zu tun ist insbesondere eine Frage der Software und des Betriebssystems. Um die maximale Performance zu erreichen, muss bei einem Dual- oder Multiprozessorsystem die zu erledigende Arbeit parallelisiert werden. Ein einzelnes Programm muss also so aufgeteilt werden, dass es auf die verschiedenen CPUs verteilt und dort parallel abgearbeitet werden kann.


Schon fast antik, aber trotzdem noch gut,
 PIII Dual System 2*1GHz

Ist dies nicht der Fall und ein Programm läuft größtenteils linear ab, dann wird in diesem System auch nur weitgehend ein Prozessor verwendet und die anderen liegen quasi brach. Der Vorteil ist also gleich Null.

Hat man hingegen ein Programm, bei dem Teile vollständig parallel und unabhängig voneinander ablaufen, so erhält man nahezu eine Erhöhung der Leistung, die der Anzahl der Prozessoren entspricht. Paradebeispiele für solche Anwendungen sind Raytracing Programme, bei denen zum Beispiel der erste Prozessor jede gerade und der zweite Prozessor jede ungerade Zeile des Bildes berechnet.

Um das Ganze etwas bildlicher zu beschreiben, stellen sie sich die beiden Prozessoren einfach als Handwerker vor. Wenn diese eine Wand mauern sollen, nehmen sich beide einen Haufen Steine (Speicher) und werden in etwa doppelt so schnell fertig sein, wie ein Arbeiter. Das Programm "Mauern" ist eben parallelisierbar. Sollen die beiden nun aber ein Seil flechten, so sieht die Sache schon anders aus. Hier könnte der eine dem andern höchstens mit "Hilfsarbeiten" zur Hand gehen oder sie könnten sich abwechseln, viel schneller würde man allerdings dabei nicht werden.

Nun bringen zwei Arbeiter aber trotzdem Vorteile, auch wenn Sie nicht beide gleichzeitig an einer Aufgabe arbeiten können. In so einem PC gibt es ja Menge zu tun. Die Arbeiter könnten also zwei komplett verschiedene Aufgaben übernehmen. Der eine mauert die Wand und der andere macht sich ans Seil flechten. Auch so hat man die Leistung des gesamten Systems erhöht.

Und genau so wie es das letzte Beispiel beschrieben hat, sieht es eigentlich in modernen PCs aus. Viele User haben nicht mehr nur ein einziges Programm laufen. Sie hören MP3s und schreiben einen Text, oder sie schauen eine DVD und lassen ihren PC dabei Dateien aus dem Internet laden. Oder sie komprimieren MP3s und wollen dabei ein cooles Game zocken.

All dies ist nicht so weit hergeholt und auf einem Multiprozessor-System deutlich besser durchführbar als auf einem Single-Prozessor-System. Ein Single-Prozessor-System kann zwar auch mehrer Programme "gleichzeitig" ausführen, aber diese laufen nie parallel ab. Hier wird die Rechenleistung quasi immer abwechselnd auf die verschiedenen Aufgaben verteilt, wobei eine Aufgabe ausgeführt und alle anderen so lange angehalten werden. Unser Arbeiter mauert also quasi 10 Minuten, legt sein Werkzeug hin und geht 10 Minuten  flechten, um dann nach 10 Minuten wieder mauern zu gehen. Es leuchtet ein, dass diese Vorgehensweise nicht so ideal ist. Es liegt also auf der Hand das "Zwei" besser als "Einer" sind.

Nächste Seite: Was ist Hyper-Threading
 

ueber TweakPC: Impressum, Datenschutz Copyright 1999-2024 TweakPC, Alle Rechte vorbehalten, all rights reserved. Mit * gekennzeichnete Links sind Affiliates.