主記憶装置に格納されているデータは、16ビットのただのビットパターンであ
る。16個の0と1の集まりにすぎない。16進数で書くと、4桁の数字である。そ
の4桁の16進数の数字が、整数や文字、あるいは命令を表したりする。CPUは、
それらをどのように区別しているのであろうか?。そのからくりは?。それらを
全く区別していないというのが答えである。ただ単に、プログラムレジスタPR
が示すアドレスの内容は命令と解釈するだけである。すごーく、単純である。
後は、その命令に従い、主記憶装置の内容が命令になったり、整数になったり、
文字になったりしているだけである。メモリーの内容を見ただけでは、それが
示すものは、文字なのか整数なのか、命令なのかはは分からないのである。
COMET IIでは、命令と処理すべきデータ(整数や文字)が同じところに、区別無
く格納されている。世界中にある普通のコンピューターも同じようになってい
る。このように、命令とデータ区別しないで、同じメモリーに格納することは
ノイマン型コンピューターの特徴のひとつである。
通常のコンピューターは、とてつもないビットの操作をしていることが分かる
であろう。それもひとつも間違えないで行うのは奇跡に等しいと思える。どの
ようにしているのであろうか?。
図 1:
COMET IIのハードウェアーとプログラムの状態
|
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成16年9月7日