【元記事をASCII.jpで読む】

VisionFOCUS-IIの開発は
独立して進められていた

 Spectrumの話をする前に、前回の補足をしたい。HPの話題を取り上げているサイト3000 NewsWire」を掘っていたら、おもしろい話題が出てきた。

 ComputerWorldの1985年10月7日号に、John Young氏(連載521回で触れた、Hewlett氏の後を継いだCEOである)のインタビューが掲載されているのだが、このインタビュー記事に関してStan Sieler氏(HP 3000シリーズのMPE/iXというOSの開発者)がいろいろと補足説明している話が出てきた

 Sieler氏曰く、Young氏はインタビューの中で「FOCUSベースとしたHP 9000シリーズでHP 3000のエミュレーションをある程度まで可能だったものの、これは完成しなかった」としているが、実際には世間でいうエミュレーションではなく、単にFOCUS風に作り替えられなかった、という意味だとしている。

 そしてあるタイミングで、FOCUSの後継としてFOCUS-IIの開発もスタートし、これにSieler氏も加わったらしい。ちなみに前回触れたVisionは、このFOCUS-IIとは独立してスタートしたものだったようだ。

 こうした動きとはまったく別に、HP LabはRISC CPUの開発をスタートしており、1980年IBMから移籍してきたJoel Birnbaum氏が彼のアイディア(IBM時代に考えたものの、IBMでは却下されたもの)を現実のものにする作業に携わった。

 ただ早い段階でVisionがRISC CPUに適さないことが判明したらしい。VisionCISC CPU向けに最適化されすぎていた模様だ。

 いくつかのSpectrumベースマシンの上でVisionが(HP 3000のエミュレーター/シミュレーター上で)動作していたそうだが、最終的にHPはVisionを廃止することを決めたそうだ。

 もっと早くにこの決断をしていれば、ソフトウェアの遅れは多少改善したのではないか? という気もしなくはないが、大規模なシステム開発中にこうした混乱が生じるのは致し方ないことなのだろう。

遅れに遅れたSpectrumの開発

 話を1985年に戻すと、9月ごろにHPが出したプレスリリースでは「1985年4月より、社内的にはシステム開発のために100台のプロトタイプが稼働している」と発表していた。またこの頃はSpectrumの新しいHPEというソフトウェアの詳細も明らかになっている。

 HPEはMPEの後継(MPEの説明は連載520回参照)で、HP 3000(というかMPE)互換のExecute modeと、Spectrum独自のNative Modeの2つがあり、両モードProcedure Callという、要するにAPIリクエストを出すことで切り替え可能になっていた。

 詳細な情報がないので断言はできないが、普通に考えるとHPEはアプリケーションデフォルトExecutive modeで実行するので、既存のHP 3000用のアプリケーションはそのまま実行できる。

 一方で新しいアプリケーションプログラムの冒頭でProcedure Callを行なってNative Modeに切り替えることでSpectrum(とHPE)のフル性能を利用できるようになる、といった形になっていたのではないかと思われる。

 ちなみにこの当時、噂としてSpectrumは32の汎用レジスターを持ち、アドレス空間は2B(=31bit)になるのではないかと言われていたそうだ。

 1985年末のニュースレターでは、Spectrumは「Spectrumという名前の商品にはならない」と発表された。これは当然で、Spectrumはあくまで開発コード名である。ただまだ正式名称は発表されなかった。

 またSpectrumIEEE 754互換の浮動小数点形式と、HP 3000互換の浮動小数点形式をサポートしたことが明らかにされている。

1986年にようやくSpectrumが完成

 さてそのSpectrum、PA-RISCという名称で1986年に製品が発表された。SpectrumはPrecision Architectureと命名され、これを実装したRISCプロセッサーということでPA-RISCというわけだ。

 最初に発表されたのはHP 3000/930とHP 3000/950、それにHP 9000/840であるが、どちらも納入そのものは1987年後半までずれ込んだ。

