it-swarm.com.de

Warum unterliegt "Hinzufügen von mehr Kernen" nicht den gleichen physischen Einschränkungen wie "Beschleunigen der CPU"?

2014 höre ich viele Programmiersprachen, die für ihre Parallelität angepriesen werden. Die Nebenläufigkeit soll für die Leistungssteigerung von entscheidender Bedeutung sein.

Bei dieser Aussage verweisen viele Menschen auf einen Artikel aus dem Jahr 2005 mit dem Titel Das kostenlose Mittagessen ist vorbei: Eine grundlegende Wende in Richtung Parallelität in der Software . Das Hauptargument ist, dass es schwieriger wird, die Taktrate von Prozessoren zu erhöhen, aber wir können immer noch mehr Kerne auf einen Chip setzen, und dass Software geschrieben werden muss, um Leistungssteigerungen zu erzielen, um die Vorteile mehrerer Kerne nutzen zu können.

Einige wichtige Zitate:

Wir sind es gewohnt, dass 500-MHz-CPUs 1-GHz-CPUs 2-GHz-CPUs weichen und so weiter. Heute bewegen wir uns auf Standardcomputern im 3 GHz-Bereich.

Die Schlüsselfrage ist: Wann wird es enden? Schließlich sagt das Mooresche Gesetz ein exponentielles Wachstum voraus, und ein exponentielles Wachstum kann eindeutig nicht für immer andauern, bevor wir an harte physische Grenzen stoßen. Licht wird nicht schneller. Das Wachstum muss sich irgendwann verlangsamen und sogar enden.

... Es ist immer schwieriger geworden, höhere Taktraten zu nutzen, da nicht nur eine, sondern mehrere physikalische Probleme auftreten, insbesondere Hitze (zu viel davon und zu schwer abzuleiten), Stromverbrauch (zu hoch) und Probleme mit Leckströmen.

... Die Zukunft von Intel und den meisten Prozessoranbietern liegt anderswo, da Chip-Unternehmen aggressiv die gleichen neuen Multicore-Richtungen verfolgen.

Bei Multicore geht es darum, zwei oder mehr aktuelle CPUs auf einem Chip zu betreiben.

Die Vorhersagen dieses Artikels scheinen zu stimmen, aber ich verstehe nicht warum. Ich habe nur sehr vage Vorstellungen darüber, wie Hardware funktioniert.

Mein vereinfachter Standpunkt lautet: "Es wird immer schwieriger, mehr Rechenleistung auf demselben Raum unterzubringen" (aufgrund von Problemen mit der Wärmeentwicklung, dem Stromverbrauch usw.). Ich würde die Schlussfolgerung als "daher müssen wir größere Computer haben oder unsere Programme auf mehreren Computern ausführen." (Und tatsächlich hören wir mehr über verteiltes Cloud-Computing.)

Ein Teil der Lösung scheint jedoch Multicore-Architekturen zu sein. Wenn Computer nicht größer werden (was sie nicht haben), scheint dies nur eine andere Möglichkeit zu sein, um zu sagen: "Packen Sie mehr Rechenleistung in den gleichen Raum".

Warum gelten für das Hinzufügen weiterer Kerne nicht die gleichen physischen Einschränkungen wie für das Beschleunigen der CPU?

Erklären Sie dies bitte in den einfachsten Begriffen, die Sie können. :)

109
Nathan Long

Zusammenfassung

  • Wirtschaft. Es ist billiger und einfacher, eine CPU mit mehr Kernen als einer höheren Taktrate zu entwerfen, weil:

  • Deutliche Steigerung des Stromverbrauchs. Der CPU-Stromverbrauch steigt schnell an, wenn Sie die Taktrate erhöhen. Sie können die Anzahl der Kerne, die mit einer niedrigeren Geschwindigkeit arbeiten, in dem erforderlichen thermischen Raum verdoppeln, um die Taktrate um 25% zu erhöhen. Vervierfachen Sie für 50%.

  • Es gibt andere Möglichkeiten, die Geschwindigkeit der sequentiellen Verarbeitung zu erhöhen, und die CPU-Hersteller nutzen diese.


