Funktionsweise von SMP

Gast #2571850
Hallo Leute,

mir ist heut durch Zufall aufgefallen, dass ich eigentlich überhaupt 
keine Ahnung von garnichts habe...

Kurz gesagt interessiert mich:

Wie funktioniert SMP in der Praxis, also mehrere Prozessoren in einem 
Betriebssystem?


Was ich mir vorstellen kann:

Bei einem Prozessor (einem Kern): Strom ein, anfang bei 0x00 oder wo 
auch immer, da steht dann ein bootloader oder sprung zu nem bios (?), 
alles wird initialisiert und irgendwan kommen wir zum Betriebssystem.

Was ich mir nicht vorstellen kann:

Mehrere Prozessoren auf einem Board: Welcher Prozessor fängt wann mit 
was und warum an, kommt dann irgendwann mal in ein Betriebssystem und 
das kennt nun auch noch die anderen 1 - 3 prozessoren auf unserem 
Board...
Wie schaufeln diese Prozessoren denn die Daten zwischeneinander (Gehen 
wir mal von nem quad xeon system unter linux aus)


Herzlichen Dank!
#2571936
Tom schrieb:
>
> Mehrere Prozessoren auf einem Board: Welcher Prozessor fängt wann mit
> was und warum an, kommt dann irgendwann mal in ein Betriebssystem und
> das kennt nun auch noch die anderen 1 - 3 prozessoren auf unserem
> Board...

Die CPU-Kerne fangen nicht gleichzeitig mit der Arbeit an. Es gibt immer 
einen primären Prozessor bzw. -kern, der zunächst allein das BIOS 
anspringt. Alles weitere wird dann von diesem geregelt und an das OS 
übergeben, welches anschließend für die Verteilung der Threads zuständig 
ist.

> Wie schaufeln diese Prozessoren denn die Daten zwischeneinander (Gehen
> wir mal von nem quad xeon system unter linux aus)

Sie greifen abwechselnd auf den Arbeitsspeicher zu, die Koordination 
obliegt wiederum dem Betriebssystem.
Gast #2571963
Icke ®. schrieb:
> Sie greifen abwechselnd auf den Arbeitsspeicher zu, die Koordination
> obliegt wiederum dem Betriebssystem.

ich würde behaupten sie greifen gleichzeit darauf zu (ob es wirklich 
absolut gleichzeitg ist weiss ich nicht, aber das BS hat damit wenig zu 
tun). Der Software-Entwickler muss ich um locks kümmern.
#2571969
Peter II schrieb:
> ob es wirklich
> absolut gleichzeitg ist weiss ich nicht

Das hängt wiederum vom genauen Aufbau/Layout ab.

z.B. zwei Cores in einem Gehäuse, die sich einen Speichercontroller 
teilen, oder den Speichercontroller in der Northbridge haben, müssen 
nacheinander zugreifen.

Cores mit getrennten Speichercontrollern (manche Opteron z.B.) oder 
gleich getrennten Sockeln können natürlich gleichzeitig zugreifen. Da 
ist im Mainboard-Handbuch dann auch immer genau angegeben, welcher 
DIMM-Sockel zu welchem Speicherkanal von welcher CPU gehört.

Der Zugriff auf Speicher, der "der anderen CPU gehört" muss dann einmal 
durch diese durchgeleitet werden.

Spaßig wird das ganze, wenn man die verschiedenen Caches in den CPUs mit 
berücksichtigt. Die müssen ja auch aktuell gehalten werden...

=> zum "Lernen wie's funktioniert" vielleicht mit "theoretischen CPUs 
ohne Cache" anfangen.
Gast #2572383
> Der Zugriff auf Speicher, der "der anderen CPU gehört" muss dann einmal
> durch diese durchgeleitet werden.

Genau das ist der springende Punkt für mich: Wie funktioniert die 
Verbindung der beiden (oder 4) CPUs?
#2572392
Tom schrieb:

> Genau das ist der springende Punkt für mich: Wie funktioniert die
> Verbindung der beiden (oder 4) CPUs?

Chiplevel: Intel verwendet ab Sandy Bridge einen internen Ringbus, der 
Cores, Grafikprozessor, Speicherinterface und die Links zur Aussenwelt 
(s.u.) miteinander verbindet. AMD verbindet diese Komponenten klassisch 
per Crossbar-Switch.

Boardlevel: Point-to-Point Links verbinden die CPU-Sockel untereinander 
und koppeln einen oder mehrere I/O-Hubs an. Je nach Sockelzahl und 
Architektur sind die CPU-Sockel vollständig vernetzt, oder auch nur 
teilweise. AMD war hier mit dem Hypertransport der Vorreiter, Intel zog 
viele Jahre später nach.
#2572408
Beispiel: Wenn ein Intel Sandy Bridge Core auf den Speicher eines 
anderen Sockels zugreift, dann läuft es über diese Stationen:
  Core 1 Sockel 1
  Ringbus Sockel 1
  Linkinterface Sockel 1
  externe Verbindung
  Linkinterface Sockel 2
  Ringbus Sockel 2
  Speicherinterface Sockel 2
  DRAM

PS: Das beschreibt Intels Zukunft. Intels Sandy Bridge für Server ist 
noch nicht raus und die Quad-Socket fähigen Vorgängerversionen haben 
noch keinen Ringbus.
#2573496
Yep, insbesondere wenn du im bisherigen AMD Hypertransport 
Verbindungsmodell 4 Sockel vernetzt, denn dann hat nicht mehr jeder 
Sockel mit jedem eine Verbindung und der Weg von Sockel 1 zu Sockel 4 
muss beispielsweise Sockel 2 als Zwischenstation verwenden.
#2573518
A. K. schrieb:
> AMD Hypertransport
> Verbindungsmodell 4 Sockel vernetzt

Hab mich grad gefragt, ob's inzwischen Mainboards mit 4 G34-Sockeln 
gibt, die Interlagos-CPUs mögen:

Ja ;)

http://www.tyan.com/product_SKU_spec.aspx?ProductType=MB&pid=670&SKU=600000180


Da passen dann wirklich 4×16 CPU-Kerne auf ein Mainboard.

A. K. schrieb:
> der Weg von Sockel 1 zu Sockel 4
> muss beispielsweise Sockel 2 als Zwischenstation verwenden.

Sieht man an dem Blockdiagram für das oben verlinkte Mainboard schön.
Weil die CPU0 einen HT-Link zum Anschluss der Northbridge braucht, 
bleibt keine Querverbindung mehr zur CPU2.
Angehängte Dateien:
#2573600
Läubi .. schrieb:

> Im Vollausbau kostet das dann knapp 10.000 € also wer gerade noch etwas
> rumliegen hat und nicht weiß was damit zu tun ist...

Wenn du dir mal einen VMware ESX Server vorstellst, auf dem über 100 VMs 
laufen, dann wirkt ein solcher Server mit dementsprechend natürlich auch 
128-256GB RAM nicht mehr so krass.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.