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

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

Upload: others

Post on 15-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

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

和田俊和

Page 2: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

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

キテクチャ,コロナ社 •  終回の試験によって成績評価を行う.5回以上欠席で不合格とする.

Page 3: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

本日の講義の範囲

Page 4: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

3.1 命令パイプライン

Page 5: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.1.1 パイプラインの原理

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

 

(実行時間)

(スループット)

Page 6: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.1.2  命令パイプラインの基本

•  一つの命令の処理時間: N×T  •  スループット: 1/T  –  命令フェッチ:  (instruc0on  fetch,  F)  –  命令デコード:(instruc0on  decode,  D)  –  演算実行:(execu0on,  E)  –  結果の格納:(write  back,  W)  

Page 7: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.1.3  基本命令パイプラインの実現

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

Page 8: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

基本命令パイプラインの実現(続き)

•  各ステージ間でデータを保持しないといけない.パイプラインレジスタの導入

Page 9: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

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

Page 10: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.2.1  オーバヘッド

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

•  阻害要因2. パイプラインレジスタによる遅延.  – できるだけ高速なレジスタを使うことが唯一の解決

策.  – これによって, 大のステージ数が決まる.

NTmax − Tii=1

N

∑ = (Tmax −Ti )i=1

N

1/Tmax

Page 11: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.2.2  ハザード(hazard)

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

1.  構造ハザード  2.  データハザード  3.  制御ハザード

Page 12: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

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

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

Page 13: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

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

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

Page 14: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

データハザードの他の例

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

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

Page 15: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.2.5  制御ハザード •  分岐命令とそれ以降の命令間には「制御依存」

の関係がある.4ステージの場合,制御依存により,分岐命令後に3クロックのストールが起きる.

Page 16: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.3  ハザードの解決方法

Page 17: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.3.1  フォワーディングによる  データハザードの解消

•  データの依存関係は消せないが,直前の命令のEステージの結果が,直後の命令で参照できれば解消できる.

Page 18: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

フォワーディングが組み込まれた  パイプライン

直後の命令のEステージで,直前の命令のEステージの結果が参照できるようになる.

Page 19: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.3.2  命令アドレス生成のタイミング •  無条件分岐の場合,Dステージ直後にPCを更新

すれば制御ハザードが緩和できる.  •  条件分岐では使えない.

Page 20: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.3.3  遅延分岐

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

Page 21: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.3.4  分岐予測

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

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

ラッシュする.

Page 22: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

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

Page 23: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

2レベル適応予測器

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

Page 24: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

4.3.5  命令スケジューリング

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

Page 25: 計算機システムⅡ パイプライン処理 - VRLvrl.sys.wakayama-u.ac.jp/CS2/file/CS2-8.pdf4.2.1 オーバヘッド • 阻害要因1. 最も時間のかかるステージの処

本日の講義の範囲