Hier wird ganz schön viel durcheinandergebracht.
Ein i3 hat 2 Rechenkerne. (Fließbänder)
Durch HT meldet er aber 4 Ausführungseinheiten an das Betriebssystem.
Was die CPU macht, ist in Rechenpausen für jedes dieser Fließbänder Arbeit für ein "nicht vorhandenes" Fließband abzuarbeiten. (weil es sonst still stehen würde)
Das ist nicht ganz so schnell, als gäbe es 4 echte (wie im i5 für den Desktop) aber doch deutlich schneller, als würde man diese Arbeitstakte verschenken.
Wenn das Betriebssystem mehr Aufgaben hat, laufen diese Threads nacheinander auf den echten oder gedachten Fließbändern durch. Tatsächlich laufen ständig hunderte Threads im PC gleichzeitig. Die meisten davon sind aber pausiert.
Nur 2 können tatsächlich zur gleichen Zeit real gerechnet werden und aus Sicht des Betriebssystems kann es 4 gleichzeitig beauftragen.
Was die CPU damit tatsächlich macht, weiß das BS nicht. Es denkt, es gäbe 4 Kerne.
Es ergibt einfach keinen Sinn, mehr Threads an das BS zu melden, weil es gar nicht so viele Leertakte mehr gibt, um dort Arbeit reinzupacken.
Die eine ALU arbeitet streng sequentiell. Ob ich nun 3x oder 4x HT "melde" oder die schlafenden Threads kurz aufwecke, auf den Kerne packen und wieder schlafen schicke, ändert nichts an der Arbeitsgeschwindigkeit, macht aber den Prozessor beliebig kompliziert in der Konstruktion.
Nur das eine mal macht es die CPU intern und das andere mal das Betriebssystem.