Was bedeuten Geschwister in / proc / cpuinfo?


11

Bedeutet dies die Anzahl der virtuellen Prozessoren in einem physischen Prozessor?

Antworten:


9

Wenn die Anzahl der Geschwister gleich der Anzahl der Kerne ist, haben Sie CPUs, die kein Hyperthreading sind, oder das Hyperthreading ist ausgeschaltet. Wenn die Anzahl der Geschwister das Zweifache der Anzahl der Kerne beträgt, haben Sie eine Hyperthreading-CPU mit eingeschaltetem Hyperthreading. Es ist ein guter Artikel hier .


7

Die Anzahl der Geschwister auf einem Prozessor ist die Gesamtzahl der Ausführungseinheiten innerhalb dieses Prozessors. Dies umfasst sowohl zusätzliche Kerne als auch Hyperthreading.

Beispielsweise,

  1. Ein Core 2 Duo wird aufgelistet siblings : 2. Dual Core, kein Hyperthreading.
  2. Ein Xeon E5420 wird aufgelistet siblings : 4. Dual Core mit Hyperthreading.
  3. Ein Pentium 4 mit Hyperthreading wird aufgelistet siblings : 2. Einkernig mit Hyperthreading.

1

Verstehen Sie zunächst die folgenden Begriffe und ihren Verwendungskontext.

  • Zentralprozessor
    • Eine CPU ist eine Verarbeitungseinheit.
    • Es wird mehrere Komponenten haben, um Anweisungen zu verarbeiten.
    • Jede Komponente ist für verschiedene Vorgänge wie das Abrufen, Dekodieren, Verarbeiten, Aktualisieren usw. von Befehlen verantwortlich.
  • Ader
    • Eine CPU kann mehrere Sätze / Einheiten der oben genannten Komponenten aufweisen.
    • Wenn zwei dieser Einheiten vorhanden sind, kann der Prozessor zwei Anweisungen parallel ausführen.
    • Eine Einheit wird als Kern bezeichnet.
    • Eine Duel-Core-CPU besteht aus zwei identischen Komponenten. Eine Quad-Core-CPU verfügt über vier identische Sätze dieser Komponenten / Einheiten
  • Multi-CPU / Hyperthreading
    • Das ist etwas knifflig. Es ist nur der Softwarekontext gültig.
    • Immer wenn eine Anweisung auf den Abschluss eines externen Ereignisses wartet, befindet sich die CPU im Leerlauf. Um die CPU besser nutzen zu können, verwalten einige Anbieter zwei Hardware-Threads. Wenn ein Thread blockiert ist, wechselt die Hardware zu einem anderen Thread. Diese Art von Prozessoren kann CPU-Zustände speichern und wiederherstellen
    • Bei Software sieht es so aus, als würden zwei Threads parallel ausgeführt.
    • Linux betrachtet diese Hyperthreading-Kerne als Mehrfach-CPU. Weil es zwei Threads parallel laufen lassen kann. Es werden also zwei Ausführungseinheiten (Pseudo-CPUs) angezeigt.
    • Beispielsweise sind neuere Intel-CPUs mit Hyperthreads ausgestattet und können zwei Threads gleichzeitig ausführen.
  • Multi-Core
    • Moderne CPUs haben mehrere Sätze der oben genannten Hardwareeinheiten / -kerne
    • Im Gegensatz zum Hyperthreading können sie tatsächlich zwei Anweisungen parallel ausführen
    • Jeder Kern kann auch hyperthreaded werden
  • Multiprozessor
    • Hochleistungssysteme wie Server und Supercomputer verfügen über mehrere physische CPUs.
    • Sie können mehrere CPU-Sockel in ihren Hauptplatinen sehen
    • Jeder kann mehrere Kerne haben. Wieder kann jeder Kern hyperthreaded werden

Moderne PCs werden normalerweise mit Multi-Core-Hyperthread-Prozessoren geliefert. Zum Beispiel sieht Linux, das auf einem PC mit Quad-Core-Hyperthread-Intel-CPU ausgeführt wird, 8 CPUs (4 Kerne x 2 Hyperthreads).

Moderne Server sind normalerweise Multi-Core-Multi-Prozessor-Systeme. Ein typischer Server verfügt über zwei Sockets mit jeweils 24 Hyperthread-Kernen. Linux, das auf diesem System ausgeführt wird, sieht also 96 CPUs (2 Sockel x 24 Kerne x 2 Hyperthreads).

Geschwister

Um auf die eigentliche Frage zurückzukommen: Prozessoren, die den Cache gemeinsam nutzen, werden als Geschwister bezeichnet. Die Cache-Organisation sieht wie folgt aus (obwohl sie je nach Architektur unterschiedlich sein wird).

  • Jeder Kern hat einen L1-Befehls-Cache und einen L1-Daten-Cache
  • Jeder Core verfügt über einen Unified L2-Cache
  • Alle Kerne in einem Socket verfügen über einen Unified L3-Cache
  • Normalerweise teilen sich keine zwei Sockets einen Cache

Stellen Sie sich ein Multi-Core-Multi-Prozessor-System mit 2 Sockeln vor. Jede Buchse hat 24 Kerne mit Hyperthreading. In diesem Fall werden in Linux insgesamt 96 CPUs von 0 bis 95 nummeriert. Sockel 1 hat CPUs 0-47 und Sockel 2 48-95 (im Gegensatz dazu werden die Nummern normalerweise verschachtelt). Für dieses System mit der oben genannten Cache-Organisation

  • Prozessoren 0-47 sind Geschwister
  • Die Prozessoren 48-95 sind Geschwister

0

Der Kernel verwendet beispielsweise die Anzahl der Geschwister, um den Lastausgleich durchzuführen.

Auf einem System mit zwei physischen Paketen mit jeweils zwei Kernen (gemeinsam genutzter Cache der letzten Ebene) und jedem Kern mit zwei logischen Threads werden vier Aufgaben ausgeführt. Der Lastausgleich beginnt in der Multicore-Domäne für das erste Paket, was zu einer gleichmäßigen Lastverteilung auf alle Kerne führt.


Paket ist hier die falsche Terminologie.
Wim Kerkhoff
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.