タンデムコンピューターズ 歴史
しかし問題は、既存製品のベンダー、顧客、サードパーティー製ソフトウェアをどうやって移行させるかである。一部ソフトウェアは移植性を考慮して書かれており、単に再コンパイルすればよい。他のソフトウェアは再コンパイルだけでは移行できない。HPの研究所は、エミュレータやオブジェクトコードの自動変換で古いバイナリを新しいマシンで実行する方法を考案し、それを広く公開した。同様の技法はAppleがMC68000系からPowerPCへと移行する際や、DECがVAXからAlphaへ移行する際にも用いられた。
HP 3000 の移行計画での問題として、プロセッサの移行と同時にOSを新たな言語で書き直そうとしていた点がある。これについてはエミュレーションを使おうとはしなかった。しかし、この書き換えは予想していたよりも何年も長くかかった。そのため、HPのRISCプロセッサはMPEがリリース可能となる前に古くなってしまった。タンデムはこの間違いから学んだ。
ビジネス上の理由から、タンデムはHPのPA-RISCやサンのSPARCを採用できなかった。そこでミップスと提携し、R3000とその最適化コンパイラを採用することにした。その後、NonStop シリーズはMIPSアーキテクチャを採用し続けることになった。
1991年、タンデムは Cyclone/R、またの名を CLX/R をリリース。これはCLXのコンポーネントを基にした低価格のミッドレンジシステムだが、CPUにR3000を採用している。市場に素早く投入するため、MIPS本来のソフトウェアを全く付属せずに出荷された。NSK (NonStop Kernel) というオペレーティングシステムとSQLデータベースに含まれるソフトウェアはTNSのスタックマシンの機械語にコンパイルされている。それらのオブジェクトコードは、カーネルのインストール時に Accelerator と呼ばれるツールを使って一部最適化されたMIPSの等価な命令列に変換される。比較的重要性の低いプログラムは事前に変換せず、TNSの持つコードインタプリタ（エミュレータ）が解釈して実行する。この移行技法は成功し、今も使われ続けている。どのソフトウェアもそのまま移行でき、ミッドレンジとしては性能もよく、プログラマは命令セットの違いを無視でき、機械語レベルでのデバッグも問題なく実施できる。Cyclone/R はその後のリリースでネイティブなMIPSのコードで書き直されたNSKを使うようになり、さらに高速化した。
R3000もその後のマイクロプロセッサも、内部のエラーチェックはほとんどしておらず、タンデムのニーズには不十分だった。そこで Cyclone/R ではR3000を2個ロックステップで実行し、全く同じデータスレッドを動作させた。この際のロックステップは一般的なものとは異なり、チェッカー・プロセッサがプライマリ・プロセッサから1サイクル遅れた形で実行する。マイクロプロセッサをロックステップ実行するには、そのチップが完全に決定論的に動作するよう設計しておく必要がある。隠れた内部状態は、チップをリセットすることで完全にクリアされなければならない。さもなくばリセット後しばらくたってから、2つのチップが目に見えない原因で障害が発生したわけでもないのに同期から外れることになる。チップ設計者も、製造時のチップの検査にそのような原則が有効だということには同意するだろう。しかし、新しいマイクロプロセッサはそのあたりに常に問題があり、ミップスとタンデムは問題解決のために何カ月も共同作業する必要に迫られた。
1993年、MIPS R4400を使用した NonStop Himalaya Kシリーズをリリース。ネイティブモードのNSK、Cyclone システムのコンポーネントを使った完全な拡張性を備えている。バスは相変わらず Dynabus、Dynabus+、独自I/Oバスであり、性能的には限界を迎えていた。
1994年、NSKにUnix風のPOSIX環境 Open System Services が加えられた。もともとの Guardian のシェルとABIはそのまま利用可能である。
1997年、タンデムは NonStop Himalaya Sシリーズ をリリースした。Sシリーズは NonStopファミリの基本設計を変更したシステムであり、I/O にも CPU間接続にも新たに ServerNet と呼ばれる相互接続バスを使用している。 Dynabus や FOX が CPU をリング状に接続したのに対して、ServerNet は完全な P2P ネットワークであり、より高速に動作し、網状の冗長性を持たせることができる。タンデムは ServerNet の利用を他社にも勧め、後に業界標準となるInfiniBandの基盤となった。
Sシリーズでは、MIPS の R4400 や R10000、R12000、R14000 が使用された。
MIPSアーキテクチャの後期のコアはシリコングラフィックス (SGI) の資金で設計された。しかし、インテルの Pentium Pro がRISCに対して性能的に優位に立つようになり、同時にSGIの業績も悪化した。R10000以降、MIPSアーキテクチャのハイエンドのコア設計は予算が削減され、単にプロセスルールを縮小してクロックを上げるだけとなっていった。そのためタンデムはNonStopシリーズのCPUを再び別のアーキテクチャに変更することを迫られた。
ジェームズ・トレイビッグは1996年に業績悪化するまでタンデムのCEOを務めた。
コンパックのx86サーバ部門は早くからタンデムの ServerNet/Infiniband 技術を採用していた。1997年、コンパックはタンデムコンピューターズを買収し、NonStopシリーズの顧客ベースを引き継ぐことでローエンドPC一辺倒のコンパックの事業形態の転換を図ろうとした。1998年、コンパックはさらにもっと大きな企業であるディジタル・イクイップメント・コーポレーション (DEC) を買収。DEC Alpha を採用したRISCサーバと OpenVMS および Tru64 UNIX の顧客ベースを引き継いだ。そのころタンデムはNonStopシリーズを MIPS R12000 からインテルの新たなマイクロプロセッサ Itanium に移行させようとしていた。しかしDECを買収したコンパックはNonStopをAlphaに移行させ、ハイエンドサーバの製品系列を整理しようとした。ところがコンパックは2001年にAlphaの新規開発をやめ、未知数のItaniumの採用を決定。Alpha版のNonStopは出荷されることなく終わった。そのためNonStopの移行プロジェクトは再スタートを余儀なくされ、Itanium 2 をターゲットにすることになった。
2001年、ヒューレット・パッカード (HP) もPA-RISCから（もともとHPも設計に加わっていた）Itaniumへ移行することを選択した。コンパックとHPが合併を発表すると間もなく、類似する製品ラインの統合整理の計画が発表された。この議論を呼んだ合併は2002年5月に正式に行われた。統合には痛みを伴い、DECやHPの独自文化は破壊されたが、NonStop部門とその顧客を維持することの重要性はわかっていた。
言ってみればタンデムは、HPに触発されて創業し、HPをライバルとして成長し、HPに吸収されることで故郷に帰ったようなものだが、そのHPはかつてのHPと同一ではなかった。
NSKベースのNonStop製品をMIPSからItaniumへ移行させると、HP Integrity NonStop サーバというブランドで販売することになった。この場合の "Integrity" はHPのサーバが以前から使っていた名称であり、タンデムの Integrity シリーズとは無関係である。
Itanium 2 (McKinley) はクロックレベルでロックステップ実行することはできない。そのため Integrity NonStop ではもっと長い時間間隔、割り込みの時点やソフトウェアの中間同期ポイントでチップの状態比較を行う。中間同期ポイントは分岐命令を数えて n 回目の分岐で自動的に同期ポイントに入るようになっており、NonStop用コンパイラが長いループの中に明示的に挿入している。マシンには二重化または三重化の冗長性を持たせることができ、2個または3個の物理プロセッサで1つの論理プロセッサを構成する。三重化版は最も高い信頼性を求めている顧客向けである。この新たなチェックポインティング方式をNSAA (NonStop Advanced Architecture) と呼ぶ。
スタックマシンからMIPSへの移行のときのように、顧客のソフトウェア資産はソースを書き換えることなく移行された。ネイティブモードのソースコードは再コンパイルによりItanium向けのオブジェクトに変換。さらに古いネイティブでないソフトウェアは、スタックマシン向けのオブジェクトのままである。これはMIPSの際と同様にコード変換技術を使って自動的にItanium上に移行された。
Integrity NonStop はHPの品揃えの中でも最も大規模で高信頼性を求める顧客に対応している製品である。OSは NonStop OS と呼ばれるようになっており、Javaサポート、Visual Studio や Eclipse といった開発環境の統合といった拡張がなされている。