日本-日本語
≫  お問い合わせ

製品とサービス >  ソフトウェアとOS >  OpenVMS >  History of OpenVMS

PDP1からバイトマシンへの移行


大型でなくてもこんなことができるんだ!!

それからというものは、ケンたちは非常にハードなスケジュールをこなし、新しいバイトマシンのアーキテクチャをどうするかということに全力を注ぎました。

ある日ケンが、PDP8に関してセミナーの依頼をトラワーザという会社から受けてるんだが時間の空いた時にやってくれないかと言ってきました。

相手はPDP8をこれから全社的に採用しようとしてるんでやさしく説明して欲しいとのこと。

これについてはよく知っていたのでひとつ返事でOKと答えましたが、いざ当日になると緊張で声が振るえ、

勝男

「ウ、ウ、ウレディースアンジェントゥーメン、アイム アツシ カツオ フロムジャパン」

顧客の一人 「おいおい緊張しすぎだぞ、LADYじゃなくREADYに聞こえてるよ」

とそんなに発音悪かったっけと気を取り直し、それから顧客の自己紹介が始りました。その名前は非常にアメリカ人ばなれしていました。

非常な切れ者で将来は自分でコンピュータを作るんだと言っていた イブム・アムダン。彼ならやるだろうと思った。

イタリア移民でどっしりとして重厚そうな感じの大男 イターキ・イターク

独立心が旺盛で我が道をいく感じで、変わった名前の ニキデ・ン・ニーク、しかしとってもビジネスがうまいと言った印象をもった.

そして最後に精悍そのものでなんでも取り込んでしまいそうな感じがした フュージット・フェイカム

しかし僕は、イブム・アムダン以外の3人はなんとなく身近かな存在に思えたが、その理由が明らかになるのはまだずっと後のことでした。

勝男

「PDP8は1965年に発売され、その簡単な命令体系と入出力によりいろいろなメーカーが採用して自社の装置に組み込んで使用しました。

例えば物質の構造を研究するために、X線解析装置に接続し、そのデータを基に物質構造を決定するための演算をなんと10日間連続運転し答えを出したり、大量の血液の成分分析に使われたり、船舶に搭載して人工衛星から送られてくる電波を捕らえ、現在はやりのGPSの先駆けとなる、ドップラ効果を利用してその位置を示してくれるシステムや、MIDIのはしりとなる音楽用のアプリケーション、人間や猿や猫の脳の研究にも用いられました。それはなんと20数年も昔のことです」

顧客の一人 「GPSだのMIDIだの脳だの、挙げ句のはては20年も前だと、一体なんのことをいっとるんだ!!」

(そうだ今は1970年なんだ。)

勝男

「オーまだ動転してる」

と言い訳してからPDP8の構造について説明を始めました。


DEC最初のベストセラーPDP8、主記憶は4Kワード

勝男 「PDP8は12ビットのアキュムレータ1個。1ビットのLinkビット、そして標準構成で4Kワードの主記憶から構成されます。メモリパリティはありません。

最小構成で18000ドルですから皆さんは安いとお思いでしょう。またコアメモリも4Kワードで、たったの6000ドルたらずです。

それに引き替え大型のIBMや他のメーカーのは100万ドル以上もして、とても大きく、メモリも食うし、専用の冷房のよくきいたコンピュータ室が必要で、簡単に人が扱えるものじゃありません。

話を戻して、コアメモリは虫眼鏡でみるとドーナツ状の形(数分の1ミリ)をしていて、これにアドレス選択線2本、データ書き込み/読みだし線1本を通した構造になっています。

これが12ビット×1024×4個(=4Kワード)を単位として構成されています。コアメモリの製造には僕の故郷日本の織物の技術が用いられていて、コアに線をとおして、整然と配列させるために利用されました。このタイプのメモリは電源が落ちてもその内容は半永久的に保持されます。

実際に3年間まったく使われていなかったPDP8の電源をいれると問題なくプログラムが動作したという例があります。

現在よく用いられているDRAMは電源が落ちると内容が失われてしまい、内容を保持するためにはバッテリーバックアップという装置が必要だということはご存知だと思います。

PDP8はメモリを4Kワード以上に拡張する場合、メモリマネジメントと呼ばれるモジュールを追加する必要があります。
この機構ではインストラクションフィールド(IF)、データフィールド(DF)がありプログラムとデータを分離して扱うことができます。ではPDP8のブロックダイアグラムを(図1)に示しましょう。」

図1:PDP-8のブロック図
図1:PDP-8のブロック図
勝男

「何だね、勝男、そのDRAMとかバッテリーバックアップというのは?」

(あっ、まだなかったっけと思いつつ、)

勝男

「エー、こんなメモリがあればな〜と、僕の希望です」


PDP-8のソフトウェア

勝男

「PDP8ではユーザーがアプリケーションを開発する場合はアセンブラを用いますが、開発のためにオペレーティングシステムが必要と感じた場合には磁気テープ(DECtape)(写真4)か磁気ディスク上で動作するオペレーティングシステムを購入します。

