|
Article on other languages:
|
PDP-11 は、ディジタル・イクイップメント・コーポレーション(DEC)が1970年代から1980年代に販売した16ビットミニコンピュータシリーズ。PDP-11 は DECのPDPシリーズのPDP-8コンピュータの後継である。革新的機能をいくつか持ち、従来よりもプログラミングが容易になっていた。プログラマには好感を持たれていたが、PDP-11 の後継である 32ビット拡張のVAXに市場を奪われていった。その後、その市場のほとんどはIBM PCやApple IIなどのパーソナルコンピュータやサン・マイクロシステムズなどのワークステーションに奪われたのである。
PDP-11シリーズの特徴命令セットプログラマがPDP-11を好むのは、その直交性の高い命令セットによって命令の種類とメモリアクセス方法を分けて考えることができるからである。任意のメモリアクセス方法(アドレッシングモード)を任意の命令に使用でき、他の命令セットのように例外事項を覚えておく必要がない。 PDP-11の命令セットアーキテクチャはC言語の構文に影響を与えている。レジスタインクリメントやデクリメントを行うアドレッシングモードが C言語での --i とか i++ といった形式に対応している。もし i も j もレジスタ変数なら、*(--i) = *(j++) といった式は1個の機械語命令にコンパイルできる。単精度と倍精度の浮動小数点数の演算の命令コードが同じであったため、初期のC言語では単精度の操作が省略されていた。 論理的には、アドレッシングモードと命令セットによってベースが提供されていると言える。2オペランド命令は、2つの6ビットフィールドでオペランドを指定し(3ビットがレジスタ指定で、3ビットがアドレッシングモード指定)、4ビットで命令コードを指定する。1オペランド命令は、6ビットでオペランドを指定し、10ビットで命令コードを指定する。どの命令でもオペランド指定フィールドには任意のアドレッシングモードを指定できる。8本のレジスタ(0番から7番まで)で、7本のレジスタは任意の用途に使用可能だが、6番のレジスタはいくつかの命令ではスタックポインタとして認識され、7番のレジスタはプログラムカウンタである。プログラムカウンタがプログラマから見えているという発明とアドレッシングモードの組合せで、絶対アドレス指定と相対アドレス指定が可能となった。 16ビットワードはリトルエンディアンで格納され、最下位桁バイトが先になる。32ビットワードは特殊なエンディアン形式になっている(上位16ビットが先だが、16ビットワード内は先述の通りリトルエンディアン)。PDP-11が非常に一般化したため、この形式を PDPエンディアン と呼ぶことがある。 I/O専用バスの無い構成他の初期のコンピュータとの大きな違いとして、PDP-11 が入出力専用バスを持たないことが挙げられる。PDP-11 は Unibus というメモリバスしか持たない。入出力機器はメモリ空間にマッピングされ、特殊な I/O (入出力) 命令を必要としない。割り込みシステムはなるべく単純になるよう設計され、割り込みシーケンスでイベントを逃さないことを保証している。デバイスが割り込みを発生する場合、4本の優先度ラインのいずれかをアサートする。プロセッサは優先度毎の割り込みデイジーチェインに応答する(デイジーチェインはイベントを順番に並べる一種の論理回路である。最初の論理ゲートが最初に処理される。デイジーチェインはその優先度でのデバイス間の優先順位に従って設定される)。 PDP-11の設計では、この割り込み応答順はデバイスが物理的にCPUに近い順番になっている。CPUが応答すると、デバイスはそのベクターアドレスをバスに出力する。これは4バイトのメモリブロックのアドレスである。CPUはステータスレジスタとプログラムカウンタをベクターテーブルからロードする。このときのステータスレジスタの値は割り込みを不可とするようになっている。プログラムカウンタにロードされるアドレスは割り込みハンドラのスタートアドレスである。割り込みハンドラがデバイスに関する処理を行い、その過程で割り込んできたデバイスの割り込み信号を再設定する。最後に特殊なRTI(Return From Interrupt)命令でCPUが割り込まれた箇所に戻る(戻ったところが低優先度の割り込みの処理中の場合もある)。このような処理によって割り込みを受け付けそこなうことを防いでいる。未処理の割り込みはどの段階であってもそのまま存在していて、次のサイクルで処理可能である。割り込み処理が間違って起動されるとCPUはタイムアウトとなり、特殊な擬似割り込みを発生してユーザーに対してハードウェア故障を警告する。 大量生産のための設計PDP-11は工場でそれなりに熟練した労働者が生産できるよう設計された。あらゆる観点から個々の工程の危険性を低減している。ワイヤラッピング式のバックプレーンを使用し、プリント基板をバックプレーン上のコネクタに差し込むようになっている。バックプレーン上のコネクタ同士はワイヤラッピングで接続される。ワイヤの被覆を剥いだ銅線が端子に食い込むことで密着する。このコネクタ部分は電話の交換機などとよく似ている。 LSI-11LSI-11は大規模集積回路を使用した最初のPDP-11である。CPUはウェスタン・デジタル製の4個のLSIチップ(MPC-1600チップセット)で構成される。Unibusによく似たQ-busを使用。大きな違いは Q-bus のアドレスバスとデータバスが物理的には同じ線を共有していることである(マルチプレクサ)。I/Oデバイスのアドレッシングも若干異なり、22ビットの物理アドレス(Unibusでは 18ビット)とブロック転送モード(Unibusにはない)がある。 CPUのマイクロコードには直接RS-232C端末と通信できるデバッガが組み込まれている。マイクロコードはコンピュータの心臓部とも言うべき制御装置の一部であり、それにデバッガが組み込まれているというのは革新的であった。制御装置が機能しなければコンピュータではない。このデバッガはコンピュータのレジスタを調べたり、メモリや入出力機器を調べるのに使われた。従って、CPUが機能しない場合でもコンピュータの内部状態を調査して修理することが可能であった。この内蔵デバッガによって出費が抑えられ、スイッチとライトが並ぶ制御パネルを不要なものにしたのである(当時、起動できないコンピュータにデータを入力する手段として制御パネルがあった)。 マイクロコードには汎用ブートストラップ(とPower On Self Test)が含まれ、DEC製の全てのディスクドライブを使用可能であった。 これら2つの発明はコンピュータが動作中は使われない。ハードディスクからブートできないとき、フロッピーからのブートを試すとか、全く起動しないときデバッガを使うといった使い方になる。 PDP-11の衰退基本設計は非常に優れていて、最新技術も次々に取り入れていった。しかし、最終的に16ビットアーキテクチャではどうがんばっても超えられない限界が見えてきた。一部機種では物理アドレス空間を拡張したが、全てのプログラムは16ビットの仮想アドレス空間(64Kバイト)に制限されていた。1980年代にメモリチップが低価格化していったが、PDP-11上のソフトウェアは大容量メモリを簡単には使えなかった。 DECがPDP-11の後継としたVAX(Virtual Address Extension; PDP-11の仮想アドレス拡張)はこのような問題に対応したが、当初はハイエンドのタイムシェアリング市場をターゲットとした。インテルの8086などはセグメント方式による拡張で16ビットのアドレス空間を超え、32ビット化などという大層なことをしなくても 1Mバイトまでのメモリを扱えた。これは成長過程にあった IBM PC 互換機市場には十分だったが、80286が登場する前に1Mバイトの限界が問題となってきた。80286はセグメントアドレス空間を拡大し、80386では32ビットのリニアなアドレス空間がサポートされたのである。 技術者がより大きなアドレス空間をサポートするアーキテクチャに移っていったころ、MC68020やIntel 80386のような32ビットマイクロプロセッサが登場してきた。量産効果でこれらのマイクロプロセッサは低価格化し、PDP-11はコスト面でも太刀打ちできなくなった。PDP-11ベースのパーソナルコンピュータ DEC Professional などの試みも失敗に終わった。 DEC はPDP-11シリーズを1997年に終結させた。PDP-11のデザインとオペレーティングシステムのライセンスは Mentec 社に売却された(LSI-11ボードを Q-bus およびパソコン用に製造する会社)。
1990年代末までにDECを初めとするミニコンピュータ業界は壊滅し、UNIXとWindowsのサーバに取って代わられたのである。 アーキテクチャ詳細以下の情報はDECのPDP-11 Processor Handbookにある。(ゴードン・ベルの1969 editionを参照) 汎用レジスタのアドレッシングモード(R は汎用レジスタで 0 から 7 まで。(R) はレジスタの内容を意味する)
プログラムカウンタのアドレッシングモードプログラムカウンタ(PC)も汎用レジスタとして扱うことができ、以下のようなアドレッシングモードが使用できる:
PDP-11 命令
アセンブリ言語によるプログラミング例
PDP-11で使用された紙テープ
RT-11で動作するPDP-11マクロアセンブラによる "Hello, world!"プログラムである:
.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
このプログラムのファイル名をHELLO.MACとしたとき、アセンブルしてリンクして実行するときのコンソールの表示は以下のようになる: .MACRO HELLO ERRORS DETECTED: 0 .LINK HELLO .R HELLO Hello, world! . (RT-11のコマンドプロンプトは "." である) MACRO-11のコードのもっと複雑な例としては、Kevin Murrellの KPUN.MAC や Farba Research の JULIAN ルーチンがある。その他のPDP-11用コードのライブラリとして Metalab や Trailing Edge アーカイブがある。 これらのコードをPDP-11エミュレータで実行してみることもできる。Bob Supnik の SIMH はPDP-11だけでなく各種アーキテクチャをエミュレートでき、それらアーキテクチャのオペレーティングシステムのソフトウェアキットを含む(RT-11もある)。 PDP-11 の機種PDP-11プロセッサはI/Oバスの種類などでいくつかのグループに分類される。いずれのグループも各機種にはOEM版とエンドユーザー版がある。 Unibus 機種以下の機種は主要バスとして Unibus を使用:
Q-bus 機種以下の機種は主要バスとして Q-bus を使用:
標準以外のバスを採用した機種
PDTシリーズは「スマート(賢い)端末」としてマーケティングされたデスクトップシステムである。/110 と /130 はVT100端末と同じ筐体であった。
DEC Professional シリーズは IBMの 8088 や 80286 ベースの初期のパーソナルコンピュータに対抗しようとしたデスクトップ機である。5インチフロッピーディスクドライブを装備し、325 以外はハードディスクも装備していた。CPU は LSI-11 で、RSX-11M+ にメニューシステムを追加した P/OS が動作した。既存のPDP-11とのソフトウェア互換を意図的に阻害したため、(DEC以外の人々に予想された通り)市場では全く振るわなかった。 実際には商品化されなかった機種
特殊バージョン
クローンPDP-11は非常に人気があったため、鉄のカーテンの向こう側で無許可のクローンが何種類か製造された。一部はDECのPDP-11とピン互換があり、周辺機器やシステムソフトウェアを流用することができた。以下のような機種が知られている:
オペレーティングシステムPDP-11では以下のようなオペレーティングシステム(OS)が使用可能であった。 DEC製:
サードパーティ:
外部リンク特記しているもの以外は英文
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net