Heim / Internet / ht-Technologie. Hyper-Threading, was ist das und warum? CPUs mit Hyper-Threading-Unterstützung

ht-Technologie. Hyper-Threading, was ist das und warum? CPUs mit Hyper-Threading-Unterstützung

15.03.2013

Die Hyper-Threading-Technologie erschien in Intel-Prozessoren, beängstigend zu sagen, vor mehr als 10 Jahren. Und im Moment ist es ein wichtiges Element von Core-Prozessoren. Die Frage nach der Notwendigkeit von HT in Spielen ist jedoch noch nicht vollständig geklärt. Wir haben uns entschieden, einen Test durchzuführen, um zu sehen, ob Gamer einen Core i7 brauchen oder ob es besser ist, mit einem Core i5 auszukommen. Und finden Sie auch heraus, warum Core i3 besser ist als Pentium.


Die Hyper-Threading-Technologie, die von Intel entwickelt wurde und ausschließlich in den Prozessoren des Unternehmens verwendet wird, beginnend mit dem denkwürdigen Pentium 4, ist heute eine Selbstverständlichkeit. Es ist mit einer beträchtlichen Anzahl von Prozessoren der aktuellen und früheren Generationen ausgestattet. Es wird auch in naher Zukunft verwendet werden.

Und es muss zugegeben werden, dass die Hyper-Threading-Technologie nützlich ist und sich positiv auf die Leistung auswirkt, sonst würde Intel sie nicht nutzen, um seine Prozessoren innerhalb der Linie zu positionieren. Und das nicht als nebensächliches Element, sondern als eines der wichtigsten, wenn nicht sogar das wichtigste. Um zu verdeutlichen, wovon wir sprechen, haben wir eine Tabelle erstellt, die es einfach macht, das Segmentierungsprinzip von Intel-Prozessoren zu bewerten.


Wie Sie sehen können, gibt es nur sehr wenige Unterschiede zwischen Pentium und Core i3 sowie zwischen Core i5 und Core i7. Tatsächlich unterscheiden sich die i3- und i7-Modelle vom Pentium und i5 nur in der Größe des Third-Level-Cache pro Kern (natürlich ohne Taktfrequenz). Das erste Paar hat 1,5 Megabyte und das zweite 2 Megabyte. Dieser Unterschied kann die Leistung von Prozessoren nicht radikal beeinflussen, da der Unterschied in der Cache-Größe sehr gering ist. Aus diesem Grund erhielten Core i3 und Core i7 Unterstützung für die Hyper-Threading-Technologie, die das Hauptelement ist, das diesen Prozessoren einen Leistungsvorteil gegenüber Pentium bzw. Core i5 ermöglicht.

Ein etwas größerer Cache und die Unterstützung von Hyper-Threading ermöglichen es Ihnen daher, deutlich höhere Preise für Prozessoren festzulegen. Beispielsweise sind Prozessoren der Pentium-Reihe (etwa 10.000 Tenge) ungefähr zweimal billiger als Core i3 (etwa 20.000 Tenge), und obwohl sie auf Hardwareebene physikalisch absolut gleich sind, und dementsprechend , haben die gleichen Kosten . Der Preisunterschied zwischen Core i5 (ca. 30.000 Tenge) und Core i7 (ca. 50.000 Tenge) ist ebenfalls sehr groß, wenn auch weniger als zweimal bei jüngeren Modellen.


Wie gerechtfertigt ist eine solche Preiserhöhung? Welchen wirklichen Gewinn bietet Hyper-Threading? Die Antwort ist längst bekannt: Die Steigerung kann unterschiedlich sein – es kommt ganz auf die Anwendung und deren Optimierung an. Wir haben uns entschieden zu prüfen, was HT in Spielen als eine der anspruchsvollsten „Haushalts“-Anwendungen tut. Darüber hinaus wird dieser Test eine großartige Ergänzung zu unserem bisherigen Material zum Einfluss der Anzahl der Prozessorkerne auf die Spieleleistung sein.

Bevor wir zu den Tests übergehen, erinnern wir uns (oder finden Sie heraus), was die Hyper-Threading-Technologie ist. Wie Intel selbst es ausdrückte, Einführung diese Technologie vor vielen Jahren, daran ist nichts besonders kompliziert. Tatsächlich ist alles, was benötigt wird, um HT auf der physischen Ebene einzuführen, nicht ein Registersatz und ein Interrupt-Controller, sondern zwei zu einem physischen Kern hinzuzufügen. In Pentium 4-Prozessoren diese zusätzliche Elemente erhöhte die Anzahl der Transistoren nur um fünf Prozent. In den heutigen Ivy-Bridge-Kernen (wie auch in Sandy Bridge und dem zukünftigen Haswell) erhöhen zusätzliche Elemente für sogar vier Kerne den Würfel nicht einmal um 1 Prozent.


Zusätzliche Register und ein Interrupt-Controller, gekoppelt mit Softwareunterstützung, ermöglichen es dem Betriebssystem, nicht einen physischen Kern, sondern zwei logische Kerne zu sehen. Gleichzeitig erfolgt die Verarbeitung von Daten aus zwei Streams, die vom System gesendet werden, immer noch auf demselben Kern, jedoch mit einigen Funktionen. Der gesamte Prozessor steht immer noch einem Thread zur Verfügung, aber sobald einige CPU-Blöcke freigegeben und im Leerlauf sind, werden sie sofort dem zweiten Thread zur Verfügung gestellt. Dadurch war es möglich, alle Prozessoreinheiten gleichzeitig zu nutzen und dadurch die Effizienz zu steigern. Wie von Intel selbst angegeben, kann der Leistungsgewinn unter idealen Bedingungen bis zu 30 Prozent betragen. Zwar gelten diese Zahlen nur für den Pentium 4 mit seiner sehr langen Pipeline, moderne Prozessoren profitieren weniger von HT.

