Was ist der Unterschied zwischen einem Kern und einem Prozessor?
Ich habe bereits bei Google danach gesucht, aber ich habe nur eine Multi-Core- und Multi-Prozessor-Definition, aber es stimmt nicht mit dem überein, was ich suche.
Was ist der Unterschied zwischen einem Kern und einem Prozessor?
Ich habe bereits bei Google danach gesucht, aber ich habe nur eine Multi-Core- und Multi-Prozessor-Definition, aber es stimmt nicht mit dem überein, was ich suche.
Antworten:
Ein Kern ist normalerweise die grundlegende Recheneinheit der CPU - er kann einen einzelnen Programmkontext ausführen (oder mehrere, wenn er Hardwarethreads wie Hyperthreading auf Intel-CPUs unterstützt), wobei der richtige Programmstatus, die richtigen Register und die richtige Ausführungsreihenfolge beibehalten werden Ausführen der Operationen über ALUs . Zu Optimierungszwecken kann ein Core auch On-Core-Caches mit Kopien häufig verwendeter Speicherblöcke enthalten.
Eine CPU kann einen oder mehrere Kerne haben, um Aufgaben zu einem bestimmten Zeitpunkt auszuführen. Diese Aufgaben sind normalerweise Softwareprozesse und Threads, die vom Betriebssystem geplant werden. Beachten Sie, dass auf dem Betriebssystem möglicherweise viele Threads ausgeführt werden müssen, die CPU jedoch nur X solcher Aufgaben zu einem bestimmten Zeitpunkt ausführen kann, wobei X = Anzahl der Kerne * Anzahl der Hardware-Threads pro Kern. Der Rest müsste warten, bis das Betriebssystem sie geplant hat, indem er aktuell ausgeführte Aufgaben oder andere Mittel verhindert.
Zusätzlich zu dem einen oder den mehreren Kernen enthält die CPU eine Verbindung, die die Kerne mit der Außenwelt verbindet, und normalerweise auch einen großen gemeinsam genutzten Cache der letzten Ebene. Es sind mehrere andere Schlüsselelemente erforderlich, damit eine CPU funktioniert, aber ihre genauen Positionen können je nach Design unterschiedlich sein. Sie benötigen einen Speichercontroller, um mit dem Speicher zu kommunizieren, E / A-Controller (Display, PCIe, USB usw.). In der Vergangenheit befanden sich diese Elemente außerhalb der CPU im komplementären "Chipsatz", aber das modernste Design hat sie in die CPU integriert.
Darüber hinaus verfügt die CPU möglicherweise über eine integrierte GPU und so ziemlich alles, was der Entwickler aus Gründen der Leistung, Leistung und Herstellung in der Nähe halten wollte. Das CPU-Design tendiert hauptsächlich zu dem, was als System on Chip (SoC) bezeichnet wird.
Dies ist ein "klassisches" Design, das von den meisten modernen Allzweckgeräten (Client-PC, Server sowie Tablet und Smartphone) verwendet wird. Aufwändigere Entwürfe finden Sie normalerweise in der Akademie, wo die Berechnungen nicht in grundlegenden "kernartigen" Einheiten durchgeführt werden.
/proc/cpuinfo
sehe ich auf meinem Debian-System beim Inspizieren sechzehn processor:
Zeilen, obwohl es heißt model: AMD Ryzen 7 2700X Eight-Core Processor
. Zumindest in diesem Fall hat jeder der 8 "Kerne" zwei "Prozessoren", was hier im Widerspruch zu einigen anderen Antworten steht.
Ein Bild kann mehr als tausend Worte sagen:
* Abbildung zur Beschreibung der Komplexität eines modernen Multi-Prozessor-Multi-Core-Systems.
Quelle:
Open images in new tab
zoomen Sie dann mit cltr
++
Lassen Sie uns zunächst klären, was eine CPU und was ein Kern ist, eine Zentraleinheit. Die CPU kann mehrere Kerneinheiten haben. Diese Kerne sind ein Prozessor für sich, der ein Programm ausführen kann, aber auf demselben Chip in sich geschlossen ist.
In der Vergangenheit wurde eine CPU auf einige Chips verteilt, jedoch nach Moores Gesetz fortschritt, wurde eine vollständige CPU in einem Chip (Chip) installiert, seit den 90er Jahren begann der Hersteller, mehr Kerne in denselben Chip einzubauen Konzept des Multi-Core.
In diesen Tagen ist es möglich, Hunderte von Kernen auf derselben CPU-GPU (Chip oder Die), Intel Xeon, zu haben. Eine andere in den 90er Jahren entwickelte Technik war das gleichzeitige Multithreading. Grundsätzlich stellten sie fest, dass es möglich war, einen anderen Thread in derselben Single-Core-CPU zu haben, da die meisten Ressourcen bereits wie ALU, mehrere Register, dupliziert wurden.
Grundsätzlich kann eine CPU mehrere Kerne haben, von denen jeder einen oder mehrere Threads gleichzeitig ausführen kann. Wir können davon ausgehen, dass in Zukunft mehr Kerne vorhanden sind, jedoch mit größerer Schwierigkeit, effizient programmieren zu können.
Die CPU ist eine Zentraleinheit. Seit 2002 haben wir nur einen einzelnen Kernprozessor, dh wir führen jeweils nur eine einzelne Aufgabe oder ein Programm aus.
Um mehrere Programme gleichzeitig ausführen zu können, müssen wir mehrere Prozesse gleichzeitig ausführen, um mehrere Prozesse auszuführen. Daher haben wir dafür ein anderes Motherboard benötigt, und das ist sehr teuer.
Daher hat Intel das Konzept des Hyper-Threading eingeführt, dh es wird die einzelne CPU in zwei virtuelle CPUs konvertieren, dh wir haben zwei Kerne für unsere Aufgabe. Jetzt ist die CPU einzeln, aber sie gibt nur vor (maskiert), dass sie eine doppelte CPU hat und mehrere Aufgaben ausführt. Es ist jedoch besser, echte mehrere Kerne zu haben, sodass die Leute einen Multi-Core-Prozessor entwickeln, dh mehrere Prozessoren auf einer einzigen Box, dh mehrere CPUs auf einer großen CPU. Dh mehrere Kerne.
In den frühen Tagen ... wie vor den 90ern ... waren die Prozessoren nicht in der Lage, mehrere Aufgaben so effizient auszuführen ... weil ein einzelner Prozessor nur eine einzige Aufgabe erledigen konnte ... also, als wir sagten, dass meine Antivirus, Microsoft Word, VLC usw. Software läuft alle gleichzeitig ... das stimmt eigentlich nicht. Als ich sagte, ein Prozessor könne jeweils einen Prozess verarbeiten ... meinte ich es auch so. Es würde tatsächlich eine einzelne Aufgabe verarbeiten ... dann pausierte es diese Aufgabe ... nahm eine andere Aufgabe an ... erledigte sie, wenn es eine kurze war, oder pausierte sie erneut und fügte sie der Warteschlange hinzu ... dann die nächste. Aber diese 'Pause', die ich erwähnte, war so klein (ca. 1 ns), dass Sie nicht verstanden haben, dass die Aufgabe angehalten wurde. Z.B. Auf vlc laufen während des Musikhörens andere Apps gleichzeitig, aber wie ich Ihnen bereits sagte ... ein Programm nach dem anderen ...
Aber hier ging es um die alten Prozessoren ...
Heutzutage haben Prozessoren, dh PCs der 3. Generation, Prozessoren mit mehreren Kernen. Jetzt können die 'Kerne' mit einem Prozessor der 1. oder 2. Generation selbst verglichen werden ... eingebettet in einen einzelnen Chip, einen einzelnen Prozessor. Jetzt haben wir verstanden, was Kerne sind, dh sie sind Miniprozessoren, die sich zu einem Prozessor verbinden. Und jeder Kern kann jeweils einen Prozess oder mehrere Threads verarbeiten, wie für das Betriebssystem vorgesehen. Und sie folgen den gleichen Schritten wie oben für den einzelnen Prozessor.
Z.B. Ein i7 6gen Prozessor hat 8 Kerne ... dh 8 Miniprozessoren in 1 i7 ... dh seine Geschwindigkeit ist 8x mal so hoch wie die der alten Prozessoren. Und so kann Multitasking durchgeführt werden.
Es könnten Hunderte von Kernen in einem einzelnen Prozessor sein, z. Intel i128.
Ich hoffe ich habe das gut erklärt.
Intels Bild ist hilfreich, wie Tortugas beste Antwort zeigt. Hier ist eine Bildunterschrift dafür.
Prozessor : Ein Halbleiterchip, die CPU (Zentraleinheit) in einem Sockel, ca. 1950er-2010er Jahre. Im Laufe der Zeit wurden mehr Funktionen auf den CPU-Chip gepackt. Vor den 1950er-Versionen von Single-Chip-Prozessoren war ein Prozessor möglicherweise auf mehrere Chips verteilt. Mitte der 2010er Jahre machten es die System-on-a-Chip-Chips etwas skizzenhafter, einen Prozessor einem Chip gleichzusetzen, obwohl dies im Allgemeinen unter Prozessor zu verstehen ist, wie in "Dieser Computer hat einen i7-Prozessor" oder "Dieses Computersystem" hat vier Prozessoren. "
Kern : Ein Block einer CPU, der jeweils einen Befehl ausführt. (Sie werden sehen, dass Leute einen Befehl pro Taktzyklus sagen, aber einige CPUs verwenden für einige Befehle mehrere Taktzyklen.)