パタヘネChapter6 part1
パタヘネ下巻の内容をやる授業をとったので、そちらのまとめでも。。
Chapter6 --パイプラインを用いた性能向上
6.1パイプライン処理の概要
プロセッサにおける命令の処理
例 MIPS R形式
マルチサイクル
――――――――――――――――――――――――――――――> 時間
逐次
- ―、―、―、―>|
- |―、―、―、―>|
- |―、―、―、―>
パイプライン
- ―、―、―、―>|
- ―、―、―、―>|
- ―、―、―、―>|
パイプライン処理
- 複数の命令を時間を少しずつずらして同時並行的に実行する。
プロセッサの高速化技術の鍵
各ステップのことをステージと呼ぶ
高速化
- 4ステージ
- 4 命令 16→7
- 20命令 80→23
- Lステージ
- N命令 NL→N+L-1
MIPSの場合 5ステージ
例題 p.404
微妙に単位が違うのは授業で使っているのが第三版のため。。
単一サイクル方式とパイプライン処理の性能比較
8個の命令 lw,sw,add,sub,and,or,slt,beq
メモリアクセス 200ps
ALU 200ps
レジスタ 100ps
単一サイクル 最長
フェッチ レジスタ ALU メモリ レジスタ lw 200 100 200 200 100 800ps
パイプライン200*5=1000
理想的な場合
パイプライン処理による命令実行間隔 = 逐次処理における間隔/パイプラインステージ数
低下の要因
パイプラインハザード
パイプライン処理において、次のクロックサイクルで次の命令を実行できない状態のこと。
- 構造ハザード
- 並行して実行される命令の組み合わせにハードウェアが対応できないために命令を所定のクロックサイクルで実行できない
- 解決策
- 異なるステージで同じハードウェアを使わないように設計する
- データハザード
- 制御ハザード
- ある命令の実行に関する判断をまだ実行中の先行命令の結果に基づいて下さなければならない。条件分岐
- 解決策
- ストール
- 予測 外れたら無効にする
- 遅延判定、遅延分岐