同時マルチスレッド – ウィキペディア

before-content-x4

用語 同時マルチスレッド (短い SMT ;たとえば、「同時マルチスレッド操作」)は、個別のパイプラインおよび/または追加のレジスタセットを使用して、マイクロプロセッサが複数のスレッドを同時に実行する能力を説明しています。これにより、SMTはハードウェア側のマルチスレッドの形式を表します。

after-content-x4

現在最も有名なSMTの形式は、Pentium 4、Xeon、Atom、Core I、および新しいメーカーのプロセッサのIntelのハイパースレッドテクノロジー(HTT)です。 B. Cell、Power5およびPower6 IBMのPower6およびZen Architecture、Ryzen、EpycのAMDからのプロセッサシリーズ。

SMTは、1990年代にHank LevyとSusan Eggersによって開発されました。 Eggersは2018年にEckert-Mauchly Awardを受賞しました。 IEEEコンピューターソサエティであるEggersに感謝して、SMTは過去30年間のコンピューターアーキテクチャへの最も重要な貢献と言われていました。 [初め]

SMTの目的は、とにかくパイプラインアーキテクチャで可能な場合よりも、パイプラインアーキテクチャのためにすでに冗長になっているプロセッサのリソースを使用することです。パイプラインアーキテクチャは、スレッド内のコマンドでのみ機能します。その結果、スレッド内で互いに独立した並列コマンドのみができます。

2倍SMTの例 [ 編集 | ソーステキストを編集します ]

次のパイプラインレベルと2つのスレッドが指定されています(if = destrest fetch、id = instruction decoding、of = operand fetch、ex = execution、wb =書き込みバック):

スレッド1
 Ld  R6 ADR4   追加  R4 R6 初め    R4 R6 J1          BR j2
j1:   ADD R4,R4,1
j2:   ST R4,adr6
スレッド2
Ld  R1 ADR0  また  R1 R1 0xf0  Ld  R2 ADR1  ADD R3,R1,R2
ST R3,adr2

注文不足および秩序外の苦情
クロックごとに2つのコマンド
データ依存の場合、従属コマンドの最初のex期は、前のコマンドのWBフェーズと一致します。

2整数ユニットEx1、Ex2
1ジャンプユニットEX1、EX2
1 storeIeinheit ex1、ex2
1ロードユニットEX1、EX2、EX3 EX4

after-content-x4

無条件のジャンプが発生した場合、IDフェーズの後にターゲットコマンド(if)を取得します(if)。ジャンプが発生した場合、条件付きジャンプは、ターゲット命令をロードする前にEX2フェーズを処理する必要があります。ジャンプが実行されていない場合、コマンドはEX2フェーズと並行して再開できます。

タカム 初め 2 3 4 5 6 7 8 9 11 12番目 13 14 15 16 17 18
LD R6、ADR4 もしも id ex1 ex2 ex3 ex4 ex5 WB
LD R1、ADR0 もしも id ex1 ex2 ex3 ex4 ex5 WB
LD R2、ADR1 もしも id ex1 ex2 ex3 ex4 ex5 WB
R4、R6,1を追加します もしも id ex1 ex2 WB
またはR1、R1,0xf0 もしも id ex1 ex2 WB
BEQ R4、R6、M1 もしも id ex1 ex2 WB
R3、R1、R2を追加します もしも id ex1 ex2 WB
BR M2 もしも id ex1 ex2 WB
ST R3、ADR2 もしも id ex1 ex2 WB
J1: R4、R4,1を追加します もしも id ex1 ex2 WB J1にジャンプしません
J2: ST R4、ADR6 もしも id ex1 ex2 WB

同時マルチスレッドは、マルチコアプロセッサに代わる大幅に低いパフォーマンスの代替品ではありますが、安価なものを表しています。ただし、SMTプロセッサのパフォーマンスは、並行して処理するいくつかのタスクを実行できる場合にのみ効果的に使用できます。これは、数年にわたって多くの最新のアプリケーションに当てはまります。

したがって、マルチスレッドの同時は、パイプラインアーキテクチャとマルチコアアーキテクチャの間に見られます。

パイプラインアーキテクチャ/スーパースカラリティの区別 [ 編集 | ソーステキストを編集します ]

SMTは、複数のスレッドの実行が同時に可能であるという点で、パイプラインアーキテクチャとは異なります。 ALUやFPUなどのプロセッサのデータ処理ユニットだけでなく、レジスタセットとコマンドデコードも複製されます。システムと比較して、SMT CPUは通常、いくつかの独立したプロセッサのように表示されます。

パイプラインアーキテクチャは、可能であれば、同じプログラムのコマンドを並行して実行します。依存関係が原因で不可能な場合、それらは連続して実行されます。 SMTは、可能であれば、2つ以上のスレッド(1つ以上のプログラムから)のコマンド(1つ以上のプログラムから)を実行します。そうでない場合、それらは交互に実行されます。 (これは「いくつかのスレッドよりもスーパースケーラリティ」と呼ぶことができます。)

両方の概念は、コマンド処理に並行することにより、CPUの異なる単位をより良く使用するようにし、したがって、クロック周波数やコマンドを実行するユニットの数を増やすことなくプログラムをより速く処理するようにします。

マルチコアアーキテクチャの区別 [ 編集 | ソーステキストを編集します ]

SMTは、システムに登録されているプロセッサが独立したプロセッサではないという点で、マルチコアアーキテクチャとは異なります。 SMTでは、仮想プロセッサは同じデータ処理ユニット(ALU/FPU)へのアクセスを共有し、マルチコアプロセッサでは、各コアには独自のデータ処理ユニットがあります。

2つのスレッドを備えたSMTプロセッサとダブルコアプロセッサの両方は、システムと比較して2つのプロセッサであるように見えます。ただし、ダブルコアプロセッサは2つの実際には独立した、それに応じて高速プロセッサであり、SMTは2つ以上のハードウェアスレッドを備えたプロセッサです。

  1. Susan Eggers最初の女性が非常に名誉あるコンピューターアーキテクチャ賞を受賞しました 、PR Newswire、5。Juni2018
after-content-x4