画像の出典は、Google BooksアーカイブのCOMPUTERWORLD March 17, 1986

 最初のPA-RISCはTS-1と呼ばれるものだが、こちらはTTL ICを使った構成になっている。実際HP 9000/840に搭載されたCPUボードを見るとわかるが、CPUそのものの構成だけで最低5枚のボードが必要と言う体たらくである。

画像の出典は、Computermuseum der Fakultat Informatik。余談だが、英語ページにするとCPUボードの写真が出てこないので注意。

 これは一応8MHzで動作したそうだが、よく8MHzで動いたなという気すらする。それでも出荷されれば面目は経ったのだろうが、上で書いた通り実際の出荷は1987年にずれこんだわけで、踏んだり蹴ったりではある。

 HP LabにおけるPA-RISCのプロジェクトリーダーはBirnbaum氏が務めていたが、不幸なことにIBMでの経験もあって、パフォーマンスの話はMPE、つまりHP 3000シリーズソフトウェアではなくUNIXベースのものとなった。

 1986年6月のニュースレターでは、Birnbaum氏がSpectrumAmdahlやDECメインフレームと比較して互角以上であり、「OSのチューニングが行なわれていない状態でもVAX 8600よりも高速」と述べたとしているが、VAX 8600がECLベースで12.5MHz駆動だったことを考えると、やや過大評価な気がしなくもない。

 当初の予定よりやや遅れ気味ではあったが、1986年に入ってHP 3000シリーズ向けにSuprtoolとQeditという非常にユーザー数の多いツールを提供しているRobelleというベンダーに、PA-RISCベースマシンとOS一式が納入された。

 こうした有力ベンダーに先行して機器を渡して開発してもらうのはよくある話で、このRobelleへの納入もHpのFast Start Programと呼ばれる契約に基づいたものであった。

ソフトウェアに問題があり
立ち上げると数分ごとにクラッシュ

 問題は最初に届いたプロトタイプが、立ち上げると数分ごとにクラッシュし、おまけにHP 9000/37よりも遅かったことだ。悪い(?)ことに、これはHPEを稼働させているマシンでのみ発生し、HP-UX(のプロトタイプ)を動かした場合には特に問題なく動作したらしい。

 ということは問題はHPEというかソフトウェア側にあることになる。ただFast Start Programは非常に厳密な秘密保持契約とペアになっており、この秘密保持契約の条件下では一切話をできなかった。

 かくしてマシンが届くまでは定期的に顧客に状況を説明できたRobelleは、マシン到着後はPA-RISCマシンについて一切説明ができなくなった。

 もちろんHP自身もPA-RISCに関しての説明をこの後一切しなくなっており、顧客はどういう状況なのかを一切知らされることなく1年以上の放置を噛まされる羽目に陥った。

 最終的に(おそらくはHPEの書き直しに猛烈に時間がかかったものと思われる)1987年8月21日、最初の4台のHP 3000/930が出荷され、翌週以降も引き続き製品出荷が行なわれた。

 HP 3000/930のリリースによりNDAが解禁になったことを受け、Robelleは顧客に「秘密保持契約のためにずっと情報をリリースできなかったが、1年半ほど遅れて製品出荷が開始された。しかし競合製品との性能差はまったく解消されていない」と極めて率直に述べている。

 もっともこの状態でも、すべての秘密保持契約が解禁になったわけではなく、例えば顧客が自身でHP 3000/930を入手し、Robelleに「どのバージョンのSuprtool/QeditがHP 3000/930に対応しているのか」と電話をかけてきても、RobelleはHP 3000/930の存在を知っていることそのものを開示できなかったというから恐れ入る。

 最終的にこの秘密保持契約が解禁になったのは、PA-RISCベースマシンの大量生産が始まった1988年の後半だったらしい。

トラブルの元凶のソフトだけでなく
ハードウェアにも改良を加える

 ソフトウェア部隊はデスマーチの中にいたらしいが、その一方でハードウェア部隊もいつまでもTTLを使って複数枚のボードで構成されるマシンでは話にならないということはわかっており、まずはワンチップ化に向けての努力を開始した。

 最初に痕跡があるのは、CS-1と呼ばれる試作チップである。こちらは1986年中に開発できたようで、1987年2月のISSCCで発表されている。

