Forum: PC Hard- und Software Funktionsweise von SMP


von Tom (Gast)


Lesenswert?

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!

von Icke ®. (49636b65)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von Εrnst B. (ernst)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

> 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?

von (prx) A. K. (prx)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

Folglich garnicht so einfach zwei Arm CPUs auf ein board zu setzen und 
unter Linux eine Umgebung mit 2x2 cores zu sehen... ;)

von (prx) A. K. (prx)


Lesenswert?

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.

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Εrnst B✶ schrieb:
> Da passen dann wirklich 4×16 CPU-Kerne auf ein Mainboard.

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

von (prx) A. K. (prx)


Lesenswert?

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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ich kann mir das sehr gut Vorstellen, einzig das nötige Kleingeld fehlt 
;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.