Warum haben wir CPUs mit allen Kernen bei gleichen Geschwindigkeiten und nicht Kombinationen unterschiedlicher Geschwindigkeiten?


79

Wenn Sie einen neuen Computer kaufen, bestimmen Sie im Allgemeinen anhand der erwarteten Arbeitslast, welchen Prozessor Sie kaufen möchten. Die Leistung in Spielen wird in der Regel durch die Geschwindigkeit einzelner Kerne bestimmt, während Anwendungen wie die Videobearbeitung durch die Anzahl der Kerne bestimmt werden.

In Bezug auf das, was auf dem Markt erhältlich 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 der zunehmenden Kerne, wenn alle Kerne die gleiche Taktrate haben?

Warum gibt es keine Varianten mit unterschiedlichen Taktraten? Zum Beispiel zwei "große" Kerne und viele kleine Kerne.

Anstelle von beispielsweise vier Kernen bei 4,0 GHz (dh 4 × 4 GHz ~ 16 GHz Maximum) könnte eine CPU mit zwei Kernen bei beispielsweise 4,0 GHz und vier Kernen bei 2 GHz (dh 2 × 4,0 GHz) verwendet werden + 4x2,0 GHz ~ 16 GHz maximal). Wäre die zweite Option bei Workloads mit einem Thread nicht gleich gut, aber möglicherweise besser bei Workloads mit mehreren Threads?

Ich stelle diese Frage allgemein - nicht speziell zu den oben aufgelisteten CPUs oder zu einer bestimmten Arbeitslast. Ich bin nur neugierig, warum das Muster so ist, wie es ist.


15
Es gibt viele Handys mit schnellen und langsamen Kernen, und auf fast allen modernen Multi-Core-Servern taktet der CPU-Kern abhängig von der Last unabhängig, manche schalten sogar Kerne aus, wenn sie nicht verwendet werden. Auf einem Allzweckcomputer, bei dem Sie nicht auf Energieeinsparung ausgelegt sind, sondern nur zwei Kerntypen (CPU und GPU) verwenden, wird die Plattform nur flexibler.
Eckes

5
Bevor der Thread-Scheduler eine intelligente Auswahl für den zu verwendenden Kern treffen konnte, musste er feststellen, ob ein Prozess mehrere Kerne nutzen kann. Dies zuverlässig zu tun, wäre höchst problematisch und fehleranfällig. Insbesondere, wenn sich dies je nach den Anforderungen der Anwendung dynamisch ändern kann. In vielen Fällen müsste der Scheduler eine suboptimale Auswahl treffen, wenn der beste Core verwendet wird. Identische Kerne vereinfachen die Arbeit, bieten maximale Flexibilität und erzielen im Allgemeinen die beste Leistung.
LMiller7

33
Taktraten können nicht in der von Ihnen beschriebenen Weise als additiv bezeichnet werden. Wenn vier Kerne mit 4 GHz betrieben werden, bedeutet dies nicht, dass Sie eine "Gesamtsumme" von 16 GHz haben, und dies bedeutet auch nicht, dass diese 16 GHz in 8 Prozessoren mit 2 GHz oder 16 Prozessoren mit 1 GHz aufgeteilt werden könnten.
Bob Jarvis

16
Die Prämisse der Frage ist einfach falsch. Moderne CPUs sind perfekt in der Lage, Kerne mit unterschiedlichen Geschwindigkeiten zu
betreiben

Antworten:


85

Dies ist als heterogenes Multiprozessing ( HMP ) bekannt und wird von Mobilgeräten in großem Umfang eingesetzt. In ARM-basierten Geräten, die big.LITTLE implementieren , enthält der Prozessor Kerne mit unterschiedlichen Leistungs- und Leistungsprofilen. Einige Kerne laufen schnell, verbrauchen jedoch viel Strom (schnellere Architektur und / oder höhere Taktraten), während andere energieeffizient, aber langsam sind ( langsamere Architektur und / oder niedrigere Uhren). Dies ist nützlich, da der Stromverbrauch in der Regel überproportional ansteigt, wenn Sie die Leistung steigern, sobald Sie einen bestimmten Punkt überschritten haben. Die Idee dabei ist, Leistung zu erhalten, wenn Sie sie benötigen, und die Akkulaufzeit, wenn Sie dies nicht tun.