Aber nicht immer sind ideale Bedingungen für Hyper-Threading gegeben. Und vor allem ist das schlimmste Ergebnis der Arbeit von HT nicht der Mangel an Leistungsgewinn, sondern dessen Abnahme. Das heißt, unter bestimmten Bedingungen sinkt die Leistung eines Prozessors mit HT relativ zu einem Prozessor ohne HT aufgrund der Tatsache, dass der Aufwand für das Aufteilen von Threads und das Einreihen in Warteschlangen den Gewinn durch das Berechnen paralleler Threads, der in diesem Fall möglich ist, erheblich übersteigt Fall. Und solche Fälle sind viel häufiger, als es Intel lieb ist. Darüber hinaus hat die jahrelange Verwendung von Hyper-Threading die Situation nicht verbessert. Dies gilt insbesondere für Spiele, die sehr komplex und in Bezug auf die Datenberechnung keinesfalls unkonventionell sind, Anwendungen.

Um die Auswirkungen von Hyper-Threading auf die Gaming-Performance herauszufinden, haben wir erneut unseren lang gelittenen Core i7-2700K-Testprozessor verwendet und vier Prozessoren gleichzeitig simuliert, indem wir Kerne deaktiviert und HT aktiviert / deaktiviert haben. Herkömmlicherweise können sie als Pentium (2 Kerne, HT aus), Core i3 (2 Kerne, HT an), Core i5 (4 Kerne, HT aus) und Core i7 (4 Kerne, HT an) bezeichnet werden. Warum bedingt? Erstens, weil sie nach einigen Merkmalen nicht echten Produkten entsprechen. Insbesondere das Deaktivieren der Kerne führt nicht zu einer entsprechenden Verringerung des Volumens des Third-Level-Cache - sein Volumen beträgt insgesamt 8 Megabyte. Außerdem arbeiten alle unsere „bedingten“ Prozessoren mit der gleichen Frequenz von 3,5 GHz, die noch nicht von allen Intel-Prozessoren erreicht wird.


Dies ist jedoch sogar zum Besseren, denn dank der Unveränderlichkeit aller wichtige Parameter Wir werden in der Lage sein, die wirklichen Auswirkungen von Hyper-Threading auf die Spieleleistung ohne Vorbehalte herauszufinden. Und der prozentuale Leistungsunterschied zwischen unserem „bedingten“ Pentium und Core i3 wird dem Unterschied zwischen echten Prozessoren nahe kommen, vorausgesetzt, die Frequenzen sind gleich. Dass wir einen Sandy-Bridge-Prozessor verwenden, sollte uns auch nicht peinlich sein, denn unsere Effizienztests, die Sie im Artikel „Bloße Leistung – Die Effizienz von ALUs und FPUs“ nachlesen können, zeigten, dass die Auswirkungen von Hyper-Threading in die neuesten generationen von prozessoren Core bleibt unverändert. Höchstwahrscheinlich relevant gegebenen Stoff wird auch für kommende Haswell-Prozessoren verfügbar sein.

Nun, es scheint, dass alle Fragen zur Testmethodik sowie zu den Funktionen der Hyper-Threading-Technologie diskutiert wurden, und daher ist es an der Zeit, zum Interessantesten überzugehen - den Tests.

Bereits im Test, in dem wir den Einfluss der Anzahl der Prozessorkerne auf die Gaming-Leistung untersucht haben, stellten wir fest, dass der 3DMark 11 in Bezug auf die CPU-Leistung ziemlich ruhig ist und sogar auf einem einzelnen Kern perfekt funktioniert. Hyper-Threading hatte den gleichen "mächtigen" Einfluss. Wie man sieht, nimmt der Test die Unterschiede zwischen Pentium und Core i7, von Zwischenmodellen ganz zu schweigen, absolut nicht wahr.

U-Bahn 2033

Aber Metro 2033 hat das Aufkommen von Hyper-Threading deutlich bemerkt. Und negativ reagiert! Ja, das stimmt: Die Aktivierung von HT in diesem Spiel wirkt sich negativ auf die Leistung aus. Eine kleine Auswirkung natürlich - 0,5 Bilder pro Sekunde bei vier physischen Kernen und 0,7 bei zwei. Aber diese Tatsache gibt allen Grund zu sagen, dass der Pentium in Metro 2033 schneller als der Core i3 und der Core i5 besser als der Core i7 ist. Hier bestätigt sich, dass Hyper-Threading nicht immer und nicht überall seine Wirkung entfaltet.

Krise 2

Dieses Spiel zeigte sehr interessante Ergebnisse. Zunächst stellen wir fest, dass der Einfluss von Hyper-Threading bei Dual-Core-Prozessoren deutlich sichtbar ist – der Core i3 übertraf den Pentium um fast 9 Prozent, was für dieses Spiel ziemlich viel ist. Sieg für HT und Intel? Nicht wirklich, denn der Core i7 zeigte keine Verbesserung gegenüber dem deutlich günstigeren Core i5. Aber dafür gibt es eine vernünftige Erklärung - Crysis 2 weiß nicht, wie man mehr als vier Datenströme verwendet. Aus diesem Grund sehen wir bei einem Dual-Core mit HT eine gute Steigerung – schließlich sind vier Threads, wenn auch logische, besser als zwei. Andererseits gab es keine Möglichkeit, zusätzliche Core i7-Threads unterzubringen, vier physische Kerne reichten dort aus. Nach den Ergebnissen dieses Tests können wir also den positiven Einfluss von HT beim Core i3 feststellen, der hier deutlich besser ist als der Pentium. Aber darunter sieht der Quad-Core Core i5 wieder nach einer vernünftigeren Lösung aus.

