TX-0の命令(オリジナル)

TX-0 は、たった4つしか命令を持たないにもかかわらず、ちゃんとコンピューターとして動作する(チューリング完全)という、非常に興味深い特徴を持っています。

当記事では、どのようなしくみでこの離れ業が行われていたのか、詳細を解説したいと思います。


しかしながら、TX-0 は「実験的プロトタイプ」であったがゆえに、何度も改造され、命令も変更されています。

今回取り上げるのは、1958年時点のもの。作成元である MIT リンカーン研究所で不用品となり、同じ MIT の電子工学研究所(RLE)に無期限に貸し出された頃のものです。


目次

TX-0の概要(別ページ)

ハードウェア構造

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

4つの命令

opr命令詳細

アセンブラ

擬似命令

改造後のTX-0の命令(別ページ)

NOP命令の誕生(別ページ)

世界初のテレビゲーム(別ページ)



ハードウェア構造

最初に、当時のデータの扱いの「常識」を書いておきます。


当時、2進数を3桁まとめて、「8進数」として示すことが普通でした。

今のように、4bit で 16進数ではありません。


周辺機器も、8進数2桁の 6bit を単位として扱うことが普通で、これが「バイト」と呼ばれました。

現代では 8bit が 1byte ですが、当時は 6bit が 1byte です。


以下、このことを時々思い出しながら読むと、ハードウェアの構造を知るうえで助けになります。


ビット表現をまとめる方法として、現代では16進数を使うことが多く、8進数慣れしていない人にはややこしく見えるかもしれない。
しかし、16進数2ケタで 1byte (8bit) というのと、8進数2ケタで 1byte (6bit) というのと、2ケタで 1byte を表現しようとするところは変わっていない。
大切なのは16進か8進かではなく、ハードウェアに合わせた「読みやすい表記」をすることだ。

TX-0 の系譜を受け継ぐ PDP-7 で最初の UNIX が作られたことと、今でも UNIX で8進数を使うことが多いことは、決して無関係ではない。
(ファイルパーミッションとか、8進数で表現するでしょ?)

さて、TX-0 のハードウェアを説明しましょう。

全ての命令はハードウェアを対象に動作しますから、これを知らないと話ができません。


メモリ

まずはメモリ。TX-0 はメモリの実験機でした。

TX-0 は、18bit を1ワードとして、65536ワード(64Kワード)のメモリ空間を持っています。


これ、当時のコンピューターとしては驚くほど広大なメモリです。


後述しますが、メモリのうち最初の16ワードは特別な仕組みになっていました。


レジスタ

命令が直接演算対象とするレジスタとして、次のものがあります。


アキュムレータ(AC)

18bit で、基本的には演算は AC を対象として行われます。


メモリバッファレジスタ(MBR)

18bit で、メモリを対象とする演算では、必ずこのレジスタに内容がコピーされてから演算されます。


写真は TX-0 のコンソール。
写真右側中央に、黒い横帯が2本あるが、上が MBR 、下が AC のビットを示すパイロットランプ。


ライブレジスタ(LR)

18bit で、主に opr 命令で使用されます。


Flexowriter のキーボードはここに接続されていて、命令開始時にキーが押されると LR の bit 2,5,8,11,14,17 の 6bit に文字コードがセットされます。また、その際は最上位ビット(0)がセットされます。

(この機能は、スイッチによって使わないようにすることもできます)

なんでデータが入る bit が飛び飛びなの? と思うかもしれませんが、後で詳細を説明します。


さらに、後述の仕組みにより、LR はメモリアドレスにマッピングすることが出来ます。


そのほか

他に、プログラムカウンタ(PC:16bit)、メモリアドレスレジスタ(MAR:16bit)、インストラクションンレジスタ(IR:2bit)がありますが、これらは内部的な動作で使用されるだけで、命令の演算対象にはなりません。


トグルスイッチ

レジスタと同じ扱いのものが2つと、メモリの一部として扱えるものが複数ありました。


トグルスイッチアキュムレータ(TAC)

18bit のトグルスイッチ(ON/OFF で固定されるスイッチ)の集まりです。

アキュムレータと名前がついていますが、入力装置です。

アキュムレータに内容をコピーする仕組みがあるため「アキュムレータ」と名付けられています。


トグルスイッチバッファレジスタ(TBR)

これもTAC と同じく、18bit のトグルスイッチです。

こちらは内容を MBR にコピーする仕組みがあります。


先の写真で、MBR と AC のビットを示すパイロットランプの横に、2列のトグルスイッチがある。
上が TBR で、下が TAC。


トグルスイッチストレージ(TSS)

これは、レジスタではなく、アドレスが割り振られたメモリの一部として用意されています。


16組の 18bit トグルスイッチがあります。

(左側に書かれた数字はは割り振られるメモリアドレスで、8進数で書かれています。0~7、10~17 の16個です。)


写真は図版に使われた元写真です。図版は印刷の都合上白黒2諧調になってしまっているので…
なお、ここまでの2枚の写真は、Computer History Museum の公開しているものを「引用」しています。


この16組のトグルスイッチは、メモリ先頭の16ワードと置き換えることが出来ます。


1組のトグルスイッチには、さらに2つのトグルスイッチがついています。

1つは、Core Memory select。これを ON にした場合、そのワードは純粋にコアメモリが使用され、トグルスイッチとは接続されません。


もう一つは、Live Register アドレス。これを ON にした場合、トグルスイッチはやはり無視されますが、そのアドレスはコアメモリではなく、ライブレジスタ(LR)に接続されます。

イメージとしては「LR にアドレスを割り振る」と言う感じです。16ワード全部を LR にすることだってできます。

(もちろん、同じ内容が見られます)


次ページ: 周辺機器


1 2 3 4 次ページ

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

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

-- share --

1000

-- follow --




- Reverse Link -