Auf Desktop-Plattformen spielt der Stromverbrauch eine viel geringere Rolle, sodass dies nicht unbedingt erforderlich ist. Die meisten Anwendungen erwarten, dass jeder Kern ähnliche Leistungseigenschaften aufweist, und das Planen von Prozessen für HMP-Systeme ist viel komplexer als das Planen für herkömmliche SMP-Systeme. (Windows 10 unterstützt HMP technisch, ist jedoch hauptsächlich für mobile Geräte gedacht, 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 selbst für kurze Bursts schneller als andere laufen müssen. Wir haben im Grunde genommen eine Frage gestellt, wie schnell wir einzelne Kerne herstellen können. Wenn 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 einen oder zwei Kerne haben, die schneller als die anderen laufen können, ist diese Fähigkeit derzeit auf bestimmte Intel-Prozessoren der Spitzenklasse (wie Turbo Boost Max Technology 3.0) beschränkt und bringt nur einen geringen Leistungszuwachs mit sich für jene Kerne, die schneller laufen können.


Zwar ist es durchaus möglich, einen herkömmlichen x86-Prozessor mit großen, schnellen Kernen und kleineren, langsameren Kernen zu entwerfen, um für Workloads mit hohem Threading-Aufwand optimiert zu werden, dies würde jedoch zu einer erheblichen Komplexität des Prozessordesigns führen, und es ist unwahrscheinlich, dass Anwendungen dies ordnungsgemäß unterstützen.

Nehmen Sie einen hypothetischen Prozessor mit zwei schnellen Kaby Lake -Kernen (Kern der 7. Generation) und acht langsamen Goldmont- Kernen (Atom-Kernen). Sie hätten insgesamt 10 Kerne, und für diesen Prozessortyp optimierte Workloads mit starkem Threading erzielen möglicherweise einen Leistungs- und Effizienzgewinn gegenüber einem normalen Vierkern- Kaby-Lake- Prozessor. Die verschiedenen Arten von Kernen weisen jedoch sehr unterschiedliche Leistungsniveaus auf, und die langsamen Kerne unterstützen nicht einmal einige der Anweisungen, die die schnellen Kerne unterstützen, wie z . B. 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 dieselbe oder nahezu dieselbe Leistung aufweist und dieselben Anweisungen ausführen kann. Daher führt diese Art von Asymmetrie wahrscheinlich zu einer weniger als idealen Leistung, wenn nicht sogar zu Abstürzen Es werden Anweisungen verwendet, die von den langsamen Kernen nicht unterstützt werden. Während Intel die langsamen Kerne so modifizieren könnte, dass erweiterte Anweisungsunterstützung hinzugefügt wird, 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 für das Anwendungsdesign, der eher dem entspricht, woran Sie in Ihrer Frage wahrscheinlich denken, würde die GPU zur Beschleunigung von hochparallelen Teilen von Anwendungen verwenden. Dies kann mit APIs wie OpenCL und CUDA erfolgen . Bei einer Single-Chip-Lösung fördert AMD die Hardwareunterstützung für die GPU-Beschleunigung in seinen APUs, die eine herkömmliche CPU und eine integrierte Hochleistungs-GPU auf demselben Chip wie die heterogene Systemarchitektur kombinieren , obwohl dies außerhalb der Industrie kaum Akzeptanz gefunden hat von einigen spezialisierten Anwendungen.


1
Windows kennt bereits die Begriffe "Apps", "Hintergrundprozesse" und "Windows-Prozesse". Dies erstreckt sich also nicht auf eine Hardware-Ebene?
Jamie

2
@ Jamie Ein "Hintergrund" -Prozess erhält kleinere Zeitscheiben und wird mit größerer Wahrscheinlichkeit unterbrochen. Windows 10 macht in gewissem Maße HMP-Systeme aus, obwohl es noch nicht viele Informationen darüber gibt, wie.
Bob

Also ich denke, dass @bwDraco nach der Bearbeitung so ziemlich alles für mich beantwortet hat. Wenn es einen 'gemischten' Prozessor gäbe, könnte er problemlos denselben Befehlssatz unterstützen, wenn er auf diese Weise erstellt wurde. Dann bräuchten wir eine Art Scheduler, um den richtigen Kern auszuwählen. Ich denke, dass wirklich die Anwendungen, die von vielen kleinen Kernen profitieren, wahrscheinlich noch mehr von vielen kleinen Kernen profitieren würden. Damit haben wir GPU-Beschleunigung.
Jamie

3
Beachten Sie, dass das GPU-Gehäuse nicht 2 große Kerne für 10 kleine und langsame Kerne tauscht, sondern das (sehr grobe) Äquivalent zum Tauschen von 2 großen Kernen für 1024 kleine und langsame Kerne. Massiv parallel, nicht nur ein bisschen paralleler.
Yakk

4
Intel könnte wahrscheinlich einen Goldmont-Core zum Ausführen von AVX2-Befehlen ohne viel zusätzliches Silizium erhalten (langsam, durch Decodieren in Paare von 128-Bit-Operationen). Knight's Landing (Xeon Phi) verfügt über auf Silvermont basierende Kerne mit AVX512, so dass es nicht unmöglich ist, Silvermont zu modifizieren. Aber KNL fügt eine Out-of-Order-Ausführung für Vektorbefehle hinzu, während normales Silver / Goldmont nur OOO für Integer-Befehle ausführt, weshalb sie es wahrscheinlich näher an Goldmont als an KNL auslegen möchten. Auf jeden Fall sind Insn-Sets kein wirkliches Problem. Die Betriebssystemunterstützung und der geringe Nutzen sind die eigentlichen Hindernisse für die Ausgabe von Chipfläche für einen stromsparenden Kern.
Peter Cordes

68

Was Sie fragen, ist, warum aktuelle Systeme symmetrische Mehrfachverarbeitung anstelle von asymmetrischer Mehrfachverarbeitung verwenden .

Asymmetrisches Multiprocessing wurde früher verwendet, als ein Computer riesig war und über mehrere Einheiten verfügte.

Moderne CPUs werden als eine Einheit in einem Chip zusammengefasst, wobei es viel einfacher ist, CPUs unterschiedlicher Typen nicht zu mischen, da sie alle denselben Bus und denselben Arbeitsspeicher verwenden.

Es gibt auch die Einschränkung des Takts, der die CPU-Zyklen und den RAM-Zugriff regelt. Dies wird unmöglich, wenn CPUs mit unterschiedlichen Geschwindigkeiten gemischt werden. Experimentalcomputer ohne Uhr existierten und waren sogar ziemlich schnell, aber die Komplexität moderner Hardware erzwang eine einfachere Architektur.

Beispielsweise können Sandy Bridge- und Ivy Bridge-Kerne nicht gleichzeitig mit unterschiedlichen Geschwindigkeiten ausgeführt werden, da der L3-Cache-Bus mit derselben Taktrate wie die Kerne ausgeführt wird. Um Synchronisierungsprobleme zu vermeiden, müssen beide Kerne mit dieser Geschwindigkeit ausgeführt werden oder geparkt werden / off (Link: Intel Sandy Bridge Architecture Exposed ). (Auch in den Kommentaren unten für Skylake überprüft.)

[EDIT] Einige Leute haben meine Antwort so verstanden, dass es unmöglich ist, CPUs zu mischen. Zu ihrem Vorteil sage ich: Das Mischen unterschiedlicher CPUs ist nicht jenseits der heutigen Technologie, wird aber nicht durchgeführt - "warum nicht" ist die Frage. Wie oben beantwortet, wäre dies technisch kompliziert, daher kostspieliger und für zu wenig oder gar keinen finanziellen Gewinn, was die Hersteller nicht interessiert.

Hier finden Sie Antworten auf einige Kommentare:

Turbo - Boost ändert CPU - Geschwindigkeiten , so dass sie können geändert werden

Turbo-Boost wird durch Beschleunigen der Uhr und Ändern einiger Multiplikatoren erreicht. Dies ist genau das, was die Leute beim Übertakten tun, mit der Ausnahme, dass die Hardware dies für uns erledigt. Die Uhr wird von Kernen auf derselben CPU gemeinsam genutzt, wodurch die gesamte CPU und alle ihre Kerne gleichmäßig beschleunigt werden.

Einige Telefone haben mehr als eine CPU mit unterschiedlichen Geschwindigkeiten

Solche Telefone haben normalerweise einen benutzerdefinierten Firmware- und Software-Stack, der jeder CPU zugeordnet ist, eher wie zwei separate CPUs (oder wie CPU und GPU), und es fehlt ihnen eine einzige Ansicht des Systemspeichers. Diese Komplexität ist schwer zu programmieren, weshalb Asymmetric Multiprocessing im mobilen Bereich verbleibt, da es eine hardwarenahe Softwareentwicklung auf niedrigem Niveau erfordert, die von Allzweck-Desktop-Betriebssystemen gemieden wird. Dies ist der Grund, warum solche Konfigurationen auf dem PC nicht gefunden werden (außer bei CPU / GPU, wenn wir die Definition ausreichend strecken).

Mein Server mit 2x Xeon E5-2670 v3 (12 Kerne mit HT) verfügt derzeit über Kerne mit 1,3 GHz, 1,5 GHz, 1,6 GHz, 2,2 GHz, 2,5 GHz, 2,7 GHz, 2,8 GHz, 2,9 GHz und vielen anderen Geschwindigkeiten.

Ein Core ist entweder aktiv oder inaktiv. Alle gleichzeitig aktiven Kerne laufen mit der gleichen Frequenz. Was Sie sehen, ist nur ein Artefakt des Timings oder der Mittelwertbildung. Ich selbst habe auch bemerkt, dass Windows einen Kern für eine lange Zeit nicht parkt, sondern alle Kerne weitaus schneller als die Aktualisierungsrate von Resource Monitor separat parkt / dekomprimiert, aber ich kenne den Grund für dieses Verhalten, das wahrscheinlich dahinter steckt, nicht die obige Bemerkung.

Intel Haswell Prozessoren verfügen über integrierte Spannungsregler, die für jeden Kern individuelle Spannungen und Frequenzen ermöglichen

Einzelne Spannungsregler unterscheiden sich von der Taktrate. Nicht alle Kerne sind identisch - einige sind schneller. Schnellere Kerne erhalten etwas weniger Strom, wodurch der Headroom für schwächere Kerne erhöht wird. Kernspannungsregler werden so niedrig wie möglich eingestellt, um die aktuelle Taktrate beizubehalten. Die Power Control Unit in der CPU regelt die Spannungen und überschreibt bei Bedarf die Betriebssystemanforderungen für Kerne mit unterschiedlicher Qualität. Zusammenfassung: Einzelne Regler sorgen dafür, dass alle Kerne wirtschaftlich mit der gleichen Taktfrequenz arbeiten, nicht für die Einstellung der einzelnen Kerngeschwindigkeiten


3
Ah. kürzer und auf den Punkt. +1
Hennes

6
@harrymc es gibt Synchronisierblöcke, die es perfekt verwalten; DRAM läuft langsamer als die Kerngeschwindigkeit, und Sie können Intel-Kerne auf demselben Chip dynamisch mit unterschiedlichen Geschwindigkeiten betreiben.
pjc50

10
Prozessoren der Intel Core-Serie laufen die ganze Zeit mit unterschiedlichen Geschwindigkeiten auf dem gleichen Chip.
Nick T

9
Die alleinige Existenz von big.LITTLE-Architekturen und die kernunabhängige Taktverstärkung beweisen, dass Sie falsch liegen. Heterogene Mehrfachverarbeitung ist Mainstream. Es kann getan werden, es wird in Handys getan, aber für irgendwelche Gründe nicht in Desktop - PC.
Agent_L

9
@Agent_L: Der Grund ist die Komplexität. Desktop-CPUs sind bereits teuer genug. Also wiederhole ich: Alles ist möglich, aber die eigentliche Frage ist, warum es nicht gemacht wird, nicht ob es gemacht werden kann. Greife mich nicht an, als ob ich behauptet hätte, dass dies unmöglich ist - alles was ich sage, ist, dass es zu kompliziert und kostspielig ist und zu wenig Gewinn, um die Hersteller zu interessieren.
Harrymc

46

Warum gibt es keine Varianten mit unterschiedlichen Taktraten? dh 2 "große" Kerne und viele kleine Kerne.

Es ist möglich, dass das Telefon in Ihrer Tasche genau diese Anordnung aufweist - der ARM big.LITTLE funktioniert genau so, wie Sie es beschrieben haben. Es ist nicht nur ein Unterschied in der Taktrate, es können auch ganz andere Kerntypen sein - normalerweise sind die langsamer getakteten sogar "langweilig" (keine Ausführung außerhalb der Reihenfolge und andere CPU-Optimierungen).

Grundsätzlich ist es eine gute Idee, die Batterie zu schonen, hat aber auch ihre eigenen Mängel. Die Buchhaltung zum Verschieben von Dingen zwischen verschiedenen CPUs ist komplizierter, die Kommunikation mit den übrigen Peripheriegeräten ist komplizierter, und um solche Kerne effektiv zu nutzen, muss der Taskplaner äußerst intelligent sein (und häufig richtig raten). .

Die ideale Anordnung besteht darin, nicht zeitkritische Hintergrundaufgaben oder relativ kleine interaktive Aufgaben auf den "kleinen" Kernen auszuführen und die "großen" nur für große, lange Berechnungen aufzuwecken (wobei die zusätzliche Zeit, die für die kleinen Kerne aufgewendet wird, endet essen mehr Batterie) oder für mittelgroße interaktive Aufgaben, bei denen der Benutzer auf den kleinen Kernen Trägheit verspürt.

Der Scheduler verfügt jedoch nur über begrenzte Informationen über die Art der Arbeit, die von jeder Aufgabe ausgeführt wird, und muss auf eine Heuristik (oder externe Informationen, z. B. das Erzwingen einer Affinitätsmaske für eine bestimmte Aufgabe) zurückgreifen, um zu entscheiden, wo sie geplant werden sollen. Wenn dies nicht der Fall ist, verschwenden Sie möglicherweise viel Zeit / Energie, um eine Aufgabe auf einem langsamen Kern auszuführen und eine schlechte Benutzererfahrung zu erzielen, oder verwenden die "großen" Kerne für Aufgaben mit niedriger Priorität und verschwenden somit Energie. sie von Aufgaben zu stehlen, die sie benötigen würden.

Bei einem asymmetrischen Multiprozessorsystem ist die Migration von Aufgaben auf einen anderen Kern normalerweise kostspieliger als bei einem SMP-System. Daher muss der Scheduler im Allgemeinen eine gute anfängliche Schätzung treffen, anstatt zu versuchen, einen zufälligen freien Kern auszuführen und sich zu bewegen es später herum.


Stattdessen setzt Intel auf eine geringere Anzahl identischer intelligenter und schneller Kerne mit sehr aggressiver Frequenzskalierung. Wenn die CPU ausgelastet ist, wird sie schnell auf die maximale Taktrate hochgefahren, erledigt die Arbeit so schnell wie möglich und skaliert sie dann herunter, um zum Modus mit dem geringsten Stromverbrauch zurückzukehren. Dies belastet den Scheduler nicht besonders und vermeidet die oben beschriebenen schlechten Szenarien. Natürlich sind diese Kerne auch im Niedrigtaktmodus "intelligent", sodass sie wahrscheinlich mehr verbrauchen als die "dummen" Kerne mit niedrigem Takt. KLEINE Kerne.


1
Heuristiken sollten ziemlich einfach sein. Jeder unfreiwillige Taskwechsel (Verwendung der vollen Zeitscheibe) ist ein Hinweis darauf, dass die langsame CPU für die Task ungeeignet ist. Eine sehr geringe Auslastung und alle freiwilligen Taskwechsel weisen darauf hin, dass der Task auf die langsame CPU verschoben werden könnte.
R ..

3
Ein weiteres Problem ist, dass 4 dumme 2-GHz-Kerne mehr Chipgröße benötigen als 2 intelligente 4-GHz-Kerne, oder sie sind kleiner und verbrauchen viel weniger Strom als 4-GHz-Kerne, laufen aber auch viel langsamer
phuclv

2
@R .: Prinzipiell stimme ich Ihnen zu, aber selbst wenn ich eine grundlegende Scheduler-Unterstützung dafür aktiviere, habe ich auf einem von mir verwendeten ARM-Board ein lächerliches Core-Ruckeln gesehen, also muss etwas anderes dran sein. Außerdem wurde die meiste "normale" Multithread-Software unter Berücksichtigung von SMP geschrieben, sodass es nicht ungewöhnlich ist, Thread-Pools so groß wie die Gesamtzahl der Kerne zu sehen, bei denen Jobs die langsamen Kerne schleppen.
Matteo Italia

1
@Ramhound: Ein 120-W-10-Core-Teil hat ein Leistungsbudget von 12 W pro Core (außer im Single-Core-Turbo-Modus). Dies ist der Grund, warum die höchsten Single-Core- Taktraten in den Quad-Core-Teilen zu finden sind, wo z. B. der Intel i7-6700k ein Leistungsbudget von 91 W für 4 Kerne aufweist: 22,75 W pro Kern bei allen aktiven Kernen (bei 4,0 GHz sogar bei einem Prozessor) AVX2 + FMA-Workload wie Prime95). Dies ist auch der Grund, warum der Single-Core-Turbo-Headroom nur 0,2 GHz mehr beträgt als der 22-Core-Broadwell E5-2699v4 mit 2,2 GHz Basis bei 145 W und 3,6 GHz Turbo.
Peter Cordes

