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

25
計計計計計計計計計計計計計計計 計計計計

Upload: borka

Post on 21-Mar-2016

47 views

Category:

Documents


2 download

DESCRIPTION

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

TRANSCRIPT

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

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

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

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

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

本日の講義の範囲

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

3.1 命令パイプライン

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

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

(スループット)

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

4.1.2 命令パイプラインの基本• 一つの命令の処理時間:  N×T• スループット:  1/T

– 命令フェッチ : (instruction fetch, F)– 命令デコード :(instruction decode, D)– 演算実行 :(execution, E)– 結果の格納 :(write back, W)

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

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

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

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

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

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

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

4.2.1 オーバヘッド• 阻害要因1. 最も時間のかかるステージの処理時間で全体のスループット が決まる.

• 阻害要因 2 . パイプラインレジスタによる遅延 .– できるだけ高速なレジスタを使うことが唯一の解決策.– これによって,最大のステージ数が決まる.

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

4.2.2 ハザード (hazard)

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

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

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

資源の多重化によって,解決が可能である.

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

4.2.4 データハザード (data hazard)• 命令間の依存関係 (dependency) が原因のハザード.例 : 命令 A で生成されるデータが命令 B で使われるケース. (producer-consumer関係 )

N=5で, 4 ステージなので,8クロックで終了するはずだが,16 クロック必要になる.

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

データハザードの他の例• 2 命令離れてもデータハザードは起こりうる.

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

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

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

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

4.3 ハザードの解決方法

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

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

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

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

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

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

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

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

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

4.3.4 分岐予測• 分岐するかどうかを予測して実行し,「予測が外れた場合に分岐命令以下の命令を破棄する」方法.

• 外れた場合, F,D,E ステージに入っている命令をフラッシュする.

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

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

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

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

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

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

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

本日の講義の範囲