Battlefield 3

Hier sind die Ergebnisse sehr seltsam. War beim Test der Anzahl der Kerne das Schlachtfeld ein Muster einer mikroskopischen, aber linearen Zunahme, dann brachte die Einbeziehung von Hyper-Threading Chaos in die Ergebnisse. Tatsächlich können wir feststellen, dass sich der Core i3 mit seinen zwei Kernen und HT als der beste von allen herausgestellt hat, noch vor dem Core i5 und dem Core i7. Seltsam natürlich, aber gleichzeitig waren Core i5 und Core i7 wieder auf dem gleichen Niveau. Was dies erklärt, ist nicht klar. Höchstwahrscheinlich spielte hier die Testmethodik in diesem Spiel eine Rolle, die größere Fehler als Standard-Benchmarks liefert.

Im letzten Test zeigte sich F1 2011 als eines der Kernzahl-kritischen Spiele und überraschte auch in diesem wieder mit dem hervorragenden Einfluss auf die Leistung der Hyper-Threading-Technologie. Und wieder, wie in Crysis 2, erwies sich die Einbeziehung von HT auf Dual-Core-Prozessoren als sehr gut. Schauen Sie sich den Unterschied zwischen unserem bedingten Core i3 und Pentium an – er ist mehr als doppelt so hoch! Sie können deutlich sehen, dass dem Spiel zwei Kerne sehr fehlen, und gleichzeitig ist sein Code so gut parallelisiert, dass der Effekt erstaunlich ist. Andererseits sind vier physische Kerne nicht zu schlagen – der Core i5 ist deutlich schneller als der Core i3. Aber der Core i7 zeigte wieder einmal, wie in früheren Spielen, nichts Herausragendes vor dem Hintergrund des Core i5. Der Grund ist derselbe - das Spiel kann nicht mehr als 4 Threads verwenden, und der Overhead von HT reduziert die Leistung des Core i7 unter das Niveau des Core i5.

Ein alter Krieger braucht Hyper-Threading genauso wenig wie ein Igel ein T-Shirt – sein Einfluss ist bei weitem nicht so ausgeprägt wie in F1 2011 oder Crysis 2. Gleichzeitig stellen wir noch fest, dass HT auf einem Dual-Core aktiviert werden muss Prozessor brachte 1 zusätzlichen Rahmen. Das reicht natürlich nicht aus, um zu sagen, dass der Core i3 besser ist als der Pentium. Zumindest entspricht diese Verbesserung eindeutig nicht dem Preisunterschied dieser Prozessoren. Und der Preisunterschied zwischen Core i5 und Core i7 ist nicht einmal erwähnenswert, da sich der Prozessor ohne HT-Unterstützung wieder als schneller herausstellte. Und spürbar schneller - um 7 Prozent. Ob es uns gefällt oder nicht, wir stellen erneut fest, dass vier Threads das Maximum für dieses Spiel sind, und daher HyperThreading in dieser Fall hilft Core i7 nicht, stört aber.

Wenn Sie den Inhalt des BIOS-Setups sorgfältig durchgesehen haben, wird Ihnen möglicherweise die CPU-Option dort auffallen. Hyperthreading Technologie. Und vielleicht haben sie sich gefragt, was Hyper Threading ist (Super-Threading oder Hyper-Threading, der offizielle Name ist Hyper Threading Technology, HTT) und warum diese Option benötigt wird.

Hyper Threading ist vergleichsweise neue Technologie, entwickelt von Intel für Prozessoren mit Pentium-Architektur. Wie die Praxis gezeigt hat, konnte durch den Einsatz der Hyper-Threading-Technologie in vielen Fällen die CPU-Leistung um ca. 20-30 % gesteigert werden.

Hier müssen Sie sich daran erinnern, wie die zentrale Verarbeitungseinheit eines Computers im Allgemeinen funktioniert. Sobald Sie den Computer einschalten und ein Programm darauf ausführen, beginnt die CPU, die darin enthaltenen Anweisungen zu lesen, die im sogenannten Maschinencode geschrieben sind. Es liest jede Anweisung der Reihe nach und führt sie nacheinander aus.

Viele Programme haben jedoch mehrere gleichzeitig laufende Softwareprozesse. Darüber hinaus ermöglichen moderne Betriebssysteme dem Benutzer, mehrere zu haben laufende Programme. Und nicht nur zulassen - tatsächlich ist die Situation, wenn ein einzelner Prozess im Betriebssystem läuft, heute völlig undenkbar. Daher hatten Prozessoren, die mit älteren Technologien entwickelt wurden, eine schlechte Leistung in Fällen, in denen mehrere Prozesse gleichzeitig verarbeitet werden mussten.

Um dieses Problem zu lösen, können Sie natürlich mehrere Prozessoren auf einmal in das System aufnehmen oder Prozessoren, die mehrere physische Rechenkerne verwenden. Eine solche Verbesserung erweist sich jedoch als teuer, technisch komplex und aus praktischer Sicht nicht immer effektiv.

Entwicklungsgeschichte

Daher wurde beschlossen, eine Technologie zu entwickeln, die es ermöglicht, mehrere Prozesse auf einem physischen Kern zu verarbeiten. Gleichzeitig wird es bei Programmen äußerlich so aussehen, als wären gleich mehrere Prozessorkerne im System.

