Hallo Marrrrtin,
zunächst mal ist es natürlich einfacher SMT mit 2 logischen Kernen zu implementieren. Einfache Fragen wie "Wer ist dran?" sind bei zwei logischen Einheiten einfach zu beantworten: "Wenn ich es nicht bin, dann kann es nur der anderen sein". Solche Dinge werden gleich deutlich komplexer, wenn ich etwa vier logische Kerne nutzen möchte.
Dann ist SMT ja auch nur effizient, wenn in der CPU-Pipeline noch Kapazität für die zusätzlichen logischen Kerne vorhanden ist. In der Regel hilft SMT etwa die Wartezeiten auf Speicherzugriffe zu kaschieren indem ich die Ressourcen während der Speicherwartezeit eben für den anderen logischen Kern nutze. Aber bei vier logischen Kernen pro "echtem" Kern könnte die Speicherwartezeit zu knapp sein um alle vier logische Kerne zum Zug kommen zu lassen.
Also zusammengefasst:
1. 2 SMT Threads pro Kern sind einfacher zu implementieren
2. Mehr SMT Threads pro Kern machen nur Sinn, wenn in der Pipeline Ressourcen für soviele logische Kerne zur Verfügung stehen.
Hoffe das beantwortet die Frage,
Christian