Wie berechne ich die Taktrate in Multi-Core-Prozessoren?

63228
NReilingh

Ist es richtig, zum Beispiel zu sagen, dass ein Prozessor mit vier Kernen, die jeweils mit 3 GHz laufen, tatsächlich ein Prozessor ist, der mit 12 GHz läuft?

Ich geriet einmal in ein "Mac vs. PC" -Argument (das übrigens NICHT der Schwerpunkt dieses Themas ist ... das war schon in der Mittelschule) mit einem Bekannten, der darauf bestand, dass Macs nur als 1-GHz-Maschinen beworben werden, weil sie es sind waren Dual-Prozessor-G4s mit jeweils 500MHz.

Zu der Zeit, als ich wusste, dass dies aus Gründen, die ich für die meisten Menschen offensichtlich halte, Hogwash war, sah ich gerade einen Kommentar auf dieser Website mit dem Effekt "6 Kerne x 0,2 GHz = 1,2 GHz" und das brachte mich erneut dazu, darüber nachzudenken, ob Es gibt eine echte Antwort darauf.

Dies ist also eine mehr oder weniger philosophische / tiefgehende technische Frage zur Semantik der Taktgeschwindigkeitsberechnung. Ich sehe zwei Möglichkeiten:

  1. Jeder Kern führt tatsächlich x Berechnungen pro Sekunde durch, daher ist die Gesamtzahl der Berechnungen x (Kerne).
  2. Die Taktrate ist vielmehr eine Zählung der Anzahl von Zyklen, die der Prozessor innerhalb einer Sekunde durchläuft. Solange alle Kerne mit der gleichen Geschwindigkeit laufen, bleibt die Geschwindigkeit jedes Taktzyklus gleich, egal wie viele Kerne vorhanden sind . Mit anderen Worten, Hz = (Kern1Hz + Kern2Hz + ...) / Kerne.