@Ramhound: hat eine Antwort hinzugefügt , die dies erweitert. Ein Xeon mit vielen Kernen scheint genau das zu sein , wonach das OP sucht: Betreiben Sie so viele Kerne mit geringem Stromverbrauch wie möglich, oder verbrauchen Sie viel Strom, um einen Single-Thread schnell zu betreiben (Turbo).
Peter Cordes

14

Die Leistung in Spielen wird in der Regel durch die Single-Core-Geschwindigkeit bestimmt.

In der Vergangenheit (Spiele der DOS-Ära): Richtig.
In diesen Tagen ist es nicht mehr wahr. Viele moderne Spiele basieren auf Threads und profitieren von mehreren Kernen. Einige Spiele sind mit 4 Kernen bereits recht zufrieden und diese Zahl scheint mit der Zeit zu steigen.

Anwendungen wie die Videobearbeitung werden durch die Anzahl der Kerne bestimmt.

Irgendwie wahr.

Anzahl der Kerne * mal Geschwindigkeit des Kerns * Effizienz.
Wenn Sie einen einzelnen identischen Kern mit einem Satz identischer Kerne vergleichen, haben Sie größtenteils recht.

In Bezug auf das, was auf dem Markt erhältlich 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, Basisfrequenz 3,80 GHz, 4 Kerne Intel Core i7 7700k, Basisfrequenz 4,20 GHz, 4 Kerne, 8 Threads AMD Ryzen 1600x, Basisfrequenz 3,60 GHz, 6 Kerne, 12 Threads AMD Ryzen 1800x, Basisfrequenz 3,60 GHz, 8 Kerne, 16 Threads

