WWIの命令と画面

目次

使用可能レジスタ

演算命令

加減算命令乗算命令除算命令シフト命令呼び出し命令ストア命令

完成後の追加命令群

周辺機器制御命令I/O 命令Flip-Flop reset 命令チェック命令ビット演算命令謎の命令

完成時の27命令って?

オシロスコープ

初期のもの中期のもの後期のもの


完成時の27命令って?

以上が、初期の15命令を含む33命令(と、廃止された命令・ニーモニック)の紹介です。


1951年末の完成時点の 27命令って、なんだったのだろう…と思います。

まず、初期の15命令のうち、実装されなかった sd 命令を除く14命令は確定です。のこり13命令。


1952年初頭のサブルーチン集に出てくる追加命令は、ao cm ta ex qp qr の6命令。あと7命令あるはずです。


1951年末の論文によれば、「浮動小数点演算を行いやすくする命令がある」ようです。これはおそらく sf 命令のことでしょう。


同論文では、備えられた周辺機器にも言及しています。それによれば、紙テープ読み取り機が2種類(光学式、機械式)、穿孔機、タイプライタ、オシロスコープ、カメラ、アナログ入力コントローラー(フライトシミュレータのため?)、アナログ出力、が挙げられています。


まだ I/O 命令はないので、各周辺機器ごとに命令が作られていた可能性があります。

紙テープとタイプライタは、すでに挙げた qr qp 命令です。穿孔機は qh かな?(Hole puncher)、オシロスコープは qs でしょうか(Scope)。

他に qd qf があります。d は磁気ドラムかな、と思ったのですが、「接続は来年(1952年)の予定」と書かれているので、この接続時に I/O 命令が見直された可能性が高そうです。すると、qd もこの時点の周辺機器の制御でしょうか。

カメラは、コンピューター制御できたようですが「オシロスコープ撮影用」と強調されているので、qs 命令で制御したのかもしれません。


これで、あと2命令。

1951年末で存在してもおかしくない残る命令は、dm ab cl rs ck あたりです。

このうち、rs は除外です。1951年時点ではウィリアムス管メモリが使われており、メモリ内容は「目で見えた」からです。Flip-Flop ストレージが搭載されたのは、おそらくコアメモリの搭載後。

勘にすぎませんが、ab も違います。算術命令は最上ビットを立てる、というルールがあったのに、ab だけは違います。命令追加するときに、最上位ビットが空いている番号が余っていなかったのでしょう。つまり、かなり後に追加された命令。

cl は…微妙なところ。論文には「シフト命令がある」とは書かれているのですが、clがシフト命令相当と考えられていたかどうかによります。名称上は「サイクル」命令なので。


ck メモリチェック命令なら、あり得るかもしれません。当時は信頼性が低く、とにかく「チェック機構が充実している」ことを論文にも書かれています。命令として持っているが、デバッグ時に多用され、完成したサブルーチンには登場しなかっただけかもしれません。

dm (絶対値の差分)命令も、cm (絶対値)命令と一緒にできた、としても、それほどおかしくはありません。なにか特定用途の数学で、絶対値や、その差分が使いたかった可能性は高いです。


というわけで、かなり乱暴な推定ですが、1951 年末時点で実装されていた27命令は、基本14命令に加え

ao cm ta ex qp qr qh qs qd qf sf ck dm

の13命令だったのではないかな、と考えています。


sl と sr の「Bレジスタクリア機能」を別命令にカウントした、という考え方もできなくはありません。
ただ、完成時論文には「32命令を実装できるが、すでに27命令ある」と書かれています。32命令を上限とするなら、sl sr の 6bit 目はカウントしないはずです。



オシロスコープ

WWI にはオシロスコープが接続されていました。1947年の計画初期から、接続する予定はあったようです。

しかし、これがどんどん交換され、時期によって使用方法の互換性がありません。

各時期の使用方法について、概要をまとめておきます。


僕は、最初の CRT 接続マシンを知りたくて調べていたら WWI に突き当たったのだ。
だから、やっぱり興味は CRT にある。他にも興味深そうな周辺機器はあるけど、CRT だけ特別扱いで紹介します。
もっと他の機器も知りたい、という方は、当時の資料が大量に公開されているので、ご自分で見てみるのも面白いかと思いますよ。


初期のもの

初期の CRT 出力がどうなっていたのか、資料はありません。

しかし、1951年の論文に入れられた CRT 出力の図版(右図)を見る限り、縦横の解像度は 128x128程度でないかと思います。

左下に数字が羅列されていますが、この1文字をよく見ると、3x5 で構成されています。また、数字同士の間は 1dot 開いています。

グラフの目盛りは、横方向に大きめの区切りで8分割されています。数字4文字で、この1分割分になっています。

つまり、横方向のサイズは (3+1)*4*8=128 。同じように、縦も 128です。


128 なら 7bit で表現できます。縦横を両方合わせて 16bit で十分おさまります。

おそらく廃止された qs 命令(eQuipment Scope)でアキュムレータに入れた座標を送り込むと、そこに点が打たれた、というところだと想像します。


おそらくは超長残光のオシロスコープを使用していると思うが、点を打ってもすぐに消えてしまう。オシロスコープでは、表示は繰り返し行わなくてはならないのだ。
なので、あらかじめメモリにデータを準備し、オシロスコープ出力中はひたすらデータを取得してはオシロスコープに送る…というループを回したのではないかと思う。


中期のもの

1952 年末に書かれた、周辺機器のプログラムガイドが残っています。

この時には、CRT は周辺機器の一つ、という位置づけになっています。

縦横の解像度は、ぐっと上がって 2048 x 2048 。横方向の位置を、si (機器選択)命令を実行する際のアキュムレータの値で決めます。

縦方向の位置は、rc (データ送信)命令で、アキュムレータのデータを送って決めます。


解像度にご注目ください。「2048」ですよ!
おそらく、今あなたが使っているディスプレイよりも高解像度のはず。50年以上前の黎明期、はじめてディスプレイがつけられたマシンの解像度は、現代よりも高かったのです。


縦横位置を決めるアキュムレータの値は、「上位」11bit が使われました。WWI の設計では、11bit を使うなら下位のほうが何かと便利だと思うのですが、なぜ上位を使用するのかは不明です。


rc 命令を連続して発行すれば「縦の線」を簡単に引くことができます。しかし、横の線を引くためには、si 命令と rc 命令を組にして送らなくてはなりません。


CRT は、全部で 16台接続されていました。どの CRT に出力するかは、si命令のアドレス部で指定します。


次ページ: 後期のもの


前ページ 1 2 3 4 5 6 次ページ

(ページ作成 2013-02-09)
(最終更新 2013-02-15)

前記事:WWI 初の現代的コンピュータ     戻る     次記事:Whirlwindのアセンブラ
トップページへ

-- share --

1000

-- follow --




- Reverse Link -