NOP 命令の誕生

目次

NOP命令と都市伝説

再検証

EDSAC の「何もしない」命令PDP-1 の NOP 命令

NOP の誕生

なぜ NOP が必要なのかその後PDP-1 と TX-0 の関係

僕の見解


PDP-1 の NOP 命令

「NOP命令と都市伝説」の著者の方は、PDP-1 が最初に NOP を明記したコンピューター、と考えています。

PDP-1 1961年の命令調べると、1961年に発行されたマニュアルに、確かに nop 命令が載っています。


PDP-1 は、最初の納入先に納められたのが 1960年11月です。これをもって著者の方は「1960年にはじめて明記された」と考えているのですが、マニュアルは 1961 年発行です。本当に 1960年に存在したのでしょうか?


当時のコンピューターは非常に複雑なもので、持ってきて設置して終わり、と言うわけにはいきません。この後検収作業があり、完了して正式納入となったのは 1961年4月です。この間、マニュアルが作られていなかった可能性だってあります。

逆に、1959年12月にはプロトタイプを公開しています。この時点ですでにマニュアルがあった可能性もあります。


と言うわけで調査。

1960年4月のマニュアルを見つけました。



裏表紙の右下に、小さく 4/60 と書かれています。どうやらこれが「60年4月」の意味のようです。

PDP-1 1960年の命令しかし、このマニュアルの中には NOP 命令は存在していません。


ややこしいのですが、「何もしない命令」が存在していないわけではないです。ただマニュアルに書かれていないだけ。

後で詳細を書きますが、「何もしない」ことをわざわざ保証することの大切さに気付いていないのです。

1960年から1961年の間にこれに気づいたことになります。では、なぜ重要だと考えるようになったのか? これが、謎を解く鍵のように思います。


実は、60年のマニュアルには「F15」という型番(?)が書かれていて、61年のものは「F15B」となっている。この後も、改定されるたびにアルファベットが更新されていったようだ。
もしかしたら、F15 と F15B の間に F15A があった可能性もある。今のところ該当資料が見つからないので、可能性の言及だけにとどめておく。


NOP の誕生

さて、話は TX-0 に戻ります。

1959年に、TX-0 の大改造が提案されました。


この際、opr 命令の bit 4,5 と、bit 6-8 の機能を再編し、bit 4-8 の大きなビットフィールドを作ろう、という提案が出ます。


TX-0 1959年の改造案図が提案時のものです。(クリックで拡大表示します)

再編する、とはいっても出来るだけ互換性を持たせるため、bit 4,5 と bit 6-8 の組み合わせによる、マトリクスを作っています。


ここで、上から3列目、bit 4,5 が 10 のところが、従来命令をそのまま残した互換部分です。

もともと、bit 6-8 を使うときは、bit 4,5 を 10 にする決まりでしたからね。


他の場所でも、別の個所から移行されたり、新設された命令など、他にも命令が入っている個所もあります。

そして、それ以外の空いた部分は、今後命令を追加するための拡張用となっています。


さて、最初の改造は 1960 年7月ごろ行われたようです。

7月に、新しいコード体系をまとめた文書が発行されています。


TX-0 1960年のビットフィールド先ほどの表とは、縦と横が入れ替わっていますし、表記方法も変わっています。(クリックで全体表示します)

しかし、基本的には同じもので、計画段階ではなく「実装された」結果を示しています。

この時の実装は非常に巧妙なもので、互換性を完全に保ったまま、機能を拡張できる余裕を作り出しました。


表記方法が変わったので説明すると、上に QD0~QD4 と書かれているのが、bit 4,5 の値。

縦に 0~7が並んでいるのが、bit 6~8 の値です。


注目すべきは、もちろん QD0 - 0 に書かれた「NOP」の文字。

もちろん、No OPeration (なにもしない)の意味です。


他の部分には - (ハイフン) が入っている場所がありますが、これらは「未実装」であることを意味します。

未実装だっておそらく何もしないのに、わざわざ QD0 - 0 だけ「何もしない」と明示しているのです。


恐らくは、これは世界で最初に公式に示された NOP の文字。


すでに書きましたが、TX-0 は 6bit で1文字を表していました。そして、アキュムレータは 18bit でした。

つまり、アキュムレータには3文字が同時に入ります。

このため、アセンブラのニーモニックはすべて3文字で表現されています。


NOOP ではなく、NOP と表記されているのは、このためです。


次ページ: なぜ NOP が必要なのか


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

(ページ作成 2013-06-27)
(最終更新 2015-06-20)

前記事:後期TX-0命令     戻る     次記事:世界初のテレビゲーム
トップページへ

-- share --

8000

-- follow --




- Reverse Link -