| デザイナー | インテル |
|---|---|
| ビット | 32/64ビット |
| 紹介された | 1989 |
| デザイン | RISC、VLIW |
| タイプ | ロード-ストア |
| エンコーディング | 修理済み |
| 分岐 | 比較と分岐 |
| エンディアン | バイ |
| ページサイズ | 4KB |
| 拡張機能 | 64 ビット グラフィックス ユニット |
| レジスター | |
| 汎用 | 32 32ビット |
| 浮動小数点 | 32 32ビット (16 64ビット) |
Intel i860 ( 80860とも呼ばれる)は、 1989年にIntelが発表したRISC マイクロプロセッサ設計である。1980年代初頭のIntel iAPX 432の失敗以来、完全に新しいハイエンド命令セットアーキテクチャに対するIntelの最初の試みの1つである。これは世界初の100万トランジスタチップであった。[1]かなりのファンファーレとともにリリースされたため、組み込みシステムの一部のニッチ分野で成功した以前のIntel i960をやや目立たなくした。i860は商業的に成功することはなく、プロジェクトは1990年代半ばに終了した。
実装
Intel i860 XR マイクロプロセッサ (33 MHz 版) | |
| 一般情報 | |
|---|---|
| 発売 | 1989 |
| 製造中止 | 1990年代半ば |
| 共通メーカー |
|
| パフォーマンス | |
| 最大CPU クロックレート | 25MHz~40MHz |
| キャッシュ | |
| L1キャッシュ | 4KB(I)+8KB(D) |
| アーキテクチャと分類 | |
| 命令セット | インテル i860 |
| 物理的仕様 | |
| コア |
|
| 歴史 | |
| 後継 | i860XP の場合 |
Intel i860 マイクロプロセッサ (50 MHz 版) | |
| 一般情報 | |
|---|---|
| 発売 | 1991 |
| 製造中止 | 1990年代半ば |
| 共通メーカー |
|
| パフォーマンス | |
| 最大CPU クロックレート | 40MHz~50MHz |
| キャッシュ | |
| L1キャッシュ | 16+16 KB |
| アーキテクチャと分類 | |
| 命令セット | インテル i860 |
| 物理的仕様 | |
| トランジスタ |
|
| コア |
|
| 歴史 | |
| 前任者 | i860XR の |
i860 アーキテクチャの最初の実装は、25、33、または 40 MHz で動作するi860 XRマイクロプロセッサ (コード名N10 ) です。第 2 世代の i860 XPマイクロプロセッサ (コード名N11 ) では、マルチプロセッサ システムでのキャッシュの一貫性を確保するために、4 MB のページ、より大きなオンチップ キャッシュ、第 2 レベル キャッシュのサポート、より高速なバス、およびバス スヌーピングのハードウェア サポートが追加されました。XPのプロセス シュリンク (1 μm から 0.8 CHMOS V へ) により、クロックが 40 MHz と 50 MHz に増加しました。[3]両方のマイクロプロセッサは、アプリケーション プログラム用に同じ命令セットをサポートしていました。
技術的特徴
i860 は、当時としてはユニークな機能をいくつか組み合わせたが、最も顕著なのは、超長命令語(VLIW) アーキテクチャと高速浮動小数点演算の強力なサポートである。[4]この設計では、 32 ビット ALU を使用する「コア」命令と、浮動小数点加算器、浮動小数点乗算器、または 64 ビット整数グラフィックス ユニットで動作する「浮動小数点またはグラフィックス」命令の 2 つのクラスの命令を使用している。システムには、ALU、浮動小数点加算器、浮動小数点乗算器、およびグラフィックス ユニット用に別々のパイプラインがあった。1 クロックあたり 1 つの「コア」命令と 1 つの「浮動小数点またはグラフィックス」命令をフェッチしてデコードできる。デュアル オペレーション浮動小数点命令 (後続のデュアル オペレーション命令間で値を転送する) を使用する場合、1 クロックあたり最大 3 つの操作 (1 つの ALU、1 つの浮動小数点乗算、および 1 つの浮動小数点加算または減算) を実行できる。[1] [5]
すべてのデータ バスは少なくとも 64 ビット幅でした。たとえば、キャッシュへの内部メモリ バスは 128 ビット幅でした。
「コア」クラスの命令は、32 個の 32 ビット整数レジスタを使用します。ただし、「浮動小数点またはグラフィックス」命令は、浮動小数点ユニットが 32 個の 32 ビット、16 個の 64 ビット、または 8 個の 128 ビット浮動小数点レジスタとしてアクセスできるレジスタ ファイル、またはグラフィックス ユニットが 16 個の 64 ビット整数レジスタとしてアクセスできるレジスタ ファイルを使用します。
「コア」ユニットは命令のフェッチを担当し、通常の「シングル命令」モードでは、1 サイクルあたり 1 つの 32 ビット「コア」命令または 1 つの 32 ビット「浮動小数点またはグラフィックス」命令をフェッチできます。ただし、デュアル命令モードで実行する場合、命令キャッシュは、32 ビット「コア」命令と 32 ビット「浮動小数点またはグラフィックス」命令のペアで構成される VLIW 命令としてアクセスされ、64 ビット バスを介して同時にフェッチされます。[5]
インテルはこの設計を「i860 64ビットマイクロプロセッサ」と呼んだ。[6]
Intel i860命令は8ビットから128ビットのデータサイズで動作した。[7]
グラフィックスは、基本的な64ビット整数演算に加えて、SIMDのような命令をサポートしています。たとえば、64ビット整数データパスは、複数のピクセルを8ビットピクセル、16ビットピクセル、または32ビットピクセルとして表すことができます。 [5] i860での経験は、後にIntelのPentiumプロセッサに追加されたMMX機能に影響を与えました。
機能ユニットへのパイプラインはプログラムアクセス可能 ( VLIW ) であり、パイプラインを埋めるためにはコンパイラがオブジェクトコード内で命令を注意深く順序付ける必要がある。従来のアーキテクチャでは、これらの役割は CPU 自体のスケジューラによって実行時に処理されていたが、これらのシステムの複雑さにより、初期の RISC 設計ではその適用が制限されていた。i860 は、この役割をオフチップのコンパイラに移すことでこれを完全に回避する試みであった。これにより、i860 は機能ユニットに多くのスペースを割くことができ、パフォーマンスが向上した。そのアーキテクチャの結果、i860 は特定のグラフィックスおよび浮動小数点アルゴリズムを非常に高速に実行できたが、汎用アプリケーションでのパフォーマンスは低下し、効率的なプログラミングが困難であった (以下を参照)。
i860 には遅延なし分岐命令と遅延分岐命令の両方があります。遅延分岐が行われると、分岐先命令に制御が移る前に次の命令が実行されます。つまり、i860 には分岐遅延スロットが 1 つあります。[8]
パフォーマンス
理論上は、シングルチップソリューションとしては素晴らしいパフォーマンスでしたが、実際のパフォーマンスはまったくそうではありませんでした。当時はおそらく認識されていなかった問題の1つは、実行時のコードパスを予測するのが難しいことです。つまり、コンパイル時に命令を適切に順序付けることが非常に難しくなります。たとえば、2つの数値を加算する命令は、それらの数値がキャッシュにない場合、かなり長い時間がかかりますが、プログラマーにはそれらの数値がキャッシュにあるかどうかを知る方法がありません。間違った推測が行われた場合、パイプライン全体が停止し、データを待ちます。i860の設計全体は、コンパイラーがこのタスクを効率的に処理することを前提としていましたが、実際にはほとんど不可能であることがわかりました。XPバージョンでは、理論上は単精度と倍精度の両方で約60〜80 MFLOPSのピーク性能を実現できましたが、 [9]手動で記述したアセンブラコードでは最大で約40 MFLOPSしか達成できず、ほとんどのコンパイラーでは10 MFLOPsを達成することさえ困難でした。[10]後のItaniumアーキテクチャもVLIW設計であったが、コンパイラが十分に最適化されたコードを生成できないという問題に再び悩まされた。
もう 1 つの深刻な問題は、コンテキスト切り替えを迅速に処理するソリューションがなかったことです。i860 には複数のパイプライン (ALU および FPU 部分用) があり、割り込みによってパイプラインがあふれ、すべてを再ロードする必要が生じる可能性があります。これには最良の場合でも 62 サイクル、最悪の場合はほぼ 2000 サイクルかかりました。後者は 40 MHz で 1/20000 秒 (50 マイクロ秒) であり、CPU にとっては永遠の時間です。これにより、i860 は汎用 CPU としてはほとんど役に立たなくなりました。
終焉
コンパイラが改良されるにつれて、i860 の全体的なパフォーマンスも同様に向上しましたが、その時点では他のほとんどの RISC 設計のパフォーマンスはすでに i860 を上回っていました。
1990 年代後半、Intel は RISC 製品ライン全体をXScaleと呼ばれるARMベースの設計に置き換えました。紛らわしいことに、860 という番号はそれ以来、Intel Xeon (ハイエンドPentium ) システムのマザーボード制御チップセットと Core i7 のモデル に再利用されています。
Andy Grove 氏は、 i860 が市場で失敗したのは、Intel が手薄になったためだと示唆した。
ほぼ同時に発表する 2 つの非常に強力なチップがありました。486 は主に CISC テクノロジに基づいており、すべての PC ソフトウェアと互換性があります。i860 は RISC テクノロジに基づいており、非常に高速ですが互換性がありません。私たちはどうしたらよいかわかりませんでした。そこで、市場に判断を任せようと考え、両方を発表しました。... 私たちが曖昧な態度を取ったため、お客様は Intel が本当は 486 と i860 のどちらを標榜しているのか疑問に思うようになりました。
— アンディ・グローブ、[11]
アプリケーション