Die Unterstützung für die Hyper-Threading-Technologie erschien erstmals 2002 in Prozessoren. Dabei handelte es sich um Prozessoren der Pentium-4-Familie und Xeon-Serverprozessoren mit Taktraten über 2 GHz. Anfangs trug die Technologie den Codenamen Jackson, änderte dann aber den für die Allgemeinheit verständlicheren Namen in Hyper Threading – was grob mit „Superthreading“ übersetzt werden kann.

Gleichzeitig ist laut Intel die Oberfläche eines Prozessorchips, der Hyper Threading unterstützt, im Vergleich zum Vorgängermodell, das es nicht unterstützt, nur um 5 % gewachsen, während die Leistung um durchschnittlich 20 % gesteigert wurde.

Trotz der Tatsache, dass sich die Technologie insgesamt gut bewährt hat, entschied sich Intel aus mehreren Gründen, die Hyper-Threading-Technologie in den Prozessoren der Core-2-Familie, die den Pentium 4 ablösten, zu deaktivieren. Hyper-Threading tauchte jedoch später wieder auf in den Prozessorarchitekturen von Sandy Bridge, Ivy Bridge und Haswell, in denen sie grundlegend neu gestaltet wurden.

Das Wesen der Technik

Das Verständnis von Hyper Threading ist wichtig, weil es eines der ist Schlüsselfunktionen bei Intel-Prozessoren.

Trotz aller Erfolge, die Prozessoren erzielt haben, haben sie einen entscheidenden Nachteil: Sie können immer nur eine Anweisung gleichzeitig ausführen. Angenommen, Sie haben Anwendungen, die gleichzeitig ausgeführt werden, wie z Texteditor, Browser und Skype. Aus Sicht des Benutzers kann diese Softwareumgebung als Multitasking bezeichnet werden, aus Sicht des Prozessors ist dies jedoch bei weitem nicht der Fall. Der Prozessorkern führt noch eine bestimmte Zeit lang eine Anweisung aus. In diesem Fall umfasst die Aufgabe des Prozessors die Verteilung von Prozessorzeitressourcen zwischen individuelle Anwendungen. Da diese sequentielle Ausführung von Anweisungen extrem schnell ist, merken Sie es nicht. Und es scheint dir, dass es keine Verzögerung gibt.

Aber es gibt noch eine Verzögerung. Die Verzögerung tritt aufgrund der Art und Weise auf, wie der Prozessor mit Daten von jedem der Programme versorgt wird. Jeder Datenstrom muss zu einem bestimmten Zeitpunkt eintreffen und vom Prozessor einzeln verarbeitet werden. Die Hyper-Threading-Technologie ermöglicht es jedem Prozessorkern, die Datenverarbeitung zu planen und Ressourcen gleichzeitig für zwei Threads zuzuweisen.

Es ist zu beachten, dass im Kern moderner Prozessoren mehrere sogenannte Ausführungseinheiten gleichzeitig vorhanden sind, von denen jede dazu bestimmt ist, eine bestimmte Operation an Daten auszuführen. Gleichzeitig können einige dieser ausführenden Geräte während der Verarbeitung von Daten von einem Thread im Leerlauf sein.

Um diese Situation zu verstehen, können wir eine Analogie zu den Arbeitern ziehen, die in der Montagehalle am Förderband arbeiten und verschiedene Arten von Teilen bearbeiten. Jeder Arbeiter ist mit einem bestimmten Werkzeug ausgestattet, das für die Ausführung einer Aufgabe entwickelt wurde. Kommen die Teile jedoch in der falschen Reihenfolge an, kommt es zu Verzögerungen – denn einige Arbeiter warten darauf, dass sie mit der Arbeit beginnen. Hyper Threading ist vergleichbar mit einem zusätzlichen Fließband, das in der Werkstatt verlegt wurde, damit zuvor untätige Arbeiter ihre Aufgaben unabhängig von anderen erledigen würden. Die Werkstatt ist immer noch allein, aber Teile werden schneller und effizienter verarbeitet, sodass Ausfallzeiten reduziert werden. Hyper Threading ermöglichte es also, diejenigen Ausführungsgeräte des Prozessors in die Arbeit einzubeziehen, die während der Ausführung von Anweisungen eines Threads im Leerlauf waren.

Sobald Sie einen Computer mit einem Dual-Core-Prozessor, der Hyper Threading unterstützt, einschalten und den Windows Task-Manager (Task-Manager) auf der Registerkarte Leistung (Performance) öffnen, finden Sie darin vier Diagramme. Dies bedeutet jedoch nicht, dass Sie tatsächlich 4 Prozessorkerne haben.

Dies liegt daran, dass Windows davon ausgeht, dass jeder Kern zwei logische Prozessoren hat. Der Begriff „logischer Prozessor“ klingt komisch, meint aber einen Prozessor, der physikalisch nicht existiert. Windows kann Datenströme an jeden logischen Prozessor senden, aber nur ein Kern erledigt tatsächlich die Arbeit. Daher unterscheidet sich ein einzelner Kern mit Hyper-Threading-Technologie erheblich von separaten physischen Kernen.

Die Hyper-Threading-Technologie erfordert Unterstützung durch die folgende Hardware und Software:

  • Zentralprozessor
  • Motherboard-Chipsatz
  • Operationssystem

Technologievorteile

Stellen Sie sich nun die nächste Frage: Wie stark erhöht die Hyper-Threading-Technologie die Computerleistung? Bei alltäglichen Aufgaben wie dem Surfen und Tippen im Internet sind die Vorteile der Technologie nicht so offensichtlich. Bedenken Sie jedoch, dass die heutigen Prozessoren so leistungsfähig sind, dass alltägliche Aufgaben den Prozessor selten voll auslasten. Außerdem hängt viel davon ab, wie es geschrieben wird Software. Sie können mehrere Programme gleichzeitig ausführen, aber wenn Sie sich das Lastdiagramm ansehen, werden Sie sehen, dass nur ein logischer Prozessor pro Kern verwendet wird. Dies liegt daran, dass die Software die Verteilung von Prozessen zwischen Kernen nicht unterstützt.

