ハードウェアマルチスレッディング
細粒度マルチスレッドはサイクルごとに実行スレッドの切り替えを行い、マルチスレッドに対応する方法である。実行スレッドの切り替えは、複数のスレッドからの命令実行をインターリーブ(動的割り当てによる性能向上)するため、大抵の場合ラウンドロビン方式で行われ、停止中のスレッドはスキップされる。
例:
サイクル i: スレッド A からの命令が発行される
サイクル i+1: スレッド B からの命令が発行される
サイクル i+2: スレッド C からの命令が発行される
この種類のマルチスレッディングの目的は、実行パイプラインから、データ依存によるストールをすべて排除することである。一つのスレッドが比較的他のスレッドから独立しているため、一つのパイプのステージ内の一つの命令がパイプラインの古い命令の出力結果を必要とする可能性は低い。
概念的には、オペレーティングシステムで用いられるプリエンプティブ・マルチタスクと似ている。各アクティブスレッドに与えられたタイムスライスを 1 CPU サイクルに例えることができるだろう。
細粒度のマルチスレッドの主な欠点は、個々のスレッドの実行速度が遅くなることである。サイクルごとに実行スレッドの切り替えを行うので、停止せずに実行可能なスレッドが、他のスレッドからの命令によって遅れてしまうからである。その代償として、シングルスレッドの性能(レイテンシーで測定)が低下するため、マルチスレッドのスループットも向上しない。