HT/SMT の背後にある主なアイデアは、1 つのスレッドが停止したときに、同じコアの別のスレッドがそのコアの残りのアイドル時間を取り込んで透過的に実行できるというものでした。
2013 年、Intel は SMT を廃止し、Silvermont プロセッサ コアのアウトオブオーダー実行を支持しました。これによりパフォーマンスが向上することがわかったためです。
ARM は SMT をサポートしなくなりました (エネルギー上の理由から)。AMD はそれをサポートしていませんでした。実際には、それをサポートするさまざまなプロセッサがまだあります。
私の見解では、データとアルゴリズムがキャッシュ ミスとそれに続く処理の失速を何としてでも回避するように構築されている場合、HT はマルチコア システムの冗長な要素になるのでしょうか? 2 つの HyperThreads の個別のハードウェアが同じ物理コア内に存在するため、関連するコンテキスト スイッチングのオーバーヘッドが少ないことは理解していますが、これがコンテキスト スイッチングをまったく行わないよりも優れているとは思えません。
私は、HyperThreadingが必要になるということは、ソフトウェア設計に欠陥があることを示していると示唆しています。ここに欠けているものはありますか?