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

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

なんとプログラムカウンタまでも汎用レジスタだった


PDP-11の内部構造

今度はPDP-11の内部構造について説明しました。

勝男

「皆さん、このシステムでは図10のように、I/Oデバイス制御用レジスタをメモリ空間の一部としてアドレスに割り付けています。この方法だと実際のメモリがI/Oのアドレスに専有されてしまいますが、それでもI/Oの扱いやすさがそれを上まわります。上位4Kワードがそれにあてられます。

また、プログラムカウンタも汎用レジスタ、およびI/Oアドレスの一部になっています。この結果プログラムカウンタも演算の対象になり、通常の倍のアドレス演算が可能になっています。

汎用レジスタはR0〜R7まであり、R6がスタックポインタ(SP)、R7がプログラムカウンタ(PC)です。汎用レジスタには、177000〜177007(8)までのアドレスが割り当てられています。割り込みも、デバイス特有のアドレスを持ちベクターアドレスと呼びます。

PDP-11にはPDP-8にあったようなI/O命令がありません。ではどのようにしてデバイスの制御を行なうのかですが、メモリマップドI/Oと呼ばれる方式を採用しています。ちなみにPDP-8はI/OマップドI/Oといいます。

つまりI/Oデバイス制御用レジスタには、メモリと同じようにアドレスが付けられているので、MOV命令でこのレジスタにデータを書き込んだり、読みだした内容をTEST命令でチェックをして制御します。

例えばシステムコンソールに"A"を表示したいときには、オペレータコンソールから177566番地に101(8進、16進では41)を書き込むか、

MOVB #101、@#177566 (MOVB命令でコンソールの出力用レジスタのアドレス177566番地に101を送る) という命令を実行すればよいのです。


PDP-11の命令形式

勝男 「PDP-11の命令は8進法で区切られており、かつオぺコードや各種モードが3ビットごとに分けられているので、わかりやすくて覚えやすい構造ですね。

ではにPDP-11の命令形式について説明します。これら以外にもオペレーション、ブランチ等の種類があります(図11)」

 

勝男

「ソースはデータの発生元、デスティネーションは送り先を意味します。ではインストラクションについてもう少し詳しく見てみましょう。まず、レジスタがR7(PC)以外の場合ですが、図12にまとめました」

 

勝男 「次にRがPCの時についてです。この場合はモードが四つしか存在しません(図13)。その理由は皆さんで考えてみてください。またなぜ動作がそうなるかは、PCは命令を読みだした時は既に+2されているからです、そのことを上記のモードの動作内容に対して適用すると理由がわかります。」

一同納得。

勝男

「ではここで1000番地に

MOVB #101、@#177566

があるとして、これを機械語に翻訳してみましょう(図14)。どうです簡単でしょう。16進表記ならこんなに簡単にはいきませんね」

 


PDP-11のアドレス空間

勝男

「PDP-11では16ビットアドレスのすべてを指定に用いると32Kワードまでアクセスできます。アドレス空間は図15のように割り当てられています。PDP-8とは異なりビットの位置は右から左に向かい0から15となります。

アドレスはバイト単位で割り振られています。32Kワードというメモリは十分に大きなものだと思います、また浮動小数点もオプションでサポートしたので商業、工業、科学研究などの分野にも使用できると思います。PDP-8と互換性はありませんが、飛躍的な性能アップでしょう。図15をワードでアドレスを見ると最大値は177776となりバイトで見ると177777となります

 

ここで1つ困ったことが起ります。PDP-11は16ビットマシンなので、メモリにアクセスする時、

MOV #101、@#777566

なんて命令をメモリに書くことはできません。なぜならこの数字は18ビットですから。

MOV #101、@#177566

とすると問題が発生しません。アドレス16xxxx以上は76xxxxと変換されてユニバスに出力されるからです。

僕の予想では124Kワードのメモリを使うアプリケーションはそうないのではと思ってます」

とすかさず、

フェイカム 「それ以上のメモリが必要になったらどうするんだ?」

これに対して、

勝男

「メモリーマネジメントの拡張部分(PDP-8のIF/DFのような部分)を大きくして対応するでしょうね。数Mバイト位まではできると思います。アドレスのマッピングがたいへんになりますが。

でもたったこれだけのやり方でアドレスの拡大ができるなんて画期的ですね。では皆さんのビジネスの成功を確信してます」

そして僕は彼らに別れを告げた。


PDP-11の成功

1970年PDP-11の最初の製品PDP-11/20を発表した後、ケンに向かって言いました

勝男

「僕は確信してるよ。絶対にうまくいくよ。このシステムは、後世に残る名機になるよ。ケンも最高の経営者になるよ。すべてうまくいくさ」

その後のPDP-11の売れ行きは爆発的で、DECも急成長しました。しかしそれからの数年間でメモリの技術は我々の予想をはるかに越えるもので、あっという間にユニバスのアドレスを使い切ってしまいました。

アドレスの限界とシステムの高速化を解決する手立てを考え、ついにメモリをユニバスから切り離し、CPUに直結のメモリバスで制御し、アドレスのセグメント化でメモリの拡充をはかると言うことを繰り返し、1975年にPDP-11/70を発表した時には「16ビットでは限界だ」ということをみんなが感じ取っていました。

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