当初、i860はIntel iPSC/860などの少数のスーパーコンピュータでのみ使用されていました。Intelは後にi860をワークステーションマイクロプロセッサとして販売し、MIPSやSPARCアーキテクチャに基づくマイクロプロセッサなどと競合しました。沖電気のOKI Station 7300/30 [12]とStardent Vistra 800 [13] Unixワークステーションは、 UNIX System V /i860を実行する40MHzのi860 XRに基づいていました。 [14] Hauppauge 4860 [15]とOlivetti CP486 [16]は、同じマザーボードにIntel 80486とi860を搭載していました。マイクロソフトは当初、社内で設計された i860XR ベースのワークステーション (コード名Dazzle ) 上でWindows NTとなるものを開発し、その後MIPS ( Microsoft Jazz )、Intel 80386およびその他のプロセッサに NT を移植しました。NT という名称は i860XR のコード名 "N-Ten" に由来すると主張する人もいます。[17]
i860 はワークステーションの世界ではグラフィック アクセラレータとして使われていました。たとえばNeXTdimensionでは、完全なPostScriptスタックを実行するMach カーネルの縮小版を実行していました。しかし、プロジェクトのPostScript部分は完成せず、結局はカラー ピクセルを移動するだけに終わりました。この役割では、i860 の設計はコア プログラムをキャッシュにロードして完全に「予測可能」にすることができ、コンパイラが順序を正しく設定できるため、かなりうまく機能しました。Truevisionは、 Targa および Vista フレームバッファ カードで使用することを目的とした i860 ベースのアクセラレータ ボードを製造しました。Pixarは、カード上で実行するためのRenderManのカスタム バージョンを製造し、386 ホストよりも約 4 倍高速に動作しました。もう 1 つの例はSGIのRealityEngineで、ジオメトリ エンジンに多数の i860XP プロセッサを使用しました。より多くの汎用 CPU が i860 のパフォーマンスに匹敵するようになり、Intel が汎用コンピューティング用の Pentiumプロセッサに重点を移したため、この種の使用も徐々に消えていきました。
Mercury Computer Systems は、マルチコンピュータに i860 を使用しました。2 台から 360 台のコンピューティング ノードが回線交換 ファット ツリーネットワークに常駐し、各ノードには他のノードがマップできるローカル メモリがあります。この異機種混合システムの各ノードは、i860、PowerPC 、または 3 つのSHARC DSPのグループです。アセンブリ言語で記述された信号処理関数のライブラリを顧客に提供することで、i860 から優れたパフォーマンスが得られました。このハードウェアは、 9Uのラックスペースに最大 360 台のコンピューティング ノードを収容できるため、航空機搭載レーダー処理などのモバイル アプリケーションに適しています。
1990年代初頭、ストラタステクノロジーズは独自のVOSオペレーティングシステムを搭載したi860ベースのサーバー、XA/Rシリーズを開発しました。 [18]
また、1990 年代には、Alliant Computer Systems がi860 ベースの FX/800 および FX/2800 サーバーを開発し、Motorola 68000 ISA をベースにした FX/80 および FX/8 シリーズを置き換えました。Alliant と Mercury の両コンピューティング システムは、SIR-Cミッションのために NASA/JPL で頻繁に使用されました。
米軍はi860をコプロセッサとして数多くの航空宇宙およびデジタル信号処理アプリケーションに使用し、1990年代後半まで使用されていました。[19]
参考文献
- ^ ab Perry, Tekla (2022-07-02). 「最初の100万トランジスタチップ:エンジニアの物語」. IEEE Spectrum . 2022-07-05時点のオリジナルよりアーカイブ。2022-07-05に取得。
- ^ Lewnes, Ann、「Intel386 アーキテクチャは今後も存続する」、Intel Corporation、Microcomputer Solutions、1989 年 7 月/8 月、2 ページ
- ^ 「i860 XP - 第2世代のi860」(PDF) 。 2018年8月20日時点のオリジナル(PDF)からアーカイブ。2015年2月22日閲覧。
- ^ Kohn, Les; Margulis, N. (1989 年 8 月)。「Intel i860 64 ビット マイクロプロセッサの紹介」。IEEE Micro . 9 ( 4)。IEEE Computer Society: 15–30。doi : 10.1109/40.31485。S2CID 21922034。
- ^ abc i860 64 ビット マイクロプロセッサ プログラマーズ リファレンス マニュアル(PDF)。サンタクララ、カリフォルニア州、米国: Intel。1989 年。2022年 2 月 23 日時点のオリジナルよりアーカイブ(PDF) 。
- ^ Grimes, Jack; Kohn, L.; Bharadhwaj , R. (1989 年 7 月)。「Intel i860 64 ビット プロセッサ: 3D グラフィックス機能を備えた汎用 CPU」。IEEEコンピュータグラフィックスおよびアプリケーション。9 (4)。IEEE コンピュータ ソサエティ: 85–94。doi :10.1109/38.31467。S2CID 38831149。
- ^ 「チップコレクション - i860 マイクロプロセッサ - スミソニアン協会」。スミソニアン協会。
- ^ 「i860™ 64ビットマイクロプロセッサプログラマーズリファレンスマニュアル」(PDF) . p. 70(5-11) . 2023年12月21日閲覧。
- ^ Oleg Yu. Repin、Alexei S. Pylkin (2000)。「Intel i860: 64 ビット マイクロプロセッサ」。sscc.ru、ICMMG。2009 年 6 月 23 日時点のオリジナルよりアーカイブ。2013 年9 月 27 日閲覧。
- ^ Bailey, DH; Barszcz, E.; Fatoohi, RA; Simon, HD; Weeratunga, S. (1990). Intel Touchstone Gamma プロトタイプのパフォーマンス結果(PDF) (レポート). NASA Ames Research Center. 2016-12-21 のオリジナル(PDF)からアーカイブ。2016-07-10に取得。
- ^ Olson, Sander (2004 年 6 月 3 日). 「Intel の 486 CPU が 15 周年を迎える」. Geek.com . 2008 年 5 月 25 日時点のオリジナルよりアーカイブ。
- ^ 「沖電気 OKIステーション7300/30 - コンピュータ博物館」.
- ^ 「Intel i860 - ここからそこへ」 2010年。
- ^ 「KUBOTA Computer/Stardent AVSstation Titan Vistra 800」。2014年5月14日時点のオリジナルよりアーカイブ。2014年5月14日閲覧。
- ^ 「GeekDot - Hauppauge 4860」。2008年3月20日。
- ^ “GeekDot - オリベッティ CP486”. 2011 年 8 月 16 日。
- ^ Thurrott, Paul (2003-01-24). 「Windows Server 2003: The Road To Gold」. Win super site . 2011-07-20 にオリジナルからアーカイブ。2013-09-02に取得。
- ^ 「Stratus Machine History」。2003年6月12日時点のオリジナルよりアーカイブ。
- ^ 「StackPath」 1997年5月。
- Margulis, Neal (1990)。i860マイクロプロセッサ アーキテクチャ。Osborne /McGraw-Hill。ISBN 978-0-07-881645-1。
外部リンク
- 多くのi860拡張カード
- i860 の画像と説明。
- Rhodehamel, Michael W. (1989)。「i860 マイクロプロセッサのバス インターフェイスとページング ユニット」。1989 IEEE 国際コンピュータ設計会議の議事録: コンピュータとプロセッサにおける VLSI。米国マサチューセッツ州ケンブリッジ。pp. 380–384。doi : 10.1109 /ICCD.1989.63392。