23
Viele der hier gegebenen Antworten erklären gut, warum z. B. ein Quad-Core-Prozessor mit 2 GHz nicht unbedingt einem Single-Core-Prozessor mit 8 GHz entspricht. Es fällt mir jedoch schwer zu sagen, wie die Multi-Core-Prozessorgeschwindigkeit zu betrachten ist, wenn die Eignung eines Systems für eine Anwendung entschieden wird, die eine bestimmte Geschwindigkeit und Anzahl von Kernen in ihren Anforderungen aufführt. (Borderlands 2 benötigt beispielsweise einen 2,4-GHz-Dual-Core-Prozessor. Sollten wir mit einem Quad-Core mit niedrigerer Geschwindigkeit oder Single-Core mit höherer Geschwindigkeit genauso gut rechnen?) Wird das hier beantwortet (oder könnte es sein)? oder sollte es eine andere Frage sein? Iszi vor 11 Jahren 0
@Iszi Das sollte eine andere Frage sein, aber es ist wahrscheinlich, dass Borderlands für mehr als einen Thread optimiert ist, wenn sie "Dual-Core" in ihre Anforderungen aufnehmen. In diesem Fall wäre ein Single-Core-Prozessor nicht zu empfehlen, aber es ist unklar, ob er von> 2 Kernen profitieren kann. NReilingh vor 11 Jahren 0
Es ist wichtig zu wissen, dass die Taktrate und die Anzahl der Kerne nicht nur die "Geschwindigkeit" des Prozessors bestimmen. Die Größe und Geschwindigkeit des Caches beeinflussen beispielsweise die Zeit, die der Prozessor auf Anweisungen und Daten wartet. Außerdem beeinflussen die Anweisungen pro Zyklus (in gewisser Weise „Effizienz“, obwohl sie sich von der Energieeffizienz unterscheiden und sich auf sie beziehen) auch die Geschwindigkeit der Berechnungen. Unterschiedliche Prozessoren benötigen unterschiedliche Zeiten, um dieselbe Anweisung auszuführen. Bob vor 11 Jahren 0
** Related: ** [Ist eine höhere Kernanzahl oder eine höhere Taktrate vorteilhafter für die Leistung eines Computers?] (Http://superuser.com/q/324487/6887) Breakthrough vor 10 Jahren 0

7 Antworten auf die Frage

36
Mokubai

Der Hauptgrund, warum ein Quad-Core-Prozessor mit 3 GHz niemals so schnell wie ein 12-GHz-Single-Core ist, liegt in der Funktionsweise der auf diesem Prozessor ausgeführten Task, dh Single-Threaded oder Multithreading. Das Amdahlsche Gesetz ist wichtig, wenn Sie die Art der Aufgaben berücksichtigen, die Sie ausführen.

Wenn Sie eine Aufgabe haben, die von Natur aus linear ist und Schritt für Schritt genau ausgeführt werden muss, z. B. (ein sehr einfaches Programm)

10: a = a + 1 20: goto 10 

Dann hängt die Aufgabe in hohem Maße vom Ergebnis des vorherigen Durchlaufs ab und kann nicht mehrere Kopien von sich selbst ausführen, ohne den Wert von 'a'zu beschädigen, da jede Kopie den Wert von 'a'zu verschiedenen Zeitpunkten abrufen und unterschiedlich zurückschreiben würde. Dadurch wird die Task auf einen einzelnen Thread beschränkt, sodass die Task immer nur zu einem bestimmten Zeitpunkt auf einem einzelnen Core ausgeführt werden kann. Wenn sie auf mehreren Cores ausgeführt wird, kann dies zu einer Synchronisierung führen. Dies begrenzt ihn auf die Hälfte der CPU-Leistung eines Dual-Core-Systems oder auf 1/4 in einem Quad-Core-System.

Nun nehmen Sie eine Aufgabe wie:

10: a = a + 1 20: b = b + 1 30: c = c + 1 40: d = d + 1 50: goto 10 

Alle diese Zeilen sind unabhängig voneinander und könnten in vier separate Programme wie das erste aufgeteilt werden, die gleichzeitig ausgeführt werden können und jeweils die volle Leistung eines der Cores ohne Synchronisationsproblem nutzen können. Dies ist das Gesetz von Amdahl kommt hinein

Wenn Sie also eine Single-Threaded-Anwendung haben, die Brute-Force-Berechnungen durchführt, würde der 12-GHz-Prozessor die Oberhand gewinnen. Wenn Sie die Aufgabe irgendwie in einzelne Teile und Multi-Threaded aufteilen können, dann könnten die 4 Kerne in die Nähe kommen, jedoch nicht ganz. die gleiche Leistung wie nach Amdahls Gesetz.

Die Hauptsache eines Multi-CPU-Systems ist die Reaktionsfähigkeit. Auf einer einzigen Kernmaschine, die hart arbeitet, kann das System als träge erscheinen, da die meiste Zeit von einer Task verwendet werden kann und die anderen Tasks nur in kurzen Stößen zwischen der größeren Task ausgeführt werden, was zu einem System führt, das träge oder ruckelig erscheint . Bei einem Multi-Core-System erhält die schwere Aufgabe einen Kern, und alle anderen Aufgaben spielen auf den anderen Kernen und erledigen ihre Arbeit schnell und effizient.

Das Argument "6 Kerne x 0,2 GHz = 1,2 GHz" ist in jeder Situation Müll, es sei denn, die Aufgaben sind vollkommen parallel und unabhängig. Es gibt eine ganze Reihe von Aufgaben, die sehr parallel sind, aber sie erfordern immer noch eine Art Synchronisation. Handbrake ist ein Videotranscoder, der sehr gut alle verfügbaren CPUs verwenden kann, aber es erfordert einen Kernprozess, um die anderen Threads mit Daten zu füllen und die Daten zu sammeln, mit denen sie fertiggestellt sind.

  1. Jeder Kern führt tatsächlich x Berechnungen pro Sekunde durch, daher ist die Gesamtzahl der Berechnungen x (Kerne).

Jeder Kern ist in der Lage, x Berechnungen pro Sekunde durchzuführen, vorausgesetzt, dass die Arbeitslast parallel ist. In einem linearen Programm haben Sie nur einen Kern.

  1. Die Taktrate ist vielmehr eine Zählung der Anzahl von Zyklen, die der Prozessor innerhalb einer Sekunde durchläuft. Solange alle Kerne mit der gleichen Geschwindigkeit laufen, bleibt die Geschwindigkeit jedes Taktzyklus gleich, egal wie viele Kerne vorhanden sind . Mit anderen Worten, Hz = (Kern1Hz + Kern2Hz + ...) / Kerne.

Ich denke, es ist ein Irrtum, zu glauben, dass 4 x 3 GHz = 12 GHz die Mathe funktioniert, aber Sie vergleichen Äpfel mit Orangen und die Summen sind einfach nicht richtig, GHz kann nicht einfach für jede Situation addiert werden. Ich würde es auf 4 x 3 GHz = 4 x 3 GHz ändern.

Nice post .. Konnte nicht mehr als 1+ abstimmen :-( Gopalakrishnan Subramani vor 12 Jahren 0
Aber das amdahlsche Gesetz ist ein Programmiersorgen, das durch Sperren verursacht wird, kein Hardwareproblem. Wenn Sie nicht synchronisieren müssen, kann jeder Kern Anweisungen so schnell wie möglich ausführen. Man könnte ein paralleles Programm (ein einfaches) entwerfen, das perfekt zwischen Kernen aufgeteilt ist. Würden nicht Hardware-Hersteller diesen Rohwert bewerben? Justin Meiners vor 5 Jahren 0
Zur Verdeutlichung verstehe ich, warum dies die Frage beantwortet, warum 4 Kerne bei 3 GHz in der Praxis nicht so schnell sind wie 12 GHz, aber nicht der Teil, wie die Taktrate für Multicores berechnet wird. Justin Meiners vor 5 Jahren 0
@JustinMeiners Taktrate pro Kern ist einfach die Taktrate, mit der der Kern läuft. Es gibt keine magische Berechnung, die einen einzelnen Kern mit Multicore gleichsetzt. Mehrere Kerne bedeuten nur, dass Sie mehrere separate Aufgaben gleichzeitig ausführen können. Amdahls Gesetz gilt aufgrund von Software. Durch die erforderliche Synchronisierung und das Sperren wird eine Aufgabe in Hardware ebenso wie Software "perfekt". Freigegebene Caches und Speicher verursachen Konflikte und Sperren. Mokubai vor 5 Jahren 0
@Mokubai Um zu klären, wenn ein Hersteller die Taktrate auflistet, läuft jeder einzelne Kern mit der Geschwindigkeit, richtig? Justin Meiners vor 5 Jahren 0
@JustinMeiners ja. Das Ignorieren von Funktionen wie Turbo-Boost und Energiesparen der vom Hersteller angegebenen Geschwindigkeit ist die Nenntaktrate pro Kern. Mokubai vor 5 Jahren 0
@Mokubai Ja Entschuldigung, das war eine schlechte Formulierung. Ich verstehe, dass die Hardware manchmal auch synchronisiert werden muss und an dasselbe Gesetz gebunden ist. Ich habe nur darauf hingewiesen, dass das Gesetz von Amdahl keine Begrenzung dafür darstellt, wie viele Anweisungen von den Kernen verarbeitet werden können. Inwieweit das amdahlsche Gesetz Sie beeinflusst, hängt von der Art der Aufgabe ab, die Sie ausführen möchten, und davon, wie viel andere Kerne auf einander warten müssen. Daher wäre es für den Hardwarehersteller verwirrend, dies über seine eigene Synchronisation hinaus zu versuchen . Justin Meiners vor 5 Jahren 0
@Mokubai danke. Justin Meiners vor 5 Jahren 0
6
AndrejaKo

Andere machten aus technischer Sicht ein gutes Argument. Ich werde stattdessen ein paar einfache Analogien anstellen, die hoffentlich erklären werden, warum 4 * 3 GHz nicht 1 * 12 GHz entspricht.

Zum Beispiel kann eine Frau in neun Monaten ein Baby herstellen. Werden neun Frauen in einem Monat ein Baby herstellen können? Nein, weil die Schwangerschaft nicht parallelisiert werden kann (zumindest auf dieser technologischen Ebene).

Und noch etwas: In einer Wasserkraftanlage, die ich kürzlich besucht habe, wurde einer der Generatoren aufgerüstet. Sie mussten den Stator des Generators per Schiff transportieren. Ein Sechstel des Stators konnte mit Lastwagen transportiert werden, aber der gesamte Stator musste transportiert werden. Also mussten sie ein Schiff benutzen, nicht sechs Lastwagen.

Ein anderer Fall könnte das genaue Timing von Ereignissen sein. Manchmal werden Computerprozessoren als genaue Zeitgeber verwendet (obwohl dies aufgrund der variablen Taktzeit bei den meisten Prozessoren nicht mehr empfohlen wird. Stattdessen sollte ein hochpräziser Ereigniszeitgeber verwendet werden). Wenn wir davon ausgehen, dass wir einen Prozessor mit relativ stabilem 12-GHz-Takt haben, können wir damit die Zeit in viel höherer Auflösung messen als bei einem Prozessor mit 3 GHz-Takt. Egal wie viele 3GHz-Kerne wir haben, wir können die Auflösung des 12-GHz-Kerns nicht erreichen. Das ist wie bei vier Uhren mit 7-Segment-Anzeigen, bei denen jede Uhr nur die korrekte Zeit in Stunden anzeigt. Egal wie korrekt sie Stunden anzeigen, Sie können sie nicht zum Messen von Zeitintervallen in einem Sekundenbereich verwenden.

Nützliche Antwort für weniger technisch denkende Menschen. Ich mag auch Analogien :) aff vor 9 Jahren 0
3
blastawaythewall

Ich bin kein Experte für dieses Thema, aber ich habe einen Abschluss in Computer Engineering. In der Theorie (dies ist eine sehr konzeptuelle Antwort), ein Vierkern 3 GHz jeder Prozessor kann das Äquivalent eines 12 GHz - Prozessor sein, wenn beispielsweise vier Sätze von Berechnungen gab es für ein einzelnes Ergebnis benötigt. Das nennt man Parallelverarbeitung.

Um die Logik zu vereinfachen, nehmen wir an, wir sprechen von einem Dual-Core-Prozessor. Wenn eine Reihe von Berechnungen bestand, sagen Sie:

a = b + 1;

c = d + 1;

dann könnten diese beiden Berechnungen auf separaten Kernen ausgeführt werden, und ein xGHz-Prozessor würde einem einkernigen 2 * xGHz-Prozessor entsprechen. Dies liegt daran, dass die beiden Berechnungen zwar mit x-Geschwindigkeit ausgeführt werden, jedoch gleichzeitig verarbeitet werden. Der einkernige Prozessor könnte sie dagegen mit 2 x Geschwindigkeit aber hintereinander ausführen. Wenn die beiden CPUs diesen Code gleichzeitig ausführen, werden sie gleichzeitig beendet. Wenn jedoch der Code:

a = b + 1;

c = a + 1;

der Dual-Core-Prozessor würde dann doppelt so lange dauern wie der Single-Core-Prozessor, da in der zweiten Anweisung der Wert von a von der ersten Anweisung abhängt und daher nicht parallel ausgeführt werden kann. Auf diese Weise kann manche Software Multi-Threaded-Prozessoren nutzen.

Theoretisch kann ein 12-GHz-Single-Core-Prozessor immer so schnell (oder schneller) wie ein 3G-Hz-Quad-Core-Prozessor laufen, nicht jedoch umgekehrt.

Beachten Sie, dass diese Berechnungen nur dann schneller sind, wenn sie mehrere Threads ausführen, und selbst dann gibt es einen geringfügigen Overhead. Aber ja, obwohl es möglich ist, einen einzelnen Core-Prozessor zu erstellen, der so viele Berechnungen ausführen kann, ist dies aufgrund von Hitze und Dingen einfach nicht plausibel. Phoshi vor 13 Jahren 0
Diese Antwort ist aus zwei Gründen irreführend. Erstens machen moderne Kerne mehr als eine Sache gleichzeitig. Zweitens geht die Antwort davon aus, dass die Kerngeschwindigkeit der Geschwindigkeit entspricht, mit der die Arbeit erledigt wird. Ein 12-GHz-Single-Core-Prozessor ist nicht so schnell wie ein 3-GHz-Quad-Core-Prozessor, wenn der Single-Core-Prozessor wesentlich mehr Taktzyklen für die gleiche Arbeit benötigt. (Was wäre, da ein 12-GHz-Prozessor wesentlich längere Pipelines benötigen würde.) David Schwartz vor 10 Jahren 0
2
Faken

Diese Frage ist kompliziert zu beantworten, aber die kurze Antwort lautet: Nein

In realen Anwendungen sind vier 3Ghz-Prozessoren aufgrund von Ineffizienzen nicht so schnell wie ein einzelner 12-GHz-Prozessor. Sie können sehr nahe sein, aber sie werden in Bezug auf die Verarbeitungsleistung NICHT einem einzelnen Prozessor gleichkommen.

Der Grund dafür liegt in den geringen Ineffizienzen bei Programmen, die auf mehr als einem Prozessor laufen können. Unter der Annahme, dass das betreffende Programm parallel ausgeführt werden kann, werden immer noch Probleme mit verschiedenen Kernen auftreten, die um andere Ressourcen wie RAM oder sogar Cache- und Thread-Synchronisationsprobleme konkurrieren. Außerdem gibt es immer Teile von Programmen, die nicht parallelisiert werden können und auf einem einzelnen Kern ausgeführt werden müssen.

Sehen Sie sich diesen Artikel an: http://en.wikipedia.org/wiki/Amdahl%27s_law

Du hast recht und falsch. Vier 3-GHz-Prozessoren werden höchstwahrscheinlich SCHNELLER sein als ein einzelner 12-GHz-Prozessor in "realen" Anwendungen. Heutzutage verwenden immer mehr Programme Multithreading. Der Link, den Sie angegeben haben, bezieht sich auf eine theoretische Einzelthread-Anwendung. Ein einzelner Prozessor mit 12 GHz hat nur einen Thread, so dass die Multi-Threading-Vorteile, die ein "reales" Programm bietet, verloren gehen würden. Die Industrie geht nicht zu langsameren Kernen statt zu weniger schnelleren Kernen, nur weil die Vorteile der Multi-Core-Technologie die Vorteile der schnellen Single-Core-Technologie bei weitem überwiegen. ubiquibacon vor 13 Jahren 0
@typoknig: Das stimmt nicht ganz. Ein 6-GHz-Single-Core-Prozessor würde eine Multithread-Anwendung mit etwa der gleichen Geschwindigkeit wie ein 3-GHz-Dual-Core-Prozessor ausführen, vorausgesetzt, die App nutzt jeden Thread voll aus (was höchstwahrscheinlich nicht der Fall ist, wenn es sich um einen "echten" Prozessor handelt Weltanwendung ", aber das ist ein separates Argument). Wir sehen keine 12-GHz-Prozessoren, weil sie mit der derzeitigen Technologie zu schwierig sind, nicht weil sie langsamer sind. Sasha Chedygov vor 13 Jahren 3
@typoknig: Ich habe ein paar mutithreaded Programme programmiert und glaube mir, wenn ich einen einzelnen 12-GHz-Prozessor hätte, nehme ich das stattdessen. Die Programmierung mit einem einzigen Thread ist 10x einfacher und viel effizienter als die Programmierung mit mehreren Threads. Der wahre Grund, warum die Branche Twords Muticore-Prozessoren bewegt, ist nicht, weil sie schneller sind, sondern weil einzelne CPUs nicht schneller laufen können! Dies wurde bereits in den p4 Tagen mit der Netburst-Technologie von Intel beschrieben. Sie schätzten zumindest 10-GHz-Prozessoren, das heißt, bis ihnen die Quantenphysik ins Gesicht schlug und "no noob!" Faken vor 13 Jahren 4
@musicfreak, was ist mit dem Ausführen von 6 Apps auf einmal oder einem Dutzend? Multitasking für Menschen, das ist reale Welt, und ein Single-Core-Prozessor unterstützt das nicht. Ich bin damit einverstanden, dass mit einer einzigen Anwendung die Geschwindigkeiten nahe beieinander liegen würden, um tatsächlich darüber zu streiten, aber wenn es um Multi-Threads geht, sind Multi-Cores da. Technologie wird für schnellere Prozessoren mit Materialien wie Graphin entwickelt. Viele eingebettete Prozessoren (wie Flugprozessoren) arbeiten bereits mit aktueller Technologie (wie der F-22) über 10 GHz. Multi-Core ist billiger und scheint besser zu unserem Multi-Tasking-Lebensstil zu passen. ubiquibacon vor 13 Jahren 0
@typokning: Der F22 verwendet eine Reihe von PowerPC-Prozessoren, um 10 Milliarden Anweisungen pro Sekunde zu erzielen, was sich sehr von 10 GHz unterscheidet! Ihr Radion HD5970 arbeitet mit 4600 GHz. Es ist für 4.6 TFLOPS geeignet, aber nur, weil es sehr parallel ist. Faken vor 13 Jahren 2
@typoknig: Warum sollte ein Single-Core-Prozessor das nicht unterstützen? Haben Sie noch nie ein Dutzend Apps auf einer Single-Core-CPU ausgeführt? Ich glaube nicht, dass Sie wissen, wie Parallelität funktioniert. Single-Core-CPUs emulieren die Parallelität, indem sie sich mit jeder Anwendung abwechseln. Theoretisch sollte diese Methode genauso schnell sein wie echte Parallelität mit einer proportional langsameren CPU. (In der Realität wäre der Multi-Core-Prozessor aufgrund der prozessorübergreifenden Kommunikation etwas langsamer.) Wie genau würde eine 3-Core-Dualcore-CPU besser arbeiten als ein Single-Core-6-GHz-Prozessor? Sasha Chedygov vor 13 Jahren 0
@musicfreak: Ähm, na ja, es ist etwas komplizierter als das. Es gibt inhärente Ineffizienzen beim Umgang mit Muti-Threads auf einem einzelnen Kernsystem. Wir haben letztendlich Ineffizienzen bei der Kontextumschaltung, das heißt, wenn ein einzelner Kern zwischen verschiedenen Programmen wechselt (die Strafe für das Umschalten zwischen Threads desselben Programms ist jedoch ziemlich gleich). In jedem Fall gewinnt ein einzelner schneller Prozessor am Ende dennoch, es sei denn, es gibt viele langsame E / A-Vorgänge. An diesem Punkt wäre ein Muti-Kernsystem von Vorteil. Faken vor 13 Jahren 0
@Faken las den Abschnitt zu CIP unter diesem Link: http://www.globalsecurity.org/military/systems/aircraft/f-22-avionics.htm Im letzten Absatz wird eindeutig angegeben, dass jedes CIP (zwei in jedem F-22) ) mit 10,5 Milliarden Anweisungen pro Sekunde arbeiten. Zu sagen, dass diese Geschwindigkeit nur erreicht wird, weil das System sehr parallel ist, ist nicht fair. Das ist, als würde man sagen, dass ein Standard-PC-Prozessor seine Geschwindigkeit erreicht, weil seine Transistoren parallel arbeiten. Unabhängig davon, wie @musicfreak und ich beide sagten, ist der Geschwindigkeitsunterschied zwischen Single- und Multi-Core-System minimal. Wir sind uns nicht einig, auf welchem ​​Haar ein Haar schneller ist. ubiquibacon vor 13 Jahren 0
@Faken: Ich weiß, ich habe es zu stark vereinfacht, aber für die Zwecke dieser Diskussion ist es genau genug. Sasha Chedygov vor 13 Jahren 0
@typoknig: Sie verstehen den Unterschied zwischen CPU-Frequenz und IPS (Anweisungen pro Sekunde) eindeutig nicht, sie sind nicht identisch. Bitte lesen Sie: http://en.wikipedia.org/wiki/Instructions_per_second Faken vor 13 Jahren 1
Ich dachte, IPS und GHZ wären eine direkte Korrelation zueinander, nachdem ich diesen Link gelesen hatte, kann ich sehen, dass ich mich mit dem f22 geirrt habe. Der schnellste Aktienchip, den ich finden konnte, ist der IBM Power6 P595, der bei 5,0 GHz veröffentlicht wurde. Selbst bei dieser Geschwindigkeit glaube ich nicht, dass Sie Multi-Core-Chips den Kredit geben, den sie verdienen. Unsere Diskussion (auf beiden Seiten) basiert immer noch auf spezifischen Betriebsumgebungen (ein einzelner Kernchip, der einen einzelnen Thread ausführt, ein Multicorechip, der mehrere Threads ausführt, ect). Ich denke, jeder kann in bestimmten Situationen besser abschneiden, und selbst dann wäre der Unterschied minimal. ubiquibacon vor 13 Jahren 0
"* In realen Anwendungen sind vier 3Ghz-Prozessoren aufgrund von Ineffizienzen nicht so schnell wie ein einzelner 12-GHz-Prozessor. *" Im Gegenteil, ein 12-GHz-Prozessor wäre furchtbar ineffizient und erfordert absurd lange Pipelines, die zu einer abscheulichen Leistung führen. Aus diesem Grund hat * Intel * die Taktraten deutlich reduziert *, als sie die NetBurst-Architektur aufgaben und die Core-Architektur übernahmen. Sie erkannten, dass so hohe Taktraten * die Leistung * beeinträchtigten. Nichts ist kostenlos - hohe Taktraten haben hohe Entwicklungskosten, die Sie verletzen können. David Schwartz vor 10 Jahren 0
2
Harmeet Singh

Es scheint, dass wir nicht sagen können, dass 4 Kerne bei 3 GHz als 12 GHz bezeichnet werden können.

Verschiedene Einschränkungen wie Shared Memory, Cache-Konflikte und andere Ressourcen sind für alle Kerne gleich. Daher ist es nicht so effizient, einen Code auf diesen Kernen parallel auszuführen, als auf 12-GHz-Prozessoren (obwohl es schwierig ist, einen solchen Prozessor zu erstellen.) ).

Ich habe auch irgendwo gelesen, dass, wenn wir die auf dem Chip (CMP) eingebetteten Transistoren verdoppeln, die Geschwindigkeit, die wir erhalten werden, nur 40% beträgt. Dies gibt auch einen deutlichen Hinweis auf dieses Thema.

1
Jimmy

Was die ausgeführten Taktzyklen angeht, so führt ein Multi-Core-Prozessor die gesamten x * coresArbeitszyklen pro Sekunde aus. Üblicherweise werden die Taktraten für einen einfacheren Vergleich auf einer Kernbasis aufgeführt (wie würden Sie einen 4-GHz-Dual-Core-Chip, der mit 2 GHz / Core läuft, mit einem 4-GHz-Quad-Core-Chip mit 1 GHz / Core vergleichen?).

Leider wird das Problem komplex, wenn Sie versuchen, verschiedene Prozessoren in realen Anwendungen zu vergleichen.

Erstens verfügen die meisten Multi-Core-Prozessoren über einige Ressourcen, die von den Kernen gemeinsam genutzt werden (z. B. CPU-Cache). Sie müssen Zugriff auf diesen Cache haben, sodass Sie nicht beide Kerne haben können, um Daten mit voller Geschwindigkeit zu speichern oder zu lesen. Dies wird bei CPUs mit vielen Kernen oft dadurch gemindert, dass mehrere gemeinsam genutzte Caches vorhanden sind (z. B. haben die meisten Quad-Core-Chips zwei Caches, die jeweils von einem Paar von Kernen gemeinsam genutzt werden), um die Chancen eines Engpasses auf einer gemeinsam genutzten Ressource besser zu unterteilen.

Zweitens, und vielleicht in der Welt der Nicht-Techniker weniger bekannt, ist das Vergleichen der Taktgeschwindigkeiten manchmal wie das Vergleichen von Äpfeln und Orangen. Unterschiedliche CPUs führen in einem einzigen Taktzyklus zu unterschiedlichen Arbeitsleistungen. Das heißt, Sie haben 1 GHz im Vergleich zu 1,2 GHz, klingt großartig, aber der 1 GHz-Chip kann in einem bestimmten Zeitraum tatsächlich mehr Arbeit erledigen. Der Pentium 4 brachte diesen Punkt nach Hause und führte zum Megahertz-Mythos (von dem ich nicht wusste, dass er bis zu diesem Beitrag einen Namen hatte).

Die Taktraten werden nicht "pro Kern" angegeben. Geschwindigkeiten sind niemals "pro" etwas. Wenn ein Auto 50 Meilen pro Stunde fährt, beträgt die Geschwindigkeit 50 Meilen pro Stunde. Wenn zwei Autos 50 Meilen pro Stunde fahren, beträgt die Geschwindigkeit immer noch 50 Meilen pro Stunde. Die Idee einer "Geschwindigkeit pro Auto" ist bedeutungslos und inkohärent. David Schwartz vor 10 Jahren 0
1
David Schwartz

Zwei Autos, die jeweils 50 Meilen pro Stunde fahren, summieren sich nicht auf 100 Meilen pro Stunde. Es ist wirklich so einfach. Die Taktrate eines Prozessors ist kein Maß für die Geschwindigkeit, mit der die Arbeit erledigt wird. Sie ist ein Maß dafür, wie schnell die Uhr tickt.