Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
計算機システムⅡ パイプライン処理
和田俊和
講義計画 1. コンピュータの歴史1 2. コンピュータの歴史2 3. コンピュータの歴史3 4. 論理回路と記憶,計算:レジスタとALU 5. 主記憶装置とALU,レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理(←本日) 9. メモリ階層:キャッシュと仮想記憶 10. 命令レベル並列処理 11. 命令実行順序の変更 12. 入出力と周辺装置:DMA,割り込み処理 13. 演習問題 14. 現代的な計算機アーキテクチャの解説 15. 総括と試験 • 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアー
キテクチャ,コロナ社 • 終回の試験によって成績評価を行う.5回以上欠席で不合格とする.
本日の講義の範囲
3.1 命令パイプライン
4.1.1 パイプラインの原理
• 自動車製造の工程(ステージ)数N • 各工程(ステージ)の所要時間(全工程で同じ)T • 1台の自動車作成に要する時間 N×T • 単位時間当たりに製造される車の台数 1/T
(実行時間)
(スループット)
4.1.2 命令パイプラインの基本
• 一つの命令の処理時間: N×T • スループット: 1/T – 命令フェッチ: (instruc0on fetch, F) – 命令デコード:(instruc0on decode, D) – 演算実行:(execu0on, E) – 結果の格納:(write back, W)
4.1.3 基本命令パイプラインの実現
• 図2.12をパイプライン実行順序に従って(ステージ毎に)書き直したもの
基本命令パイプラインの実現(続き)
• 各ステージ間でデータを保持しないといけない.パイプラインレジスタの導入
4.2 基本命令パイプラインの阻害要因
4.2.1 オーバヘッド
• 阻害要因1. も時間のかかるステージの処理時間で全体のスループット が決まる.
• 阻害要因2. パイプラインレジスタによる遅延. – できるだけ高速なレジスタを使うことが唯一の解決
策. – これによって, 大のステージ数が決まる.
NTmax − Tii=1
N
∑ = (Tmax −Ti )i=1
N
∑
1/Tmax
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 命令スケジューリング
• 依存関係にある命令を,プログラム中で出来るだけ離した位置に置くように並べ替える.
本日の講義の範囲