画像の出典は、A 32b CMOS single-chip RISC type processor

 スペックはなかなか意欲的で、1,6μmのCMOSプロセスを利用し、16万4000トランジスタを集積。48bitの仮想アドレスと64MBの物理アドレスサポート、8MHz駆動で実効性能2MIPSとされた。

 パッケージは84ピンのSMP(Surface Mount Package)で、アドレスデータは32bitの多重バスで出力される構造である。性能は2MIPSなので非常に低いのだが、消費電力はわずか1Wに抑えられていた。

 このCS-1はあくまで試作、というのは性能が低すぎる(TS-1は一応実効4MIPS程度の性能があった)からという話と、この当時のHPのFabは、CMOSの量産には適していなかった(試作はできた)という2つの理由が考えられる。いずれにせよ、CS-1を搭載した製品は一切出荷されていない。

小型、高性能化した
HP 9000シリーズを出荷

 CS-1に続き、当時としてはもう少し現実的なNMOS(NMOS-III:1μmプロセス)を利用して製造されたのが1987年NS-1である。

画像の出典は、Wikimedia Commons

 こちらは最大で30MHz駆動が可能とだいぶ高速化され、性能も最大で14MIPSまで向上した。ただNS-1はTS-1の各ボードをそのままNMOS VLSIに置き換えたような形になっており、例えばキャッシュは16KBと128KB、TLBサイズ2048エントリーと4096エントリーの2種類があるという、あまり他では見ない構成になっている。

 これを利用したのはHP 9000シリーズで、1987年にHP 9000/825S・835S・840Sという名前で発表され、1988年から出荷が開始されている。

画像の出典は、HP Computer Museum

 このNS-1はプロセッサーバスとして32bit幅のCTB(CenTral Bus)が、I/O Busとして16bit幅のCIB(Channel I/O Bus)が用意されており、CTBはCPUボードそのものの動作周波数にあわせてバスのスピードも可変になっていた。

 またCTB経由で2枚のCPUを装着することも可能で、実際デュアルプロセッサー構成の製品もカタログには掲載されていた(実際に出荷されたかは謎)。パイプラインは3段で、物理アドレスは29bit対応となっている。

 これに引き続き、1989年に開発され、1990年に製品出荷が始まったのがNS-2というチップである。

画像の出典は、Wikimedia Commons

 プロセスは引き続き1μmのNMOS-IIIながらパイプラインが5段になり、またCPUボードは7チップ構成ながらオンボードキャッシュが命令/データ分離で最大1MBまで利用可能となった。

 さらにTLBも最大16384エントリーまで増強されるなどしており、動作周波数そのものは最大で30MHz(製品としては27.5MHzどまり)ながら性能はやや改善している。このNS-2はHP 9000/822・832・845・855・860の各モデルで採用された。

 HP 9000シリーズだけでなく、HP 3000シリーズにもNS-1/NS-2プロセッサーは採用された。1988年4月に発表され、19881989年に出荷されたのが、NS-1を搭載するHP 3000/925・925LX・935・955の各シリーズである。

 このうちHP 3000/925・925LXは即時出荷開始、HP 9000/935は1988年末・HP 3000/955は1989年の出荷となった。

 ローエンドの925と925LXは3.2MIPS、ハイエンドの955は11MIPSという性能で、その分価格も925LXで5万ドルから955で39万ドルとずいぶん開きがある。

 ちなみにLXは32bitの意味で、つまり925は従来のHP 3000(Classic 3000という言い方もある)とのソフトウェア互換性があるが、925LXは新しい32bit版のみの対応という形である。

 ただNS-1や後継のNS-2で、当初約束していた「HP 3000 Series 68比で互換モードでは2倍」の性能が実現できたかと言われると微妙なところで、これは次のPCXまで待つ必要があった(続く)。

ワークステーションをRISC設計に移行させたHP 業界に多大な影響を与えた現存メーカー