Ich werde mich stark auf die hervorragenden Antworten bei dieser Frage auf eine unserer Schwester-SE-Sites stützen. Also stimmen Sie ihnen zu!


Einschränkungen der Taktrate

Es gibt einige bekannte physikalische Einschränkungen für die Taktrate:

  • Übertragungszeit

    Die Zeit, die ein elektrisches Signal benötigt, um einen Stromkreis zu durchlaufen, ist durch die Lichtgeschwindigkeit begrenzt. Dies ist eine harte Grenze, und es ist kein Weg dahin bekannt1. Bei Gigahertz-Uhren nähern wir uns dieser Grenze.

    Wir sind jedoch noch nicht da. 1 GHz bedeutet eine Nanosekunde pro Takt. In dieser Zeit kann das Licht 30 cm lang sein. Bei 10 GHz kann das Licht 3 cm lang sein. Ein einzelner CPU-Kern ist ungefähr 5 mm breit, daher treten diese Probleme irgendwo nach 10 GHz auf.2

  • Schaltverzögerung

    Es reicht nicht aus, nur die Zeit in Betracht zu ziehen, die ein Signal benötigt, um von einem Ende zum anderen zu gelangen. Wir müssen auch die Zeit berücksichtigen, die ein logisches Gatter in der CPU benötigt, um von einem Zustand in einen anderen zu wechseln! Wenn wir die Taktrate erhöhen, kann dies zu einem Problem werden.

    Leider bin ich mir bei den Einzelheiten nicht sicher und kann keine Zahlen angeben.

    Anscheinend kann das Einpumpen von mehr Strom das Umschalten beschleunigen, aber dies führt sowohl zu Problemen mit dem Stromverbrauch als auch mit der Wärmeableitung. Mehr Leistung bedeutet auch, dass Sie sperrigere Leitungen benötigen, die diese ohne Beschädigung handhaben können.

  • Wärmeableitung/Stromverbrauch

    Das ist der Große. Zitat aus fuzzyhair2s Antwort :

    Neuere Prozessoren werden mit der Technologie CMOS hergestellt. Jedes Mal, wenn ein Taktzyklus auftritt, wird die Leistung abgeführt. Höhere Prozessorgeschwindigkeiten bedeuten daher eine höhere Wärmeableitung.

    Es gibt einige schöne Messungen in diesem AnandTech-Forenthread und sie haben sogar eine Formel für den Stromverbrauch abgeleitet (die mit der erzeugten Wärme einhergeht):

    Formula
    Verdienst von Idontcare

    Wir können dies in der folgenden Grafik visualisieren:

    Graph
    Verdienst von Idontcare

    Wie Sie sehen, steigt der Stromverbrauch (und die erzeugte Wärme) extrem schnell an, wenn die Taktrate über einen bestimmten Punkt hinaus ansteigt. Dies macht es unpraktisch, die Taktgeschwindigkeit grenzenlos zu erhöhen.

    Der Grund für den rapiden Anstieg des Stromverbrauchs hängt wahrscheinlich mit der Schaltverzögerung zusammen. Es reicht nicht aus, die Leistung einfach proportional zur Taktrate zu erhöhen. Die Spannung muss ebenfalls erhöht werden, um die Stabilität bei höheren Takten zu gewährleisten. Dies ist möglicherweise nicht ganz richtig. Sie können in einem Kommentar auf Korrekturen hinweisen oder diese Antwort bearbeiten.


Mehr Kerne?

Warum also mehr Kerne? Nun, das kann ich nicht definitiv beantworten. Sie müssten die Leute bei Intel und AMD fragen. Aber Sie können oben sehen, dass es bei modernen CPUs irgendwann unpraktisch wird, die Taktrate zu erhöhen.

Ja, Multicore erhöht auch den Stromverbrauch und die Wärmeableitung. Aber es vermeidet ordentlich die Übertragungszeit- und Schaltverzögerungsprobleme. Wie Sie aus der Grafik ersehen können, können Sie die Anzahl der Kerne in einer modernen CPU bei gleichem thermischen Overhead wie bei einer Erhöhung der Taktrate um 25% auf einfache Weise verdoppeln.