Der Vergleich verschiedener Architekturen ist gefährlich, aber in Ordnung ...

Warum sehen wir dieses Muster der zunehmenden Kerne, wenn alle Kerne die gleiche Taktrate haben?

Zum Teil, weil wir auf eine Barriere gestoßen sind. Je höher die Taktrate, desto mehr Strom wird benötigt und desto mehr Wärme wird erzeugt. Mehr Wärme bedeutete, dass noch mehr Strom benötigt wurde. Wir haben es so versucht, das Ergebnis war das schreckliche Pentium 4. Heiß und machtgierig. Schwer zu kühlen. Und nicht schneller als der clever designte Pentium-M (ein P4 mit 3,0 GHz war ungefähr so ​​schnell wie ein P-Mob mit 1,7 GHz).

Seitdem haben wir es größtenteils aufgegeben, die Taktfrequenz zu erhöhen, und stattdessen haben wir intelligentere Lösungen entwickelt. Ein Teil davon bestand darin, mehrere Kerne über die reine Taktrate zu verwenden.

Beispielsweise kann ein einzelner 4-GHz-Kern so viel Strom verbrauchen und so viel Wärme erzeugen wie drei 2-GHz-Kerne. Wenn Ihre Software mehrere Kerne verwenden kann, ist sie viel schneller.

Das kann nicht jede Software, aber moderne Software kann es in der Regel.

Das beantwortet teilweise, warum wir Chips mit mehreren Kernen haben und warum wir Chips mit einer unterschiedlichen Anzahl von Kernen verkaufen.

