Transcript CS2-8
計算機システムⅡ パイプライン処理 和田俊和 講義計画 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. コンピュータの歴史1 コンピュータの歴史2 コンピュータの歴史3 論理回路と記憶,計算:レジスタとALU 主記憶装置とALU,レジスタの制御 命令セットアーキテクチャ 演習問題 パイプライン処理(←本日) メモリ階層:キャッシュと仮想記憶 命令レベル並列処理 命令実行順序の変更 入出力と周辺装置:DMA,割り込み処理 演習問題 現代的な計算機アーキテクチャの解説 総括と試験 • 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアー キテクチャ,コロナ社 • 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする. 本日の講義の範囲 3.1 命令パイプライン 4.1.1 パイプラインの原理 • • • • 自動車製造の工程(ステージ)数N 各工程(ステージ)の所要時間(全工程で同じ)T 1台の自動車作成に要する時間 N×T (実行時間) 単位時間当たりに製造される車の台数 1/T (スループット) 4.1.2 命令パイプラインの基本 • 一つの命令の処理時間: N×T • スループット: 1/T – – – – 命令フェッチ: (instruction fetch, F) 命令デコード:(instruction decode, D) 演算実行:(execution, E) 結果の格納:(write back, W) 4.1.3 基本命令パイプラインの実現 • 図2.12をパイプライン実行順序に従って(ステー ジ毎に)書き直したもの 基本命令パイプラインの実現(続き) • 各ステージ間でデータを保持しないといけない. パイプラインレジスタの導入 4.2 基本命令パイプラインの阻害要因 4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処 理時間で全体のスループット 1 / Tが決まる. max N N NT - åT = å (T - T ) i max i=1 max i i=1 • 阻害要因2. パイプラインレジスタによる遅延. – できるだけ高速なレジスタを使うことが唯一の解決 策. – これによって,最大のステージ数が決まる. 4.2.2 ハザード(hazard) • 阻害要因3. 命令をクロック毎にパイプライン 動作させられない状態を「パイプラインハザー ド」もしくは「ハザード」と呼ぶ. 1. 構造ハザード 2. データハザード 3. 制御ハザード 4.2.3 構造ハザード(structural hazard) • コンピュータの内部構成が原因のハザード. 例:命令フェッチと,メモリの読み書きが同時に実行で きない場合に,下記のようなストールが起きる.これ は,命令メモリとデータメモリの区別がなく,並列アク セスが出来ない場合などに起きる. 資源の多 重化によっ て,解決が 可能である. 4.2.4 データハザード(data hazard) • 命令間の依存関係(dependency)が原因のハザード. 例:命令Aで生成されるデータが命令Bで使われるケー ス.(producer-consumer関係) N=5で,4ステー ジなので,8クロッ クで終了するはず だが, 16クロック必要に なる. データハザードの他の例 • 2命令離れてもデータハザードは起こりうる. (ステージ数−1)間 離れた命令の間で は,データハザード は起こらない. 左図の場合,8クロッ クで終了する筈の処 理が,10クロックか かっている. 4.2.5 制御ハザード • 分岐命令とそれ以降の命令間には「制御依存」 の関係がある.4ステージの場合,制御依存によ り,分岐命令後に3クロックのストールが起きる. 4.3 ハザードの解決方法 4.3.1 フォワーディングによる データハザードの解消 • データの依存関係は消せないが,直前の命 令のEステージの結果が,直後の命令で参照 できれば解消できる. フォワーディングが組み込まれた パイプライン 直後の命 令のEス テージで, 直前の命 令のEス テージの 結果が参 照できるよ うになる. 4.3.2 命令アドレス生成のタイミング • 無条件分岐の場合,Dステージ直後にPCを更新 すれば制御ハザードが緩和できる. • 条件分岐では使えない. 4.3.3 遅延分岐 分岐のあるな しにかかわら ず,実行する 命令を「遅延 分岐命令」の 直後に入れ ておくと,ス トールが防げ る. 4.3.4 分岐予測 • 分岐するかどうかを予測して実行し,「予測が外れ た場合に分岐命令以下の命令を破棄する」方法. • 外れた場合,F,D,Eステージに入っている命令をフ ラッシュする. 分岐予測 • 固定予測 • 命令アドレスが小さくなる方を予測 • 動的予測 右の状態遷移図に 従って動作する. この状態遷移を各 分岐命令毎に管理 するために,分岐 命令アドレスでイン デックス付けされた 分岐履歴テーブル を持つ.飽和カウンタ 2レベル適応予測器 • 各分岐命令 毎に,過去の 分岐の有無 を記録した 「大域分岐履 歴レジスタ」を 持っておき, この履歴のパ ターン毎に, 飽和カウンタ による予測を 行う. 4.3.5 命令スケジューリング • 依存関係にある命令を,プログラム中で出来る だけ離した位置に置くように並べ替える. 本日の講義の範囲