Connect with us

Wie man

Warum haben CPU-Kerne alle die gleiche Geschwindigkeit anstelle unterschiedlicher?

Warum haben CPU-Kerne alle die gleiche Geschwindigkeit anstelle unterschiedlicher?

Wenn Sie jemals viel Vergleichseinkäufe für eine neue CPU getätigt haben, haben Sie möglicherweise bemerkt, dass alle Kerne eher die Geschwindigkeit als eine Kombination verschiedener zu haben scheinen. Warum ist das so? Der heutige SuperUser Q & A-Beitrag enthält die Antwort auf die Frage eines neugierigen Lesers.

Die Frage

SuperUser-Leser Jamie möchte wissen, warum CPU-Kerne alle dieselbe Geschwindigkeit haben und nicht unterschiedliche:

Wenn Sie einen neuen Computer kaufen, bestimmen Sie im Allgemeinen anhand der erwarteten Arbeitslast des Computers, welchen Prozessor Sie kaufen möchten. Die Leistung in Videospielen wird in der Regel durch die Geschwindigkeit eines einzelnen Kerns bestimmt, während Anwendungen wie die Videobearbeitung durch die Anzahl der Kerne bestimmt werden. In Bezug auf das, was auf dem Markt verfügbar ist, scheinen alle CPUs ungefähr die gleiche Geschwindigkeit zu haben, wobei die Hauptunterschiede mehr Threads oder mehr Kerne sind.

Zum Beispiel:

  • Intel Core i5-7600K, Grundfrequenz 3,80 GHz, 4 Kerne, 4 Threads
  • Intel Core i7-7700K, Grundfrequenz 4,20 GHz, 4 Kerne, 8 Threads
  • AMD Ryzen 5 1600X, Grundfrequenz 3,60 GHz, 6 Kerne, 12 Threads
  • AMD Ryzen 7 1800X, Grundfrequenz 3,60 GHz, 8 Kerne, 16 Threads

Warum sehen wir dieses Muster zunehmender Kerne, aber alle Kerne haben die gleiche Taktrate? Warum gibt es keine Varianten mit unterschiedlichen Taktraten? Zum Beispiel zwei „große“ Kerne und viele kleine Kerne.

Anstelle von beispielsweise vier Kernen mit 4,0 GHz (dh 4 × 4 GHz, maximal 16 GHz), wie wäre es mit einer CPU mit zwei Kernen mit 4,0 GHz und vier Kernen mit 2,0 GHz (dh 2 × 4,0 GHz + 4 × 2,0) GHz, maximal 16 GHz)? Wäre die zweite Option bei Workloads mit einem Thread genauso gut, bei Workloads mit mehreren Threads jedoch möglicherweise besser?

Ich stelle dies als allgemeine Frage und nicht speziell in Bezug auf die oben aufgeführten CPUs oder eine bestimmte Arbeitslast. Ich bin nur neugierig, warum das Muster so ist, wie es ist.

Warum haben CPU-Kerne alle die gleiche Geschwindigkeit anstatt unterschiedliche?

Die Antwort

SuperUser-Mitarbeiter bwDraco hat die Antwort für uns:

Dies ist als heterogene Mehrfachverarbeitung (HMP) bekannt und wird von Mobilgeräten weitgehend übernommen. In ARM-basierten Geräten, die implementieren großen kleinenDer Prozessor enthält Kerne mit unterschiedlichen Leistungs- und Leistungsprofilen, dh einige Kerne laufen schnell, verbrauchen jedoch viel Strom (schnellere Architektur und / oder höhere Takte), während andere energieeffizient, aber langsam (langsamere Architektur und / oder niedrigere Takte) sind. Dies ist nützlich, da der Stromverbrauch tendenziell überproportional zunimmt, wenn Sie die Leistung erhöhen, sobald Sie einen bestimmten Punkt überschritten haben. Die Idee hier ist, Leistung zu erhalten, wenn Sie sie benötigen, und Akkulaufzeit, wenn Sie dies nicht tun.

