PDP -11は、1970年から1990年代後半にかけてDigital Equipment Corporation (DEC)が販売していた16ビットミニコンピュータのシリーズで、 Programmed Data Processor(PDP)シリーズの製品群の一つです。全モデル合わせて約60万台のPDP-11が販売され、DECの最も成功した製品ラインの一つとなりました。PDP-11は、一部の専門家からは最も人気のあるミニコンピュータとみなされています。[ 1 ] [ 2 ]
PDP-11は、命令セットに数々の革新的な機能を搭載し、汎用レジスタも追加したことで、PDPシリーズの従来モデルよりもプログラミングが容易になりました。さらに、革新的なUnibusシステムにより、ダイレクトメモリアクセスを用いて外部デバイスをシステムに容易に接続できるようになり、多種多様な周辺機器との接続が可能になりました。PDP-11は、多くのリアルタイムコンピューティングアプリケーションにおいてPDP-8に取って代わりましたが、両製品ラインは10年以上にわたって並行して販売されていました。PDP-11のプログラミングの容易さは、汎用コンピューティングにおいて人気を博しました。
PDP-11 の設計は、Intel x86 [ 1 ]やMotorola 68000など、1970 年代後半のマイクロプロセッサの設計に影響を与えました。PDP-11 オペレーティングシステムや Digital Equipment の他のオペレーティングシステムの設計上の特徴は、 CP/Mなどのオペレーティングシステムの設計に影響を与え、ひいてはMS-DOSにも影響を与えました。Unixの最初の公式バージョンは、1970 年に PDP-11/20 上で動作しました。Cプログラミング言語は、当初は意図したものではありませんでしたが、いくつかの低レベルの PDP-11 依存プログラミング機能を利用したとよく言われています[ 3 ] [ 4 ] 。
PDP-11のアドレス指定を16ビットから32ビットに拡張しようとする試みが、VAX-11の設計につながり、その名称の一部はPDP-11から取られている。
1963年、DECはPDP-5という形で、世界初の商用ミニコンピュータとされる製品を発表しました。これは、1962年に開発されたLINCマシンをベースにした12ビット設計で、研究室での使用を想定していました。DECはLINCシステムと命令セットを若干簡略化し、より大型の18ビットPDP-4ほどの処理能力を必要としない小規模な用途向けにPDP-5を開発しました。PDP-5は成功を収め、最終的に約1,000台が販売されました。その後、さらにコストを削減した12ビットモデルであるPDP-8が登場し、約50,000台が販売されました。
この時期、コンピュータ市場は、 7ビットASCII規格の導入に伴い、6ビット単位のコンピュータワード長から8ビット単位へと移行しつつあった。1967年から1968年にかけて、DECのエンジニアは16ビットマシンであるPDP-Xを設計したが[ 5 ] 、既存の12ビットおよび18ビットプラットフォームに比べて大きな利点がないと判断され、最終的にプロジェクトは中止された。
このことがきっかけとなり、PDP-X プログラムのエンジニア数名が DEC を退社し、データ ゼネラルを設立した。翌年、彼らは 16 ビットのデータ ゼネラル Novaを発表した。[ 6 ] Nova は何万台も売れ、1970 年代から 1980 年代にかけて DEC の主要な競合製品の一つとなった。
DECの社長兼創設者であるケン・オルセンは、大型の16ビットシステムよりも小型の8ビットマシンに興味を持っていた。これが「デスク計算機」プロジェクトとなった。その後まもなく、DatamationがDECで開発中のデスク計算機に関する記事を掲載し、その市場に多額の投資をしていたWang Laboratoriesに懸念を引き起こした。間もなく、市場全体が16ビットに移行していることが明らかになり、デスク計算機も16ビット設計になった。[ 7 ]
チームは、新しいアーキテクチャへの最善のアプローチは、命令を実行するために必要なメモリ帯域幅を最小限に抑えることだと判断した。ラリー・マクゴーワンは、さまざまな既存プラットフォームの命令セットを使用して一連のアセンブリ言語プログラムをコーディングし、それらを実行するためにどれだけのメモリが交換されるかを調査した。ハロルド・マクファーランドもこの取り組みに参加し、すでに非常に複雑な命令セットを書いていたが、チームはそれを却下した。しかし、2番目の命令セットはより単純で、最終的にPDP-11の基礎となった。[ 7 ]
彼らが新しいアーキテクチャを初めて提示したとき、経営陣は落胆した。それは、メモリ性能の向上に不可欠と考えられていた単一命令語の即値データと短いアドレスが欠けていたからである。マクゴーワンとマクファーランドは最終的に、システムが期待どおりに動作することを彼らに納得させることができ、突然「デスク計算機プロジェクトは熱を帯びた」。[ 7 ]システムの大部分はPDP-10を使用して開発され、SIM-11は後のPDP-11/20をシミュレートし、ボブ・バウワーズがアセンブラを書いた。[ 7 ]
開発の最終段階で、マーケティングチームは最小構成として2Kのメモリを搭載したシステムを出荷したいと考えていました。 [ a ]マクゴーワンが、これではアセンブラがシステム上で動作しないと述べたため、最小構成は4Kに拡張されました。マーケティングチームはまた、PDP-8アセンブラの場合と同様に、アセンブラコードのコメントにスラッシュ文字を使用したいと考えていました。マクゴーワンは、そうすると除算を示すためにセミコロンを使用する必要があると述べ、このアイデアは却下されました。[ 7 ]
PDP-11ファミリーは1970年1月に発表され、同年初めに出荷が開始された。DECは1970年代に17万台以上のPDP-11を販売した。[ 8 ]このアーキテクチャは、1970年代初頭から1980年代初頭にかけてのDECの売上、売上成長、利益の大部分を占めた。[ 9 ]
当初は小規模なトランジスタ・トランジスタ論理回路で製造されていたが、1975年に単一基板の大規模集積回路版プロセッサが開発された。2チップまたは3チップ構成のプロセッサであるJ-11は1979年に開発された。
PDP-11シリーズの最後のモデルは、1990年に発表されたシングルボードのPDP-11/94とPDP-11/93でした。[ 10 ]
PDP-11プロセッサアーキテクチャは、ほぼ直交型の命令セットを採用しています。例えば、ロードやストアといった命令の代わりに、PDP-11にはムーブ命令があり、オペランド(ソースとデスティネーション)はメモリまたはレジスタのどちらでも指定できます。入力命令や出力命令は特にありません。PDP-11はメモリマップドI/Oを使用するため、同じムーブ命令が使用されます。直交性により、入力デバイスから出力デバイスへデータを直接移動することも可能です。加算などのより複雑な命令も同様に、ソースまたはデスティネーションとしてメモリ、レジスタ、入力、出力のいずれでも指定できます。
ほとんどのオペランドは、8 つのレジスタに対して 8 つのアドレッシング モードのいずれかを適用できます。アドレッシング モードには、レジスタ、即値、絶対、相対、遅延(間接)、およびインデックス アドレッシングがあり、レジスタの自動インクリメントと自動デクリメントを 1 つ(バイト命令)または 2 つ(ワード命令)指定できます。相対アドレッシングを使用すると、マシン語プログラムは位置に依存しなくなります。
初期のPDP-11モデルには、入出力専用のバスはなく、 CPU、メモリ、そしてアダプタを介してメモリアドレスにマッピングされた入出力デバイスなど、システム内のすべてのコンポーネントを接続するUnibusと呼ばれるシステムバスのみが搭載されていた。
入出力デバイスは、応答するメモリ アドレスを決定し、独自の割り込みベクタと割り込み優先度を指定しました。プロセッサ アーキテクチャによって提供されるこの柔軟なフレームワークにより、プロセッサが最初に設計されたときには想定されていなかったハードウェアを制御するデバイスなど、新しいバス デバイスを非常に簡単に開発することができました。DEC は基本的な Unibus 仕様を公開し、プロトタイプ用のバス インターフェース回路基板を提供するとともに、顧客が独自の Unibus 互換ハードウェアを開発することを奨励しました。
Unibusによって、PDP-11はカスタム周辺機器に適したものとなった。アルカテル・ルーセントの前身の一つであるベル電話製造会社は、BTMC DPS-1500パケット交換(X.25)ネットワークを開発し、地域および全国ネットワーク管理システムにPDP-11を使用し、UnibusをDPS-1500ハードウェアに直接接続していた。
PDP-11ファミリーの高性能モデルでは、シングルバス方式から脱却しました。PDP-11/45では、CPU内部に専用のデータパスがあり、半導体メモリをプロセッサに接続し、コアメモリとI/OデバイスはUnibusを介して接続されていました。[ 11 ] PDP-11/70では、 Massbusを介してディスクとテープとメモリの間に専用のインターフェースが追加され、この方式がさらに進化しました。入出力デバイスは引き続きメモリアドレスにマッピングされましたが、追加されたバスインターフェースを設定するには、追加のプログラミングが必要でした。
PDP-11は、4つの優先度レベルでハードウェア割り込みをサポートしています。割り込みはソフトウェアサービスルーチンによって処理され、これらのルーチンは自身も割り込み可能かどうかを指定できます(割り込みネストを実現)。割り込みの原因となるイベントは、デバイス自体がプロセッサに自身の割り込みベクタのアドレスを通知することで示されます。
割り込みベクタは、カーネルの低アドレス空間(通常は物理メモリの低アドレス空間に対応)における、0~776の範囲の2つの16ビットワードからなるブロックです。割り込みベクタの最初のワードには割り込みサービスルーチンのアドレスが、2番目のワードにはサービスルーチンへの入時にPSW(優先度レベル)にロードされる値が格納されます。
PDP-11は、半熟練労働者による製造の容易さを考慮して設計された。部品の寸法は比較的厳密ではなかった。バックプレーンにはワイヤラッピング 方式が採用されていた。

1975年2月に発表されたLSI-11(PDP-11/03)[ 10 ]は、大規模集積回路MOSFET を使用して製造された最初のPDP-11モデルです。CPU全体は、Western Digital製の4つのLSIチップ(MCP-1600チップセット。5番目のチップを追加して命令セットを拡張できます)に搭載されています。LSIバスまたはQバスと呼ばれるUnibusの派生版であるバスを使用しています。Unibusとの主な違いは、アドレスとデータが別々のワイヤセットではなく、共有ワイヤセットに多重化されている点です。また、I/Oデバイスのアドレス指定方法も若干異なり、最終的には22ビットの物理アドレス(Unibusでは18ビットの物理アドレスのみ)と、帯域幅を大幅に向上させるブロックモード動作(Unibusではサポートされていない)を可能にしました。
CPUマイクロコードにはデバッガが組み込まれています。これは、端末への直接シリアルインターフェース(RS-232またはカレントループ)を備えたファームウェアです。これにより、オペレーターは、当時一般的だったスイッチ操作やランプ読み取りではなく、コマンドを入力して8進数を読み取ることでデバッグを行うことができます。オペレーターは、コンピュータのレジスタ、メモリ、入出力デバイスを調べて変更し、ソフトウェアや周辺機器の障害を診断して修正することができます(ただし、障害によってマイクロコード自体が無効になる場合は除きます)。また、起動するディスクを指定することもできます。これらの2つの革新により、LSI-11の信頼性が向上し、コストが削減されました。
LSI-11には、書き込み可能な制御ストア(WCS)オプション(KUV11-AA)を追加することができました。このオプションにより、内部の8ビットマイクロマシンをプログラミングして、PDP-11命令セットに対するアプリケーション固有の拡張機能を作成することができました。WCSは、リボンケーブルで3番目のマイクロコードROMソケットに接続する4つのQ-Busボードです。EIS/FISマイクロコードのソースコードが含まれていたため、通常は3番目のMICROMに格納されているこれらの命令を、必要に応じてWCSにロードすることができました。[ 12 ]
LSI-11/23、/73、/83などの後期のQ-Busベースのシステムは、Digital Equipment Corporationが社内で設計したチップセットをベースとしています。後期のPDP-11 Unibusシステムは、同様のQ-Busプロセッサカードを使用するように設計されており、Unibusアダプタを使用して既存のUnibus周辺機器をサポートし、場合によっては速度向上のために専用のメモリバスを備えています。
Q-Bus製品群には他にも重要な革新点があった。例えば、PDP-11/03のシステムバリアントでは、システム全体の電源投入時自己診断(POST)が導入された。
PDP-11の基本設計は柔軟性が高く、新しい技術に対応するために継続的にアップデートされていました。しかし、UnibusとQ-Busのスループットの制限がシステム性能のボトルネックとなり始め、16ビットの論理アドレス制限が大規模なソフトウェアアプリケーションの開発を阻害するようになりました。PDP -11アーキテクチャに関する記事では、アドレス空間の制限を回避するために使用されたハードウェアおよびソフトウェア技術について解説しています。
DECのPDP-11の後継機である32ビット版VAX-11(「Virtual Address eXtension」の略)は、16ビットの制限を克服したが、当初はハイエンドのタイムシェアリング市場をターゲットとしたスーパーミニコンピュータだった。初期のVAX CPUはPDP-11互換モードを提供し、既存のソフトウェアの多くを新しい32ビットソフトウェアと並行してすぐに使用できたが、この機能は最初のMicroVAXで廃止された。
PDP-11は10年間、Unixを実行できる最小のシステムでしたが[ 13 ]、1980年代にはIBM PCとそのクローンが小型コンピュータ市場をほぼ独占しました。 1984年のBYTE誌は、PCのIntel 8088マイクロプロセッサがUnixを実行する際にPDP-11/23を上回る性能を発揮できると報告しました[ 14 ] 。Motorola 68000(1979年)やIntel 80386 (1985年)などの新しいマイクロプロセッサも32ビット論理アドレッシングを搭載していました。特に68000は、Unixの派生版を実行することが多い、ますます強力になる科学技術ワークステーションの市場の出現を促進しました。これらには、HP 9000シリーズの200(1981年のHP 9826Aから開始)と300/400( 1984年にHP-UXシステムが68000に移植された) 、 Sun-1(1982年開始)から始まるSunOSを実行するSun Microsystemsワークステーション、独自のシステムながらある程度のUnix互換性を提供するDomain/OSを実行する1981年のDN100から始まるApollo/Domainワークステーション、そして1985年までにUnixベースのワークステーション(IRIS 2000)へと発展したSilicon Graphics IRISシリーズが含まれる。
Apple LisaやMacintosh、Atari ST、Commodore Amigaといった68000ベースのパーソナルコンピュータは、技術的にはこれらのシステムでもUnix派生システムを実行できたものの、DECの事業に対する脅威としてはそれほど大きくなかったと言えるだろう。特に初期の頃は、MicrosoftのXenixが1983年にTRS-80 Model 16 (最大1MBのメモリ搭載)などのシステムに、また1984年には最大2MBのRAMを搭載したApple Lisaに移植された。これらのチップの大量生産により、16ビットPDP-11のコスト面での優位性はなくなった。PDP-11をベースにしたパーソナルコンピュータのシリーズであるDEC Professionalシリーズは、DECの他のPDP-11以外のPC製品と同様に、商業的に失敗に終わった。
1994年、DEC [ 15 ]は、Q-BusおよびISAアーキテクチャのパーソナルコンピュータ向けLSI-11ベースのボードを製造するアイルランドのメーカーであるメンテック社にPDP-11システムソフトウェアの権利を売却し、1997年にPDP-11の生産を中止しました。メンテック社は数年間、新しいPDP-11プロセッサを製造しました。他の企業は、旧型のPDP-11プロセッサ、ディスクサブシステムなどの代替品のニッチ市場を見つけました。同時に、BSDまたはLinuxをベースとしたPC向けのUnixのフリー実装が利用可能になりました。
1990年代後半までに、DECだけでなく、PDP-11に似たミニコンピュータを中心に構築されていたニューイングランドのコンピュータ産業のほとんどが、マイクロコンピュータをベースとしたワークステーションやサーバーの台頭によって崩壊した。
PDP-11プロセッサは、ベースとなる設計と使用するI/Oバスによって、いくつかの自然なグループに分類されます。各グループ内では、ほとんどのモデルがOEM向けとエンドユーザー向けの2つのバージョンで提供されていました。すべてのモデルは同じ命令セットを共有していますが、後のモデルでは新しい命令が追加され、特定の命令の解釈が若干異なっていました。アーキテクチャの進化に伴い、プロセッサの状態レジスタや制御レジスタの処理方法にもいくつかのバリエーションが生じました。



以下のモデルは、主力バスとしてユニバスを使用しています。

以下のモデルは、Q-Busをメインバスとして使用しています。

PDTシリーズは、「スマート端末」として販売されたデスクトップシステムでした。/110と/130はVT100端末筐体に収められていました。/150は卓上ユニットに収められており、8インチフロッピードライブ2台、非同期シリアルポート3つ、プリンタポート1つ、モデムポート1つ、同期シリアルポート1つを備え、外部端末が必要でした。これら3機種はすべて、LSI-11/03およびLSI-11/2と同じチップセットを4つの「マイクロ」で採用していました。2つのマイクロを1つのデュアルキャリアに統合し、EIS/FISチップ用のソケットを1つ空けるオプションもありました。/150はVT105端末と組み合わせて、 MINC-11の廉価版であるMiniMINCとしても販売されていました。

DEC Professionalシリーズは、 IBM の以前の8088および80286ベースのパーソナル コンピュータに対抗することを目的としたデスクトップ PC です。325 を除くすべてのモデルには 5 1/4 インチ フロッピー ディスク ドライブとハードディスクが搭載されています。325にはハードディスクがありません。当初のオペレーティングシステムは P/OS で、これは基本的にRSX-11 M+ にメニュー システムを追加したものです。この設計は既存の PDP-11 モデルとのソフトウェアの交換を避けることを意図していたため、市場の反応が悪かったのは当然のことでした。RT- 11オペレーティングシステムは最終的に PRO シリーズに移植されました。RSTS /Eオペレーティングシステムの PRO シリーズへの移植も DEC 内部で行われましたが、リリースされませんでした。PRO-325 および -350 ユニットは、11/23、11/23+、および 11/24 と同じ DCF-11 ("Fonz") チップセットに基づいています。 PRO-380は、11/53、73、83などと同じDCJ-11(「Jaws」)チップセットをベースにしていますが、 サポートチップセットの制限により、動作周波数は10MHzに制限されています。




PDP-11は非常に人気が高かったため、東側諸国ではライセンスを受けていないPDP-11互換のミニコンピュータやマイクロコンピュータが多数製造された。これらの中には、PDP-11とピン互換性があり、その周辺機器やシステムソフトウェアを使用できるものもあった。例えば、以下のようなものがある。
PDP-11には複数のオペレーティングシステムが用意されていた。ゴードン・ベルとWD・ストレッカーは「数え方にもよるが、約4つのオペレーティングシステムファミリーがあり、それぞれ約10種類の名称付きバリアントがあった」と記している。同社は、互換性のないシステムが多数存在することは好ましくないと考えていた。[ 9 ]

幅広い周辺機器が用意されており、その一部はPDP-8やPDP-10といった他のDECシステムでも使用されていました。以下に、PDP-11でよく使用される周辺機器をいくつか紹介します。
PDP-11ファミリーのコンピュータは、様々な用途に使用されました。タイムシェアリング、科学計算、教育、医療、政府機関、企業など、汎用コンピューティングのための標準的なミニコンピュータとして利用されました。また、リアルタイムプロセス制御や工場自動化も一般的な用途でした。
OEMモデルの中には、信号機システム、医療システム、数値制御加工などの複雑なシステムを制御する組み込みシステムとして、あるいはネットワーク管理用として頻繁に使用されたものもあった。PDP-11 のそのような使用例としては、パケット交換ネットワークDatanet 1の管理が挙げられる。1980年代には、英国の航空交通管制レーダー処理は、RAF West Drayton の PRDS – Processed Radar Display System として知られる PDP 11/34 システムで行われていた。医療用線形粒子加速器Therac-25のソフトウェアも 32K PDP-11/23 上で動作していた。[ 45 ]
別の用途としては、TSD(Test System Director)と呼ばれるシステムで、Teradyne ATE機器のテストプログラムを保存することがありました。そのため、 2000年問題でソフトウェアが動作不能になるまで使用されていました。米海軍は、パイロット訓練で使用されるシミュレータであるマルチステーション空間方向感覚喪失装置を制御するためにPDP-11/34を使用していましたが、2007年に、オリジナルのPDP-11ソフトウェアを実行し、カスタムUnibusコントローラカードとインターフェースできるPCベースのエミュレータに置き換えられました。[ 46 ]
PDP-11/45は、ブルックヘブン国立研究所でJ/ψ中間子を発見した実験に使用されました。[ 47 ] 1976年、サミュエル・C・C・ティングはこの発見によりノーベル賞を受賞しました。別のPDP-11/45は、スター・ウォーズのブリーフィングシーンでデス・スターの設計図を作成するために使用されました。
ARPANET上の初期のシステムの多くはPDP-11だった。
ローカルエリアネットワーク向けには、イーサネットアダプタが利用可能だった。
DECSA通信サーバーは、DECがPDP-11/24をベースに開発した通信プラットフォームで、非同期モジュールと同期モジュールを含むユーザーがインストール可能なI/Oカードを搭載できる機能を備えていました。[ 48 ]この製品は、X.25ゲートウェイ、 SNAゲートウェイ、ルーター、ターミナルサーバーなどのネットワーク製品を構築できる初期の商用プラットフォームの1つとして使用されました。

D Bit の製品である Ersatz-11 [ 49 ]は、DOS、OS/2、Windows、Linux、またはベアメタル(OS なし) 上で動作する PDP-11 命令セットをエミュレートします。RSTS (Resource Sharing Timesharing System) やその他の PDP-11 オペレーティングシステムを実行するために使用できます。
SIMHは、 Linuxを含む多数のプラットフォーム上でコンパイルおよび実行できるエミュレータであり、DEC PDP-1、PDP-8、PDP-10、PDP-11、VAX、AltairZ80、IBMのいくつかの機種、およびその他のミニコンピュータのハードウェアエミュレーションをサポートしています。
すべてのDEC Datasystem 350モデルにはPDP-11/10 CPUが搭載されています。