同時マルチスレッド – ウィキペディア
用語 同時マルチスレッド (短い SMT ;たとえば、「同時マルチスレッド操作」)は、個別のパイプラインおよび/または追加のレジスタセットを使用して、マイクロプロセッサが複数のスレッドを同時に実行する能力を説明しています。これにより、SMTはハードウェア側のマルチスレッドの形式を表します。
現在最も有名な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 =書き込みバック):
Ld R6 、 ADR4 追加 R4 、 R6 、 初め 蛙 R4 、 R6 、 J1 BR j2
j1: ADD R4,R4,1
j2: ST R4,adr6
|
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
無条件のジャンプが発生した場合、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つ以上のハードウェアスレッドを備えたプロセッサです。
- ↑ Susan Eggers最初の女性が非常に名誉あるコンピューターアーキテクチャ賞を受賞しました 、PR Newswire、5。Juni2018
Recent Comments