再訂正・NOP命令の誕生

目次

ハーバード・マーク1

SSEC の NOP

「命令」の誕生同時処理自己書き換え積極的に何もしない

もう一台の計算機

NOP のまとめ

SSEC はコンピューターか

コンピューターの基準境界線上の SSEC

終わりに


自己書き換え

IBM 702 の NOP は、自己書き換えのために作られた命令でした。

SSEC の NOP もまた、自己書き換えのために重要だったのではないかな、と思います。


自己書き換えと言っても、SSEC は基本的にパンチカードで命令を与えます。書き変えられません。

しかし、リレー記憶上に命令を置いて、そこに実行を移すことで「条件分岐」出来るようになっていました。

(実際のプログラム例は前回参照)


この時、SSEC の命令系では、最下位の2桁が「ジャンプ先」に相当していることが重要です。

自己書き換えと言っても、命令そのものではなく、「ジャンプ先」を変えるのが目的でした。


では、ジャンプ先ではない部分にある「命令」は、何もしない必要があります。

ここでも、「何もしない命令」が重要になるのです。


この命令に、わざわざ No Op と名付けたのは、何もしないことが重要だったから、ではないかと思います。


ジャンプ先(次の命令読み込む機器)をに何も指定しないことはできなかったようです。

ジャンプ先は2桁で示し、その2桁の意味は別途プラグボードで指示していました。


このプラグボードには、00~99 のプラグが存在しています。

「00」であったとしても、何も指示しなかったことにはならず、00 に指定された機器から命令を読み込みます。


もしプラグが接続されていなければ、存在しないところから命令を読み込んだ結果、No Opを実行し続けることになるでしょう。


積極的に何もしない

SSEC の No Op は、決して「特に回路が作られていないから何もしない」というようなものではありません。

正しく「何もしない」ことを保証するため、何もしないための回路が作り込まれています。


SSEC では、読み込んだ命令に従って処理を行う回路を決定する機構を、Commutator と呼んでいます。

これ、「整流子」の意味です。流れを正しく整えるもの。


子供の頃にプラモデルから外したマブチモーターを分解したことある人ならわかるでしょう。

モーターなどで、コイルに正しく電気を流し続けるためのブラシ部分。あれが整流子、Commutator です。


SSECブロック図

以前に出した全体ブロック図ですが、左端中段あたりに「Main Commutator」とあります。ここで命令が解釈される。

そこから左を通って一番下に矢印が伸びていて、左下に、4つの箱で区切られた部分があります。


NO COMM / ACC.C COMM / MYC COMM / DVC COMM とあります。

これが、4種類の命令を意味しています。

「No Op」と、累算、乗算、除算です。



以前に命令一覧を出した際は、さらに「条件停止」がありました。
条件停止は累算の結果により停止するため、この時点では累算命令として扱われます。

MYC と DVC には、上向きの矢印が統合され、MD Unit と書かれた箱に入っています。

これ、乗除算回路です。


ACC.C からの上向き矢印は、ACC Unit に入っています。


そして、NO からは矢印が出ていません。

何もしないからです。


とはいえ、これは「演算回路を動かさない」というだけで、NO COMM 回路が何もしないわけではありません。


SSEC はクロックの存在しない非同期回路マシンなので、何もしないと全体が停止してしまうのです。

「処理が終了した」ことを Main Commutator に返し、次の処理を開始するきっかけを与える必要があります。

(左側から上に向かって伸びる矢印が、その信号です)


No Op は「何も指示されないから何もしない」というようなものではなく、何もしない、という動作を行う、積極的に何もしない命令なのです。


もう一台の計算機

マーク1(1944年2月)とSSEC(1948) を調査して、いよいよ NOP 命令の話も決着がついたか…と思っていたら、間に、もう1台の計算機があったようです。


IBM Pluggable Sequence Relay Calculator (PSRC)。1944年12月に完成し、米国陸軍に納入されています。

射表を作るために特別に開発されたもので…ENIAC (1946)と目的は同じですが、先に完成していますね。


マーク1の完成からわずか10か月で完成している…なんてことはおそらくなくて、並行して開発していたのでしょう。

というのも、先に書きましたが、IBM はマーク1を作っている最中に「リレーで計算ができる」というシャノンの論文を知り、マーク1もリレーで作ることを提言した節があるから。


恐らくはマーク1の発案者であるエイケンがそれを許可しなかったのですが、IBM としては陸軍をスポンサーに付け、独自にリレー式の計算機開発を始めたのでしょう。


PSRC は SSEC の元となった機械、とされているようです。

しかし、マーク1や SSEC と違って、データとして命令を与えることはできません。


名前の通り「Pluggable Sequence」…つまり、プラグボードに配線を繋ぐことでプログラムを行います。

ENIAC なんかと同じ形式。


なので、命令も存在しません。

もちろん、NOP 命令もありません



NOP 命令の調査としては、「存在しない」で終わりです。

興味はあるのですが、現状資料不足すぎて、記事に出来るほどではありません。


次ページ: NOP のまとめ


前ページ 1 2 3 次ページ

(ページ作成 2015-06-18)

前記事:SSECの周辺装置     戻る
トップページへ

-- share --

64000

-- follow --




- Reverse Link -