高性能コンピューティング学講座 三輪 忍 miwa@is.uec.ac.jp 高性能コンピューティング論2 高性能コンピューティング論2 第4回 投機 高性能コンピューティング学講座 三輪 忍 miwa@is.uec.ac.jp.

Slides:



Advertisements
Similar presentations
プロセッサの設計と実装 後期実験 プロセッサの設計と実装 1 コンピュータの論理設計 「コンピュータを作る」 –仕様設計 –論理設計 –回路・レイアウト –物性・デバイス 後期実験 プロセッサの設計と実装 2 この実験では 課題として IA-32 サブセット仕様が与えられる 各自 RTL 設計 →
Advertisements

CPU設計と パイプライン.
計算機システムⅡ 命令レベル並列処理とアウトオブオーダ処理
07. 値予測 五島 正裕.
07. 値予測 五島 正裕.
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
Chapter11-4(前半) 加藤健.
VLSI設計論第4回 アキュムレータマシンと 仮遅延シミュレーション
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
計算機システムⅡ 主記憶装置とALU,レジスタの制御
CPU実験 第1回中間発表 4班 瀬沼、高橋、津田、富山、張本.
情報システム基盤学基礎1 コンピュータアーキテクチャ編 第2回 命令
高性能コンピューティング論2 第12回 アクセラレータ
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
App. A アセンブラ、リンカ、 SPIMシミュレータ
コンピュータ工学基礎 パイプラインハザード テキスト9章 115~124
プロセッサ設計教育のための 命令セット・スーパースカラシミュレータの試作と評価
高性能コンピューティング論2 第1回 ガイダンス
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
高性能コンピューティング論2 第5回 Out-of-Order実行機構
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
第7回 2006/6/12.
計算機入門I ハードウェア(1) 計算機のハードウェア構成 ~計算機のハードウェアとは何か~
組み込み向けCPU 小型デバイスに搭載されるCPU 特徴 携帯電話,デジタルカメラ,PDA,センサデバイスなど 小型 低消費電力 多機能
型付きアセンブリ言語を用いた安全なカーネル拡張
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
アドバンスト コンピュータ アーキテクチャ 五島.
Advanced Computer Architecture
・ディジタル回路とクロック ・プロセッサアーキテクチャ ・例外処理 ・パイプライン ・ハザード
プロジェクト実習 LSIの設計と実現 パイプライン実行とハザード.
アドバンスト コンピュータ アーキテクチャ RISC と 命令パイプライン
非レイテンシ指向 レジスタ・キャッシュ・システム
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
11. マルチスレッド・プロセッサ 五島 正裕.
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
10. マルチスレッド・プロセッサ 五島 正裕.
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
「コアの数なんて どうでもいい」 五島 正裕(東大).
メモリ投機を支援する CMPキャッシュコヒーレンスプロトコルの検討
計算機構成 第4回 アキュムレータマシン テキスト第3章
08. メモリ非曖昧化 五島 正裕.
計算機構成 第11回 マルチサイクルCPU 慶應大学 天野英晴.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
情報とコンピュータ 静岡大学工学部 安藤和敏
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
コンピュータアーキテクチャ 第 11 回.
コンピュータアーキテクチャ 第 10 回.
09. メモリ・ディスアンビギュエーション 五島 正裕.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 10 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
パイプラインとは何か? マイクロプロセッサ(MPU)の高速化手法の一つのこと。
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
SpectreとMeltdown ITソリューション塾・第27期 2018年3月20日 株式会社アプライド・マーケティング 大越 章司
プロセッサ設計支援ツールを用いた 独自プロセッサの設計
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 5 回.
コンピュータアーキテクチャ 第 11 回.
コンピュータ工学基礎 マルチサイクル化とパイプライン化 テキスト9章 115~124
Ibaraki Univ. Dept of Electrical & Electronic Eng.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
情報システム基盤学基礎1 コンピュータアーキテクチャ編
Presentation transcript:

