PDP-10

PDP-10:1970年代ハッカー文化を育んだメインフレーム



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-11Unibusを使って周辺機器を接続しました。

各モデルの特徴


KA10: 最大メモリ容量は256Kワード(1152Kバイト)。ページング機構は持たず、2本のプロテクション/リロケーションレジスタでメモリ管理を行っていました。これにより、リードオンリーのテキストセグメントとリード/ライト可能なデータセグメントおよびスタックセグメントという、後のUNIXでも使われたプロセスモデルが可能になりました。一部の機関では、物理メモリ容量を増やし、ページング機構を追加して仮想記憶をサポートしました。
KI10とKL10: ページング方式を採用し、最大4Mワードの大容量物理アドレス空間をサポートしました。KI10には、1060、1070、1077などの機種があり、特に1077は2CPUを搭載していました。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

もう一度検索

【記事の利用について】

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

【リンクついて】

リンクフリーです。