PDP-11

PDP-11:ミニコンピュータの先駆者



PDP-11は、[ディジタル・イクイップメント・コーポレーション]1970年代から1980年代にかけて販売した16[[ビット]]ミニコンピュータシリーズです。DECのPDPシリーズの中でも特に重要な位置を占め、その革新的な設計は、後のコンピュータ技術に大きな影響を与えました。

PDP-11の歴史



PDP-11の開発は、データゼネラル社のNovaに対抗するために始まりました。当時、DECの主力製品であったPDP-8が12[[ビット]]アーキテクチャであったのに対し、Novaは16[[ビット]]アーキテクチャを採用していました。この状況に対応するため、DECは1970年1月にPDP-11を発表し、同年前半には出荷を開始しました。

販売台数は正確には不明ですが、発売から8年間で5万台が販売されたことが知られています。初期のモデルはTTLのICで構成されていましたが、1975年には大規模集積回路が使用され、CPUがワンボード化されました。1979年にはマルチチップモジュール化されたプロセッサJ-11が開発され、シリーズの最終モデルであるPDP-11/94とPDP-11/93は1990年に登場しました。

PDP-11の特徴



命令セット


PDP-11の命令セットは、その直交性の高さが特徴です。命令の種類とメモリアクセス方法を独立して考えることができるため、プログラミングが容易でした。任意のアドレッシングモードを任意の命令で使用でき、他の命令セットのように例外事項を覚える必要がありません。例えば、多くの命令セットではloadとstoreがありますが、PDP-11にはmove命令しかなく、転送元と転送先のどちらのオペランドでもメモリとレジスタを指定できます。

また、入出力専用の命令がなく、直交性によって入力デバイスから出力デバイスへ直接データ転送することも可能です。同様に加算命令も、任意のオペランド(メモリ、レジスタ、デバイス)を加える数としても、計算結果の格納先としても使用できます。

PDP-11の命令セットアーキテクチャは、C言語に影響を与えたと誤解されることがありますが、実際にはC言語の開発時にはPDP-11は存在していませんでした。しかし、C言語がPDP-11で実装される際にその特徴が活用され、後のプロセッサ設計に影響を与えた可能性はあります。

アドレッシングモード


PDP-11は、命令セットとアドレッシングモードによってベースが提供されていると言えます。2オペランド命令は、2つの6ビットフィールドでオペランドを指定し(3ビットがレジスタ指定、3ビットアドレッシングモード指定)、4ビットで命令コードを指定します。1オペランド命令は、6ビットでオペランドを指定し、10ビットで命令コードを指定します。

8本のレジスタがあり、7本は任意の用途に使用できますが、6番目のレジスタはスタックポインタとして、7番目のレジスタはプログラムカウンタとして認識されます。プログラムカウンタがプログラマから見えるという点とアドレッシングモードの組み合わせにより、絶対アドレス指定と相対アドレス指定が可能となりました。

アドレッシングモードには、レジスタ、即値、絶対アドレス指定、相対アドレス指定、間接アドレス指定、インデックス付きアドレッシングがあり、さらにレジスタの自動インクリメント/自動デクリメントを指定できます。相対アドレス指定を使用すると、機械語プログラムを位置独立にすることができます。

PDPエンディアン


PDP-11のエンディアンは独特で、16[[ビット]]ワードはリトルエンディアン32[[ビット]]ワードはビッグエンディアンで格納されます。ただし、各16[[ビット]]ワード内はリトルエンディアンです。この形式は、PDPエンディアンと呼ばれることがあります。このエンディアンの問題は、初期のUNIXを移植した際に「UNIX」が「NUXI」と出力されたという「NUXI問題」として知られています。

I/O専用バスのない構成


初期のPDP-11は、I/O専用バスを持たず、Unibusというメモリバスしか持っていません。そのため、入出力機器はメモリ空間にマッピングされ、特別なI/O命令を必要としません。また、各デバイスには割り込みベクターと割り込み優先度が設定されています。この柔軟性の高いアーキテクチャにより、新たなバスデバイスを容易に考案でき、さまざまなハードウェアを制御することが可能でした。

DECはこのUnibusの基本仕様を公開し、バスインタフェース回路基板のプロトタイプも提供することで、ユーザーが独自のUnibus対応ハードウェアを開発できるようにしました。

割り込み


割り込みシステムは、シンプルでありながら、イベントを逃さないように設計されています。デバイスが割り込みを発生させると、4本の優先度ラインのいずれかがアサートされます。プロセッサは優先度ごとにデイジーチェーンに応答し、割り込みが発生したデバイスはベクターアドレスをバスに出力します。プロセッサはステータスレジスタとプログラムカウンタをベクターテーブルからロードし、割り込みハンドラを実行します。

割り込みハンドラはデバイスの処理を行い、最後に特殊なRTI命令でCPUが割り込まれた箇所に戻ります。このプロセスにより、割り込みのネストが可能になり、割り込みの取りこぼしを防いでいます。