In Bezug auf die Taktrate kann ich drei Punkte identifizieren:

  • Low-Power-CPUs sind in vielen Fällen sinnvoll, in denen keine rohe Geschwindigkeit benötigt wird. ZB Domänencontroller, NAS-Setups, ... Für diese haben wir CPUs mit niedrigerer Frequenz. Manchmal sogar mit mehr Kernen (zB 8x langsame CPU macht Sinn für einen Webserver).
  • Im Übrigen befinden wir uns normalerweise in der Nähe der maximalen Frequenz, die wir erreichen können, ohne dass unser aktuelles Design zu heiß wird. (sagen wir 3 bis 4 GHz mit aktuellen Designs).
  • Und obendrein binning wir. Nicht alle CPUs werden gleich generiert. Einige CPUs erzielen schlechte oder schlechte Ergebnisse in Teilen ihrer Chips, haben diese Teile deaktiviert und werden als ein anderes Produkt verkauft.

Das klassische Beispiel hierfür war ein 4-Kern-AMD-Chip. Wenn ein Kern defekt war, wurde er deaktiviert und als 3-Kern-Chip verkauft. Wenn die Nachfrage nach diesen 3 Kernen hoch war, wurden sogar 4 Kerne als 3-Kern-Version verkauft, und mit dem richtigen Software-Hack konnten Sie den 4. Kern wieder aktivieren.

Dies hängt nicht nur von der Anzahl der Kerne ab, sondern wirkt sich auch auf die Geschwindigkeit aus. Einige Chips laufen heißer als andere. Zu heiß und als CPU mit niedrigerer Geschwindigkeit zu verkaufen (wobei niedrigere Frequenz auch weniger erzeugte Wärme bedeutet).

Und dann gibt es Produktion und Marketing, und das bringt es noch mehr durcheinander.

Warum gibt es keine Varianten mit unterschiedlichen Taktraten? dh 2 "große" Kerne und viele kleine Kerne.

Wir tun An Orten, an denen es sinnvoll ist (z. B. bei Mobiltelefonen), haben wir oft einen SoC mit einer langsamen Kern-CPU (geringer Stromverbrauch) und einigen schnelleren Kernen. In einem typischen Desktop-PC ist dies jedoch nicht der Fall. Dies würde das Setup viel komplexer und teurer machen und es gibt keinen Akku, der entladen werden müsste.


1
Ich habe darauf hingewiesen: "Ich stelle diese Frage als allgemeinen Punkt - nicht speziell zu den oben aufgeführten CPUs", und es gab einen Grund, warum ich zwei Beispiele für jede Architektur angeführt habe. Wenn wir die beiden Szenarien als 1. alle großen Kerne und 2. zwei große und zwei kleine behandeln, dann treffen meiner Meinung nach alle Punkte, die Sie erwähnen, auf beide Fälle zu - d. H. eine theoretische maximale Single-Core-Geschwindigkeit, Binning von Chips, Downclocking bei Nichtgebrauch.
Jamie

Ein einzelner Kern mit maximaler Geschwindigkeit ist nicht so interessant, wenn er nicht ausgewählt wird. Scheduler müssen aktualisiert werden, um die Hochgeschwindigkeitskerne tatsächlich zu bevorzugen.
Hennes

10

Warum gibt es keine Varianten mit unterschiedlichen Taktraten? Zum Beispiel zwei "große" Kerne und viele kleine Kerne.

Wenn wir uns nicht sehr um den Stromverbrauch sorgen, wäre es nicht sinnvoll, alle mit einem zusätzlichen Kern verbundenen Kosten in Kauf zu nehmen und nicht so viel Leistung wie möglich aus diesem Kern herauszuholen. Die maximale Taktrate wird weitgehend durch den Herstellungsprozess bestimmt, und der gesamte Chip wird durch denselben Prozess hergestellt. Was wäre der Vorteil, wenn einige der Kerne langsamer wären als der unterstützte Herstellungsprozess?

Wir haben bereits Kerne, die langsamer werden können, um Strom zu sparen. Was wäre der Punkt, um ihre Spitzenleistung zu begrenzen?


2
Das habe ich mir gedacht. Warum absichtlich einige minderwertige Komponenten verwenden, wenn sie alle Elite sein könnten? +1.
MPW

1
@MPW Es steht nicht die Wahl, einen großen Kern zu erstellen und ihn dann zu kastrieren, sondern zwischen allen großen und einigen großen und vielen kleinen Kernen. Da Sie zwei konkurrierende Szenarien haben - Single-Thread-Leistung und Multi-Thread-Leistung - warum nicht beide maximieren? Wissen wir, dass Sie mit ein paar großen und vielen kleinen Kernen keinen Chip herstellen können?
Jamie

@ Jamie Sie könnten einen Chip mit ein paar großen und vielen kleinen Kernen herstellen. Die kleineren Kerne würden jedoch nicht mit einer niedrigeren Taktrate laufen.
David Schwartz

Sie würden, wenn sie auf diese Weise entworfen würden ... Die Frage ist, warum sie nicht von Grund auf neu entworfen würden, keinen bestehenden Herstellungsprozess übernehmen und ihn kastrieren würden.
Jamie

@ Jamie Ich verstehe nicht, was du sagst. Die gesamte CPU muss mit demselben Herstellungsprozess hergestellt werden, und die maximale Taktrate ist weitgehend ein Merkmal der Herstellungsprozesse. Kerne , die eine niedrigere Taktrate bei demselben Herstellungsniveau erfordern in der Regel wäre mehr komplex und benötigen mehr Speicherplatz, warum sonst würden sie erfordern eine geringere Taktfrequenz?
David Schwartz

9

Warum gibt es keine Varianten mit unterschiedlichen Taktraten? Zum Beispiel zwei "große" Kerne und viele kleine Kerne.

Nominale Taktraten bedeuten für die meisten größeren Prozessoren heutzutage nicht mehr viel, da sie alle die Möglichkeit haben, sich selbst auf und ab zu takten. Sie fragen sich, ob sie verschiedene Kerne unabhängig voneinander auf und ab takten können.

Ich bin ein bisschen überrascht von vielen anderen Antworten. Moderne Prozessoren können und tun dies. Sie können dies testen, indem Sie zum Beispiel CPU-Z auf einem Smartphone öffnen. Mein Google Pixel ist perfekt in der Lage, verschiedene Kerne mit unterschiedlichen Geschwindigkeiten auszuführen:

