1 / 25

計算機システム Ⅱ パイプライン処理

計算機システム Ⅱ パイプライン処理. 和田俊和. 講義計画. コンピュータ の歴史 1 コンピュータ の歴史 2  コンピュータ の歴史 3  論理 回路と記憶,計算:レジスタと ALU 主 記憶装置とALU,レジスタの 制御 命令セットアーキテクチャ 演習 問題 パイプライン処理 ( ← 本日 ) メモリ 階層:キャッシュと仮想記憶 命令 レベル並列処理 命令 実行順序の変更 入出力 と周辺装置:DMA,割り込み処理 演習 問題 現代的 な計算機アーキテクチャの 解説 総括と試験

borka
Download Presentation

計算機システム Ⅱ パイプライン処理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機システムⅡパイプライン処理 和田俊和

  2. 講義計画 • コンピュータの歴史1 • コンピュータの歴史2  • コンピュータの歴史3  • 論理回路と記憶,計算:レジスタとALU • 主記憶装置とALU,レジスタの制御 • 命令セットアーキテクチャ • 演習問題 • パイプライン処理(←本日) • メモリ階層:キャッシュと仮想記憶 • 命令レベル並列処理 • 命令実行順序の変更 • 入出力と周辺装置:DMA,割り込み処理 • 演習問題 • 現代的な計算機アーキテクチャの解説 • 総括と試験 • 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテクチャ,コロナ社 • 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.

  3. 本日の講義の範囲

  4. 3.1 命令パイプライン

  5. 4.1.1パイプラインの原理 • 自動車製造の工程(ステージ)数N • 各工程(ステージ)の所要時間(全工程で同じ)T • 1台の自動車作成に要する時間 N×T • 単位時間当たりに製造される車の台数1/T (実行時間) (スループット)

  6. 4.1.2 命令パイプラインの基本 • 一つの命令の処理時間:N×T • スループット: 1/T • 命令フェッチ: (instruction fetch, F) • 命令デコード:(instruction decode, D) • 演算実行:(execution, E) • 結果の格納:(write back, W)

  7. 4.1.3 基本命令パイプラインの実現 • 図2.12をパイプライン実行順序に従って(ステージ毎に)書き直したもの

  8. 基本命令パイプラインの実現(続き) • 各ステージ間でデータを保持しないといけない.パイプラインレジスタの導入

  9. 4.2 基本命令パイプラインの阻害要因

  10. 4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処理時間で全体のスループットが決まる. • 阻害要因2. パイプラインレジスタによる遅延. • できるだけ高速なレジスタを使うことが唯一の解決策. • これによって,最大のステージ数が決まる.

  11. 4.2.2 ハザード(hazard) • 阻害要因3. 命令をクロック毎にパイプライン動作させられない状態を「パイプラインハザード」もしくは「ハザード」と呼ぶ. • 構造ハザード • データハザード • 制御ハザード

  12. 4.2.3 構造ハザード(structural hazard) • コンピュータの内部構成が原因のハザード. 例:命令フェッチと,メモリの読み書きが同時に実行できない場合に,下記のようなストールが起きる.これは,命令メモリとデータメモリの区別がなく,並列アクセスが出来ない場合などに起きる. 資源の多重化によって,解決が可能である.

  13. 4.2.4 データハザード(data hazard) • 命令間の依存関係(dependency)が原因のハザード. 例:命令Aで生成されるデータが命令Bで使われるケース.(producer-consumer関係) N=5で,4ステージなので,8クロックで終了するはずだが, 16クロック必要になる.

  14. データハザードの他の例 • 2命令離れてもデータハザードは起こりうる. (ステージ数−1)間離れた命令の間では,データハザードは起こらない. 左図の場合,8クロックで終了する筈の処理が,10クロックかかっている.

  15. 4.2.5 制御ハザード • 分岐命令とそれ以降の命令間には「制御依存」の関係がある.4ステージの場合,制御依存により,分岐命令後に3クロックのストールが起きる.

  16. 4.3 ハザードの解決方法

  17. 4.3.1 フォワーディングによるデータハザードの解消 • データの依存関係は消せないが,直前の命令のEステージの結果が,直後の命令で参照できれば解消できる.

  18. フォワーディングが組み込まれたパイプラインフォワーディングが組み込まれたパイプライン 直後の命令のEステージで,直前の命令のEステージの結果が参照できるようになる.

  19. 4.3.2 命令アドレス生成のタイミング • 無条件分岐の場合,Dステージ直後にPCを更新すれば制御ハザードが緩和できる. • 条件分岐では使えない.

  20. 4.3.3 遅延分岐 分岐のあるなしにかかわらず,実行する命令を「遅延分岐命令」の直後に入れておくと,ストールが防げる.

  21. 4.3.4 分岐予測 • 分岐するかどうかを予測して実行し,「予測が外れた場合に分岐命令以下の命令を破棄する」方法. • 外れた場合,F,D,Eステージに入っている命令をフラッシュする.

  22. 分岐予測 • 固定予測 • 命令アドレスが小さくなる方を予測 • 動的予測 右の状態遷移図に 従って動作する. この状態遷移を各 分岐命令毎に管理 するために,分岐 命令アドレスでイン デックス付けされた 分岐履歴テーブル を持つ.飽和カウンタ

  23. 2レベル適応予測器 • 各分岐命令毎に,過去の分岐の有無を記録した「大域分岐履歴レジスタ」を持っておき,この履歴のパターン毎に,飽和カウンタによる予測を行う.

  24. 4.3.5 命令スケジューリング • 依存関係にある命令を,プログラム中で出来るだけ離した位置に置くように並べ替える.

  25. 本日の講義の範囲

More Related