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 9 分岐命令 (条件)分岐命令 if (cond) PC = PC + immediate; branch on register cond: R[Rs] == 0, R[Rs] > 0, … compare and branch cond: R[Rs] == R[Rt], R[Rs] != R[Rt] op 31 Rs 25 Rt 20 immediate 15 0 Advanced Computer Architecture IF 10 100 PC ID IR 0 200 5 Reg File Rs LD 1 2 10 100 Rt EX MEM WB 1000 DR MDR MA MD Main Memory 210 Advanced Computer Architecture 11 インターロックの排除(制御ハザード) cycle I0 IF be ID EX MEM WB IF ID EX MEM WB I1 I0 IF IF be ID EX IF OR nPC I1 be I0 I1 IF OR nPC IF EX OR IF MEM ID EX WB EX MEM WB IF OR EX next PC 計算器 MEM WB MEM WB EX OR MEM MEM WB EX MEM WB 遅延分岐 W Advanced Computer Architecture レポート:遅延分岐と Compare & Branch,Jump Branch on Register 遅延分岐で O.K. Compare & Branch 遅延分岐で O.K. ? next PC : O.K. 分岐方向:レジスタ内容の比較が必要 レジスタ間接 Jump 遅延分岐で O.K. ? next PC:レジスタ内容が必要 実際,どうなってるのか? 12 Advanced Computer Architecture 13 インターロックの排除(Compare & branch) add r5 = r4 + 1 be r1 == r2 ld r8 = *(r6) add r5 = r4 + 1 be r1 == r2 ld r8 = *(r6) add r5 = r4 + 1 be r1 == r2 ld r8 = *(r6) IF ID EX MEM WB IF ID EX MEM WB IF IF ID EX IF OR nPC MEM EX WB MEM WB IF IF OR nPC IF EX OR OR EX M MEM WB EX MEM WB IF OR EX MEM WB Advanced Computer Architecture レポート:遅延分岐と Compare & Branch,Jump Branch on Register 遅延分岐で O.K. Compare & Branch 遅延分岐で O.K. ? next PC : O.K. 分岐方向:レジスタ内容の比較が必要 レジスタ間接 Jump 遅延分岐で O.K. ? next PC:レジスタ内容が必要 実際,どうなってるのか? 14 Advanced Computer Architecture バック・エッジ もろもろの元凶は,パイプラインのバック・エッジ バック・エッジ 逆向きの信号の流れ 15 Advanced Computer Architecture IF 16 100 PC ID IR 0 200 5 Reg File Rs LD 1 2 10 100 Rt EX MEM WB 1000 DR MDR MA MD Main Memory 210 Advanced Computer Architecture 17 バック・エッジ長 と バブルの量 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 19 スーパースカラの命令パイプライン 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 20 制御ハザード 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 22 投機 投機的実行 (speculative execution) 投機 (speculation): 1. 偶然の利益をねらって行う行為。 2. 将来の価格変動を予想して、価格差から生ずる利益を得ることを 目的として行う売買取引。 (三省堂「大辞林 第二版」) この分野の投機: 予測に基づいて,あらかじめ処理を進めておくこと Advanced Computer Architecture 23 投機のフェーズ 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 ページのリンクの先読み 24 Advanced Computer Architecture 25 分岐予測 cycle 3. 確認 add r5 = r4 + r3 IF OR EX MEM WB be IF OR EX MEM WB r1 == r2, L0 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 26 分岐予測 cycle 3. 確認 add r5 = r4 + r3 IF OR EX MEM WB be IF OR EX MEM WB r1 == r2, L0 L0: ld add r8 = *(r6) r6 + r7 PC add r9 r8 = r8 1. + 1 sla << 1 予測 IF OR IF OR EX MEM WB IF OR IF OR EX MEM WB 2. フェッチ add sub r9 = r9 r6 + - 1 r7 ld r8 = r9 *(r9) sub - 1 4. 再フェッチ IF IF OR EX M IF IF OR EX M Advanced Computer Architecture 27 投機のメリット/ディメリット 予測 Hit 時 あたかも,依存がなくなったかのようになる 実行が省略されるわけではない cycle A 1. 予測 3. 確認 2. 実行 B Advanced Computer Architecture 28 投機のメリット/ディメリット 予測 Miss 時 非投機時より,確認の分だけ遅くなる 結果の比較:0~1~数サイクル 使用した計算資源(とエネルギー)を浪費したことになる cycle A 1. 予測 3. 確認 2. 実行 B 4. 再実行 Advanced Computer Architecture 29 投機のメリット/ディメリット (平均レイテンシ短縮)≒(予測率)× ( +(予測ヒット率) × H -(予測 ミ ス 率) × M ) cycle A 1. 予測 3. 確認 2. 実行 H B M 4. 再実行 Advanced Computer Architecture 30 予測ミスの影響 (予測ミスによるレイテンシの増加)= (予測率) ×(予測ミス率) ×(ミス・ペナルティ) cycle A 1. 予測 3. 確認 2. 実行 ミス・ペナルティ B 4. 再実行 Advanced Computer Architecture 31 分岐予測 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サイクル長くなってもよい 32 Advanced Computer Architecture IF 33 100 PC ID IR 0 200 5 Reg File Rs LD 1 2 10 100 Rt EX MEM WB 1000 DR MDR MA MD Main Memory 210 Advanced Computer Architecture 34 バック・エッジ長 と ミス・ペナルティ 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 投機の効果 「毎回かかるレイテンシを,ミス時のペナルティに」 (予測ミスによるレイテンシの増加)= (予測率) ×(予測ミス率) ×(ミス・ペナルティ) 予測ミス率が十分小さければ (ex. 1%), ミス・ペナルティは,1~2サイクル長くなってもよい バック・エッジは, 1~2サイクル長くなってもよい ⇒ クロックの高速化 35 Advanced Computer Architecture 投機 と キャッシュ キャッシュも,投機の一種? 「キャッシュにある」と予測してアクセス さもないと,まったく効果がない 投機的性質を含む キャッシュ・ヒット/ミス予測 普通のキャッシュは,always hit と予測している 36 Advanced Computer Architecture 余談 2015/10/1 Advanced Computer Architecture 投機と日常 この分野の投機 「あやしい」ことではない この分野の投機 vs. 経済の投機 ギャンブル性 低い,ばくち ではない low risk, high return 日常的投機 リスクが十分低いときには,予測に基づいて行動するのが当然 「信号が青なので進む」 38 Advanced Computer Architecture 投機と日常 「あらかじめやっておくと早く終わる」例は少ない 仕事の量は減らない むしろ,予測ミスの分だけ増える よい例 募集 39 Advanced Computer Architecture 細粒度の投機 と HW 「SW でできることは HW でやってはいけない」 「ハード屋」というものは,何でもかんでも HW 化したがる 性能が n 倍違わないなら,SW のほうがよいに決まってる 疑わしい ○○専用 HW リコンフィギュアラブル 細粒度(命令レベル, etc)の投機: HW でやるべき,数少ないことのひとつ 40 Advanced Computer Architecture 次回 Out-of-Order スーパースカラ + 分岐予測 + レジスタ・リネーミング 41
© Copyright 2024 ExpyDoc