Einige Leute haben es geschafft - der aktuelle Overclocking-Weltrekord liegt nur knapp bei 9 GHz. Dies zu tun, ist jedoch eine erhebliche technische Herausforderung, während der Stromverbrauch in akzeptablen Grenzen gehalten wird. Irgendwann beschlossen die Designer, dass das Hinzufügen von mehr Kernen zur Ausführung von mehr Arbeit parallel in den meisten Fällen die Leistung effektiver steigern würde.

Hier kommt die Wirtschaftlichkeit ins Spiel - es war wahrscheinlich billiger (weniger Entwicklungszeit, weniger kompliziert in der Herstellung), den Multicore-Weg zu gehen. Und es ist einfach zu vermarkten - wer mag nicht den brandneuen Octa-Core Chip? (Natürlich wissen wir, dass Multicore ziemlich nutzlos ist, wenn die Software es nicht nutzt ...)

Es gibt einen Nachteil für Multicore: Sie benötigen mehr physischen Platz, um den zusätzlichen Kern zu platzieren. Die CPU-Prozessgrößen schrumpfen jedoch ständig stark, sodass ausreichend Platz für zwei Kopien eines früheren Designs vorhanden ist. Der eigentliche Nachteil besteht darin, dass keine größeren, komplexeren Einzelkerne erstellt werden können. Andererseits ist die Erhöhung der Kernkomplexität vom Standpunkt des Designs aus gesehen eine schlechte Sache - mehr Komplexität = mehr Fehler/Bugs und Herstellungsfehler. Wir scheinen ein glückliches Medium mit effizienten Kernen gefunden zu haben, die einfach genug sind, um nicht zu viel Platz in Anspruch zu nehmen.

Mit der Anzahl der Kerne, die bei den aktuellen Prozessgrößen auf einen einzelnen Chip passen, sind wir bereits an eine Grenze gestoßen. Wir könnten an eine Grenze stoßen, wie weit wir die Dinge bald schrumpfen können. Was kommt als nächstes? Brauchen wir mehr Das ist leider schwer zu beantworten. Ist hier jemand ein Hellseher?


Andere Möglichkeiten zur Leistungssteigerung

Daher können wir die Taktrate nicht erhöhen. Und mehr Kerne haben einen zusätzlichen Nachteil: Sie helfen nur, wenn die auf ihnen laufende Software sie nutzen kann.

Was können wir also noch tun? Wie sind moderne CPUs bei gleicher Taktrate so viel schneller als ältere?

Die Taktrate ist eigentlich nur eine sehr grobe Annäherung an das interne Funktionieren einer CPU. Nicht alle Komponenten einer CPU arbeiten mit dieser Geschwindigkeit - einige arbeiten möglicherweise alle zwei Ticks.

Bedeutsamer ist die Anzahl von Anweisungen, die Sie pro Zeiteinheit ausführen können. Dies ist ein weitaus besseres Maß dafür, wie viel ein einzelner CPU-Kern leisten kann. Einige Anweisungen; Einige werden einen Taktzyklus benötigen, andere drei. Die Teilung zum Beispiel ist erheblich langsamer als die Addition.

Wir können also die Leistung einer CPU verbessern, indem wir die Anzahl der Befehle erhöhen, die pro Sekunde ausgeführt werden können. Wie? Nun, Sie könnten eine Anweisung effizienter gestalten - vielleicht dauert die Aufteilung jetzt nur noch zwei Zyklen. Dann gibt es Anweisungs-Pipelining . Durch Aufteilen jeder Anweisung in mehrere Stufen ist es möglich, Anweisungen "parallel" auszuführen - aber jede Anweisung hat immer noch eine genau definierte, sequentielle Reihenfolge in Bezug auf die Anweisungen davor und danach, sodass keine Softwareunterstützung wie Multicore erforderlich ist tut.

Es gibt einen anderen Weg: spezialisiertere Anweisungen. Wir haben Dinge wie SSE gesehen, die Anweisungen zur gleichzeitigen Verarbeitung großer Datenmengen enthalten. Es werden ständig neue Befehlssätze mit ähnlichen Zielen eingeführt. Diese erfordern wiederum Softwareunterstützung und erhöhen die Komplexität der Hardware, bieten jedoch einen netten Leistungsschub. Vor kurzem gab es AES-NI, das eine hardwarebeschleunigte AES-Ver- und -Entschlüsselung bietet, die weitaus schneller ist als eine Reihe von in Software implementierten Berechnungen.


