初期TX-0命令

目次

ハードウェア構造

メモリレジスタトグルスイッチ周辺機器

4つの命令

opr命令詳細

アセンブラ

擬似命令


周辺機器

これ以外のハードウェアとして、次のような周辺機器がありました。


フレクソライターFlexowriter

テレタイプ端末です。見た目はタイプライターですが、キーボードと印字部分は直接つながってはおらず、両方ともコンピューター制御できます。

文字コードは 6bit で示されます。


光学テープリーダ高速光学テープリーダ(PETR: Photo Electoric Tape Reader)

flexowriter 標準7穴テープを読み込みます。7つの穴のうち6つを使って 1byte を表し、3列を読み込むことで1ワードの読み込みとします。


Flexowiter と PETR の写真は、MIT の公開している動画から切り出したものです。


紙テープパンチャ

標準7穴テープに穴をあけ、データを記録します。


ディスプレイ

完成直後(1956)には TX-0 には装備されておらず、翌年(1957)取り付けられたもの。

ただし、取り付ける計画自体は当初からあったようですし、RLE に貸与された時点ではすでについていたため、ここでは「オリジナル」の周辺機器として扱います。


7インチ四方で、解像度は 511*511 のベクターディスプレイが接続されていました。


ライトペン

こちらも完成直後にはなく、2年後(1958)に取り付けられたもの。こちらは SAGE 計画で使用された「ライトガン」を取り付けてみた、というもので、当初計画にはなかったようです。

しかし、こちらもオリジナル周辺機器とします。


カメラ

1958 年時点では「近いうちに装備予定」となっているのですが、結局この後も取り付けられなかったようです。

WWI と同じく、ディスプレイ撮影用だったようです。


4つの命令

概要説明でも書きましたが、TX-0 の命令は 2bit で示される命令と、16bit で示されるアドレスの組で指示します。

命令が 2bit で示されるというのは、命令が4つしかない、ということ。

その 2bit を2進数で表したものと命令、その意味を書くと…


00stoSTOreACの内容を指定メモリに保存する
01addADDACに指定メモリの内容を加算する(結果はACに残る)
10trnTRansfer NegativeACの最上位ビット(bit0)が 1 のとき、指定したアドレスに処理を移す(条件分岐)
11oprOPeRateアドレス部分のビットに対応した内部回路を駆動する

通常の CPU には、AC に値を読み込む命令があるものですが、ありません。

AC をクリアしてから加算命令を使えば同じ意味になるためです。


では AC をクリアするのはどうやるのかと言えば、opr 命令を使います。

opr は、アドレス指定部分のビットを使って命令を出す命令です。


ビットフィールドによる指定になっているため、複数の命令を同時に指定できます。

同時に指定された命令は、内部で決められた順序で実行されます。

(VLIW のような同時実行ではありません)


opr のビットフィールドと命令は次のようになっています。


--1 --- --- --- --- --- cll CLear Left
--- 1-- --- --- --- --- clr Clear Right
--- -10 --- --- --- --- ios In-Out Stop
--- --- 111 --- --- --- p7h Punch 7th Hole
--- --- 110 --- --- --- p6h Punch 6th Hole
--- --- 100 --- --- --- pnt PriNT character
--- --- 001 --- --- --- r1c Read 1 line
--- --- 011 --- --- --- r3c Read 3 line
--- --- 010 --- --- --- dis DISplay
--- --- --- --1 --- 0-- pen read light PEN 1 and 2
--- --- --- --0 --- 1-- tac TAC or AC -> AC
--- --- --- --- 1-- --- com COMpliment
--- --- --- --- --- -01 amb AC -> MBR
--- --- --- --- --- -11 tbr TBR -> MBR
--- --- --- 01- --- --- mlr MBR -> LR
--- --- --- --- --- -10 lmb LR -> MBR
--- --- --- --- -1- --- pad Partial ADd
--- --- --- 10- --- --- shr SHfit Right
--- --- --- 11- --- --- cyr CYcle Right
--- --- --- --- --1 --- cry Partial ADd CaRrY
--- -11 --- --- --- --- hlt HaLT

同じ bit を使用するものが離れて書いてあったりして読みにくいのですが、これは、「実行される順」です。上の命令の方が先に処理されます。


文末に挙げる参考文献を読む方へ:
当時の資料では、処理順序を 0.6 とか 1.2 と言うような数値で示しています。
TX-0 では、opr 命令は「命令フェッチ・解釈フェイズ」と「実行フェイズ」の2フェイズで動作しました。そして、1フェイズは8クロックで動作していました。
0.6 は「最初のフェイズの 6クロック目」に実行される、と言う意味です。同様に 1.2 は「2番目のフェイズの2クロック目」に実行されます。

同じビットを共有している場合は、それらの命令を同時に処理することはできません。

たとえば、3ビット使用している P7H ~DIS の列。これらはすべて Flexowiter を使用する命令なので、Flexowriter 側の制約により、もともと同時に使用することはできません。

同時に使用「してはいけない」ものを、使用「できない」ように命令が作られているのです。


…dis は? これはディスプレイ表示で、Flexowriter とは無関係。

後からディスプレイを追加したので、無理やりねじ込んだようです。


この部分の命令とビット構成は、わかりやすくしようとする努力があって面白い。
1 が r1c 、3 が r3c 、6 が p6h 、7 が p7h と、シャレている。
それがそのまま「3bit の最上位ビットが 1 だと 出力、0 だと入力」となっているのも素晴らしい。
dis はこの意味でも、やっぱり例外なのだけど。


同様に PEN 命令も不自然な位置にあります。

8進数単位で見ると、2bit 使用する命令の「あまり」の部分におしこめられたうえ、かなり離れた他の機能と同時に使えないようになっています。

これも、後から追加したために、余っているビットを無理やり使ったのでしょう。


次ページ: opr命令詳細


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

(ページ作成 2013-06-26)
(最終更新 2013-07-04)

前記事:TX-0 世界初のホビーマシン     戻る     次記事:後期TX-0命令
トップページへ

-- share --

1000

-- follow --




- Reverse Link -