Bei komplexeren Aufgaben kann Hyper-Threading jedoch nützlicher sein. Anwendungen wie 3D-Modellierungsprogramme, 3D-Spiele, Musik- oder Video-Kodierungs-/Dekodierungsprogramme und viele wissenschaftliche Anwendungen wurden geschrieben, um Multithreading optimal zu nutzen. Daher können Sie die Vorteile der Leistung eines Computers mit Hyperthreading erleben, während Sie komplexe Spiele spielen, Musik hören oder Filme ansehen. Dies kann die Leistung um bis zu 30 % steigern, obwohl es Situationen geben kann, in denen Hyper Threading überhaupt keinen Vorteil bietet. Falls beide Threads alle ausführenden Geräte des Prozessors mit denselben Aufgaben belasten, kann es manchmal sogar zu Leistungseinbußen kommen.

Um auf das Vorhandensein der entsprechenden Option im BIOS-Setup zurückzukommen, mit der Sie die Hyper-Threading-Parameter einstellen können, wird in den meisten Fällen empfohlen, diese Funktion zu aktivieren. Sie können es jedoch jederzeit ausschalten, wenn sich herausstellt, dass der Computer mit Fehlern arbeitet oder sogar weniger Leistung hat, als Sie erwartet haben.

Fazit

Da die maximale Leistungssteigerung beim Einsatz von Hyper Threading bei 30 % liegt, kann man nicht sagen, dass die Technologie einer Verdopplung der Prozessorkerne gleichkommt. Trotzdem ist Hyper Threading eine nützliche Option, und Sie als Besitzer eines Computers werden sich nicht daran stören. Sein Vorteil macht sich zum Beispiel besonders bemerkbar, wenn Sie Multimedia-Dateien bearbeiten oder Ihren Computer als Workstation für professionelle Programme wie Photoshop oder Maya nutzen.

Es gab eine Zeit, in der es notwendig war, die Speicherleistung im Zusammenhang mit der Hyper-Threading-Technologie zu bewerten. Wir kamen zu dem Schluss, dass sein Einfluss nicht immer positiv ist. Als es ein Quäntchen Freizeit gab, bestand der Wunsch, die Forschung fortzusetzen und laufende Prozesse mit einer Genauigkeit von Maschinenzyklen und Bits mit einer von uns entwickelten Software zu betrachten.

Recherchierte Plattform

Das Objekt von Experimenten - ASUS-Laptop N750JK mit Intel Core i7-4700HQ Prozessor. Die Taktrate beträgt 2,4 GHz, die durch den Intel Turbo Boost-Modus auf bis zu 3,4 GHz gesteigert wird. 16 Gigabyte installiert Arbeitsspeicher DDR3-1600 (PC3-12800) im Dual-Channel-Modus. Operationssystem - Microsoft Windows 8.1 64-Bit.

Abb.1 Konfiguration der untersuchten Plattform.

Der Prozessor der untersuchten Plattform enthält 4 Kerne, die bei aktivierter Hyper-Threading-Technologie Hardwareunterstützung für 8 Threads oder logische Prozessoren bieten. Die Plattform-Firmware gibt diese Informationen über die ACPI-Tabelle MADT (Multiple APIC Description Table) an das Betriebssystem weiter. Da die Plattform nur einen RAM-Controller enthält, gibt es keine SRAT (System Resource Affinity Table), die die Nähe von Prozessorkernen zu Speichercontrollern deklariert. Offensichtlich handelt es sich bei dem fraglichen Laptop nicht um eine NUMA-Plattform, aber operationssystem, zum Zweck der Vereinheitlichung, betrachtet es als ein NUMA-System mit einer Domäne, was durch die Zeile NUMA Nodes = 1 angezeigt wird. Grundlegend für unsere Experimente ist die Tatsache, dass der Datencache der ersten Ebene eine Größe von 32 Kilobyte für hat jeder der vier Kerne. Zwei logische Prozessoren, die sich denselben Kern teilen, teilen sich die L1- und L2-Caches.

Untersuchter Betrieb

Wir werden die Abhängigkeit der Lesegeschwindigkeit von Datenblöcken von ihrer Größe untersuchen. Dazu wählen wir die produktivste Methode, nämlich das Lesen von 256-Bit-Operanden mit der VMOVAPD AVX-Anweisung. In den Diagrammen zeigt die X-Achse die Blockgröße und die Y-Achse die Lesegeschwindigkeit. In der Nähe von Punkt X, der der Größe des L1-Cache entspricht, erwarten wir einen Wendepunkt, da die Leistung sinken sollte, nachdem der verarbeitete Block den Cache verlässt. In unserem Test arbeitet beim Multithreading jeder der 16 initiierten Threads mit einem eigenen Adressbereich. Um die Hyper-Threading-Technologie innerhalb einer Anwendung zu steuern, verwendet jeder Thread die API-Funktion SetThreadAffinityMask, die eine Maske festlegt, in der jeder logische Prozessor einem Bit entspricht. Ein einzelner Wert des Bits erlaubt die Verwendung des angegebenen Prozessors durch den angegebenen Thread, ein Nullwert verbietet dies. Für 8 logische Prozessoren der untersuchten Plattform erlaubt Maske 11111111b die Verwendung aller Prozessoren (Hyper-Threading aktiviert), Maske 01010101b erlaubt die Verwendung eines logischen Prozessors in jedem Kern (Hyper-Threading deaktiviert).

