Wenn Sie schon einmal viel Vergleich für eine neue CPU gemacht haben, haben Sie vielleicht bemerkt, dass alle Kerne die haben Geschwindigkeit statt einer Kombination von verschiedenen. Warum das? Der heutige SuperUser Q & A Post hat die Antwort auf die Frage eines neugierigen Lesers.
Die heutige Question & Answer Session kommt dank SuperUser - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites -
SuperUser-Leser Jamie möchte wissen, warum die CPU-Kerne alle die gleiche Geschwindigkeit haben anstatt der anderen:
Wenn Sie einen neuen Computer kaufen, würden Sie im Allgemeinen feststellen, welcher Prozessor basierend auf der erwarteten Auslastung des Computers gekauft werden soll . Die Leistung in Videospielen wird in der Regel von der Geschwindigkeit eines einzelnen Kerns bestimmt, während Anwendungen wie die Videobearbeitung von der Anzahl der Kerne bestimmt werden. In Bezug auf das, was auf dem Markt verfügbar ist, scheinen alle CPUs in etwa 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, Basisfrequenz 3,60 GHz, 8 Kerne, 16 Threads
Warum sehen wir dieses Muster von steigenden Kernen, aber alle Kerne haben die gleiche Taktfrequenz? Warum gibt es keine Varianten mit unterschiedlichen Taktraten? Zum Beispiel zwei "große" Kerne und viele kleine Kerne.
Statt etwa vier Kerne bei 4,0 GHz (also 4 × 4 GHz, maximal 16 GHz), wie wäre es mit einer CPU mit zwei Kernen bei 4,0 GHz? und vier Kerne mit 2,0 GHz (dh 2 × 4,0 GHz + 4 × 2,0 GHz, maximal 16 GHz)? Wäre die zweite Option bei Single-Thread-Workloads gleich gut, bei Multi-Thread-Workloads jedoch möglicherweise besser?
Ich stelle dies als allgemeine Frage und nicht speziell in Bezug auf die oben aufgeführten CPUs oder eine bestimmte Workload. Ich bin nur neugierig, warum das Muster ist, was es ist.
Warum haben CPU-Kerne alle die gleiche Geschwindigkeit anstelle von verschiedenen?
SuperUser Mitwirkende bwDraco hat die Antwort für uns:
Dies wird als heterogenes Multi-Processing (HMP) bezeichnet und wird häufig von mobilen Geräten übernommen. In ARM-basierten Geräten, die big.LITTLE implementieren, enthält der Prozessor Kerne mit unterschiedlichen Leistungs- und Leistungsprofilen, dh einige Kerne laufen schnell, zeichnen aber viel Leistung (schnellere Architektur und / oder höhere Taktung), während andere energieeffizient, aber langsam sind ( langsamere Architektur und / oder niedrigere Takte). Dies ist nützlich, da der Stromverbrauch überproportional ansteigt, wenn Sie die Leistung erhöhen, sobald Sie einen bestimmten Punkt überschritten haben. Die Idee hier ist, Leistung zu bekommen, wenn Sie es brauchen, und Akkulaufzeit, wenn Sie nicht.
Auf Desktop-Plattformen ist der Stromverbrauch viel weniger ein Problem, so dass dies nicht wirklich notwendig ist. Die meisten Anwendungen erwarten, dass jeder Kern über ähnliche Leistungsmerkmale verfügt, und Planungsprozesse für HMP-Systeme sind viel komplexer als die Planung für herkömmliche SMP-Systeme (Windows 10 unterstützt technisch HMP, ist jedoch hauptsächlich für mobile Anwendungen gedacht) Geräte, die ARM big.LITTLE verwenden.
Außerdem sind die meisten Desktop- und Laptop-Prozessoren heute nicht thermisch oder elektrisch so begrenzt, dass einige Kerne schneller laufen müssen als andere, selbst bei kurzen Bursts. Wir haben im Grunde eine Mauer darüber geschlagen, wie schnell wir einzelne Kerne bauen können, so dass das Ersetzen einiger Kerne durch langsamere die verbleibenden Kerne nicht schneller laufen lässt.
Es gibt zwar ein paar Desktop-Prozessoren, die einen oder zwei Kerne haben Da diese Technologie schneller läuft als die anderen, ist sie derzeit auf bestimmte High-End-Prozessoren von Intel beschränkt (bekannt als Turbo Boost Max Technology 3.0) und bringt nur einen geringen Leistungsgewinn für die Kerne mit sich, die schneller laufen können.
Natürlich ist es möglich, einen herkömmlichen x86-Prozessor mit großen, schnellen Kernen und kleineren, langsameren Kernen für die Optimierung von Workloads mit hohem Threading zu entwickeln. Dies würde das Prozessordesign erheblich komplizierter machen, und Anwendungen werden es wahrscheinlich nicht richtig unterstützen.
Nehmen Sie einen hypothetischen Prozessor mit zwei schnellen KA-Kernen (7. Generation) und acht langsamen Kernen von Goldmont (Atom). Sie hätten insgesamt 10 Kerne, und Workloads mit hohem Threading, die für diese Art von Prozessor optimiert sind, können einen Leistungsgewinn und eine höhere Effizienz gegenüber einem normalen Quad-Core-Kaby-Lake-Prozessor erzielen. Die verschiedenen Typen von Kernen weisen jedoch völlig unterschiedliche Leistungsstufen auf, und die langsamen Kerne unterstützen nicht einmal einige der von den schnellen Kernen unterstützten Befehle, wie AVX (ARM vermeidet dieses Problem, da sowohl die großen als auch die KLEINEN Kerne die gleichen Anweisungen unterstützen ).
Auch hier gehen die meisten Windows-basierten Multi-Threaded-Anwendungen davon aus, dass jeder Kern die gleiche oder fast die gleiche Leistung hat und dieselben Anweisungen ausführen kann. Diese Asymmetrie führt wahrscheinlich zu weniger als ideale Leistung, stürzt vielleicht sogar ab, wenn es Befehle verwendet, die von den langsameren Kernen nicht unterstützt werden. Während Intel die langsamen Kerne modifizieren könnte, um erweiterte Instruktionsunterstützung hinzuzufügen, so dass alle Kerne alle Anweisungen ausführen können, würde dies Probleme mit der Softwareunterstützung für heterogene Prozessoren nicht lösen.
Ein anderer Ansatz zum Anwendungsdesign, näher an dem, was Sie wahrscheinlich denken in Ihrer Frage, würde die GPU für die Beschleunigung von hochparallelen Teilen von Anwendungen verwenden. Dies kann mit APIs wie OpenCL und CUDA geschehen. Wie für eine Single-Chip-Lösung, fördert AMD Hardware-Unterstützung für GPU-Beschleunigung in seinen APUs, die eine traditionelle CPU und eine leistungsstarke integrierte GPU auf dem gleichen Chip, wie heterogene Systemarchitektur, kombiniert, obwohl dies nicht viel Industrie außerhalb aufgenommen hat von einigen speziellen Anwendungen.
Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.
Bildquelle: Mirko Waltermann (Flickr)
Die besten Wecker-Apps für Android
Irgendwann während des Tages (oder sogar in der Nacht) brauchen die meisten von uns einen Alarm aus dem einen oder anderen Grund: um zur Arbeit aufzuwachen, um für einen Termin oder eine andere Sache verlassen. Was auch immer der Grund ist, das Smartphone hat den Wecker-Markt zu diesem Zeitpunkt fast vollständig ausgeschaltet - wenn Sie mit Ihrem Telefon aufwachen, dann können Sie es genauso gut machen, richtig?
Die besten Third-Party-Alexa-Fähigkeiten auf dem Amazon Echo
Das Amazon Echo kann viele nette Sachen machen, aber seine eingebauten Funktionen sind nur die Spitze des Eisbergs. Mit "Alexa Skills" von Drittanbietern können Sie dem Echo weitere Funktionen hinzufügen, z. B. Ereignisse zu Ihrem Google Kalender hinzufügen und sogar Pizza bestellen. VERWANDT: So steuern Sie Ihr Amazon Echo von überall mit Ihrem Telefon Es gibt tausende von Drittanbieter-Alexa-Skills, die Sie für Ihr Amazon Echo aktivieren können, und diese Zahl steigt weiter an.