平成 25 年度 「計算機アーキテクチャ1」期末試験解答例

平成 25 年度 「計算機アーキテクチャ1」期末試験解答例
1.2進表現に関して、以下の問に答えなさい。
(1) 次の(10 進)数を8ビットの2の補数表現の2進数で表しなさい。
(a) +35
0010 0011
(b) -35
1101 1101
(2) 次の8ビットの2の補数表現の2進数を8ビットの符号・絶対値表現に変換しなさい。
(a) 01001001
0100 1001
(b) 11001001
1011 0111
(3) 8ビットの2の補数表現の2進数 10101010 を1ビット算術右シフトした結果を示しなさい。
1101 0101
2.コンピュータの命令セットアーキテクチャは、命令の中で明示的に指定するオペランドの最大数で
分類することができる。
「2オペランド方式」と「3オペランド方式」について説明し、比較しなさ
い。
「2オペランド方式」では、命令中で最大二つのオペランドを指定する。
「3オペランド方式」では、
命令中で最大三つのオペランドを指定する。最も一般的でよく現れる二項演算の場合、2オペランド方
式では二つの被演算数(の存在場所)を指定し、内一つは結果の格納先を兼ねるのに対し、3オペラン
ド方式では、命令中で二つの被演算数(の存在場所)と結果の格納先を別々に指定する。
「2オペランド
方式」の方が命令長を短くできるが、一方の被演算数が失われる(上書きされる)ので、後で用いる場
合は他の場所にコピーしておく必要があり、命令数が多くなることが多い。
3.以下のアドレッシング・モードについて説明しなさい。
(1) ベース相対(ディスプレースメント)アドレッシング
命令中で指定したレジスタ(あるいは特定のレジスタ:ベースレジスタ)の内容と命令中で指定
した数の和が実効アドレスとなる。
(2) 即値アドレッシング
(教科書に合わせて「即値アドレッシング」としましたが、
「即値オペランド」という方がよいかもし
れません)
命令中で指定した値がオペランドとなる。
4.次の8ビットの2の補数表現の2進数体系での加算および減算の結果を示しなさい。
(1) 10001001+10111001
オーバーフロー
(2) 01001100-11011000 0111 0100
5.4ビットの2の補数表現の2進数 1010 と 1101 の乗算を行い、積を8ビットの2の補数表現で求
めなさい。
1010
× 1101
11111010
0000000
111010
00101
1
00010010
6.桁上げ飛越し加算器について説明しなさい。
桁上げ飛び越し加算器は、順次桁上げ加算器をいくつかのブロックに分け、各ブロックに桁上げ飛
び越し回路を付加したものである。各ブロックの桁上げ飛び越し回路では、桁上げ伝搬条件、すなわ
ち、ブロック内のすべての桁で被加数と加数の一方が1で他方が0であることが成り立つかどうかを
求め、条件が成立する場合、下位からの桁上げがブロックを飛び越して上位に伝搬するようにする。
7.IEEE754 半精度基本フォーマット(16 ビット。符号部:1ビット、指数部:5ビット、仮数部:
10 ビット。指数のゲタは 15。
)で表された以下の浮動小数点数が表す数を2進の科学記数法(例え
ば、+1.0101010101×2-3)で示しなさい。
(1) 0100 0010 0000 0000
+1. 1000000000×21
(2) 1000 0010 0000 0000
-0.1000000000×2-14 = -1.000000000×2-15
小数点以下0が9個
8.プロセッサの単一サイクル実現とマルチサイクル実現について説明し、比較しなさい。
単一サイクル方式では、すべての命令をそれぞれ1クロックサイクルで処理する。サイクル時間は、
最も実行時間の長い命令の実行に要する時間となる。一つの命令実行中に一つの機能ユニットは1回し
か使用することができない。したがって、同種の機能ユニットであっても、統合することができない。
マルチサイクル方式では、命令の処理をいくつかのステップに分け、各ステップを1クロックサイク
ルで処理する。命令の種類毎にステップ数が異なってもよく、簡単な命令は少ないサイクル数で実行で
きる。サイクル時間は、一つのサイクルで行われる最も処理時間の長い処理の処理時間となる。一つの
命令実行中に一つの機能ユニットを異なるサイクルで2回以上使用することができる。したがって、同
種の機能ユニットが異なるサイクルで使用される場合は、それらを一つに統合できる。サイクルを跨い
で用いられるデータ等を記憶するレジスタが必要である。
両者を比較すると、マルチサイクル方式では、機能ユニットの統合によりハードウェア量を削減でき
るが、マルチプレクサやレジスタを追加する必要がある。また、制御が複雑になる。プログラムの実行
時間が短くなるかどうかは、プログラムの命令ミックスによる。プログラムが、少ないサイクル数で実
行できる命令を多く含む場合は、実行時間が短くなる。
(まず、
「単一サイクル実現」
、
「マルチサイクル実現」がどういうものかを説明して下さい。レポートで
も、その説明のない人が多数いました。
)