1 Jedenfalls nicht ohne tief in die theoretische Quantenphysik einzusteigen.

2 Es könnte tatsächlich niedriger sein, da die Ausbreitung des elektrischen Feldes nicht ganz so schnell ist wie die Lichtgeschwindigkeit im Vakuum. Dies gilt auch nur für geradlinige Entfernungen - wahrscheinlich gibt es mindestens einen Pfad, der erheblich länger ist als eine gerade Linie.

142
Bob

Physik ist Physik. Wir können nicht immer mehr Transistoren in immer kleinere Räume packen. Irgendwann wird es so klein, dass man sich mit komischem Quantenmist auseinandersetzt. Irgendwann können wir nicht mehr zweimal so viele Transistoren in einem Jahr packen wie früher (worum geht es bei Moores Gesetz).

Rohe Taktraten bedeuten nichts. Mein alter Pentium M war ungefähr halb so schnell wie eine moderne Desktop-CPU (und doch in vielerlei Hinsicht schneller ) - und moderne Systeme nähern sich kaum den Geschwindigkeiten von Systemen vor 10 Jahren an ( und sind deutlich schneller). Grundsätzlich führt ein 'einfaches' Erhöhen der Taktrate in vielen Fällen nicht zu einem echten Leistungszuwachs. Es kann bei einigen Singlethread-Operationen hilfreich sein, aber Sie sollten das Konstruktionsbudget besser für mehr Effizienz in Bezug auf alles andere ausgeben.

Mit mehreren Kernen können Sie zwei oder mehr Dinge gleichzeitig ausführen, sodass Sie nicht warten müssen, bis eine Sache für die nächste erledigt ist. Kurzfristig können Sie einfach zwei vorhandene Kerne in dasselbe Paket einfügen (z. B. mit dem Pentium D s und dem MCM, das ein Übergangsdesign war), und Sie haben ein System, das doppelt so schnell ist. Die meisten modernen Implementierungen teilen sich natürlich Dinge wie einen Speichercontroller.

Sie können auch auf verschiedene Arten intelligenter bauen. ARM macht Big-Little - mit 4 "schwachen" Low-Power-Kernen, die zusammen mit 4 leistungsstärkeren Kernen arbeiten, haben Sie das Beste aus beiden Welten. Mit Intel können Sie Gas geben (für eine bessere Energieeffizienz) oder spezifisch Kerne übertakten (für eine bessere Leistung mit einem Thread). Ich erinnere mich, dass AMD etwas mit Modulen macht.

Sie können auch Dinge wie Speichercontroller (so dass Sie eine geringere Latenz haben) und IO verwandte Funktionen (die moderne CPU hat keine Nordbrücke) sowie Video (was bei Laptops und AIW-Design wichtiger ist) verschieben. Es ist sinnvoller, diese Dinge zu tun, als 'nur' die Taktrate zu erhöhen.

Irgendwann funktionieren 'mehr' Kerne möglicherweise nicht mehr - obwohl GPUs über Hunderte Kerne verfügen.

Multicores als solche ermöglichen es Computern, smarter auf all diese Arten zu arbeiten.

14
Journeyman Geek

Einfache Antwort

Die einfachste Antwort auf die Frage

Warum unterliegt "Hinzufügen von mehr Kernen" nicht den gleichen physischen Einschränkungen wie "Beschleunigen der CPU"?

befindet sich tatsächlich in einem anderen Teil Ihrer Frage:

Ich würde die Schlussfolgerung als "daher müssen wir größere Computer haben oder unsere Programme auf mehreren Computern ausführen."

Im Wesentlichen sind mehrere Kerne mit mehreren "Computern" auf demselben Gerät vergleichbar.

Komplexe Antwort

