Was bedeuten 2 Core 4 Threads in der CPU?


22

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?


2
Sobald Sie Hintergrundinformationen zu en.wikipedia.org/wiki/Hyper-threading gesammelt haben, sollte dies für Sie sinnvoller sein. Der Prozessor, den Sie haben, kann tatsächlich 4 Anweisungen gleichzeitig ausführen. Sie sollten verstehen, dass sogar eine einzelne Kern-CPU die Fähigkeit hat, mehrere Programme auszuführen. Es kann NICHT 2 Anweisungen gleichzeitig ausführen. Sie scheinen nicht klar zu sein, wie ein Programm tatsächlich funktioniert.
Ramhound

@Ramhound Sie vermutlich 4 Anweisung gemeint Ströme . Da der i5 superskalar ist, kann er sogar aus einem einzigen Befehlsstrom mehrere Befehle parallel ausführen. Durch gleichzeitiges Multithreading kann Parallelität auf Thread-Ebene in Parallelität auf Befehlsebene umgewandelt werden, wodurch die Auslastung der Ausführungsressourcen erhöht wird.
Paul A. Clayton

Ich habe meine Aussage auf ein Minimum reduziert. Die Anzahl der Befehle pro Taktzyklus ist der Unterschied zwischen einem Pentium D und dem 4. Core i5 abzüglich der Größe des Chips und des Leistungsbedarfs (nochmals vereinfacht)
Ramhound


Diese Antwort kann eine Bestätigung liefern: superuser.com/questions/1198459/…
Jamie Hanrahan

Antworten:


15

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.


> "Darüber hinaus schaltet es mit hoher Geschwindigkeit zwischen den Prozessen um." Was beschleunigt den S / W-Wechsel?
Talespin_Kit

@ Talespin_Kit Ich denke, @ Slowki bezog sich auf die Art und Weise, wie eine CPU für die Arbeit mit mehreren Prozessen verwendet wird, daher ist sie nicht auf vier Dinge beschränkt. Es sind 4 Fäden mit vielen Dingen.
Matt Sephton

3

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


0

"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.


0

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

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.