In den Grafiken werden folgende Abkürzungen verwendet:

MBPS (Megabyte pro Sekunde)Blocklesegeschwindigkeit in Megabyte pro Sekunde;

CPI (Takte pro Anweisung)Anzahl der Zyklen pro Befehl;

TSC (Zeitstempelzähler)Prozessorzykluszähler.

Hinweis: Die Taktrate des TSC-Registers stimmt möglicherweise nicht mit der Taktrate des Prozessors überein, wenn er im Turbo Boost-Modus läuft. Dies muss bei der Interpretation der Ergebnisse berücksichtigt werden.

Auf der rechten Seite der Diagramme wird ein hexadezimaler Dump der Anweisungen, die den Hauptteil des Zyklus der Zieloperation bilden, die in jedem der Programm-Threads ausgeführt wird, oder die ersten 128 Bytes dieses Codes, visualisiert.

Erlebnis Nummer 1. Ein Faden



Abb.2 Lesen in einem Thread

Die maximale Geschwindigkeit beträgt 213563 Megabyte pro Sekunde. Der Wendepunkt tritt bei einer Blockgröße von etwa 32 Kilobyte auf.

Erlebnis Nummer 2. 16 Threads auf 4 Prozessoren, Hyper-Threading deaktiviert



Abb. 3 Lesen in sechzehn Threads. Die Anzahl der verwendeten logischen Prozessoren beträgt vier

Hyperthreading ist deaktiviert. Die maximale Geschwindigkeit beträgt 797598 Megabyte pro Sekunde. Der Wendepunkt tritt bei einer Blockgröße von etwa 32 Kilobyte auf. Wie erwartet, stieg die Geschwindigkeit im Vergleich zum Lesen mit einem einzelnen Thread um etwa das Vierfache, bezogen auf die Anzahl der arbeitenden Kerne.

Erlebnis Nummer 3. 16 Threads auf 8 Prozessoren, Hyper-Threading aktiviert



Abb.4 Lesen in sechzehn Threads. Die Anzahl der verwendeten logischen Prozessoren beträgt acht

Hyperthreading aktiviert. Die maximale Geschwindigkeit von 800722 Megabyte pro Sekunde wurde durch die Einbeziehung von Hyper-Threading fast nicht erhöht. Das große Minus ist, dass der Wendepunkt bei einer Blockgröße von etwa 16 Kilobyte auftritt. Die Aktivierung von Hyper-Threading hat die maximale Geschwindigkeit leicht erhöht, aber jetzt tritt der Geschwindigkeitsabfall bei der Hälfte der Blockgröße auf – etwa 16 Kilobyte, sodass die Durchschnittsgeschwindigkeit deutlich gesunken ist. Dies ist nicht überraschend, jeder Kern hat seinen eigenen L1-Cache, während die logischen Prozessoren im selben Kern ihn teilen.

Ergebnisse

Der untersuchte Betrieb skaliert recht gut auf einem Mehrkernprozessor. Die Gründe sind, dass jeder der Kerne einen eigenen Cache-Speicher der ersten und zweiten Ebene enthält, die Größe des Zielblocks mit der Größe des Cache-Speichers vergleichbar ist und jeder der Threads mit einem eigenen Adressbereich arbeitet. Für wissenschaftliche Zwecke haben wir solche Bedingungen in einem synthetischen Test geschaffen, wobei wir erkannt haben, dass reale Anwendungen meist weit von einer idealen Optimierung entfernt sind. Die Einbeziehung von Hyper-Threading wirkte sich jedoch auch unter diesen Bedingungen negativ aus, da bei einer leichten Erhöhung der Spitzengeschwindigkeit ein erheblicher Verlust der Verarbeitungsgeschwindigkeit von Blöcken zu verzeichnen ist, deren Größe im Bereich von 16 bis 32 liegt Kilobyte.

Hallo Computer- und Hardwareliebhaber.

Möchten Sie einen leistungsstarken Prozessor in Ihrem Computer haben, der viele Aufgaben gleichzeitig blitzschnell erledigen kann? Wer würde sich weigern, oder? Dann schlage ich vor, dass Sie sich mit der Hyper-Threading-Technologie vertraut machen: Was es ist und wie es funktioniert, erfahren Sie in diesem Artikel.


Erläuterung des Konzepts

Hyper-Threading wird aus dem Englischen mit „Hyper-Genauigkeit“ übersetzt. Die Technologie hat aus gutem Grund einen so großen Namen. Immerhin nimmt das Betriebssystem einen damit ausgestatteten physikalischen Prozessor für zwei logische Kerne. Folglich werden mehr Befehle verarbeitet und die Leistung sinkt nicht.

Wie ist das möglich? Aufgrund der Tatsache, dass der Prozessor:

  • Speichert Informationen über mehrere laufende Threads gleichzeitig;
  • Für jeden logischen Prozessor gibt es einen Registersatz – Blöcke mit schnellem internen Speicher sowie einen Block mit Interrupts. Letzterer ist für die sequentielle Ausführung von Anfragen verschiedener Geräte zuständig.

Wie sieht es in der Realität aus? Angenommen, der physische Prozessor verarbeitet die Befehle des ersten logischen Prozessors. Aber in letzterem gab es eine Art Fehler, und er muss zum Beispiel auf Daten aus dem Speicher warten. Der Physische verschwendet keine Zeit und schaltet sofort auf den zweiten logischen Prozessor um.

Über Leistungssteigerung

