プロセッサ:データパスと制御


サポート命令

区分 命令 意味 備考
算術演算 add add R1,R2,R3 R1 <= R2 + R3 加算
subtract sub R1,R2,R3 R1 <= R2 - R3 減算
論理演算 and and R1,R2,R3 R1 <= R2 and R3 各ビットごとにAND
or or R1,R2,R3 R1 <= R2 or R3 各ビットごとにOR
データ転送 load word lw R1, 100(R2) R1 <= メモリ[R2+100] メモリからレジスタへの転送
store word sw R1, 100(R2) メモリ[R2+100] <= R1 レジスタからメモリへの転送
条件分岐 branch on equal beq R1,R2,25 if (R1=R2) go to PC+4+100 等しい時にPC相対分岐
set on less than slt R1,R2,R3 if (R2<R3) R1<=1 else R1<=0  
無条件ジャンプ jump j 2500 go to 10000 絶対アドレスジャンプ

命令フォーマット

命令 フォーマット名 備考
6ビット 5ビット 5ビット 5ビット 5ビット 6ビット
add R形式 0 2 3 1 0 32 add R1, R2, R3
sub 0 2 3 1 0 34 sub R1, R2, R3
and 0 2 3 1 0 36 and R1, R2, R3
or 0 2 3 1 0 37 or R1, R2, R3
slt 0 2 3 1 0 42 slt R1, R2, R3
lw I形式 35 2 1 100 lw R1, 100(R2)
sw 43 2 1 100 sw R1, 100(R2)
beq 4 1 2 25 beq R1, R2, 25
j J形式 2 2500 j 2500

ここで扱う9つの命令は以下のような共通の動作をする。


JUMP、BRANCHがない時の動作

このプログラムを例にとって動作を説明する。

 

図1 分岐のないプログラムの場合


JUMP、BRANCHがある時の動作

以下のプログラムを例にとって動作を説明する。

図2 分岐のあるプログラムの場合


宿題4 :学籍番号、名前、日付を書いて提出のこと。

1) 図1に示すメモリ内の5命令を実行した時の各ステップ(PC=8、12,16,20,24)

におけるデータの流れとメモリ、レジスタファイル、インストラクションレジスタの値を記入せよ!

図1のようなダイアグラムが5枚必要である!

 

2) 図2に示すメモリ内の5命令を実行した時の各ステップ(PC=8から24)

におけるデータの流れとメモリ、レジスタファイル、インストラクションレジスタの値を記入せよ!

図2のようなダイアグラムが13枚必要である!

 

3) ALUに加算の機能が含まれているが、それ以外に加算の機能が必要なところはどこか?

 

以上