高性能コンピューティング学講座 三輪 忍 miwa@is.uec.ac.jp 高性能コンピューティング論2 高性能コンピューティング論2 第4回 投機 高性能コンピューティング学講座 三輪 忍 miwa@is.uec.ac.jp

高性能コンピューティング論2 本日の講義内容 スーパスカラプロセッサとバブル 投機

高性能コンピューティング論2 スーパスカラプロセッサとバブル

パイプライン・ハザード パイプライン・ハザード (hazard): 分類: パイプライン動作を妨げる要因 * 高性能コンピューティング論2 07/16/96 パイプライン・ハザード パイプライン・ハザード (hazard): パイプライン動作を妨げる要因 分類: 構造ハザード (structural hazard) ハードウェアの資源不足が原因 ハードウェア資源の追加により解消可能 非構造ハザード ソフトウェア内の依存関係が原因 原理的に解消不可能 *

非構造ハザード データ・ハザード 制御ハザード 命令間のデータ依存 分岐命令の実行 cycle add r4 = r1 + r2 add * 高性能コンピューティング論2 07/16/96 非構造ハザード データ・ハザード 命令間のデータ依存 制御ハザード 分岐命令の実行 cycle IF ID EX MEM WB add r4 = r1 + r2 IF ID EX MEM WB ID add r5 = r4 + r3 cycle IF ID EX MEM WB BE IF ID EX MEM WB IF I1 *

分岐命令 C ソース アセンブリ s = 0; for (i = 1; i <= 10; ++i) s = s + i; 高性能コンピューティング論2 分岐命令 C ソース アセンブリ s = 0; for (i = 1; i <= 10; ++i) s = s + i; set r1 = 0; # s = 0; set r2 = 1; # i = 1; set r3 = 11; LOOP: beq r2 == r3, EXIT; add r1 = r1 + r2; add r2 = r2 + 1; b LOOP; EXIT: ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

条件分岐命令 if (cond) PC = PC + immediate; op Rs Rt immediate 高性能コンピューティング論2 条件分岐命令 if (cond) PC = PC + immediate; PC 相対 (relative) 命令だけから(レジスタを読まなくても)飛び先アドレスが計算できる op Rs Rt immediate 31 25 20 15 ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

条件分岐 branch on register compare & branch 分岐 条件 1つのレジスタ値が, 0,正,負, 高性能コンピューティング論2 条件分岐 branch on register compare & branch 分岐 条件 1つのレジスタ値が, 0,正,負, 0 以上,0 以下 2つの値(レジスタ値,即値)の一致比較 2つの値(レジスタ値,即値)の大小比較 R[Rs] == 0, R[Rs] > 0, … R[Rs] == R[Rt], R[Rs] != R[Rt], R[Rs] == imm, R[Rs] != imm R[Rs] > R[Rt], R[Rs] >= R[Rt], 判定に 必要な 処理 レジスタの読み出し 一致比較 大小比較(減算) 備考 レジスタに,zero フラグを付加しておくと楽. signフラグは msb. 一部の RISC は持つ RISC は普通持たない ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

IF 100 LD 1 2 10 100 200 ID 5 1000 210 EX MEM WB IR PC Rs Rt Reg File 高性能コンピューティング論2 IF 100 IR PC Rs LD 1 2 10 100 200 ID Rt 5 Reg File 1000 210 EX DR MEM MA MD Main Memory WB MDR ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

バブルの量とバックエッジ長 バックエッジ バブルの量 = バックエッジ長 逆向きの信号の流れ cycle be I1 IF ID EX 高性能コンピューティング論2 バブルの量とバックエッジ長 バックエッジ 逆向きの信号の流れ バブルの量 = バックエッジ長 cycle IF ID EX MEM WB be IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB I1