Die Effizienz eines physischen Prozessors beträgt in der Regel nicht mehr als 70%. Wieso den? Oft werden einige Blöcke einfach nicht benötigt, um eine bestimmte Aufgabe auszuführen. Wenn die CPU zum Beispiel triviale Rechenaktionen durchführt, sind der Anweisungsblock und die Erweiterung SIMD nicht beteiligt. Es kommt vor, dass im Verzweigungsvorhersagemodul oder beim Zugriff auf den Cache ein Fehler auftritt.

In solchen Situationen füllt Hyper-Threading die "Lücken" mit anderen Aufgaben. Die Effektivität der Technologie liegt also darin, dass nützliche Arbeit nicht untätig bleibt und an untätige Geräte vergeben wird.

Aussehen und Umsetzung

Wir können davon ausgehen, dass Hyper-Threading bereits sein 15-jähriges Bestehen gefeiert hat. Schließlich wurde es auf Basis der Super-Threading-Technologie entwickelt, die 2002 veröffentlicht wurde und zunächst in Xeon-Produkten funktionierte, dann im selben Jahr in Pentium 4 integriert wurde. Das Urheberrecht an diesen Technologien liegt bei Intel.

HT ist in Prozessoren implementiert, die auf der NetBurst-Mikroarchitektur laufen, die sich durch hohe Taktraten auszeichnet. Die Technologieunterstützung ist in Modellen der Familien Core vPro, M und Xeon implementiert. In der Core 2-Reihe ("Duo", "Quad") ist sie jedoch nicht integriert. Eine im Prinzip ähnliche Technologie wird in den Atom- und Itanium-Prozessen implementiert.

Wie aktiviere ich es? Sie müssen nicht nur einen der oben genannten Prozessoren haben, sondern auch ein Betriebssystem, das die Technologie unterstützt, und ein BIOS, das die Option hat, HT ein- und auszuschalten. Wenn nicht, aktualisieren Sie das BIOS.

Vor- und Nachteile von Hyperthreading

Aus den obigen Informationen konnten Sie bereits einen Rückschluss auf einige Vorteile der Technologie ziehen. Ich füge ihnen noch ein paar Worte hinzu:

  • Stabiler Betrieb mehrerer Programme parallel;
  • Reduzierte Reaktionszeit beim Surfen im Internet oder bei der Verwendung von Anwendungen.

Wie Sie verstehen, war es nicht ohne Haar in der Suppe. Aus folgenden Gründen kann es zu keinem Leistungsgewinn kommen:

  • Nicht genügend Cache-Speicher. Bei i7-Prozessoren mit 4 Kernen beträgt der Cache beispielsweise 8 MB, aber es gibt dieselbe Anzahl logischer Kerne. Wir erhalten nur 1 MB pro Kern, was für die meisten Programme nicht ausreicht, um Rechenaufgaben auszuführen. Dadurch steht die Leistung nicht nur still, sondern sinkt sogar.

  • Datenabhängigkeit. Angenommen, der erste Thread benötigt sofort Informationen vom zweiten, ist aber noch nicht bereit oder wartet auf einen anderen Thread. Es kommt auch vor, dass zyklische Daten bestimmte Blöcke benötigen, um eine Aufgabe schnell zu erledigen, diese aber bereits mit anderen Arbeiten beschäftigt sind.
  • Kernel-Überlastung. Es kommt vor, dass der Kernel bereits überlastet ist, aber das Vorhersagemodul sendet trotzdem Daten an ihn, wodurch der Computer langsamer wird.

Wo wird Hyper-Threading benötigt?

Die Technologie wird nützlich sein, wenn ressourcenintensive Programme verwendet werden: Audio-, Video- und Foto-Editoren, Spiele, Archivierer. Dazu gehören Photoshop, Maya, Max von 3D, Corel Draw, WinRar usw.

Wichtig ist, dass die Software für Hyperthreading optimiert ist. Andernfalls kann es zu Verzögerungen kommen. Tatsache ist, dass Programme logische Kerne als physisch betrachten, sodass sie verschiedene Aufgaben an denselben Block senden können.

Ich freue mich darauf, Sie auf meinem Blog zu sehen.

Benutzer, die mindestens einmal das BIOS konfiguriert haben, haben wahrscheinlich schon bemerkt, dass es einen Intel Hyper Threading-Parameter gibt, der für viele unverständlich ist. Viele wissen nicht, was diese Technologie ist und zu welchem ​​Zweck sie verwendet wird. Versuchen wir herauszufinden, was Hyper Threading ist und wie Sie die Verwendung dieser Unterstützung aktivieren können. Wir werden auch versuchen herauszufinden, welche Vorteile es einem Computer bietet. diese Einstellung. Im Prinzip ist hier nichts schwer verständlich.

Intel Hyper-Threading: Was ist das?
Wenn Sie sich nicht tief in den Dschungel der Computerterminologie begeben, aber um es einfach auszudrücken, wurde diese Technologie entwickelt, um den Fluss der gleichzeitig vom zentralen Prozessor verarbeiteten Befehle zu erhöhen. Moderne Prozessorchips nutzen in der Regel nur 70 % der verfügbaren Rechenleistung. Der Rest bleibt sozusagen in Reserve. Für die Verarbeitung des Datenstroms wird in den meisten Fällen nur ein Thread verwendet, obwohl das System einen Mehrkernprozessor verwendet.