Es ist nominell 2,15 GHz, aber zwei Kerne sind bei 1,593 GHz und zwei sind bei 1,132 GHz.

Tatsächlich haben Mainstream-Intel-CPUs seit 2009 die Logik, einzelne Kerne höher zu takten und gleichzeitig andere Kerne zu übertakten, um eine bessere Single-Core-Leistung bei Einhaltung des TDP-Budgets zu erzielen: http://www.anandtech.com/show/2832/4

Bei neueren Intel-Prozessoren mit "Favored Core" (ein Intel-Marketingbegriff) wird jeder Kern werkseitig charakterisiert, wobei die schnellsten Kerne in der Lage sind, einen besonders hohen Boost zu erzielen: http://www.anandtech.com/show/11550/the-intel -skylakex-review-core-i9-7900x-i7-7820x-und-i7-7800x-getestet / 7

Die Bulldozer-Chips von AMD hatten eine primitive Version davon: http://www.anandtech.com/show/4955/the-bulldozer-review-amd-fx8150-tested/4

Die neuen Ryzen-Chips von AMD haben dies wahrscheinlich auch, obwohl es hier nicht ausdrücklich angegeben ist: http://www.anandtech.com/show/11170/the-amd-zen-and-ryzen-7-review-a-deep-dive -auf-1800x-1700x-und-1700/11


Sie beantworten eine andere Frage. Die Frage bezieht sich auf viele große Kerne im Vergleich zu einigen großen Kernen und vielen kleinen Kernen - die Vorteile der beiden Szenarien. In beiden Situationen können Sie abhängig von der Nachfrage auf- und abwärts takten oder einen Kern steigern.
Jamie

3
So habe ich die Frage nicht gelesen. In der Frage werden keine architektonisch unterschiedlichen Kerne erwähnt, obwohl die Wörter "groß" und "klein" verwendet werden. Es konzentriert sich ausschließlich auf die Taktfrequenz.
Grant Wu

8

Auf einem modernen System , das Sie oft tun alle Kerne haben sich mit unterschiedlichen Geschwindigkeiten laufen. Durch das Herunterfahren eines nicht stark genutzten Kerns werden Stromverbrauch und Wärmeleistung gesenkt, was gut ist. Durch Funktionen wie "Turbo Boost" können ein oder zwei Kerne erheblich schneller ausgeführt werden, solange die anderen Kerne im Leerlauf sind, und somit der Stromverbrauch und die Wärmeleistung des gesamten Pakets ist nicht zu hoch. Bei einem Chip mit einer solchen Funktion ist die Geschwindigkeit, die Sie in der Liste sehen, die höchste Geschwindigkeit, die Sie mit allen Kernen auf einmal erreichen können. Und warum sollten alle Kerne die gleiche Höchstgeschwindigkeit haben? Nun, sie haben alle ein identisches Design auf demselben physischen Chip, der mit demselben Halbleiterprozess erstellt wurde. Warum sollten sie also unterschiedlich sein?

Der Grund dafür, dass alle Kerne identisch sind, besteht darin, dass es für einen Thread, der auf einem Kern an einem Punkt ausgeführt wird, am einfachsten ist, an einem anderen Punkt mit der Ausführung auf einem anderen Kern zu beginnen. Wie an anderer Stelle erwähnt, gibt es häufig verwendete Chips, die diesem Prinzip identischer Kerne nicht folgen, nämlich die ARM "big.LITTLE" -CPUs. Obwohl in meinen Augen der wichtigste Unterschied zwischen den "großen" und "kleinen" Kernen nicht die Taktgeschwindigkeit ist (die "großen" Kerne sind tendenziell schicker, breiter und spekulativer, da sie mehr Anweisungen pro Takt erhalten, was höhere Kosten verursacht) Stromverbrauch, während die "kleinen" Kerne näher an ARMs Single-Issue-Roots (in-order, Low-Power-Roots) heranrücken, da sie

Und um noch weiter in den Bereich des heterogenen Rechnens vorzudringen, werden häufig auch "CPU" - und "GPU" -Kerne auf demselben Chip integriert. Diese haben völlig unterschiedliche Designs, führen unterschiedliche Befehlssätze aus, werden unterschiedlich angesprochen und im Allgemeinen auch unterschiedlich getaktet.


7

Eine schnelle Single-Thread-Leistung und ein sehr hoher Multi-Thread-Durchsatz sind genau das, was Sie mit einer CPU wie dem Intel Xeon E5-2699v4 erreichen .

Es ist ein 22-Kern Broadwell. Die dauerhafte Taktfrequenz beträgt 2,2 GHz, wobei alle Kerne aktiv sind (z. B. Videocodierung), der maximale Single-Core-Turbo jedoch 3,6 GHz.

Während eine parallele Task ausgeführt wird, verwendet sie ihr 145-W-Leistungsbudget als 22 6,6-W-Kerne. Wenn Sie jedoch eine Aufgabe mit nur wenigen Threads ausführen, können mit demselben Strombudget einige Kerne auf 3,6 GHz aufgeladen werden. ( Aufgrund des niedrigeren Single-Core-Speichers und der geringeren L3-Cache-Bandbreite in einem großen Xeon -System ist die Leistung möglicherweise mit 3,6 GHz nicht so hoch wie bei einem Desktop-Quad-Core. Ein einzelner Core in einer Intel-Desktop-CPU kann jedoch viel mehr Leistung verbrauchen.) Gesamtspeicherbandbreite.)

Die Nenntaktrate von 2,2 GHz ist aufgrund der thermischen Grenzen so niedrig. Je mehr Kerne eine CPU hat, desto langsamer müssen sie laufen, wenn sie alle aktiv sind. Dieser Effekt ist bei den in der Frage erwähnten 4- und 8-Kern-CPUs nicht sehr groß, da 8 nicht so viele Kerne hat und sie sehr hohe Leistungsbudgets haben. Sogar begeisterte Desktop-CPUs zeigen diesen Effekt spürbar: Intels Skylake-X i9-7900X ist ein 10-c20-t-Teil mit einer Basis von 3,3 GHz und einem maximalen Turbo von 4,5 GHz . Das ist viel mehr Single-Core-Turbo-Headroom als bei i7-6700k (4,0-GHz-Dauerturbo / 4,2-GHz-Turbo ohne Übertaktung).

