64Kワードのメモリに対して4Kワードのキャッシュを設ける。ブロックサイズは16ワードとする。以下の手順に従って設計せよ。

1.ダイレクトマップキャッシュを作る。キャッシュには  ブロック入る。これは2のn乗なので、インデックスはnビットとなる。n=  である。

メモリにはキャッシュが ブロック入る。これは2のh乗である。タグビットは、h-n=  ビットとなる。

結論として、深さ2のn乗で、幅h-nのキャッシュディレクトリが必要である。


2.2-way set associativeにする場合、深さが  、幅が  ビットのキャッシュディレクトリが2セット必要である。



キャッシュブロックAとキャッシュブロックBは競合ミス(Conflict Miss)を起こすアドレスである。また、キャッシュはダイレクトマップキャッシュである。ライトバックキャッシュについて以下のアクセスでキャッシュはヒットするかミスするかを書きなさい

1.キャッシュブロックAから読み出し  ミス

2.キャッシュブロックAに書き込み   

3.キャッシュブロックBから読み出し   

4.キャッシュブロックAに書き込み   

5.キャッシュブロックAから読み出し   


上記の操作でライトバックが生じるのは  (番号)である。


理想のCPI=1、キャッシュミスペナルティ15クロック、命令キャッシュのミス率1%、データキャッシュのミス率3%、ロード命令の確率20%とした時、キャッシュミスを含めたCPIは 


メモリの0番地から並んでいる10個のASCIIコードを順に授業で定義されている出力装置に出力するプログラムを以下のように書く。空欄を埋めよ。


LDI r0,0     r0はポインタ

LDI r1,#10   r1はカウンタ

LDHI r2, #0x80  r2に出力装置の番号

L1:   ポインタで示されている番地からASCIIコードを読み出してr3に格納

L2:   出力装置のステータスレジスタを読み出しr4に格納

  r4が0ならばL2に飛んでビジーウェイト

  r3 に格納したASCIIコードを出力装置に送る

ADDI r0,#1       ポインタをカウントアップ

ADDI r1,#-1  カウンタをカウントダウン

× r1が0になるまで繰り返す

L3: BEZ r1,L3 無限ループでダイナミックストップ


1.0番地に16ビットデータ0x12abが入っている。r0には1が入っている。LB r2,(r0)を実行するとr2は  (16進数4桁xは付けない)、LBU r2,(r0)を実行するとr2は  (16進数4桁xは付けない)になる。

2.バイトアドレッシングにおいて、MSB側が0番地になる方法を  (カタカナ)、LSB側が0番地になる方法を  (カタカナ)と呼ぶ。

3.I/OからCPUに対して要求を出してプログラムの動きを切り替えることを  (漢字とひらがな4文字)と呼ぶ。

4.I/Oが直接メモリとの間でデータ転送を行う方法を  (英文字3文字)と呼ぶ。


各部品の遅延時間が以下であるとする。

メモリのアクセス 2nsec

レジスタファイルの読み出し 1nsec

ALUでの演算 3nsec

マルチプレクサの遅延 0.3nsec

レジスタへの書き込みセットアップ時間 0.2nsec

IFステージの遅延は  nsec

IDステージの遅延は  nsec

EXステージの遅延は  nsec

WBステージの遅延は  nsec

動作周波数は最も遅いステージの遅延時間の逆数なので  MHzになる。(2桁四捨五入)



1.下のプログラムは、0番地から並んでいる8つの数の総和を計算する。BNE命令は遅延分岐である。NOPで埋まっている遅延スロットを埋めるためにはどの命令を移動すれば良いか? 

答   (番号で)

   LDI r1,#8

   LDI r3, #0

1  lp:  ADDI r1,#-1 

2   LD r2,(r1)

3           ADD r3,r2

             BNE r1,lp

             NOP

2. 上記のような方法でスケジュールして8割の場合でNOPを有効に活用できる。分岐命令の生起確率を25%として、POCOのパイプラインのCPIを計算せよ。

答   (有効数字3桁)   



下の用語の中で適切なものを選んで空欄を埋めなさい。番号を入れること。

  を行うことで、依存性のない命令が増え、スケジュールが簡単になる。

  は、複数の命令に相当する処理を一つの長い命令にまとめて実行する。

〇分岐予測が当たると考えて命令を実行してしまう方法を  と呼ぶ。

〇後続の命令が先行の命令を追い越して実行できる方法を  と呼ぶ。逆に命令の順番を守って実行する方法を  と呼ぶ。

〇ハードウェアの制御により複数の命令を同時に実行する方法を  と呼ぶ。

〇分岐予測の中で現在良く使われているのは  である。


1 アウトオブオーダ実行 2 VLIW  3 トーナメント予測法 4 インオーダー実行 5 ループアンローリング

6 スーパーパイプライン 7 スーパースカラ 8 投機的実行



プログラムの中の90%が並列実行可能で残りの10%は並列実行が全くできない。プロセッサ10台で並列実行する場合に性能は× 倍になり、100台で並列実行する場合には×