ハードウェアマルチスレッディング

ハードウェアマルチスレッディング: hardware multi-threading)は、プロセッサマイクロアーキテクチャにおいて複数のスレッドの実行をハードウェアで提供することである。

概要

編集

1990







:

 TLB 




マルチスレッディングの作動の差異 
  使


細粒度マルチスレッディング

編集

概念

編集

[1]



(一) i: A

(二) i+1: B

(三) i+2: C



 1 CPU 

利点

編集

細粒度のマルチスレッドの主な利点の1つは、短時間および長時間のスレッドの停止によって生じるスループット低下を隠せることである。というのも、あるスレッドが停止したとき(たとえ数サイクルの停止であったとしても)、サイクルごとに実行スレッドの切り替えを行うので、他のスレッドの命令が実行されるためである。[1]

欠点

編集

[1]

用語

編集

 (barrel)  (fine-grained)  (FGMT) (interleaved)  (pre-emptive)  (time-sliced) 

ハードウェアのコスト

編集

#粗粒度マルチスレッディング」で議論されているハードウェアコストに加え、「細粒度マルチスレッディング」はさらに各パイプラインステージが処理する各命令のスレッド ID を追跡するためのコストがかかる。また、パイプライン内でより多くのスレッドが並列に実行されるため、異なるスレッド間のスラッシングを避けるためキャッシュや TLB などの共有リソースを大きくする必要がある。

粗粒度マルチスレッディング

編集

概念

編集

 CPU 



(一) i: Aj

(二) i+1: A j+1 

(三) i+2: A j+2  load 

(四) i+3: B

(五) i+4: Bk

(六) i+5: B k+1 

使調

用語

編集

この種類のマルチスレッディングは「ブロック型 (block) マルチスレッディング」、「協調 (cooperative) マルチスレッディング」、「粗粒度 (coarse-grained) マルチスレッディング (CGMT)」、「垂直 (vertical) マルチスレッディング (VMT)」として知られる。

ハードウェアのコスト

編集

使

:

 1 CPU 




  • 多数のマイクロコントローラおよび組み込み用途のプロセッサファミリが、割り込みのための高速なコンテキストスイッチが可能なよう複数の高速なレジスタバンクを持っている。こうした戦略はユーザープログラムスレッドと割り込みスレッドの間のブロック型マルチスレッディングの一種と考えることができる。

同時マルチスレッディング

編集

概念

編集

 CPU  (SMT) 使

:

(一) i: Aj j+1 Bk

(二) i+1: A j+2 B k+1 ; Cm

(三) i+2: A j+3 C m+1 m+2 

用語

編集

SMT をその他のマルチスレッディングの種類と区別するため、同時に一つのスレッドからの命令しか発行できない場合には経時的マルチスレッディング (temporal multi-threading) という用語が用いられる。

ハードウェアのコスト

編集

#粗粒度マルチスレッディング」で議論されているハードウェアコストに加え、SMTは各パイプラインのステージが処理する命令のスレッド ID を「各命令ごとに」認識するコストがかかる。さらに多数のアクティブのためキャッシュや TLB などの共有リソースを大きくしなければならない。

実装に固有の課題

編集

/

DMA 

TLB /

脚注

編集
  1. ^ a b c 『Computer Architecture』Elsevier Inc.、2012年、224頁。 

関連項目

編集