Mit der Frequenz- / Spannungsskalierung (DVFS) kann derselbe Kern über einen weiten Bereich der Leistungs- / Effizienzkurve betrieben werden. Siehe auch diese IDF2015-Präsentation zum Skylake-Power-Management mit vielen interessanten Details zu den effizienten Funktionen von CPUs und dem Kompromiss zwischen Leistung und Effizienz, sowohl statisch zur Entwurfszeit als auch im laufenden Betrieb mit DVFS.

Am anderen Ende des Spektrums haben Intel Core-M-CPUs eine sehr niedrige Dauerfrequenz , wie 1,2 GHz bei 4,5 W , können aber bis zu 2,9 GHz turbo. Wenn mehrere Kerne aktiv sind, betreiben sie ihre Kerne mit einer effizienteren Taktrate, genau wie die riesigen Xeons.

Sie benötigen keine heterogene big.LITTLE-Architektur, um den größten Nutzen daraus zu ziehen. Die kleinen Kerne in ARM big.LITTLE sind ziemlich beschissene in-order-Kerne, die für die Rechenarbeit nicht gut sind. Es geht nur darum, eine Benutzeroberfläche mit sehr geringem Stromverbrauch zu betreiben. Viele von ihnen wären nicht gut für die Videokodierung oder andere ernsthafte Zahlenverarbeitungen geeignet. ( @ Lưu Vĩnh Phúc fand einige Diskussionen darüber, warum x86 nicht groß ist . WENIG . Grundsätzlich wäre es für eine typische Desktop- / Laptop-Nutzung nicht wert, zusätzliches Silizium für einen extra langsamen Kern mit sehr geringem Stromverbrauch auszugeben.)


Anwendungen wie die Videobearbeitung werden durch die Anzahl der Kerne bestimmt. [Wäre 2x 4,0 GHz + 4x 2,0 GHz bei Multithread-Workloads nicht besser als 4x 4 GHz?]

Dies ist Ihr Hauptmissverständnis. Sie scheinen der Meinung zu sein, dass die gleiche Anzahl an Takten pro Sekunde sinnvoller ist, wenn Sie sie auf mehrere Kerne verteilen. Das ist niemals der Fall. Es ist eher so

cores * perf_per_core * (scaling efficiency)^cores

( perf_per_coreDies ist nicht das Gleiche wie die Taktrate, da ein 3GHz Pentium4 pro Taktzyklus viel weniger Arbeit benötigt als ein 3GHz Skylake.)

Noch wichtiger ist, dass der Wirkungsgrad sehr selten 1,0 beträgt. Einige peinlich parallele Aufgaben werden fast linear skaliert (z. B. das Kompilieren mehrerer Quelldateien). Aber die Videokodierung ist nicht so. Für x264 ist die Skalierung bis auf wenige Kerne sehr gut, wird jedoch mit mehr Kernen schlechter. Wenn Sie beispielsweise von 1 auf 2 Kerne wechseln, wird die Geschwindigkeit fast verdoppelt, wenn Sie jedoch von 32 auf 64 Kerne wechseln, wird dies für eine typische 1080p-Codierung viel weniger hilfreich sein. Der Punkt, an dem Geschwindigkeitsplateaus auftreten, hängt von den Einstellungen ab. ( -preset veryslowFührt mehr Analysen für jeden Frame durch und kann mehr Kerne beschäftigen als -preset fast).

Bei vielen sehr langsamen Kernen würden die Single-Thread-Teile von x264 zu Engpässen. (z. B. die endgültige CABAC-Bitstream-Codierung. Sie entspricht gzip in h.264 und wird nicht parallelisiert.) Ein paar schnelle Kerne würden das lösen, wenn das Betriebssystem wüsste, wie man es plant (oder wenn x264 die entsprechenden Threads anpinnt) schnelle Kerne).

x265 kann mehr Kerne als x264 nutzen, da es mehr zu analysierende Aufgaben hat und das WPP-Design von h.265 mehr Parallelität beim Codieren und Decodieren ermöglicht. Aber selbst für 1080p ist die Parallelität nicht mehr ausreichend, um sie irgendwann auszunutzen.


Wenn Sie mehrere Videos zum Codieren haben, können Sie mehrere Videos parallel skalieren, mit Ausnahme des Wettbewerbs um gemeinsam genutzte Ressourcen wie L3-Cache-Kapazität und -Bandbreite sowie Speicherbandbreite. Weniger schnellere Kerne könnten mehr Nutzen aus der gleichen Menge an L3-Cache ziehen, da sie nicht an so vielen verschiedenen Teilen des Problems gleichzeitig arbeiten müssten.


4

Während es möglich ist, Computer mit unterschiedlichen Teilen zu entwerfen, die mit unterschiedlichen unabhängigen Geschwindigkeiten ausgeführt werden, muss bei der Zuteilung von Ressourcen häufig schnell entschieden werden, welche Anforderung zuerst bearbeitet werden soll, was wiederum erfordert, dass bekannt ist, ob eine andere Anforderung möglicherweise früh genug eingegangen ist, um Priorität zu erlangen . Meistens ist es ziemlich einfach, solche Entscheidungen zu treffen . So etwas wie eine "Quiz-Summer" -Schaltung könnte mit nur zwei Transistoren implementiert werden. Das Problem ist, dass schnelle Entscheidungen getroffen werden, die zuverlässig sindeindeutig ist schwer. Der einzig praktikable Weg, dies zu tun, besteht in vielen Fällen in der Verwendung einer Entscheidung, die als "Synchronisierer" bezeichnet wird, wodurch Mehrdeutigkeiten vermieden werden können, jedoch eine Verzögerung von zwei Zyklen eingeführt wird. Man könnte einen Caching-Controller entwerfen, der zuverlässig zwischen zwei Systemen mit getrennten Takten vermittelt, wenn man bereit wäre, bei jeder Operation eine Verzögerung von zwei Zyklen zu tolerieren, um zu bestimmen, wer die Entscheidung gewonnen hat. Ein solcher Ansatz wäre jedoch weniger nützlich, wenn ein Cache-Speicher bei Nichtbeachtung von Konflikten sofort auf Anforderungen reagieren soll, da selbst unbestrittene Anforderungen immer noch eine Verzögerung von zwei Zyklen aufweisen würden.

