Pizza! schrieb:
Wie funktioniert eigentlich 1 Kern 8 Threads? Wie macht ein Kern pro Taktzyklus 8 Rechnungen?
Von A nach B und zurück ist 1 Takt soweit ich weiß. (Bildlich gesprochen)
Diese Erklärung bringt dir in diesem Kontext nichts. Prozessoren haben eine sogenannte Pipeline ("Fließband"), in der die Befehle bearbeitet werden. Dabei gibt es je nach Prozessor unterschiedlich viele Arbeitsschritte. Die Befehle kommen vorne rein und hinten sind sie fertig ausgeführt. Pro Takt bewegen sich die Befehle einen Arbeitsschritt weiter. Bearbeitet der Prozessor einen Befehl pro Taktzyklus, dann heißt das, dass bei jedem Takt ein Befehl am Ende der Pipeline ankommt.
Das mit dem HyperThreading oder Symmetric Multi Threading heißt nun, dass die Pipeline so breit ausgeführt ist, dass das ggf. mehr als ein Befehl nebeneinander drauf passt. Es gibt Befehle, die mit kleineren Datentypen als andere, oder die nur ein Argument haben statt zwei. Deswegen passt ggf. von den "breitesten" Befehlen nur ein einziger aufs Fließband, aber von den einfachen mehrere. HyperThreading ist nichts anderes als der Versuch, "auf gut Glück" mehr als einen Befehl auf das Fließband zu packen, und dann zu hoffen, dass er bis ans andere Ende nicht runter geschmissen werden muss, weil bei allen Arbeitsschritten genug Ressourcen verfügbar sind, um alle Befehle auf einmal zu bearbeiten.
Es spricht erst einmal nichts dagegen, auch mehr als zwei Befehle gleichzeitig drauf zu legen, vor allem,wenn der Prozessor eine sehr große Bandbreite zwischen den "schmalsten" und den "breitesten" Befehlen hat.
Das ist jetzt alles sehr vereinfacht, und es fehlen viele Feinheiten, aber so grob kann man sich das vorstellen.