バブルの削減(制御ハザード) cycle I0 be I1 I0 be I1 be I0 遅延分岐 I1 OR : Operand Read * 高性能コンピューティング論2 07/16/96 バブルの削減(制御ハザード) cycle I0 IF ID EX MEM WB be IF ID EX MEM WB I1 IF ID EX MEM WB I0 IF OR EX MEM WB OR : Operand Read be IF OR  EX MEM WB nPC : next PC 選択 nPC I1 IF OR EX MEM WB be IF OR EX MEM WB nPC I0 IF OR EX MEM WB 遅延分岐 I1 IF OR EX MEM WB ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「命令パイプライン」より *

遅延分岐とスーパスカラプロセッサ 遅延分岐 スーパスカラプロセッサ(=ローエンドではないプロセッサ) における遅延分岐 * 高性能コンピューティング論2 07/16/96 遅延分岐とスーパスカラプロセッサ 遅延分岐 「分岐命令の遅延スロットに置かれた命令は(分岐の成立/不成立にかかわらず)必ず実行」 遅延スロット(分岐命令の次の命令)を埋めた分だけ性能向上 埋まらなかった分だけ nop が増加 スーパスカラプロセッサ(=ローエンドではないプロセッサ) における遅延分岐 分岐に関するバックエッジ長は, 最近は10ステージ前後 埋める必要のある遅延スロットが 多すぎて非現実的 [ Intel社 Silvermont アーキテクチャの命令パイプライン ] (http://www.tomshardware.com/reviews/atom-silvermont-architecture, 3499-2.html より) *

スーパスカラプロセッサにおけるバブル 制御ハザード データ・ハザード L1データ・キャッシュにヒットする場合 高性能コンピューティング論2 スーパスカラプロセッサにおけるバブル 命令フェッチ デコード リネーム/スケジュール 実行 制御ハザード データ・ハザード L1データ・キャッシュにヒットする場合 L1データ・キャッシュにミスする場合 L1データ・キャッシュ L2データ・キャッシュ リタイア/コミット cycle I0 be I1 I2 cycle I0 ld r1 = *(r4) add r3 = r1 + r2 I1 cycle I0 ld r1 = *(r4) add r3 = r1 + r2 I1

なぜパイプライン・ステージを増やすのか? 高性能コンピューティング論2 なぜパイプライン・ステージを増やすのか? cycle ステージを増やして周波数向上    スループット向上 その反面,バブルは増加    バブルを削減する技術の重要性も増加 スーパスカラ化とは独立した技術 スループット向上を目指した結果,    「スーパスカラ + 多段パイプライン」  になった 多段? これでも一時期に比べれば段数が減った(2005年頃は31段) ここ数年は10数段に落ち着いている(消費電力の壁) be I0 I1 ステージ数 x2 周波数 x2 cycle be I0 I1

高性能コンピューティング論2 投機

投機 投機的実行 (speculative execution) 投機 (speculation): この分野の投機: 高性能コンピューティング論2 投機 投機的実行 (speculative execution) 投機 (speculation): 偶然の利益をねらって行う行為。 将来の価格変動を予想して、価格差から生ずる利益を得ることを目的として行う売買取引。 (三省堂「大辞林 第二版」) この分野の投機: 予測に基づいて,あらかじめ処理を進めておくこと ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

投機のフェーズ cycle 予測 (prediction) 実行 (execution) 高性能コンピューティング論2 投機のフェーズ 予測 (prediction) 実行 (execution) 確認 (verification, confirmation) キャンセル,回復,再実行 (cancellation, recovery, re-execution) cycle A 1. 予測 3. 確認 4. 再実行 2. 実行 B B ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

投機技術の種類 ○○予測 分岐予測 値予測 レイテンシ予測 キャッシュ・ヒット/ミス予測 etc. 高性能コンピューティング論2 投機技術の種類 ○○予測 分岐予測 値予測 レイテンシ予測 キャッシュ・ヒット/ミス予測 etc. 粒度 (granularity):細粒度 (fine-grain) ~粗粒度 (coarse-grain) 命令レベル スレッド・レベル 関数レベル WWW ページのリンクの先読み ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

分岐予測 cycle add r5 = r4 + r3 be r1 == r2 r8 = r6 + r7 add r8 = r8 + 1 高性能コンピューティング論2 分岐予測 cycle 確認 add r5 = r4 + r3 IF IF OR OR IF EX MEM EX OR WB EX MEM be r1 == r2 IF r8 = r6 + r7 add r8 = r8 + 1 WB MEM PC 予測 フェッチ r9 = r6 - r7 sub r8 = *(r9) ld WB ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

分岐予測 cycle add r5 = r4 + r3 be r1 == r2 r8 = r6 + r7 add r8 = r8 + 1 高性能コンピューティング論2 分岐予測 cycle 確認 add r5 = r4 + r3 IF OR EX MEM IF WB OR IF be r1 == r2 r8 = r6 + r7 add r8 = r8 + 1 IF IF OR OR IF EX OR EX MEM WB MEM PC 予測 フェッチ r9 = r6 - r7 sub r8 = *(r9) ld WB 再フェッチ ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

IF 100 LD 1 2 10 100 200 ID 5 1000 210 EX MEM WB PredPC IR PC Rs Rt 高性能コンピューティング論2 PredPC IF 100 IR PC Rs LD 1 2 10 100 200 ID Rt 5 Reg File 1000 210 EX DR MEM MA MD Main Memory WB MDR

投機のメリット/ディメリット cycle 予測 Hit 時 あたかも,依存がなくなったかのようになる 実行が省略されるわけではない A 高性能コンピューティング論2 投機のメリット/ディメリット 予測 Hit 時 あたかも,依存がなくなったかのようになる 実行が省略されるわけではない cycle A 1. 予測 3. 確認 2. 実行 B ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

投機のメリット/ディメリット cycle 予測 Miss 時 非投機時より,確認の分だけ遅くなる 結果の比較:0~1~数サイクル 高性能コンピューティング論2 投機のメリット/ディメリット 予測 Miss 時 非投機時より,確認の分だけ遅くなる 結果の比較:0~1~数サイクル 使用した計算資源(とエネルギー)を浪費したことになる cycle A 1. 予測 3. 確認 4. 再実行 2. 実行 B ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

投機のメリット/ディメリット cycle (平均レイテンシ短縮)≒(予測率)× ( +(予測ヒット率) × H 高性能コンピューティング論2 投機のメリット/ディメリット (平均レイテンシ短縮)≒(予測率)× ( +(予測ヒット率) × H -(予測 ミ ス 率) × M ) cycle A 1. 予測 3. 確認 4. 再実行 2. 実行 B H M ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

予測ミスの影響 cycle (予測ミスによるレイテンシの増加)= (予測率) ×(予測ミス率) ×(ミス・ペナルティ) A 1. 予測 高性能コンピューティング論2 予測ミスの影響 (予測ミスによるレイテンシの増加)= (予測率) ×(予測ミス率) ×(ミス・ペナルティ) cycle A 1. 予測 3. 確認 4. 再実行 2. 実行 B ミス・ペナルティ ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

分岐予測 cycle add r5 = r4 + r3 be r1 == r2 r8 = r6 + r7 add r8 = r8 + 1 高性能コンピューティング論2 分岐予測 cycle add r5 = r4 + r3 IF OR EX MEM IF WB OR IF be r1 == r2 r8 = r6 + r7 add r8 = r8 + 1 IF OR EX OR EX MEM WB MEM r9 = r6 - r7 sub r8 = *(r9) ld WB ミス・ペナルティ (= H, M = 0) ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

投機の効果 「毎回かかるレイテンシを,ミス時のペナルティに」 (予測ミスによるレイテンシの増加)= 高性能コンピューティング論2 投機の効果 「毎回かかるレイテンシを,ミス時のペナルティに」 (予測ミスによるレイテンシの増加)= (予測率) ×(予測ミス率) ×(ミス・ペナルティ) 予測ミス率が十分小さければ (ex. 1%), ミス・ペナルティは1~2サイクル長くなってもよい バック・エッジは, 1~2サイクル長くなってもよい ※ 五島正裕,「アドバンストコンピュータアーキテクチャ」,講義資料「投機」より

値予測 すべての命令の結果を予測 データ依存(フロー依存)による先行制約を緩和 ヒットした場合,あたかも依存がなくなったかのようになる 高性能コンピューティング論2 値予測 すべての命令の結果を予測 データ依存(フロー依存)による先行制約を緩和 ヒットした場合,あたかも依存がなくなったかのようになる 実行が省略されるわけではない cycle r1の結果を予測 add r1 = r2 + r3 IF OR EX MEM WB add r4 = r1 + 2 IF OR OR EX MEM WB r6 = r4 + r5 add r7 = r6 + 1 IF IF IF IF

値予測 すべての命令の結果を予測 データ依存(フロー依存)による先行制約を緩和 詳細は次回以降(時間があれば) 高性能コンピューティング論2 値予測 すべての命令の結果を予測 データ依存(フロー依存)による先行制約を緩和 ヒットした場合,あたかも依存がなくなったかのようになる 実行が省略されるわけではない 詳細は次回以降(時間があれば) cycle r1の結果を予測 add r1 = r2 + r3 IF OR EX MEM WB r6の結果を予測 add r4 = r1 + 2 IF OR EX MEM WB r6 = r4 + r5 add r7 = r6 + 1 IF IF OR OR EX MEM WB IF IF OR OR EX MEM WB

投機 と キャッシュ・アクセス キャッシュ・アクセスも投機の一種 キャッシュ・ヒット/ミス予測 「キャッシュにある」と予測してアクセス 高性能コンピューティング論2 投機 と キャッシュ・アクセス キャッシュ・アクセスも投機の一種 「キャッシュにある」と予測してアクセス さもないと,まったく効果がない キャッシュ・アクセスを行い,データがキャッシュにあるか否かを確認 キャッシュになければ諸々の処理をやり直す キャッシュ・ヒット/ミス予測 普通のキャッシュは,always hit と予測している キャッシュ・ミスを予測できると命令スケジューリングの効率が向上 詳細は次回以降(時間があれば)

プリフェッチ(通常アクセスの場合) 近い将来にアクセスされると予測したデータをあらかじめキャッシュに移動 高性能コンピューティング論2 プリフェッチ(通常アクセスの場合) ④ データ取得 近い将来にアクセスされると予測したデータをあらかじめキャッシュに移動 ロード命令に依存する命令の先行制約を緩和 ① アクセス コア *(r4) ② ミス L1D キャッシュ *(r4) ③ アクセス L2 キャッシュ *(r4) cycle I0 ld r1 = *(r4) add r3 = r1 + r2 I1

プリフェッチ(プリフェッチを行った場合) 高性能コンピューティング論2 プリフェッチ(プリフェッチを行った場合) ⑤ データ取得 近い将来にアクセスされると予測したデータをあらかじめキャッシュに移動 ロード命令に依存する命令の先行制約を緩和 ④ アクセス コア *(r4) ③ 移動 ① 予測 L1D キャッシュ *(r4) ② アクセス L2 キャッシュ *(r4) cycle I0 ld r1 = *(r4) add r3 = r1 + r2 I1

投機に関するまとめ この分野の投機 性能面では ローリスク & ハイリターン とは言え,ある程度成功してくれないと困る 高性能コンピューティング論2 投機に関するまとめ この分野の投機 予測に基づいて処理を進めること 一般的な意味とは違って,「あやしい」ことではない 性能面では ローリスク & ハイリターン 失敗しても投機を行わなかった場合とあまり違いがない 成功すれば丸儲け とは言え,ある程度成功してくれないと困る ミス・ペナルティによる性能低下 計算資源とエネルギーの浪費 結局,総合的に考えて得か否か? 分岐予測やプリフェッチは,かなりおいしいケース

高性能コンピューティング論2 本日のまとめ

* 高性能コンピューティング論2 07/16/96 まとめ スーパスカラプロセッサとバブル 投機 *

高性能コンピューティング論2 次回 11/12(木) 10:40~ 「アウトオブオーダ実行機構」について解説