Wenn Sie alles von einer gemeinsamen Uhr aus betreiben, müssen Sie nicht synchronisieren. Dadurch entfällt jedes Mal, wenn Informationen oder Steuersignale zwischen Uhrendomänen ausgetauscht werden müssen, eine Verzögerung von zwei Kommunikationszyklen.


4

Desktop-Computer tun dies bereits.

Sie haben eine (mehrere) CPU (s) mit 1-72 gleichzeitig aktiven Threads und eine (mehrere) GPU (s) mit 16-7168 Recheneinheiten.

Grafik ist ein Beispiel für eine Aufgabe, bei der wir festgestellt haben, dass massive Parallelarbeit effizient ist. Die GPU ist für die Art von Operationen optimiert, die wir für Grafiken ausführen möchten (dies ist jedoch nicht darauf beschränkt).

Dies ist ein Computer mit ein paar großen Kernen und vielen kleinen Kernen.

Im Allgemeinen lohnt es sich nicht, einen Core bei X FLOPS gegen drei Cores bei X / 2 FLOPS zu tauschen. Es lohnt sich jedoch sehr, einen Kern bei X FLOPS gegen hundert Kerne bei X / 5 FLOPS zu tauschen.

Bei der Programmierung hierfür generieren Sie sehr unterschiedlichen Code für die CPU und für die GPU. Es wird viel Arbeit geleistet, um die Arbeitslast aufzuteilen, sodass die GPU Aufgaben erhält, die am besten auf der GPU erledigt werden, und die CPU Aufgaben erhält, die am besten auf der CPU erledigt werden.

Es ist wohl viel einfacher, Code für eine CPU zu schreiben, weil es schwieriger ist, massiv parallelen Code zu finden. Also nur , wenn die Auszahlung ist groß lohnt es sich , den Handel Single-Core - Leistung für Multi-Core - Situationen. GPUs zahlen sich bei richtiger Verwendung aus.

Mobilgeräte tun dies aus einem anderen Grund. Sie haben stromsparende Kerne, die deutlich langsamer sind, aber auch deutlich weniger Strom pro Recheneinheit verbrauchen. Auf diese Weise können sie die Akkulaufzeit erheblich verlängern, wenn sie keine CPU-intensiven Aufgaben ausführen. Hier haben wir eine andere Art von "großer Auszahlung"; Nicht Leistung, sondern Energieeffizienz. Es erfordert noch viel Arbeit des Betriebssystems und möglicherweise des Programmierers, damit dies richtig funktioniert. nur die große Auszahlung hat es sich gelohnt.


-1

Der Grund, warum gängige Systeme Kerne mit der gleichen Geschwindigkeit haben, ist ein einfaches mathematisches Problem. Eingabe- und Ausgabe-Timing (mit Optimierungen) basierend auf einem einzelnen Satz von Konstanten (die skalierbar = multiplizierbar mit einer Anzahl von Einheiten sind).

Und jemand sagte hier, mobile Geräte haben Multi-CPU mit unterschiedlichen Geschwindigkeiten. Das stimmt einfach nicht. Es ist keine Zentraleinheit, wenn es nicht die Zentraleinheit ist. Egal was der Hersteller sagt oder nicht. In diesem Fall [keine CPU] handelt es sich nur um ein "Support-Paket".


-10

Ich glaube nicht, dass das OP die Grundelektronik versteht. Alle Computer benötigen eine Funktion - eine Uhr. Von einer internen Uhr erzeugte Taktzyklen sind das Metronom für die Bewegung aller Daten. Um Synchronität zu erreichen, müssen alle Operationen an eine gemeinsame Uhr gebunden sein. Dies gilt sowohl für die interne Datenausführung auf einem isolierten Computer als auch für ganze Netzwerke.

Wenn Sie Kerne auf einer CPU isolieren möchten, indem Sie sie mit unterschiedlichen Frequenzen ausführen, können Sie mit Sicherheit eine solche Plattform entwerfen. Es müsste jedoch eine Motherboard-Lösung entwickelt werden, die jeden einzelnen Kern mit einer eigenen isolierten Untergruppe von Motherboard-Funktionen verbindet. Ihnen bleiben 4 einzelne Computer anstelle eines Quad-Core-Computers.

Alternativ können Sie, wie eine andere Person bereits betont hat, Ihrem Kernel Code hinzufügen, der die Kernfrequenz individuell anpasst. Dies führt jedoch zu Leistungseinbußen. Sie können Geschwindigkeit oder Energieeffizienz haben - aber Sie können nicht beide haben.


1
Ich nicht, daher meine Frage. Beim Vergleich eines Intel i5 7600 mit einem i5 7600k sehen wir, dass der Basistakt für beide 100 MHz beträgt und die Differenz das Kernverhältnis ist. Sie könnten also zwei Kerne mit demselben Basistakt von 100 MHz, aber mit unterschiedlichen Kernverhältnissen haben. Verstößt dieses Szenario gegen die Synchronitätsanforderungen?
Jamie

4
Ja, das ist zu stark vereinfacht. Es ist nicht wirklich wahr, dass alle Operationen an dieselbe Uhr gebunden sein müssen , es gibt viele Uhrdomänen und es ist perfekt möglich, verschiedene Kerne mit derselben Geschwindigkeit zu betreiben. Die
Busuhr

11
Moderne Chips haben bereits mehrere Taktdomänen (selbst die Echtzeituhr eines billigen und dummen Mikrocontrollers läuft normalerweise in einer separaten 32,7-kHz-Domäne). Sie müssen nur zwischen Uhrdomänen synchronisieren. Selbst mit einer gewöhnlichen Uhr könnte man sie durch 2, 4, 8 usw. teilen.
Michael

1
Alles wahr. Es verringert jedoch immer noch die Betriebseffizienz. Und das ist immer das Ziel in Bezug auf Leistung. Das war mein Punkt. Klar, du kannst es schaffen. Aber Sie werden einen Schlag auf die Leistung nehmen.
RyRoUK

"Reduziert die Leistung" - im Vergleich zu was? Sie nehmen einen Basiszustand an, in dem n Prozessoren mit derselben Uhr ausgeführt werden. Das muss nicht so sein. Prozessor X + Prozessor Y ist eine leistungsstärkere / flexiblere Lösung als Prozessor X allein, unabhängig davon, um welchen Prozessor es sich genau handelt.
Hmijail
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.