LSI-11


1975年に登場したLSI-11は、大規模集積回路を使用した最初のPDP-11です。CPUはウェスタン・デジタル製の4個のLSIチップで構成され、Unibusによく似たQ-busを使用しています。Q-busはアドレスバスとデータバスが同じ線を共有し、22ビットの物理アドレスをサポートしています。CPUのマイクロコードにはデバッガが組み込まれており、端末からコマンドを入力してメモリアドレスやレジスタの内容を調べることができました。また、マイクロコードにはブートストラップが含まれており、DEC製の全てのディスクドライブを使用可能でした。

PDP-11の衰退



PDP-11は優れた設計を持ち、最新技術を次々と取り入れていましたが、UnibusQ-busスループットがシステム性能のボトルネックとなり、16[[ビット]]アーキテクチャの限界が見えてきました。一部の機種では物理アドレス空間が拡張されましたが、プログラムは16[[ビット]]の仮想アドレス空間(64KB)に制限されていました。

DECはPDP-11の後継として32[[ビット]]のVAXを開発しましたが、当初はハイエンド市場をターゲットとしていました。1980年代にはインテルの8086などがセグメント方式でアドレス空間を拡張し、その後32[[ビット]]のマイクロプロセッサが登場したことで、PDP-11はコスト面でも競争力を失い、1997年に生産を終了しました。

PDP-11のアーキテクチャ詳細



メモリ管理


PDP-11のアドレスは16[[ビット]]で、64KBまでのアドレス範囲を指定できます。初期のPDP-11の最大メモリ容量は28Kワードでした。後期モデルでは、仮想記憶をサポートするメモリ管理ユニットが使われ、物理アドレスが拡張されましたが、1つの論理アドレス空間16[[ビット]]に制限されたままでした。命令用とデータ用の論理空間を設定可能な機種もありました。

アドレッシングモード


多くの命令は6ビットで1オペランドを構成し、3ビットでレジスタを指定し、3ビットアドレッシングモードを指定します。これにより、8種類のアドレッシングモードが利用可能です。各モードでは、レジスタ、即値、絶対アドレス、相対アドレスなどを指定できます。

命令セット


PDP-11は、バイトやワードを操作する命令セットを持ちます。2オペランド命令、1オペランド命令、条件分岐命令、ジャンプ命令、サブルーチン関連命令などがあります。条件コードに基づいて分岐を制御する命令や、ステータスレジスタを操作する命令もあります。

拡張命令セット(EIS)、浮動小数点命令セット(FIS)、浮動小数点プロセッサ(FPP)、ビジネス命令セット(CIS)などのオプションも用意されていました。

プログラミング例



以下は、RT-11で動作するPDP-11マクロアセンブラによるHello world|Hello_worldプログラムの例です。

assembly
.TITLE HELLO WORLD
.MCALL .TTYOUT,.EXIT
HELLO:: MOV #MSG,R1 ;STARTING ADDRESS OF STRING
1$: MOVB (R1)+,R0 ;FETCH NEXT CHARACTER
BEQ DONE ;IF ZERO, EXIT LOOP
.TTYOUT ;OTHERWISE PRINT IT
BR 1$ ;REPEAT LOOP
DONE: .EXIT

MSG: .ASCIZ /Hello, world!/
.END HELLO


PDP-11の機種



PDP-11は、Unibus機種、Q-bus機種、標準以外のバスを採用した機種など、さまざまなモデルが存在しました。各機種は、OEM版とエンドユーザー版があり、命令セットは共通ですが、後期機種には新命令が追加されています。

Unibus機種には、PDP-11/20、PDP-11/35、PDP-11/45、PDP-11/70などがあります。Q-bus機種には、PDP-11/03、PDP-11/23、MicroPDP-11/73などがあります。

PDP-11のオペレーティングシステム



PDP-11では、DEC製のBATCH-11/DOS-11、RSTS/E|RSTS_ERSX-11RT-11Ultrix-11などのオペレーティングシステムが使用可能でした。また、サードパーティー製のANDOS、DEMOS、MERT、UNIXなども利用できました。

PDP-11の利用



PDP-11は、タイムシェアリングシステム、科学技術計算、教育、ビジネスなど、さまざまな用途で利用されました。リアルタイムシステムとして、プロセス制御ファクトリーオートメーションにも使われました。OEM版は、交通信号システム、医療システム、CNC機械加工、ネットワーク管理などの組み込みシステムとしても利用されました。

PDP-11のその後



PDP-11は、その優れた設計と革新的な機能により、コンピュータ史において重要な役割を果たしました。そのアーキテクチャは、後のマイクロプロセッサやOSに大きな影響を与え、現代のコンピュータ技術の基礎を築きました。

現在でも、PDP-11のエミュレータやIPコアが開発されており、往年の技術を体験することができます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。