九州大学 システム情報科学府 情報理工学専攻 2017年8月実施 計算機アーキテクチャ
Author
Zero
Description
【問 1】
以下の真理値表で与えられた論理関数

【問 2】

(1)
以下に示すプログラムについて考える.各行において ‘#’記号から右はコメントである.プログラム中に存在するフロー依存関係,逆依存関係,出力依存関係について,どの命令が,どの命令のどのレジスタに関して依存しているかをすべて列挙せよ.
lw $3, 10($2) # <1>
lw $4, 18($2) # <2>
add $10, $3, $4 # <3>
sw $10, 40($2) # <4>
add $10, $3, $3 # <5>
add $4, $3, $10 # <6>
(2)
上記 (1) の依存関係のうち,命令パイプライン処理で実行した際にデータハザードを生じさせるものを示せ.
(3)
上記 (2) のデータハザードを以下それぞれの方式によって対処した場合の上記 (1) のプログラムの実行における CPI (Clock cycles Per Instruction) を求めよ.
-
(A) パイプラインストールのみ
-
(B) データフォワーディング+パイプラインストール
(4)
逆依存関係や出力依存関係が生じる理由を説明せよ.
【問 3】
コンピュータのメモリシステムについて,以下の各問いに答えよ.
(1)
マイクロプロセッサに搭載されたダイレクトマップ・キャッシュについて考える.ワードサイズは
(2)
初期参照ミスとは何か答えよ.また,初期参照ミス回数を削減する方法を述べよ.
Kai
【問 1】
b | d | |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
a | b | |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 0 |
c | d | |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
【問 2】
(1)
フロー依存は
レジスタ
レジスタ
レジスタ
逆依存は
レジスタ
出力依存は
レジスタ
レジスタ
(2)
それぞれ、データハザードを起こす
フロー依存は
レジスタ
レジスタ
レジスタ
出力依存は
レジスタ
(3)
(A)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lw | IF | ID | EX | MEM | WB | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
lw | 0 | IF | ID | EX | MEM | WB | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
add | 0 | 0 | IF | IF | IF | ID | EX | - | WB | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
sw | 0 | 0 | 0 | 0 | 0 | IF | IF | IF | ID | EX | MEM | 0 | 0 | 0 | 0 | 0 |
add | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | IF | ID | EX | - | WB | 0 | 0 | 0 |
add | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | IF | IF | IF | ID | EX | - | WB |
上の表から、
(B)
下の表より、
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
lw | IF | ID | EX | MEM | WB | 0 | 0 | 0 | 0 | 0 | 0 |
lw | 0 | IF | ID | EX | MEM | WB | 0 | 0 | 0 | 0 | 0 |
add | 0 | 0 | IF | IF | ID | EX | - | WB | 0 | 0 | 0 |
sw | 0 | 0 | 0 | 0 | IF | ID | EX | MEM | 0 | 0 | 0 |
add | 0 | 0 | 0 | 0 | 0 | IF | ID | EX | - | WB | 0 |
add | 0 | 0 | 0 | 0 | 0 | 0 | IF | ID | EX | - | WB |
(4)
後ろの命令のレジスタ書き込みの前に前の命令のレジスタ読み出しを行う逆依存は命令を同時に並行処理した時に発生する。命令順を入れ替えた場合、出力依存によって最後の結果がわかってしまう。