写真4:DECtape(PDP-15)
写真4:DECtape(PDP-15)

磁気ディスクは固定ヘッドタイプと呼ばれ、まさに固定された数十個のヘッドの上に直径30センチの磁性体を塗布した円盤を取り付けて、ヘッドと接触させながら円盤を回転させ、データの書き込みや読み出しを行います。1セクターは1ワードで構成され、何と32Kワードの大容量です。

またテープにはタイミングやアドレスなどのマークが付けられています。 このDECtape上で走るOSもあり、FORTRANなどのコンパイラやアプリケーションを実行できます。

PDP8のオペレータコンソールは非常に多くのスイッチやランプ類で構成されています。スイッチの機能は前に簡単に述べたようにメモリに対するアクセスやシステムの停止、スタートを行います。

ランプは約100個近くあり、システムの重要な信号を表示していて、故障時にはこれを頼りに保守を行います。大型のシステムではなんとこのような信号を数千ヶ所も見ることができます。

写真:PDP-8のオペレータコンソール
写真:PDP-8のオペレータコンソール
写真:PDP-8のオペレータコンソール
写真:PDP-8のオペレータコンソール

オペレータコンソールのよいところはランプが点滅するパターンで自分の作ったプログラムがどのあたりまで実行されたかの見当もつけられるところがいいですね。では質問がなければ次にいきます」

とすかさず、

イブム・アムダン

「DECtape上で…非常に高速というがどの位か?」

勝男 「テープの端から端までのアクセス時間はわずか30秒です」
イブム・アムダン 「そんなに早いのか。信じられん」

という顔を見てたいしたもんだミニコンはと思った

勝男

「PDP8のシステムコンソールはテレタイプ(タイプライタに似ている)と呼ばれるもので1秒間に10文字の印字やキー入力、紙テープの読み取り、紙テープのパンチができる能力をもっています。

しかもすべて機械式で信頼性抜群、音が比較的静かで、コンピュータとのつなぎの所でパラレル/シリアル変換をカーボンの棒をローターに装着した構造になっています。

ほとんどメンテナンスフリーで年に1回位カーボンの棒を点検し摩耗してれば交換すればよいのです。」

ニキデ・ン・ニーク 「勝男、テレタイプ以外の端末はないんですか?」
勝男 「LA30って言うのがもうすぐ出てきます。確か30字/秒の恐ろしく高速で、針のようなものを縦方向に何個か1列に並べ左から右に動かしながら、それらの針をあるパターンで打つと文字が構成されるもので、ドットマトリクス方式と呼ばれほどんど電子化されたすごいやつ、なんと重さはたったの50キロで僕と同じ位しかないんですよ」

PDP-8のビデオ端末

フュージット・フェイカム

「PDP8のシステムコンソールはテレタイプ(タイプライタに似ている)と呼ばれるもので1秒間に10文字の印字やキー入力、紙テープの読み取り、紙テープのパンチができる能力をもっています。

しかもすべて機械式で信頼性抜群、音が比較的静かで、コンピュータとのつなぎの所でパラレル/シリアル変換をカーボンの棒をローターに装着した構造になっています。

ほとんどメンテナンスフリーで年に1回位カーボンの棒を点検し摩耗してれば交換すればよいのです。」

勝男 「勝男、テレタイプ以外の端末はないんですか?」
ニキデ・ン・ニーク 「LA30って言うのがもうすぐ出てきます。確か30字/秒の恐ろしく高速で、針のようなものを縦方向に何個か1列に並べ左から右に動かしながら、それらの針をあるパターンで打つと文字が構成されるもので、ドットマトリクス方式と呼ばれほどんど電子化されたすごいやつ、なんと重さはたったの50キロで僕と同じ位しかないんですよ」
勝男

「PDP12のビデオ表示を例に説明しましょう。PDP12のビデオ端末は入力はテレタイプから行い、CPUがその文字をディスプレイインストラクションを使用して文字の半分をドット方式で表示し、その後もう半分を表示して一つの文字を表わしています。

このビデオ表示は残光時間が短いため、そのままにしておくと文字がすぐに消えてしまいます。そこで何度も何度もCPUが表示を行うプログラムの実行を繰り返す必要がありました。このためあまり表示文字数が多くなると、CPUの負荷が大きくなり、PDP12が速いといっても画面がちらついてくるのです。その表示方法の説明は図2のようになります。 VT05はこれを数枚の内蔵ボードで行っているのでちらつかないのです」

PDP-12のビデオ表示
PDP-12のビデオ表示

PDP-8の立ち上げ

この説明の後僕は、システムのブートについて話した。

勝男

「システムのブートは非常に簡単で、まず手でオペレータコンソールからプライマリブートストラップローダと呼ばれるわずか20ステップ弱の命令をメモリに入れ、テレタイプの紙テープ読み取り機にセカンダリブートストラップローダ、磁気テープまたは磁気ディスク用のものをセットして、CPUをスタートさせます。

