ホビー用途ではまだ現役!? 懐かしのDECご長寿コンピュータ「PDP-11」:マイクロプロセッサ懐古録(1)(2/4 ページ)
最新の電子機器には載らないものの、昔懐かしのプロセッサはホビー用途などでひそかに息づき、エンジニアたちの「遊び心」をくすぐっている。本連載では、そんな「いにしえ」のプロセッサを取り上げ、紹介していく。まずはDEC(Digital Equipment Corporation)が開発し、28年もの長きにわたり生産された「PDP-11」を取り上げる。
DEC最初のLSI搭載ミニコンピュータ
この後も周辺機器を充実させたり、メモリ容量を増やしたり、CPU基板そのものも改良を加えるなどして1970年代前半を過ごす。1975年のPDP-11/50にはコアメモリに変えてMOSメモリ、PDP-11/55にはバイポーラメモリが採用されるなど、メモリのアクセス高速化による性能改善も施されたが、1970年代後半になるとさすがにそろそろ図2の筐体では大きすぎる、というニーズが出てくるようになった。そもそも図2の筐体のサイズを決めていたのはUNIBUSの拡張カードの幅である。そこでもっとバス幅を減らして筐体のサイズを小さくしようということで開発されたのがQBUSである。幅を減らすといってもアドレス16bit(のちに18/22bit)、データ16bitという構成はUNIBUSと変わらない。なのだがアドレス/データを多重化する(つまり時分割でアドレスとデータをやりとりする)ことで、信号線の本数を半分に減らすことができた。実際Quad HeightのQBUSボードだとUNIBUSカードの3分の2の大きさだが、通常の拡張カードだとDual Height(UNIBUSカードの3分の1の大きさ)まで削減できるようになった。
筐体を小型化する以上、CPUボードも相応に小型化する必要がある。ただ当時のDECの技術力では、その時点でKA-11や後継のKB-11の回路を全部LSIに収めるのは無理であった。その代わりDECは、当時WDC(Western Digital Corporation)からリリースされていた「MCP-1600」という16bit MCUをベースにKB-11相当の機能を実装する事を選んだ。MCP-1600はマイクロプログラミング方式、つまり自分でマイクロコードを記述して自由な命令セットを構築する事が可能なプロセッサということで、DECはMCP-1600にPDP-11の命令セットをインプリメントしてCPUボードを構築する。DECではこれを「LSI-11」と称しているが、これがDECにとって最初のLSIを利用したミニコンピュータということになった。
ただLSI-11の性能はお世辞にも高いとはいえなかった。同じ1975年に登場したPDP-11/70の性能は、0.6VUPS(VUPS:VAX Unit of Performance。1977年に発表された32bitのVAX11/780を利用してDhrystoneを実施した時のスコアを1.0とした場合の相対性能)だったのに対し、LSI-11は0.05VUPSでしかなかった。PDP-11/70の12分の1の性能でしかない事になる。理由の一つは、そもそもMCP-1600そのものが遅かったことだ。動作周波数は最大3.3MHzと当時にしてはそう悪くなかったが、実際にはCP1611 RALU(Register ALU)、CP1621 CON(Control)、CP1631 MICROM(Mask-programmed Microcode ROM)の3つから構成され、命令ごとにCP1621はCP1631からMicrocodeを読みだして処理を行うのだから、早いわけはない。またレジスタも別チップだから、ここでもレイテンシがばかにならないことになる。
ただこのLSI-11を搭載したPDP-11/03は、性能はともかくとして従来よりも安価かつ低い消費電力でPDP-11互換を実現できるということで、組み込み用途向けなどで人気が出た製品となった。こうした動向を見据えた上で、DECの開発陣はあらためてPDP-11のLSI化を進めることになる。ちなみに1979年に出たPDP-11/44に搭載されたKD11-Zというのは、ディスクリートICベースの最後のCPUボードであるのだが、メインにAMDの「Am2901」BSP(Bit Slice Processor)を使っているのが他と異なる点である。Am2901は4bit幅のALUチップだが、他に乗算機能付きALUやステータス/シフトコントローラー、バストランシーバー、アドレスシーケンサーなどさまざまなチップも同時に提供されており、これらを利用してやはり好きな命令セットのプロセッサを構築できるというものだった。このKD11-Zは0.42VUPSの性能を発揮し、同時に登場した「F-11」(0.12〜0.18VUPS)よりも高性能ではあったが、後継となる「J-11」は0.45〜1.0VUPSの性能を発揮したから、この路線を追求しなかったのは結果的に正解かと思う。
「F-11」の登場
さて最初に登場したF-11、コード名はFonzだが、Control/Dataが別チップで構成されるのはLSI-11に似ている。ただしそれが一つのDIPパッケージに収められているのが他と異なるところである。開発の指揮は、後にDECのPC Server Business Segmentのバイスプレジデントなどを務めたDuane Dickhut氏が執ったが、論理設計はともかく、物理設計はWDCのベテランであったJohn Wallace氏が独立して興したPrecision Microdesignというコンサルテーション会社が担当。MMUの設計は故Dan Dobberpuhl博士(Jim Keller氏の親分にあたる方)が担当している。
F-11の目標はLSI-11の3倍の性能だったそうで、実際に先のVUPS値で言えば最終的に3.6倍まで向上させたので目標は達成できたことになる。加えてLSI-11ではオプションというかCPUとは別の拡張カードとして実装されたFPUとかMMUなども、全部搭載可能となった。
ちなみに製造はDECの自社工場ではなく(当時のDECはまだLSIを製造できる設備を持っていなかった)、AMI Semiconductor(後にonsemiが買収)の6μm NMOSプロセスで製造され、Clock cycle 280ナノ秒、つまり3.6MHzで駆動したという。図3がそのF-11を搭載したプロセッサカード、図4がその説明である。なおJ-11というのはチップセット全体の総称であり、Photo03で言えば右側のDIPパッケージの上に載っているのがDC302(Data)とDC303(Control)、MMUのDIPパッケージはDC304となっている。ちなみにPDP-11/23はQBUSマシンだったのでそのまま接続できたが、これにUNIBUS用のアダプターを組み合わせたのがPDP-11/24となっている。
Copyright © ITmedia, Inc. All Rights Reserved.