3 COMET IIの動作

次にCOMET IIの動作の仕組みを考える。COMET IIに限らず、どんなコンピュー ターでも基本的には同じである。

1の状態に主記憶装置がなっていたとす る。さらに、プログラムレジスタ(PR)の値が#0020となっていたと する。主記憶装置のアドレス#0020以降は、以下のCASL IIのプログ ラムをアセンブルして機械語に直したものである。 =1


PGM START LD GR0,A ADDA GR0,B ST GR0,C RET A DC 1 B DC 1 C DC 0 END

ひとつずつ、このコンピューターの動作を考える。すると、以下のように動作す る。

  1. プログラムレジスタの中身が#0020なので、CPUがアドレスバスを (0000 0000 0010 0000)とする。さらに、CPUはRD=1とする。すると、主 記憶装置が、データバスを(0001 0000 0000 0000)とする。
  2. CPUが受け取った#1000を解析する。解析の結果、それは、2 語の命令と分かるので、アドレスバスとデータバス、RD線を使って、主 記憶装置から残りの1語分#0027を読み出す。
  3. 2語読み出したので、プログラムレジスタを+2加算する。即ち、 PR=#0022となる。
  4. 読み出した命令(#1000#0027)から、 #0027番地のデータを読み出して、汎用レジスタGR0にその値 を入れる。GR0=#0001となる。そして、フラグレジスタをセッ ト(OF=0,SF=0,ZF=0)する。これで最初の命令が完了。
  5. 次に、プログラムレジスタPR=#0022に従い、その番地の命 令#2000を読み出す。
  6. この命令をCPUが解析して、2語と分かる。そして、#0023番 地のデータ#0028を主記憶装置から読み出す。
  7. 2語読み出したので、プログラムレジスタを+2加算する。即ち、 PR=#0024となる。
  8. 読み出した命令(#2000#0028)から、 #0028番地のデータを読み出して、汎用レジスタGR0との和を 計算して、結果を汎用レジスタに戻す。GR0=#0002となる。 そして、フラグレジスタをセット(OF=0,SF=0,ZF=0) する。こ れで2番目の命令が完了。
  9. プログラムレジスタPR=#0024に従い、その番地の命令 #1100を読み出す
  10. この命令をCPUが解析して、2語と分かる。そして、#0025番 地のデータ#0029を主記憶装置から読み出す。
  11. 2語読み出したので、プログラムレジスタを+2加算する。即ち、 PR=#0026となる。
  12. 読み出した命令(#1100#0029)から、汎用レジ スタGR0の内容を#0029番地のデータに書き込む。これで3番 目の命令は終了。
  13. プログラムレジスタPR=#0026に従い、その番地の命令 #8100を読み出す。
  14. この命令をCPUが解析して、RET命令と分かる。スタックポインター (PR)が示すアドレスの値をプログラムレジスタPRにセットする(この辺 は後の学習範囲)。これでこの命令は終わり。

これで、命令もデータ(整数や文字)が2進数で表すか分かるであろう。それは、 全てハードウェアーの電圧に対応しているのである。その電圧に対応して、コ ンピューターは動作しているに過ぎないのである。



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成16年9月7日


no counter