Ich wollte wissen, was bedeuten 2 Kerne 4 Threads über eine CPU? Ich spreche über diese CPU, die ich habe
http://ark.intel.com/products/47341/Intel-Core-i5-520M-Processor-3M-Cache-2_40-GHz
Anfangs dachte ich, i5 hätte 4 Kerne, aber ich glaube, ich liege falsch. Mein Verständnis eines Threads ist, dass es sich um ein Stück Code handelt, das gleichzeitig (gleichzeitig) mit anderen Threads ausgeführt werden kann. Also, was bedeuten 4 Threads in diesem Datenblatt? Unterscheidet es sich von den programmatischen Threads? Unterscheidet sich die Anzahl der dort enthaltenen Threads von dem von uns erstellten Programm-Thread? Wenn es nur 2 Kerne hat, ist es dann richtig, dass Sie nur 2 parallele Programme ausführen können, obwohl es 4 Threads hat?
Antworten:
Ihr i5 verfügt über zwei Kerne. Jeder Kern kann aufgrund des Intel- Hyperthreading zwei Threads ausführen , wodurch vier Threads entstehen. Darüber hinaus wechselt er mit hoher Geschwindigkeit zwischen den Prozessen. Hier ist eine schöne Erklärung zum Multithreading, wenn Sie mehr wissen möchten, aber im Wesentlichen kann Ihre CPU 4 Prozesse gleichzeitig ausführen und mit hoher Geschwindigkeit zwischen Prozessen wechseln.
quelle
Ich bin mir nicht sicher, wie gut Sie sich mit Computerarchitektur auskennen. Der hier erwähnte Core i5 implementiert jedoch eine Form von Multithreading, das so genannte Simultaneous Multithreading (SMT). Intels Markenzeichen für die Implementierung von SMT ist das Hyperthreading.
Neben SMT gibt es andere Formen von Multithreading, wobei zeitliches Multithreading eine ist. Zum Beispiel feinkörniges zeitliches Multithreading, bei dem der Prozessor in jedem Zyklus zwischen verschiedenen Threads wechseln und so die pseudo-parallele Ausführung mehrerer Programme ermöglichen kann. In ähnlicher Weise kann es grobkörniges zeitliches Multithreading geben, bei dem ein Prozessor zwischen Threads wechseln kann, wenn er auf eine Operation mit hoher Latenz trifft, wie beispielsweise einen Hauptspeicherzugriff auf den aktuellen Thread. Die genauen Schaltpunkte können je nach Implementierung und Anforderungen wie Fairness oder Echtzeitfristen variieren.
SMT unterscheidet sich von der Context-Switch-Philosophie für Multithreading dadurch, dass tatsächlich zwei oder mehr Threads gleichzeitig auf einem Prozessor ausgeführt werden. Während die Implementierung variieren kann, besteht das primäre Ziel darin, die Funktionseinheiten in dem Prozessor auszunutzen, die im Leerlauf sind, wenn nur ein Thread ausgeführt wurde, und auch die weiträumige superskalare Natur des Prozessors auszunutzen. Sie können sich temporäres Multithreading als zeitliche Aufteilung der Prozessorressourcen und SMT als räumliche Aufteilung der Ressourcen vorstellen.
Eine detaillierte Analyse findet sich in Tullsens Arbeit von 1995:
http://dl.acm.org/citation.cfm?id=224449
quelle
"Wenn es nur 2 Kerne hat, ist es dann richtig, dass Sie nur 2 parallele Programme ausführen können, obwohl es 4 Threads hat?" Wenn es 2 Kerne hat, wird die Berechnung durch 2 = Parallelität geteilt. Wenn Ihr System jedoch über Hyper-Threading verfügt, kann es die 2-Berechnung in demselben Kern ausführen, weshalb derselbe Kern dem Betriebssystem als 2 Kerne ... logische Kerne angezeigt wird.
quelle
Nehmen Sie die Anzahl der Threads und dividieren Sie sie durch die Anzahl der Kerne. Dadurch können Sie die Anzahl der Threads pro Prozessorkern gleichzeitig ausführen.
In früheren Zeiten [auf früheren Intel-Modellen] war das Hyperthreading auf 1 Core beschränkt, auf dem 2 Threads gleichzeitig ausgeführt wurden, ODER auf mehrere Cores, auf denen 1 Befehlssatz (auch bekannt als Thread) pro Core ausgeführt wurde (ziemlich ineffizient, wenn Sie mich fragen). Aber mit besserer Rechenleistung und späteren Entwicklungen wie Ihrem i5-Prozessor haben Sie das, was ich gerne nenne: einen Mehrkern-Hyperthread-Prozessor, bei dem mehrere Kerne mehrere Befehlssätze (auch als Threads bezeichnet) pro Kern ausführen.
In Ihrem Fall erhält 1 Kern 2 Threads. Wenn Sie also rechnen, haben Sie insgesamt = 4 Befehlssätze (Threads).
Ein weiteres Beispiel: Anzahl der Kerne = 4, Anzahl der Threads = 8 | 8/4 = 2, so dass jeder Kern 2 Threads gleichzeitig verarbeitet (nicht sicher, welches Prozessormodell dies tut, aber ich bin fast sicher, dass es einen gibt).
Hoffe das hilft meinem Freund! Viel Spaß beim Rechnen!
Quelle: PEARSON IT-Zertifizierung CompTIA A + Examp Cram Cert. Handbuch
quelle