Advanced Computer Architecture 03. 投機 五島 正裕 2015/10/1 Advanced Computer Architecture 内容 1. 前々回(RISC と命令パイプライン)の復習 2. スーパースカラ・プロセッサと分岐 3. 投機 4. 余談 2 Advanced Computer Architecture 1. 前々回の復習 RISCと命令パイプライン 2015/10/1 Advanced Computer Architecture 4 命令パイプライン I1 I0 IF ID EX MEM WB cycle I0 I1 I2 I3 I4 I5 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB Advanced Computer Architecture パイプライン・ハザード パイプライン・ハザード (hazard) パイプライン動作を妨げる要因 構造ハザード (structural hazard) HW の資源の不足が原因 非構造ハザード SW の持つ依存関係が原因 データ・ハザード (data hazard) データ依存 制御ハザード (control hazard) 制御依存,分岐命令の実行 5 Advanced Computer Architecture インターロック と バブル パイプライン・ハザード (hazard) パイプライン動作を妨げる要因 パイプライン・インターロック (interlock) 機構によって対処 パイプライン・バブル (bubble) が発生 「パイプラインが乱れる」 6 Advanced Computer Architecture アーキテクチャ的対処 インターロックする ⇒ バブルが発生 ⇒ 性能低下 インターロックする機会を減らすことが重要! 構造ハザード 資源の不足が原因 資源の追加で消える 例えば,メモリ・ポートの場合, 命令キャッシュとデータ・キャッシュの分離 (separate) 非構造ハザード:データ・ハザード と 制御ハザード プログラムが原因 原理的に消えない バブルの削減 7 Advanced Computer Architecture 8 バブルの削減 (制御ハザード) cycle I0 be I1 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM W Advanced Computer Architecture 10 条件分岐命令 if (cond) PC = PC + immediate; PC 相対 (relative) 命令だけから(レジスタを読まなくても)飛び先アドレスが計算できる op 31 Rs 25 Rt 20 immediate 15 0 Advanced Computer Architecture 11 条件分岐 branch on register 分岐 条件 判定に 必要な 処理 備考 compare & branch 1つのレジスタ値が, 0,正,負, 0 以上,0 以下 2つの値(レジスタ値, 2つの値(レジスタ値, 即値)の一致比較 即値)の大小比較 R[Rs] == 0, R[Rs] > 0, … R[Rs] R[Rs] R[Rs] R[Rs] 1. レジスタの読み出し レジスタに,zero フラグ を付加しておくと楽. signフラグは msb. == != == != R[Rt], R[Rt], imm, imm R[Rs] > R[Rt], R[Rs] >= R[Rt], … 1. レジスタの読み出し 2. 一致比較 1. レジスタの読み出し 2. 大小比較(減算) 一部の RISC は持つ RISC は普通持たない Advanced Computer Architecture IF 12 100 PC ID 0 200 5 Reg File IR Rs LD 1 2 10 100 Rt 1000 EX MEM DR MA MD WB MDR Main Memory 210 Advanced Computer Architecture 13 インターロックの排除(制御ハザード) cycle I0 IF be ID EX MEM WB IF ID EX MEM WB I1 I0 IF IF be OR EX IF MEM OR nPC be I0 I1 OR nPC IF EX OR EX MEM WB MEM WB OR IF MEM next PC 計算器 MEM WB IF IF EX WB EX I1 ID EX OR MEM WB EX MEM WB 遅延分岐 W Advanced Computer Architecture バック・エッジ もろもろの元凶は,パイプラインのバック・エッジ バック・エッジ 逆向きの信号の流れ 16 Advanced Computer Architecture IF 17 100 PC ID 0 200 5 Reg File IR Rs LD 1 2 10 100 Rt 1000 EX MEM DR MA MD WB MDR Main Memory 210 Advanced Computer Architecture 19 バック・エッジ長 と バブルの量 cycle be I1 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB Advanced Computer Architecture 2. スーパースカラ・プロセッサと分岐 2015/10/1 Advanced Computer Architecture 21 スーパースカラの命令パイプライン I0 I2 IF I3 ID EX MEM WB I1 cycle I0 I1 I2 I3 I4 I5 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB Advanced Computer Architecture 22 制御ハザード cycle add r5 = r4 + r3 IF bz IF r1 OR nPC EX MEM WB EX MEM WB add r8 = r6 + r7 IF OR EX MEM WB add r8 = r8 + 1 IF OR EX MEM WB Advanced Computer Architecture 3. 投機 2015/10/1 Advanced Computer Architecture 24 投機 投機的実行 (speculative execution) 投機 (speculation): 1. 偶然の利益をねらって行う行為。 2. 将来の価格変動を予想して、価格差から生ずる利益を得ることを目的とし て行う売買取引。 (三省堂「大辞林 第二版」) この分野の投機: 予測に基づいて,あらかじめ処理を進めておくこと Advanced Computer Architecture 25 投機のフェーズ 1. 予測 (prediction) 2. 実行 (execution) 3. 確認 (verification, confirmation) 4. キャンセル,回復,再実行 (cancellation, recovery, re-execution) cycle A 1. 予測 3. 確認 2. 実行 B 4. 再実行 Advanced Computer Architecture 投機技術の種類 ○○予測 分岐予測 値予測 レイテンシ予測 キャッシュ・ヒット/ミス予測 etc. 粒度 (granularity):細粒度 (fine-grain) ~粗粒度 (coarse-grain) 命令レベル スレッド・レベル 関数レベル WWW ページのリンクの先読み 26 Advanced Computer Architecture 27 分岐予測 cycle 3. 確認 add r5 = r4 + r3 IF OR EX MEM WB be IF OR EX MEM WB r1 == r2 add r8 = r6 + r7 IF OR EX MEM WB PC 予測 add r8 = r8 1. + 1 IF OR EX MEM WB 2. フェッチ sub r9 = r6 - r7 IF OR EX MEM WB ld IF OR EX MEM WB r8 = *(r9) Advanced Computer Architecture 28 分岐予測 cycle 3. 確認 add r5 = r4 + r3 IF OR EX MEM WB be IF OR EX MEM WB r1 == r2 add r8 = r6 + r7 IF OR IF OR EX MEM WB PC 予測 add r8 = r8 1. + 1 IF OR IF OR EX MEM WB 2. フェッチ sub r9 = r6 - r7 ld r8 = *(r9) 4. 再フェッチ IF IF OR EX M IF IF OR EX M Advanced Computer Architecture 29 投機のメリット/ディメリット 予測 Hit 時 あたかも,依存がなくなったかのようになる 実行が省略されるわけではない cycle A 1. 予測 3. 確認 2. 実行 B Advanced Computer Architecture 30 投機のメリット/ディメリット 予測 Miss 時 非投機時より,確認の分だけ遅くなる 結果の比較:0~1~数サイクル 使用した計算資源(とエネルギー)を浪費したことになる cycle A 1. 予測 3. 確認 2. 実行 B 4. 再実行 Advanced Computer Architecture 31 投機のメリット/ディメリット (平均レイテンシ短縮)≒(予測率)× ( +(予測ヒット率) × H -(予測 ミ ス 率) × M ) cycle A 1. 予測 3. 確認 2. 実行 H B M 4. 再実行 Advanced Computer Architecture 32 予測ミスの影響 (予測ミスによるレイテンシの増加)= (予測率) ×(予測ミス率) ×(ミス・ペナルティ) cycle A 1. 予測 3. 確認 2. 実行 ミス・ペナルティ B 4. 再実行 Advanced Computer Architecture 33 分岐予測 cycle add r5 = r4 + r3 IF OR EX MEM WB be IF OR EX MEM WB r1 == r2 add r8 = r6 + r7 IF OR IF OR EX MEM WB add r8 = r8 + 1 IF OR IF OR EX MEM WB sub r9 = r6 - r7 IF IF OR EX M ld IF IF OR EX M r8 = *(r9) ミス・ペナルティ (= H, M = 0) Advanced Computer Architecture 投機の効果 「毎回かかるレイテンシを,ミス時のペナルティに」 (予測ミスによるレイテンシの増加)= (予測率) ×(予測ミス率) ×(ミス・ペナルティ) 予測ミス率が十分小さければ (ex. 1%), ミス・ペナルティは1~2サイクル長くなってもよい 34 Advanced Computer Architecture 35 バック・エッジ長 と ミス・ペナルティ cycle be I1 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB Advanced Computer Architecture IF 36 100 PC ID 0 200 5 Reg File IR Rs LD 1 2 10 100 Rt 1000 EX MEM DR MA MD WB MDR Main Memory 210 Advanced Computer Architecture 投機の効果 「毎回かかるレイテンシを,ミス時のペナルティに」 (予測ミスによるレイテンシの増加)= (予測率) ×(予測ミス率) ×(ミス・ペナルティ) 予測ミス率が十分小さければ (ex. 1%), ミス・ペナルティは,1~2サイクル長くなってもよい バック・エッジは, 1~2サイクル長くなってもよい ⇒ クロックの高速化 37 Advanced Computer Architecture 投機 と キャッシュ キャッシュも,投機の一種? 「キャッシュにある」と予測してアクセス さもないと,まったく効果がない 投機的性質を含む キャッシュ・ヒット/ミス予測 普通のキャッシュは,always hit と予測している 38 Advanced Computer Architecture 余談 2015/10/1 Advanced Computer Architecture 投機と日常 この分野の投機 「あやしい」ことではない ギャンブル性 低い,ばくち ではない low risk, high return 日常的投機 リスクが十分低いときには,予測に基づいて行動するのが当然 「信号が青なので進む」 40 Advanced Computer Architecture 投機と日常 日常の仕事では,投機がうまくいく例は少ない 「絶対やることになる」のは投機ではない 投機によって,仕事は早く終わるが,量は減らない むしろ,予測ミスの分だけ増える よい例 ホームに入ったら列車が来たので,とりあえず乗ってみる 41 Advanced Computer Architecture 細粒度の投機 と HW 「SW でできることは HW でやってはいけない」 「ハード屋」というものは,何でもかんでも HW 化したがる 性能が n 倍違わないなら,SW のほうがよいに決まってる 将来性が疑わしい? ○○専用 HW リコンフィギュアラブル GPU 細粒度(命令レベル, etc)の投機: HW でやるべき,数少ないことのひとつ 42 Advanced Computer Architecture 次回 Out-of-Order スーパースカラ + 分岐予測 + レジスタ・リネーミング 43
© Copyright 2024 ExpyDoc