Grundprinzipien der Arbeit
Um die Fähigkeiten des Zentralprozessors zu erhöhen, wurde er entwickelt spezielle Technik Hyperthreading. Diese Technologie macht es einfach, einen Befehlsstrom in zwei aufzuteilen. Es ist auch möglich, einen zweiten Stream zu einem bestehenden hinzuzufügen. Nur ein solcher Stream ist virtuell und funktioniert nicht auf der physischen Ebene. Mit diesem Ansatz können Sie die Leistung des Prozessors erheblich steigern. Das gesamte System beginnt dementsprechend schneller zu arbeiten. Die Steigerung der CPU-Leistung kann sehr stark schwanken. Dies wird gesondert besprochen. Die Entwickler der Hyper-Threading-Technologie behaupten jedoch selbst, dass sie keinen vollwertigen Kern hat. In einigen Fällen ist der Einsatz dieser Technologie durchaus gerechtfertigt. Wenn Sie die Essenz von Hyper-Threading-Prozessoren kennen, wird das Ergebnis nicht lange auf sich warten lassen.

Geschichtlicher Bezug
Tauchen wir ein wenig in die Geschichte dieser Entwicklung ein. Die Unterstützung für Hyper Threading erschien zunächst nur in Intel Pentium 4 Prozessoren, später wurde die Implementierung dieser Technologie in der Intel Core iX Serie fortgesetzt (X steht hier für Prozessorserie). Es sollte beachtet werden, dass es aus irgendeinem Grund in der Reihe der Core 2-Prozessorchips fehlt. Richtig, dann war die Produktivitätssteigerung eher schwach: irgendwo auf dem Niveau von 15-20%. Dies deutete darauf hin, dass der Prozessor nicht über die erforderliche Rechenleistung verfügte und die entwickelte Technologie ihrer Zeit praktisch voraus war. Heutzutage ist die Unterstützung der Hyper-Threading-Technologie bereits in fast allen modernen Chips verfügbar. Um die Leistung des zentralen Prozessors zu erhöhen, verwendet der Prozess selbst nur 5 % der Kristalloberfläche, während Platz für die Verarbeitung von Befehlen und Daten bleibt.

Eine Frage von Konflikten und Leistung
All dies ist sicherlich gut, aber in einigen Fällen kann es bei der Verarbeitung von Daten zu einer Verlangsamung der Arbeit kommen. Das liegt vor allem am sogenannten Branch-Prediction-Modul und an zu geringer Cache-Größe, wenn es ständig neu geladen wird. Wenn wir über das Hauptmodul sprechen, dann ist die Situation in diesem Fall so, dass in einigen Fällen der erste Thread möglicherweise Daten vom zweiten benötigt, die in diesem Moment möglicherweise nicht verarbeitet werden oder sich in der Warteschlange für die Verarbeitung befinden. Nicht weniger häufig sind Situationen, in denen der zentrale Prozessorkern sehr stark belastet ist und das Hauptmodul trotzdem weiterhin Daten an ihn sendet. Einige Programme und Anwendungen, wie z. B. ressourcenintensive Online-Spiele, können ernsthaft langsamer werden, nur weil sie nicht für die Verwendung der Hyper-Threading-Technologie optimiert sind. Was passiert mit Spielen? Das Computersystem des Benutzers versucht seinerseits, die Datenflüsse von der Anwendung zum Server zu optimieren. Das Problem ist, dass das Spiel nicht weiß, wie es Datenströme unabhängig verteilen und alles auf einen Haufen werfen kann. Im Großen und Ganzen ist es möglicherweise einfach nicht dafür ausgelegt. Bei Dual-Core-Prozessoren ist der Leistungszuwachs teilweise deutlich höher als bei 4-Core-Prozessoren. Sie haben einfach nicht die Rechenleistung.

Wie aktiviere ich Hyper-Threading im BIOS?
Wir haben bereits ein wenig darüber herausgefunden, was die Hyper-Threading-Technologie ist, und uns mit der Geschichte ihrer Entwicklung vertraut gemacht. Wir haben fast verstanden, was die Hyper-Threading-Technologie ist. Wie aktiviere ich diese Technologie für die Verwendung im Prozessor? Hier ist alles ganz einfach gemacht. Sie müssen das BIOS-Verwaltungssubsystem verwenden. Das Subsystem wird mit den Tasten Entf, F1, F2, F3, F8, F12, F2+Entf usw. aufgerufen. Wenn Sie einen Sony Vaio-Laptop verwenden, haben sie einen bestimmten Eingang, wenn Sie die dedizierte ASSIST-Taste verwenden. Wenn der von Ihnen verwendete Prozessor die Hyper-Threading-Technologie unterstützt, sollte in den BIOS-Einstellungen eine spezielle Einstellungszeile vorhanden sein. In den meisten Fällen sieht es aus wie Hyper-Threading-Technologie und manchmal wie Function. Abhängig vom Subsystem-Entwickler und BIOS-Versionen, kann die Einstellung dieses Parameters entweder im Hauptmenü oder in den erweiterten Einstellungen enthalten sein. Um diese Technologie zu aktivieren, müssen Sie das Optionsmenü aufrufen und den Wert auf Aktiviert setzen. Danach müssen Sie die vorgenommenen Änderungen speichern und das System neu starten.

Warum ist Hyper-Threading nützlich?
Abschließend möchte ich auf die Vorteile eingehen, die der Einsatz der Hyper-Threading-Technologie bietet. Wozu das alles? Warum muss die Prozessorleistung bei der Verarbeitung von Informationen erhöht werden? Diejenigen Benutzer, die mit ressourcenintensiven Anwendungen und Programmen arbeiten, müssen nichts erklären. Viele Menschen wissen wahrscheinlich, dass Softwarepakete für Grafik, Mathematik und Design während des Arbeitsprozesses viele Systemressourcen benötigen. Aus diesem Grund wird das gesamte System so stark belastet, dass es beginnt, schrecklich langsam zu werden. Um dies zu verhindern, wird empfohlen, die Hyper-Threading-Unterstützung zu aktivieren.