Intel i860(別名80860)は、
インテルが
1989年にリリースした
RISCマイクロプロセッサです。当時の
ハイエンド市場を狙った製品で、i960とともに
インテルの新しいISAへの挑戦でした。しかし、i960が
組み込みシステムで成功を収めたのに対し、i860は商業的には失敗に終わり、
1990年代半ばにはプロジェクトが終了しました。
アンドルー・グローヴは、i860の市場での失敗は
インテル自身にあると指摘しています。
技術的特徴
i860は当時としては珍しい特徴をいくつか備えていました。特に
VLIWアーキテクチャと高速な浮動小数点数演算能力が際立っていました。
アーキテクチャ: 32ビットALUと64ビットFPUを搭載し、FPUは加算器、乗算器、グラフィックスプロセッサの3つの部分で構成されていました。各ユニットはパイプライン化されており、最大3命令を1クロックサイクルで実行できました。
バス: 6
4ビット以上の外部バスを持ち、内部メモリバスは
128ビット幅でした。
CPUと
FPUはそれぞれ32個の
32ビットレジスタを持ち、
FPUはこれを16個の6
4ビットレジスタとして利用しました。ALUへの命令は一度に2つフェッチされ、外部バスを最大限に活用しました。
命令: 8ビットから128ビットまでのデータサイズを扱うことができました。
グラフィックスユニット:
マイクロプロセッサチップにグラフィックスユニットを内蔵している点が当時としては画期的でした。このユニットは、
FPUレジスタを8つの
128ビットレジスタとして使用する6
4ビット整数演算ユニットであり、
SIMD的な命令と基本的な6
4ビット整数演算機能を提供していました。この経験が後のPentiumプロセッサの
MMX機能に影響を与えました。
パイプライン: i860のユニークな点の一つは、各機能ユニットのパイプラインにプログラムから直接アクセスできる点でした。このため、コンパイラは命令を注意深く並べてパイプラインを常に満たす必要がありました。これは従来のCPUではスケジューラが行う役割でしたが、i860ではコンパイラにその役割を移すことで、コアをシンプルにし、他の機能を組み込む余地を作りました。これにより、グラフィックスや浮動小数点演算において高速な処理能力を発揮できる一方、汎用的な用途でのプログラム作成は非常に困難でした。
性能 (問題点)
理論上の性能は非常に印象的でしたが、実際の性能は大きく劣っていました。主な問題は、実行時のコードの流れを予測するのが難しかったためです。コンパイラが命令を最適に並べることが非常に困難でした。例えば、キャッシュにないデータに対する演算は大幅な遅延を引き起こしますが、プログラマはデータがキャッシュにあるかどうかを事前に知ることができません。このため、パイプラインが頻繁に停止し、性能が大きく低下しました。
浮動小数点演算: 理論上は単精度・倍精度で60~80M
FLOPSの性能が期待されましたが、
アセンブリ言語で書かれたプログラムでも40M
FLOPS程度、
コンパイラを使用すると10M
FLOPSに満たないこともありました。
コンテキストスイッチ: コンテキストスイッチを高速に行う手段がなかったことも重大な問題でした。i860は複数のパイプラインを持っており、割り込みによってそれらが中断されると、復帰時に元の状態に戻す必要がありました。この処理には最低でも62クロックサイクル、最悪の場合2,000クロックサイクルもかかり、汎用CPUとしての実用性を大きく損ねました。
バージョンと実際の使用例
i860には2つのバージョンが存在しました。
XR (コードネームN10): 25MHzまたは40MHzで動作
XP (コードネームN11): 40MHzまたは50MHzで動作し、大容量キャッシュ、二次キャッシュ、高速バス、並列計算向けの機能が追加
主な使用例
大規模計算機:
ロスアラモス国立研究所のiPSC/860などの大規模計算機で使用されました。
ワークステーション: インテルはi860をワークステーションのCPUとしてMIPSアーキテクチャと競合させようとしましたが、成功しませんでした。マイクロソフトはi860ベースのワークステーションでWindows NTの開発を行っていましたが、最終的にはMIPSとIntel 386で動作しました。
UNIXワークステーション: 沖電気のOKI station 7300やクボタ
コンピュータのTitan VISTRAなど、i860をメイン
CPUとする
UNIXワークステーションも存在しました。
グラフィックスアクセラレータ: NeXTDimensionやSGI RealityEngineなど、グラフィックスアクセラレータとしても使用されました。特に、キャッシュに収まるサイズのプログラムや予測可能な処理においては良好な性能を発揮しました。
並列計算機: Mercury Computer Systemsはi860を
並列計算機に採用しました。
アセンブリ言語で書かれた信号処理ライブラリが提供され、良好な性能が得られました。軍用機上のレーダー処理などに利用されました。
*
無停止コンピュータ: ストラタスはi860ベースの無停止
コンピュータ XA/R シリーズを開発しました。
その後
1990年代後半には、
インテルはARMベースの
XScaleで
RISCビジネス全体を置き換えました。また、
インテルの
Xeonシステム用のマザーボードのチップセットとしてi860という名前が再利用され、混乱を招くこともあります。
まとめ
Intel i860は、その先進的なアーキテクチャと高速な浮動小数点演算能力で注目を集めましたが、
コンパイラ技術の限界と
コンテキストスイッチの問題から商業的には失敗に終わりました。しかし、その技術は後のプロセッサ開発に大きな影響を与え、特にグラフィックス処理における先進的な取り組みは、その後の技術革新への足がかりとなりました。