Unterschied: Superskalarität & Mehrkernarchitektur?

Euda

Software-Overclocker(in)
Unterschied: Superskalarität & Mehrkernarchitektur?

Nabend PCGHX-Community,

finde zur im Threadtitel besagten Frage leider keine passende bzw. bündige Antwort via Google.
Weiß jemand, ob "superskalare Einheiten" bzw. Superskalarität von mehreren Kernen in einer CPU abzugrenzen sind oder beschreibt es den selben Umstand?

Danke im Voraus und mfG,
Euda :)


Edit: Sh*t, soeben etwas gefunden. Ist wohl ein äußerst großer Unterschied, jedoch werde ich aus der entsprechenden Quelle noch nicht wirklich schlau, worin dieser besteht. :(
 
AW: Unterschied: Superskalarität & Mehrkernarchitektur?

Superskalar sind alle x86 CPUs seit ca. dem Pentium I. Das bedeutet dass ein Kern mehrere ALUs(und FPUs) besitzt welche aber auf verschiedene Rechenarten spezialisiert sind. So kann auch mal mehr als einen Befehl pro Takt abgearbeitet werden. Bei einem Mehrkerner dagegen ist alles mehrfach vorhanden. Also auch das Frontend was die ALUs mit Aufgaben versorgt und von den ALUs gibt es mehrere welche die selbe Rechenart beherschen.
Richtig interessant wird es dann bei sowas wie AMDs Modularchitektur wo sich zwei Frontends zum Teil eine Recheneinheit teilen müssen.
 
AW: Unterschied: Superskalarität & Mehrkernarchitektur?

Superskalarität hat u.a. mit CPU Piplines zutun. Die Kerne sind in der Lage mehrere Intructions "parallel" auszuführen. Bin gerade dabei für die RA-Klausur zu lernen.
 
AW: Unterschied: Superskalarität & Mehrkernarchitektur?

Nun, zunächst mal vielen Dank für die Antworten =)

Wahrscheinlich werden im Rahmen der Beschäftigung meinerseits mit dem Thema (habe erst am Wochenende begonnen und eine Semesterarbeit "Einführung grundlegenden Aufbau und Funktionsweise einer CPU"; fertige mir auch Mind-Maps an) immer wieder kleine Fragen aufkommen, somit lasse ich den Thread mal offen und gleich eine weitere Frage folgen:

Hyper-Threading scheint ja insbesondere bei Aufgaben mit vielen Cache-Misses, also limitierendem Cache zu helfen (z.B. Video-Rendering.)?
Meine Frage hierzu: Wieso ist das bei Spielen oftmals nicht der Fall-- oder viel mehr - Wieso bremst Hyperthreading sogar in vielerlei 3D-Anwendungen? Ist das auf die Zuweisung von Threads auf den falschen Kern (also zwei Aufgaben laufen quasi parallel auf einem Core und limitieren sich gegenseitig, wodurch die einzelnen Kerne schlechter ausgelastet werden) zurückzuführen (natürlich nur, sofern die Anwendung nicht auf HT optimiert ist)? Ich weiß, vage Vermutung von einem Newb diesbezüglich. :D

Wär wieder sehr dankbar um Antworten,
mfG,
Euda =)
 
AW: Unterschied: Superskalarität & Mehrkernarchitektur?

Meine Frage hierzu: Wieso ist das bei Spielen oftmals nicht der Fall-- oder viel mehr - Wieso bremst Hyperthreading sogar in vielerlei 3D-Anwendungen?

Das ist bei Spielen in der Theorie genauso dass HT/SMT einen Performanceboost bringt. Die Voraussetzung für eine effiziente Nutzung dieser Technik ist aber eine ausreichende Anzahl an Threads, was bei Videorendering kein Problem ist, in Spielen aber sehr wohl.
Nicht die Zuordnung auf echte und virtuelle Kerne ist hier das Problem (das klappt so gut wie immer sehr gut) sondern schlichtweg die Tatsache, dass nur die allerwenisten Spiele heutuzutage mehr als 4 Threads bedienen können und die virtuellen Kerne einfach keine Arbeit erhalten.

Wenn du auf einem Zweikerner das SMT an und abschaltest siehst du, dass es in neuen Spielen einen deutlichen Vorteil bringt 4 Threads auf 2 Kernen bearbeiten zu können. Bei einem 4 oder gar 6-kerner mit SMT bringts meist nichts mehr da Spiele meist nur 4 Threads ausnutzen.
 
AW: Unterschied: Superskalarität & Mehrkernarchitektur?

Das ist bei Spielen in der Theorie genauso dass HT/SMT einen Performanceboost bringt. Die Voraussetzung für eine effiziente Nutzung dieser Technik ist aber eine ausreichende Anzahl an Threads, was bei Videorendering kein Problem ist, in Spielen aber sehr wohl.
Nicht die Zuordnung auf echte und virtuelle Kerne ist hier das Problem (das klappt so gut wie immer sehr gut) sondern schlichtweg die Tatsache, dass nur die allerwenisten Spiele heutuzutage mehr als 4 Threads bedienen können und die virtuellen Kerne einfach keine Arbeit erhalten.

Wenn du auf einem Zweikerner das SMT an und abschaltest siehst du, dass es in neuen Spielen einen deutlichen Vorteil bringt 4 Threads auf 2 Kernen bearbeiten zu können. Bei einem 4 oder gar 6-kerner mit SMT bringts meist nichts mehr da Spiele meist nur 4 Threads ausnutzen.

Okay :)
Bliebe noch die Frage, warum SMT in dem Falle sogar bremsen kann.
 
AW: Unterschied: Superskalarität & Mehrkernarchitektur?

Bliebe noch die Frage, warum SMT in dem Falle sogar bremsen kann.

Die paar vereinzelten Fälle bei denen SMT bremst liegen tatsächlich zumeist an Fehlzuweisungen von Threads an virtuelle Kerne obwohl noch logische Kerne "Zeit" hätten.
Diese Fälle werden aber zum Glück immer seltener.
 
AW: Unterschied: Superskalarität & Mehrkernarchitektur?

Das Problem bei Spielen ist, dass es häufig einen Hauptthread und dazu eine kleine Anzahl "Worker" mit weniger Aufgaben gibt. Wenn jetzt ein Sheduler anfängt diese Worker auf alle Kerne auf zu teilen muss bei SMT plötzlich ein physikalischer Kern den Hauptthread und einen Worker verteilt auf seine beiden virtuellen Kerne bearbeiten während die Anderen nur Worker bekommen. Ist SMT dagegen aus, gilt der erste physikalische Kern korrekterweise als ausgelastet wenn der Hauptthread darauf läuft und die Worker wandern ersteinmal auf die anderen Kerne.
 
Zurück