Ein "Kern" ist der Teil des Computers, der tatsächlich Anweisungen verarbeitet (Addieren, Multiplizieren "und" Ingenieren "usw.). Ein Core kann immer nur einen Befehl gleichzeitig ausführen. Wenn Sie möchten, dass Ihr Computer "leistungsstärker" ist, können Sie zwei grundlegende Dinge tun:

  1. Durchsatz erhöhen (Taktrate erhöhen, physische Größe verringern usw.)
  2. Verwenden Sie mehr Kerne in demselben Computer

Die physikalischen Grenzen von Nr. 1 liegen hauptsächlich in der Notwendigkeit, Wärme abzuleiten, die durch die Verarbeitung und die Geschwindigkeit eines Elektrons in der Schaltung verursacht wird. Sobald Sie einige dieser Transistoren auf einen separaten Kern aufteilen, verringern Sie das Wärmeproblem weitgehend.

Bei # 2 gibt es eine wichtige Einschränkung: Sie müssen Ihr Problem in mehrere unabhängige Probleme aufteilen und dann die Antwort kombinieren können. Auf einem modernen Personalcomputer ist dies kein wirkliches Problem, da es ohnehin jede Menge unabhängiger Probleme gibt, die um Rechenzeit mit den Kernen wetteifern. Bei intensiven Rechenproblemen helfen jedoch mehrere Kerne nur dann wirklich, wenn das Problem gleichzeitig auftreten kann.

9
Jason Brubaker

Warum unterliegt "Hinzufügen von mehr Kernen" nicht den gleichen physischen Einschränkungen wie "Beschleunigen der CPU"?

Sie sind mit denselben physischen Einschränkungen konfrontiert, aber die Umstellung auf Multicore-Design gibt uns eine gewisse Atempause, bevor wir einige von ihnen treffen. Gleichzeitig treten andere Probleme auf, die durch diese Einschränkungen verursacht werden, die jedoch leichter zu überwinden sind.

Fakt 1: Der Stromverbrauch und die abgegebene Wärme wachsen schneller als die Rechenleistung. Durch Drücken einer CPU von 1 GHz auf 2 GHz wird der Stromverbrauch von 20 W auf 80 W erhöht, ebenso bei Verlust der Wärme. (Ich habe gerade diese Zahlen erfunden, aber es ist ganz so, wie es funktioniert)

Fakt 2: Wenn Sie eine zweite CPU kaufen und beide mit 1 GHz betreiben, verdoppeln Sie Ihre Rechenleistung. Zwei CPUs mit 1 GHz könnten dieselbe Datenmenge verarbeiten wie eine 2-GHz-CPU, aber jede verbraucht nur 20 W Energie, das sind insgesamt 40 W.

Profit: Die Verdoppelung der CPU-Anzahl anstelle der Taktfrequenz spart Energie und wir sind der "Frequenzbarriere" nicht mehr so ​​nahe wie zuvor.

Problem: Sie müssen die Arbeit auf zwei CPUs aufteilen und die Ergebnisse später kombinieren.

Wenn Sie dieses Problem in akzeptabler Zeit lösen und weniger Energie verbrauchen, als Sie gerade eingespart haben, dann haben Sie gerade durch den Einsatz mehrerer CPUs profitiert.

Jetzt müssen Sie nur noch zwei CPUs zu einer Dual-Core-CPU zusammenführen und schon sind Sie zu Hause. Dies ist von Vorteil, da Kerne einige Teile der CPU gemeinsam nutzen können, z. B. Cache ( bezogene Antwort ).

6
gronostaj

Lange Rede, kurzer Sinn: Die Beschleunigung einzelner Kerne ist an ihre Grenzen gestoßen. Wir verkleinern sie und fügen weitere hinzu, bis sie an ihre Grenzen stoßen oder wir auf bessere Materialien umsteigen können (oder einen grundlegenden Durchbruch erzielen, der die etablierte Technologie umstürzt, wie z Quanten-Computing).

Ich denke, dieses Problem ist mehrdimensional und es wird etwas Schreibarbeit erfordern, um ein vollständigeres Bild zu zeichnen:

  1. Physikalische Einschränkungen (durch die tatsächliche Physik auferlegt): Wie Lichtgeschwindigkeit, Quantenmechanik, all das.
  2. Herstellungsprobleme: Wie fertigen wir immer kleinere Strukturen mit der erforderlichen Präzision? Rohstoffprobleme, Materialien für den Schaltungsbau usw., Haltbarkeit.
  3. Architekturprobleme: Wärme, Inferenz, Stromverbrauch etc.
  4. Wirtschaftliche Probleme: Was ist der billigste Weg, um dem Benutzer mehr Leistung zu bieten?
  5. Anwendungsfälle und Wahrnehmung der Leistung durch den Benutzer.

Es kann noch viel mehr geben. Eine Mehrzweck-CPU versucht, eine Lösung zu finden, um all diese Faktoren (und mehr) in einen massenproduzierbaren Chip zu verwandeln, der 93% der auf dem Markt befindlichen Subjekte erfüllt. Wie Sie sehen, ist der letzte wichtige Punkt, die Kundenwahrnehmung, die direkt von der Art und Weise abgeleitet wird, wie der Kunde die CPU nutzt.

Fragen Sie sich, was ist Ihre übliche Anwendung? Vielleicht: 25 Firefox-Registerkarten, von denen jede einige Anzeigen im Hintergrund abspielt, während Sie Musik hören, während Sie auf Ihren Build-Job warten, den Sie vor ungefähr 2 Stunden begonnen haben, um ihn zu beenden. Das ist eine Menge Arbeit, und dennoch möchten Sie eine reibungslose Erfahrung. Aber Ihre CPU kann zur Zeit EINE Aufgabe bewältigen! Auf einzelne Sache. Also, was Sie tun, ist, Sie teilen die Dinge auf und bilden eine lange Schlange, und jeder bekommt seinen eigenen Anteil und alle sind glücklich. Mit Ausnahme von dir, weil alle Dinge träge und überhaupt nicht glatt werden.

Sie beschleunigen also Ihre CPU, um mehr Operationen in der gleichen Zeit auszuführen. Aber wie gesagt: Wärme- und Stromverbrauch. Und hier kommen wir zum Rohstoffteil. Silizium wird leitfähiger, wenn es heißer wird, was bedeutet, dass mehr Strom durch das Material fließt, wenn Sie es aufheizen. Transistoren haben einen höheren Stromverbrauch, wenn Sie sie schneller schalten. Auch hohe Frequenzen verschlechtern das Übersprechen zwischen kurzen Kabeln. Wie Sie sehen, wird die Beschleunigung zu einer "Kernschmelze" führen. Solange wir keine besseren Rohstoffe als Silizium oder viel bessere Transistoren haben, stecken wir dort fest, wo wir uns mit Single-Core-Geschwindigkeit befinden.

Dies bringt uns wieder dorthin zurück, wo wir angefangen haben. Parallel dazu Dinge erledigen. Fügen wir einen weiteren Kern hinzu. Jetzt können wir tatsächlich zwei Dinge gleichzeitig tun. Lassen Sie uns die Dinge ein wenig abkühlen und schreiben Sie einfach Software, die ihre Arbeit auf zwei weniger leistungsfähige, aber funktionalere Kerne aufteilen kann. Dieser Ansatz hat zwei Hauptprobleme (abgesehen davon, dass die Softwarewelt Zeit benötigt, um sich daran anzupassen): 1. Vergrößern Sie den Chip oder verkleinern Sie den einzelnen Kern. 2. Einige Aufgaben können einfach nicht in zwei Teile aufgeteilt werden, die gleichzeitig ausgeführt werden. Fügen Sie so lange Kerne hinzu, wie Sie sie verkleinern können, oder vergrößern Sie den Chip, um das Hitzeproblem in Schach zu halten. Oh und lasst uns den Kunden nicht vergessen. Wenn wir unsere Verwendungszwecke ändern, müssen sich die Branchen anpassen. Sehen Sie sich all die glänzenden "neuen" Dinge an, die sich der Mobilfunksektor ausgedacht hat. Aus diesem Grund wird die Mobilbranche als so wichtig angesehen, und jeder möchte sie in die Hand bekommen.

Ja, diese Strategie wird an ihre Grenzen stoßen! Und Intel weiß das, deshalb heißt es, die Zukunft liege woanders. Aber sie werden es so lange tun, wie es billig, effektiv und machbar ist.

Last but not least: Physik. Die Quantenmechanik begrenzt das Schrumpfen der Späne. Die Lichtgeschwindigkeit ist noch keine Grenze, da sich Elektronen in Silizium nicht mit Lichtgeschwindigkeit fortbewegen können. Tatsächlich ist sie viel langsamer. Es ist auch die Impulsgeschwindigkeit, die die Geschwindigkeit, die ein Material bietet, auf den Prüfstand stellt. So wie sich Schall im Wasser schneller ausbreitet als in der Luft, so breiten sich elektrische Impulse beispielsweise in Graphen schneller aus als in Silizium. Dies führt zurück zu Rohstoffen. Graphen ist in seinen elektrischen Eigenschaften großartig. Es wäre ein viel besseres Material, CPUs daraus zu bauen, leider ist es sehr schwer, große Stückzahlen zu produzieren.

5
paradoxon

Angenommen, (als unrealistisches Beispiel, sollte aber dennoch klargestellt werden), Sie haben eine CPU mit 100F. In der Regel funktioniert Multicore, indem die Taktfrequenz der CPU, die mit 100F läuft, verringert und damit die Geschwindigkeit verringert wird. Da es nicht mehr so ​​heiß ist, können sie ein zweites, drittes oder sogar viertes direkt daneben platzen, ohne die Gesamttemperatur der CPU wesentlich zu beeinflussen und die Vorteile von Multicore zu nutzen. Dies ist natürlich mit einem gewissen Aufwand verbunden, da die Kerne immer noch von einem Ort aus von einem Kern aus gesteuert werden müssen. Je mehr Kerne Sie hinzufügen, desto mehr Aufwand entsteht. Bei einzelnen Kernen wird umso mehr Wärme erzeugt, je höher die Drehzahl ist. Dies hat offensichtlich physikalische Einschränkungen (d. H. Ab einem bestimmten Punkt wird die Leistung beeinträchtigt und es kann sogar gefährlich werden, wenn es zu heiß wird).

Wie die Zeit vergeht, haben sie Wege gefunden, die physische Größe der CPU zu verringern, weshalb wir haben wirklich nicht in die Anforderung liefen noch mehr Platz benötigen, um aber zum Beispiel 16-Core-CPU sind nicht wirklich vorhanden ist (bei die Zeit des Schreibens) außerhalb von Geräten der Server-Klasse aufgrund der physischen Größenbeschränkungen, da die CPUs der Server-Klasse physisch erheblich größer sind als die Standard-Consumer-Klasse.

2
user2366842

Ich würde sagen, dass die primäre Beschränkung der Rechenleistungsgrenzen in erster Linie mit der Begrenzung der Geschwindigkeit zusammenhängt, mit der wir das Elektron durch eine Schaltung bewegen können (lichtgeschwindigkeit Elektronendrift). Es gibt viele weitere Faktoren, wie Sie erwähnt haben.

Das Hinzufügen zusätzlicher Kerne würde den Prozessor nicht schneller machen, obwohl er in der gleichen Zeit mehr verarbeiten kann.

Moores Gesetz ist eine sehr interessante und informative Lektüre. Insbesondere dieses Zitat ist hier relevant:

Man könnte auch die theoretische Leistung eines eher praktischen "ultimativen Laptops" mit einer Masse von einem Kilogramm und einem Volumen von einem Liter einschränken. Dies erfolgt unter Berücksichtigung der Lichtgeschwindigkeit, der Quantenskala, der Gravitationskonstante und der Boltzmann-Konstante, was eine Leistung von 5,4258 ⋅ 10 ergibt50 logische Operationen pro Sekunde auf etwa 1031 Bits.

2
jredd

CPU = Automotor: Es ist einfacher, ein leistungsstärkeres Auto mit 16 Ventilen, d. H. Einem Lamborghini, zu bauen, als ein Auto mit hoher Drehzahl, das ein riesiges Ventil/Zylinder bei 100.000 U/min hätte.

Die Gründe dafür sind physikalisch und chemisch. Silizium muss durch einen Raketentreibstoff ersetzt werden, um das Gleichgewicht zwischen Anzahl der Kerne und Kerngeschwindigkeit zu verändern.

2
predatflaps

Lange Geschichte noch kürzer:

Wir brauchen wirklich keine schnelleren CPUs. Abgesehen von einigen hochspezialisierten Anwendungen * war die CPU seit Jahren kein Engpass mehr - alle Peripheriebits wie Speicher, Speicher und Netzwerk lassen die CPU normalerweise auf Millionen von Taktzyklen warten, in denen sie andere Aufgaben ausführen kann. Ein zweiter Kern kann mehr "andere Dinge" tun, wodurch für den Benutzer eine Wahrnehmung höherer Leistung erzeugt wird.

Viele mobile Geräte, Laptops usw. übertakten die CPU, um eine längere Akkulaufzeit und niedrigere Temperaturen zu erzielen. Kein großer Anreiz, einen 3,5-GHz-Core ARM zu entwickeln, wenn Ihr Hauptkunde ihn mit 1,3 GHz betreibt.

  • diese spezialisierten Anwendungen kaufen nicht genug, um die Entwicklung eines 5-GHz-Kerns zu rechtfertigen. Sie kümmern sich auch nicht um Hitze oder Strom - kaufen Sie den schnellsten, übertakten Sie ihn und schrauben Sie einen wassergekühlten Kühlkörper in der Größe eines Toasters an.
1
peter

Kurze und einfache Antwort:

Warum gibt es nicht die gleichen physischen Einschränkungen, wenn Sie von einem Lastwagen 100 Mal so viel transportieren wie von einem Lastwagen mit 160 km/h auf einen Lastwagen mit 150 km/h?

Beantworten Sie diese Frage, und Ihre Frage wird ebenfalls beantwortet. Das Konzept ist ungefähr dasselbe.

1
Alex D

Ich denke, ein weiterer Faktor ist die Temperatur. Wenn Sie die Taktfrequenz erhöhen, steigt die Kerntemperatur. Wenn Sie mehr Kerne hinzufügen, obwohl der Stromverbrauch steigt, wird dieser auf die Kerne verteilt, sodass die Temperatur gleich bleibt (wie wenn Sie zwei heiße Flüssigkeiten mit der gleichen Temperatur zueinander hinzufügen, bleibt die Temperatur gleich ).

Ein weiterer Grund ist, dass eine Erhöhung der Taktfrequenz den Stromverbrauch in der Regel um das Quadrat des Faktors erhöht, mit dem Sie die Frequenz erhöhen (abhängig davon, auf welche anderen Barrieren Sie an einem bestimmten Punkt treffen). Wenn Sie also die Taktfrequenz erhöhen, erhöht sich der Stromverbrauch um ein Quadrat, wenn Sie mehr Kerne hinzufügen, wird der Stromverbrauch nur linear erhöht.

1
Morty

Die Antwort auf die Frage, warum "nicht mehr Kerne hinzufügen" denselben physischen Einschränkungen unterliegt wie die Frage "CPU schneller machen", lautet, dass ein Multicore-System genau denselben Einschränkungen unterliegt wie eine Single-Core-CPU. Wir haben einen Punkt erreicht, an dem wir nicht wirklich die Möglichkeit haben, ein Single-Core-System schneller zu machen. Wir haben es also so gemacht, dass wir mehr Dinge auf einmal tun können. Die Herausforderungen in Bezug auf Größe und Koordination sind derzeit einfacher zu lösen als schneller zu werden. Der Nachteil ist, wenn eine Aufgabe nicht in Teile zerlegt werden kann, werden wir möglicherweise nicht viel schneller als ein Single-Core-System.

0
Philip Tinney

Sie können eine CPU nicht schneller machen, indem Sie einfach mehr Gates einbauen. Letztendlich müssen Befehle ausgeführt werden, und jeder Befehl erfordert mehrere "Umschalt" -Operationen. Es gibt grundlegende physikalische Grenzen (Quantenmechanik - das Uncertainty-Prinzip), die es sehr schwierig machen, die "Taktrate" einer CPU über die Geschwindigkeit aktueller Top-End-Systeme hinaus zu erhöhen.

0
Daniel R Hicks