2015.5.12 出題分 コンピュータアーキテクチャII 課題解答例 1 レポート課題 1)次の用語を説明せよ. 1. パイプライン制御 2. 構造ハザード 3. 制御ハザード 4. データハザード 5. ストール 6. フォワーディング 2)次の命令列においてハザードが発生する箇所を指摘し,パイプラインがストールしないよう に命令を並び替えよ. (もちろん,実行結果が同じになるように並び替えなければならない. ) lw $s1, 0($s0) lw $s2, 4($s0) sub $s3, $s1, $s2 sw $s3, 12($s0) lw $s4, 8($s0) add $s5, $s1, $s4 sw $s5, 16($s0) 2 解答例 1)省略(教科書の該当事項を参照のこと).その上で,わからないことがあれば,具体的に質 問してください. 2)フォワーディング機構があるものとする.そのときでも,lw 命令でロードしたデータを直 後の命令が使用する場合は,ハザードが避けられない.しかし,2命令後ならば,ハザードは避け られる.このことを念頭において考える.まず,データ依存関係を見てみよう. 1. sub 命令の$s1 が1番目の lw 命令にデータ依存 2. sub 命令の$s2 が2番目の lw 命令にデータ依存 3. 1番目の sw 命令の$s3 が sub 命令にデータ依存 4. add 命令の$s1 が1番目の lw 命令にデータ依存 5. add 命令の$s4 が3番目の lw 命令にデータ依存 1 6. 2番目の sw 命令の$s5 が add 命令にデータ依存 このうち, (フォワーディング機構があるとして)ハザードを起こすのは2項と5項である. これらのハザードを解消するには,以下のようにすれば良い.3番目の lw 命令は,それより前 のどの命令にもデータ依存しないから,前へ移動してよい.そこで,2番目の lw 命令の次の位置 に移動する(下のプログラム参照).この結果,上記の2項,5項とも lw 命令の直後でロードし たデータを使うという状況が解消され,ハザードが解消される. lw $s1, 0($s0) lw $s2, 4($s0) lw $s4, 8($s0) sub $s3, $s1, $s2 sw $s3, 12($s0) add $s5, $s1, $s4 sw $s5, 16($s0) なお,フォワーディング機構がない場合は,間に2命令入らないとハザードが解消できないので, この例では,ストールが避けられない. (並べ替え後のプログラムにおいて,ストールは,sub 命令 のところで1クロック分,1番目の sw 命令のところで2クロック分,2番目の sw 命令のところ で2クロック分発生する. (add 命令のところでストールは発生しない. ) 2
© Copyright 2024 ExpyDoc