Auf Desktop-Plattformen spielt der Stromverbrauch eine weitaus geringere Rolle, sodass dies nicht unbedingt erforderlich ist. Die meisten Anwendungen erwarten, dass jeder Kern ähnliche Leistungsmerkmale aufweist, und Planungsprozesse für HMP-Systeme sind viel komplexer als die Planung für herkömmliche SMP-Systeme (Symmetric Multi-Processing) (technisch gesehen unterstützt Windows 10 HMP, ist jedoch hauptsächlich für Mobilgeräte vorgesehen Geräte, die ARM big.LITTLE verwenden).

Außerdem sind die meisten Desktop- und Laptop-Prozessoren heutzutage weder thermisch noch elektrisch auf den Punkt beschränkt, an dem einige Kerne schneller laufen müssen als andere, selbst bei kurzen Bursts. Wir haben im Grunde eine Wand getroffen wie schnell wir einzelne Kerne herstellen könnenWenn Sie also einige Kerne durch langsamere ersetzen, können die verbleibenden Kerne nicht schneller ausgeführt werden.

Während es einige Desktop-Prozessoren gibt, die über einen oder zwei Kerne verfügen, die schneller als die anderen ausgeführt werden können, ist diese Funktion derzeit auf bestimmte High-End-Intel-Prozessoren (bekannt als Turbo Boost Max Technology 3.0) beschränkt und bringt nur einen geringen Gewinn mit sich Leistung für die Kerne, die schneller laufen können.

Während es sicherlich möglich ist, einen herkömmlichen x86-Prozessor mit großen, schnellen Kernen und kleineren, langsameren Kernen zu entwerfen, um für Workloads mit starkem Threading zu optimieren, würde dies das Prozessordesign erheblich komplexer machen, und es ist unwahrscheinlich, dass Anwendungen ihn ordnungsgemäß unterstützen.

Nehmen Sie einen hypothetischen Prozessor mit zwei schnell Kaby Lake (7. Generation) Kerne und acht langsame Goldmont (Atom-) Kerne. Sie hätten insgesamt 10 Kerne, und Workloads mit starkem Threading, die für diese Art von Prozessor optimiert sind, können gegenüber einem normalen Quad-Core-Kaby Lake-Prozessor einen Leistungs- und Effizienzgewinn erzielen. Die verschiedenen Arten von Kernen haben jedoch sehr unterschiedliche Leistungsstufen, und die langsamen Kerne unterstützen nicht einmal einige der Anweisungen, die die schnellen Kerne unterstützen, wie z AVX (ARM vermeidet dieses Problem, indem sowohl der große als auch der kleine Kern dieselben Anweisungen unterstützen müssen.)

Wiederum gehen die meisten Windows-basierten Multithread-Anwendungen davon aus, dass jeder Kern das gleiche oder fast das gleiche Leistungsniveau aufweist und die gleichen Anweisungen ausführen kann. Daher führt diese Art von Asymmetrie wahrscheinlich sogar zu einer nicht idealen Leistung stürzt ab, wenn Anweisungen verwendet werden, die von den langsameren Kernen nicht unterstützt werden. Während Intel die langsamen Kerne ändern könnte, um erweiterte Befehlsunterstützung hinzuzufügen, sodass alle Kerne alle Befehle ausführen können, würde dies Probleme mit der Softwareunterstützung für heterogene Prozessoren nicht lösen.

Ein anderer Ansatz für das Anwendungsdesign, der näher an dem liegt, woran Sie wahrscheinlich in Ihrer Frage denken, würde die GPU zur Beschleunigung hochparalleler Teile von Anwendungen verwenden. Dies kann mit APIs wie erfolgen OpenCL und CUDA. Bei einer Single-Chip-Lösung fördert AMD die Hardware-Unterstützung für die GPU-Beschleunigung in seinen APUs, die eine herkömmliche CPU und eine integrierte Hochleistungs-GPU in demselben Chip kombinieren Heterogene SystemarchitekturDies hat jedoch außerhalb einiger spezialisierter Anwendungen nicht viel Akzeptanz in der Industrie gebracht.

Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie weitere Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Den vollständigen Diskussionsthread finden Sie hier.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia