PDP-10は、
ディジタル・イクイップメント・コーポレーション(DEC)が
1960年代後半から製造した
メインフレームコンピュータのファミリーです。
PDPシリーズの一つとして、1966年に最初の機種が出荷されました。
PDP-10は、
タイムシェアリングシステムを一般に浸透させたマシンとして知られています。多くの大学や研究機関で採用されたことから、
1970年代の
ハッカー文化に大きな影響を与えました。特に、MITの人工知能研究所やProject MAC、
スタンフォード大学のSAIL、
カーネギーメロン大学などが主な導入機関として挙げられます。
アーキテクチャの特徴
PDP-10のアーキテクチャは、先行するPDP-6とほぼ同じ
36[[ビット]]
ワードを採用しています。命令セットは拡張されており、
ハードウェアの実装も進歩しています。特に「byte」命令は、任意の
ビットフィールドを操作できる柔軟性を持ち、必ずしも
8[[ビット]]を意味せず「固定
ビット数の連続の並び」として扱われる点が特徴です。
機種と技術的進展
最初のプロセッサは
1968年に登場したKA10です。
トランジスタをDEC独自のフリップチップ技術でパッケージし、
バックプレーンは半自動化された
ワイヤラッピング工程で製造されました。サイクルタイムは1μ秒、加算命令の実行には2.1μ秒を要しました。
その後、
1973年にはTTL
集積回路を使用したKI10が登場し、
1975年には高性能なKL10(後にKL20)が登場しました。KL10はECLで構成され、
マイクロプログラム方式と
キャッシュメモリを採用しています。
1978年には、低価格版のKS10も登場しました。これはTTLとAm2901
ビットスライスチップで構成され、
PDP-11の
Unibusを使って周辺機器を接続しました。
各モデルの特徴
KA10: 最大メモリ容量は256Kワード(1152Kバイト)。ページング機構は持たず、2本のプロテクション/リロケーションレジスタでメモリ管理を行っていました。これにより、リードオンリーのテキストセグメントとリード/ライト可能なデータセグメントおよびスタックセグメントという、後のUNIXでも使われたプロセスモデルが可能になりました。一部の機関では、物理メモリ容量を増やし、ページング機構を追加して仮想記憶をサポートしました。
KI10とKL10: ページング方式を採用し、最大4M
ワードの大容量物理
アドレス空間をサポートしました。KI10には、1060、1070、1077などの機種があり、特に1077は2
CPUを搭載していました。KL10の初期モデル(1080, 1088など)はオリジナルのPDP-10のメモリバスを使用し、拡張メモリモジュールを追加していました。これらのモジュールは高さ180cm、幅と奥行きが70cm程度のキャビネットで、32k
ワードから256k
ワードの磁気コアメモリを搭載できました。DECSYSTEM-20 (2040, 2050, 2060, 2065) のプロセッサはKL20と呼ばれましたが、
CPUと同じ筐体内のメモリを使用していました。10xx系と20xx系のモデル間には外観上の違いがありましたが、どちらの系列でも
TOPS-10とTOPS-20の両方の
オペレーティングシステムを実行できました。
MASSbus: 20xxシリーズKLマシンでは、I/OアーキテクチャにDECの新たなバス MASSbus が採用されました。UnibusをオープンアーキテクチャとしたPDP-11の成功とは対照的に、DECはMASSbusをプロプライエタリとし、サードパーティの周辺機器の開発を抑制しました。
Model B: 2060プロセッサの Model B 版では、仮想
アドレス空間の制限を256K
ワードから32個の256K
ワード「セクション」に拡大し、命令セットも変更しました。同じKL10でも、Model A と Model B は全く別の
CPUとみなせます。TOPS-20 release 3 が最初に Model B の機能を生かし、TOPS-20 release 4 でユーザーモードのアドレッシング拡張がサポートされました。TOPS-20 release 4.1 は Model B プロセッサでのみ動作し、Model A では動作しませんでした。
KS10: KS10は Model A アーキテクチャであり、Model B アーキテクチャを実装する余裕があったにもかかわらず、低価格帯を意識した設計でした。そのため、製品寿命は非常に短くなりました。
MCA25: 2060から2065へのアップグレードで、複数セクションで動作するプログラムの性能が向上しました。
フロントエンドシステム
KLクラスのマシンを起動するには、内蔵されたフロントエンド
コンピュータ PDP-11/40 が必要でした。
PDP-11は、RP06ディスクドライブから
ブートし、メインプロセッサを起動するコマンドを入力すると、同じディスクドライブからメインプロセッサが起動します。
PDP-11はメインプロセッサの監視機能も果たしました。KSシステムも同様の手順で起動し、
Intel 8080 がメインプロセッサのマイクロコードをロードし、コンソールと遠隔監視ポートを制御しました。
命令セットアーキテクチャ
最初のPDP-6からKL-10の Model A まで、ユーザーモードの命令セットアーキテクチャはほぼ変わっていません。
アドレッシング
PDP-10の
ワード長は
36[[ビット]]、アドレスは
1[[8[[ビット]]]]です。スーパーバイザモードでは、命令アドレスは直接物理アドレスになります。ユーザーモードでは、アドレスは物理メモリアドレスに変換されます。初期の機種では、ユーザー
プロセスは
アドレス空間の先頭と最後尾を使用していましたが、後期アーキテクチャでは
ページング方式が導入され、不連続な
アドレス空間が可能になりました。
CPUの汎用レジスタにもメモリアドレスが割り当てられ、0番地から15番地に対応していました。
レジスタ
汎用の
36[[ビット]]レジスタが16本あります。0番以外のレジスタは右半分がインデックスに使われます。一部の命令はレジスタを組み合わせて使用します。条件レジスタ(ステータスレジスタ)もあり、算術命令の結果を保持し、一部の命令からアクセス可能です。
スーパーバイザモード
動作モードはスーパーバイザモードとユーザーモードの2つがあります。スーパーバイザモードではメモリ参照に加えて
入出力操作も可能です。ユーザーモードからスーパーバイザモードへの移行には、未実装ユーザー命令(UUO)を使って例外を発生させ、スーパーバイザがそれをトラップして処理します。
データ型
アーキテクチャで直接サポートされていた主なデータ型は、2の補数形式の
36[[ビット]]整数、
36[[ビット]]浮動小数点数、ハーフ
ワードです。拡張された72
ビット浮動小数点数は、複数命令連鎖で使う特別な命令でサポートされます。バイト単位のポインタも特別な命令でサポートされており、1
ワードの半分をカウンタ、半分をポインタとしてメモリ範囲を指すことができました。
命令
命令セットは非常に直交性が高く、9
ビットの命令コード、4
ビットのレジスタ番号、23
ビットの実効アドレスフィールドで構成されます。実効アドレスフィールドは、1
ビットの間接
ビット、4
ビットのレジスタ番号、
1[[8[[ビット]]]]のオフセットからなります。命令実行は実効アドレスの計算から始まり、間接
ビットが1の場合は、計算されたアドレスの内容を参照して処理を繰り返します。
命令は、算術・論理・転送、条件分岐、条件スキップの3種類に分類されます。算術・論理・転送命令には、即値からレジスタ、メモリからレジスタ、レジスタからメモリなど、様々な操作の種類があります。条件分岐命令は、レジスタの内容によって分岐先を決定します。条件スキップ命令は、レジスタとメモリの内容を比較して次の命令をスキップするか否かを決定します。シフトやローテート命令、プロシージャコール命令もあります。
スタック操作のためのPUSHとPOP、
スタックコール命令PUSHJとPOPJ、バイト操作命令が特徴的です。
ソフトウェア
当初の
[オペレーティングシステム]は単に「Monitor」と呼ばれていましたが、後に
TOPS-10と改称され、システム全体もDECsystem-10と呼ばれるようになりました。Monitorと
TOPS-10は、スタンフォードのWAITS
オペレーティングシステムやCompuServeの
タイムシェアリングシステムの基盤となりました。
一部のPDP-10はDEC以外で開発されたコンポーネントを中心に構築されたOSを動作させました。CompuServeなどの商用タイムシェアリングサービスは、自社でOSを改造して事業ニーズに対応させました。DECUSなどの強力なユーザーコミュニティも存在し、ユーザーが開発したソフトウェアを共有していました。
BBNは独自のOSであるTENEXを開発し、多くの研究機関で利用されました。DECはTENEXをKL10に移植して機能強化し、TOPS-20と名づけました。MITもITSと呼ばれる独自OSを開発しました。
Tymshareは
TOPS-10をベースにTOPS-20のようなページング機構を採用したTYMCOM-Xを開発しました。
クローン
1970年代初め、
パロアルト研究所の研究者たちは、経営陣がPDP-10の購入を許可しなかったため、PDP-10のクローンシステム「MAXC」を自前で設計しました。OSにはTENEXが移植されました。他にも、PDP-10のクローンを販売しようとするサードパーティがありましたが、あまり成功していません。ディズニーのSF映画「トロン」では、CGIにPDP-10クローンのFoonly F-1が使用されました。
CompuServeでの使用
DECsystem-10アーキテクチャのシステムを最も多く所有していたのがCompuServeで、ピーク時には200台以上が運用されていました。CompuServeは、商用アプリケーションへのアクセスを提供すると同時に、CompuServe Information Serviceを提供していました。当初はDECからシステムを購入していましたが、DECが
VAXに注力したため、Systems Conceptsから
互換機を購入しました。2007年1月現在でも、数台のPDP-10アーキテクチャのマシンが稼働していました。
CompuServeは、KLシリーズの主電源を自社設計のものに置き換え、消費電力を半分に抑えました。また、KI10プロセッサ筐体のインジケーターランプをLEDに置換し、電力消費量削減、発熱減少、電球交換の手間を削減しました。この改良はDECも採用しました。
開発中止と影響
PDP-10と
VAXスーパーミニ
コンピュータ製品ラインの競合から、DECは
VAXに注力することを決定し、
1983年にPDP-10製品ラインの開発中止を発表しました。開発中の
ハイエンドプロセッサ (Jupitor) やデスクトップ型PDP-10開発プロジェクト Minnow も中止となりました。
この出来事はITSや
ジャーゴンファイルを生んだ文化の終焉を招きましたが、
1990年代になるとPDP-10を扱った経験が
ハッカーの勲章のように扱われるようになりました。
PDP-10の
アセンブリ言語命令であるLDB(load byte)およびDPB(deposite byte)は、
プログラミング言語Common Lispの関数として残っています。また、PDP-6やPDP-10の
36[[ビット]]
ワードは、
1[[8[[ビット]]]]のLISPポインタを2つ格納でき、LISP処理系を考慮した設計と言われています。
PDP-10上では、世界初の
アドベンチャーゲーム「コロッサル・ケーブ・アドベンチャー」や
コンピュータ野球ゲーム、初期の
コンピュータRPG「Dungeon」、
ウォー・シミュレーションゲーム「Empire」、マルチユーザーダンジョンゲーム(
MUD)などが開発されました。テキストアドベンチャー『ゾーク』のオリジナルもPDP-10で作成され、インフォコムは開発用にPDP-10を複数台使用していました。
ビル・ゲイツは、学校で触れたGE-635に興味を持ち、その後CCCでPDP-10に慣れ親しみました。
ポール・アレンと共にトラフォデータという名称で交通量計測システムを開発する際にも、当時アルバイトをしていた電力事業団のPDP-10を使用しました。
1975年にAltair 8800用
BASICインタプリタを開発する際には、
ポール・アレンがPDP-10上に構築したAltair 8800エミュレータを利用しました。
エミュレーションとシミュレーション
歴史的
コンピュータのシミュレーションソフトウェアSIMHには、KS10
CPUをエミュレートするモジュールが含まれており、インターネット上で公開されているテープのコピーを使用して
TOPS-10やTOPS-20、ITSを動作させることができます。KLH10は、KL10BとKS10プロセッサをエミュレートし、それぞれのOSを動作させることが可能です。
脚注
[1] DECsystem-10/DECSYSTEM-20 Processor Reference Manual (DEC, 1982)
[2] Ceruzzi, Paul E. (2003). A History of Modern Computing (2 ed.). MIT Press.
ISBN 0-262-53203-4.
[3] C. Gordon Bell, Alan Kotok, Thomas N. Hastings, Richard Hill, The Evolution of the DECsystem-10, in C. Gordon Bell, J. Craig Mudge, John E. McNamara, Computer Engineering: A DEC View of Hardware Systems Design (Digital, Bedford, 1979)
この記事は
パブリックドメインである
ジャーゴンファイルに由来する文章を含んでいます。
関連項目
PDPシリーズ - PDP-1, PDP-6, PDP-7, PDP-8, PDP-10, PDP-11, PDP-12
ITS
TOPS-10, TOPS-20
外部リンク
36 Bits Forever!
PDP-10 stuff
PDP10 Miscellany Page
Life in the Fast AC's
Columbia University DEC PDP-10 page
Panda Programming TOPS-20 page
Living Computer Museum, ポール・アレンによるPDP-10を含むDECマシンに関するコレクションへのポータル
Empire PDP-10用FORTRAN-10ソースのzipファイル from Classic Empire
PDP-10 software archive at Trailing Edge
*
Computer World ad for Personal Mainframe