するとカチャカチャと音をたてながら紙テープを読みこみます。その後所定のアドレスからCPUをスタートさせるとOSが立ち上がります。

なんとも呆気にとられるほど簡単ですね。プライマリブートストラップローダもわずか20ステップ弱なので簡単に覚えられます。

何も見ずに素早く入れていくと、オー、こいつはすごいなんていわれますよ。是非覚えてください、それが面倒な人はプライマリブートストラップをダイオードマトリクス上でパターン化したオプションが提供されてるので利用してください。一発でブートできますよ」


簡単に覚えられる命令

ひとまず説明が終わったので次に、最大のやま場である命令について説明することになりました。

勝男

「PDP-8は12ビットコンピュータで、その基本命令は次のようになっています(図3)。オペレーションコード(OPcode)とよばれるものが3ビットしかないので命令の種類はなんと8種類ということになります。簡単に覚えられますので是非暗記しておいてください」

図3:PDP-8の基本命令
図3:PDP-8の基本命令

そして命令の説明を始めました。

勝男

「ANDについては言うまでもありませんね。ビットごとの論理積です。TADは2の補数を用いた足し算で、桁上がりが発生しても後処理の必要はありません。ループの実行回数のチェックなどに用います、JMSは図4のように行われます。また、JMPは制御を強制的にアドレス部で指定された番地に移します。

図4:JMS命令の実行
図4:JMS命令の実行

I/O命令はビット3からビット8までがデバイスの指定番号で、03ならシステムコンソールのキーボード,04はシステムコンソールのプリント、,ビット9からビット11までがI/O実行のためのパルスを発生します。OPERATE命令は多くの論理演算を行うことができます。」

一同納得したようだ。

勝男

「それでは4Kワード以上のメモリのアクセスはどのようにすると思いますか? この仕掛けこそセグメント方式と呼ばれるもので、PDP-8で採用しているものです。これは後のマシンにも形を変えて応用されています。まずIF(Instruction Field)、DF(Data Field)と呼ばれるレジスタにより最大32Kワードがアクセス可能になります。IFやDFを変えながら4Kワード単位で32Kワードのすべての領域にアクセスできます。

IF,DFは同じでも違っていても構いません。PDP-8にはメモリ保護などはありませんから…単純にアドレスの拡大だけを可能にしました(図5)。

図5:PDP-8のメモリ管理
図5:PDP-8のメモリ管理

では次にこの少ない命令をどのように用いていろいろなアプリケーションを作るのでしょうか。例えばPDP-8では掛け算、引き算、割り算、比較などの演算が用意されていません。ではA番地とB番地の内容が等しいことを知るにはどのようにするのでしょうか? 」

ということで僕はニキーデ・ン・ニークに聞きました。

ニキーデ・ン・ニーク

「そんなことはわからん、君達コンピュータ会社の人が考えてくれ。わたしたちはそれを利用するだけだ」

僕はムッとして、

勝男

「なんでも一緒にやらなければ一緒に大きくなっていけませんよ。DECだけでできることなんて限られてるし、IBMのような会社と違って、なんでも自分でできるんじゃないんだ。今のDECやOEMは相互の協力がなければ大きくなれないんですよ」

イブム・アムダン 「それもそうだな。我々ももっと勉強しなくちゃ。そしてもっといいものを作り出していきたいものですね」

と言ってくれたので、僕は今まで独立独歩の感じの彼のことは好きではなかったが、彼もそんなに悪くないなと思った。

勝男

「では説明します。等しいということは図6に説明する手順で行います」

図6:2つの値が等しいかどうかをPDP-8で求めるには
図6:2つの値が等しいかどうかをPDP-8で求めるには

一同真剣なまなざし。

勝男

「どうです。簡単にできたでしょう。では引き算はどのようにするのでしょうか? 15−3 はどのようにしたらよいと思いますか?(図7)」

図7:PDP-8で 15-3 を行うには
図7:PDP-8で 15-3 を行うには

一同真剣なまなざし。

勝男

「この方法は10進法でもできますのでやってみましょう」

15−3=15+(各桁9と3の差96に1を加える。10の補数に相当する)
     =15+97
     =12(最上位の桁上がりは無視する)
勝男

「では3−15はどうするんでしょう。桁上がりに注意して試してみてください。そのほかにも2をかける場合はACを左にシフトし、2で割る場合はACを右にシフトします。では13×5はどのようにしたらよいか? ちょっと考えてみてください。コンピュータの演算のしくみがわかってきますよ。 こんな簡単なことでも知恵を絞りながらプログラミングできるなんて楽しいじゃないですか。それも使えるメモリも限られ、使える演算も限られたなかで非常に多くのことをコンピュータで行なえるなんて素晴らしいことじゃないですか。そう思いません?

ではここいらで昼休みにしましょう。午後は1時から始めますので遅れないように。君達アメリカ人は時間にルーズなところがいけませんね」

と注意を喚起してランチにしました。

トップへ 戻る   次のページへ
印刷用画面へ印刷用画面へ
プライバシー ご利用条件・免責事項