i860(80860)
AI生成コンテンツ / AI-generated contents
AI生成コンテンツ / AI-generated contents
i860(Intel 80860)は、インテル が1989年(昭和64年)に出荷した32/64ビットのRISCマイクロプロセッサである。当時のCISC対RISC論争の中で開発された渾身作でありながら、コンパイラ整備の遅れとコンテキストスイッチの重さが災いし、「駄作」の烙印を押されることになった。一方で浮動小数点演算性能は高く、スーパーコンピュータやNeXTのグラフィックスカードなど意外な分野で活躍した。
目次
CISC対RISC論争とi860の誕生
i860のダイ
1980年代前半、CPU業界はCISC (複合命令セットコンピュータ)とRISC (縮小命令セットコンピュータ)の路線対立で揺れていた。スタンフォード大学 発の「MIPS」プロジェクトからMIPS Computer Systems 社が1984年(昭和59年)に設立され、1985年(昭和60年)に「R2000」を出荷。同年にはサン・マイクロシステムズ の「SPARC」も登場し、IBM も1981年(昭和56年)に「ROMP」を完成させるなど、RISCが勢いを増していた。
インテル は当時、意欲作でありながら黒歴史となったiAPX 432 の失敗を受け、CISC の限界を痛感していた。そこでRISCの思想を全面的に取り入れ、ゼロから新規設計したのが「Intel 80860」こと「i860」である。当初は「Intel 80860」の名で呼ばれ、1989年(昭和64年)にチップの出荷が開始された。なお同名の「Intel 860」というチップセットも存在するが、こちらはXeon向けのデュアルプロセッサー対応チップセットで、i860とはまったく別の製品である。
9ユニット構成のアーキテクチャ
i860のアーキテクチャ
i860 の内部は9つのユニットで構成され、整数演算を担う「Core Execution Unit」と、浮動小数点演算を担う「Floating-Point Adder Unit」「Floating-Point Multiplier Unit」などが独立したパイプラインとして並んでいた。整数演算は32ビット幅だが浮動小数点演算ユニットは64ビット幅で、レジスターは128ビット幅を持つという、当時としては特異な構成である。

外部との接続には64ビット幅の外部データバス を採用し、内部バスは基本的に128ビット幅とされた。これにより、整数演算とは別に大容量のデータを浮動小数点ユニットへ供給できる設計となっており、理論上は当時のRISCプロセッサの中でも際立って高い浮動小数点演算性能を実現するはずであった。
外部との接続には64ビット幅の外部データバス を採用し、内部バスは基本的に128ビット幅とされた。これにより、整数演算とは別に大容量のデータを浮動小数点ユニットへ供給できる設計となっており、理論上は当時のRISCプロセッサの中でも際立って高い浮動小数点演算性能を実現するはずであった。
特異な命令体系とMIMD的動作
i860には「Dual-Operation Instruction」と呼ばれる特殊な命令形式が用意されており、これを使うと整数演算と64ビットの浮動小数点演算を同時に実行できた。いわゆる MIMD (Multi-Instruction, Multi-Data)的な動作であり、命令フォーマットとしては後の VLIW に近い性格を持つ。

浮動小数点演算はさらに「Pipelined Mode」と「Scalar Mode」という2種類の動作モードを持ち、前者は通常のパイプライン動作、後者は1命令の処理が終わるまで次の命令をフェッチしない非パイプライン動作であった。加えてパイプラインの各ステージの状態をソフトウェアから直接確認できるという、極めて特異な設計であった。

MIMD とは、複数の命令列が複数のデータを同時並行的に処理する並列方式の総称で、本来は複数のCPUを組み合わせるマルチプロセッサー環境などに使われる分類である。i860はDual-Operation Instructionにより、1個のCPU内で「1命令から複数の演算を同時発行する」という、これに近い動作を実現していた。
一方の VLIW (Very Long Instruction Word)は、複数の演算をあらかじめ1つの長い命令語にまとめてコンパイラ側で指定しておく方式で、実行時にハードウェアが並列化を判断する手間を省ける。i860のDual-Operation Instructionは、まさにこのVLIW的な発想を先取りしたものであった。
浮動小数点演算はさらに「Pipelined Mode」と「Scalar Mode」という2種類の動作モードを持ち、前者は通常のパイプライン動作、後者は1命令の処理が終わるまで次の命令をフェッチしない非パイプライン動作であった。加えてパイプラインの各ステージの状態をソフトウェアから直接確認できるという、極めて特異な設計であった。
MIMD とは、複数の命令列が複数のデータを同時並行的に処理する並列方式の総称で、本来は複数のCPUを組み合わせるマルチプロセッサー環境などに使われる分類である。i860はDual-Operation Instructionにより、1個のCPU内で「1命令から複数の演算を同時発行する」という、これに近い動作を実現していた。
一方の VLIW (Very Long Instruction Word)は、複数の演算をあらかじめ1つの長い命令語にまとめてコンパイラ側で指定しておく方式で、実行時にハードウェアが並列化を判断する手間を省ける。i860のDual-Operation Instructionは、まさにこのVLIW的な発想を先取りしたものであった。
理想と現実:コンパイラ任せの限界
i860のデータシートには「i860マイクロプロセッサでは自動での並列処理は一切してくれない。プログラマーは完璧に並列処理できるよう自ら制御する必要がある」という趣旨の記述がある。つまりハードウェアによる自動最適化を放棄し、性能を引き出す責任のすべてをコンパイラとプログラマーに委ねる、極端な設計思想であった。

実際に33.3MHz駆動の i860 でベンチマークを取ると、理論上は80MFLOPSに達するはずが、フルにハンドアセンブルしても40MFLOPS程度、コンパイラを使うと10MFLOPS程度にまで性能が落ち込んだ。比較的最適化しやすい浮動小数点演算でこの有様であり、整数演算性能はさらに低かった。

加えて i860 はコンテキストスイッチが極めて遅いという欠点も抱えていた。コンテキストスイッチとは、CPUが複数のプログラムを切り替えて実行する際に、実行中のプログラムの状態(レジスターの内容やプログラムカウンターなど)を保存し、次に動かすプログラムの状態を復元する処理を指す。Windowsなどマルチタスク環境では短い時間で頻繁に発生するが、i860は状態の保存・復元を高速化する専用の仕組みを持たず、切り替えのたびにパイプラインの中身がすべて破棄されて再ロードが必要になるため、こうした処理で極端な性能低下を招いた。
実際に33.3MHz駆動の i860 でベンチマークを取ると、理論上は80MFLOPSに達するはずが、フルにハンドアセンブルしても40MFLOPS程度、コンパイラを使うと10MFLOPS程度にまで性能が落ち込んだ。比較的最適化しやすい浮動小数点演算でこの有様であり、整数演算性能はさらに低かった。
加えて i860 はコンテキストスイッチが極めて遅いという欠点も抱えていた。コンテキストスイッチとは、CPUが複数のプログラムを切り替えて実行する際に、実行中のプログラムの状態(レジスターの内容やプログラムカウンターなど)を保存し、次に動かすプログラムの状態を復元する処理を指す。Windowsなどマルチタスク環境では短い時間で頻繁に発生するが、i860は状態の保存・復元を高速化する専用の仕組みを持たず、切り替えのたびにパイプラインの中身がすべて破棄されて再ロードが必要になるため、こうした処理で極端な性能低下を招いた。
i960との比較
i960 (80960)
AI生成コンテンツ / AI-generated contents
AI生成コンテンツ / AI-generated contents
インテルは同時期に、もうひとつのRISC CPU「i960」も開発していた。実はi960の方が先に完成しており(1985年にテープアウトし1986年(昭和61年)出荷)、i860とは別の黒歴史をたどっている。i960はALU・乗除算・メモリーの3実行ユニットを備えたシングルチップ 商用スーパースカラRISCとして世界初の実装とされ、組み込み分野で幅広く使われた。
i860 と i960 は同じインテル製RISCでありながら性格はまったく異なる。i860は浮動小数点演算性能に特化した汎用・科学技術計算向けの設計、i960はレジスターウインドウによる低オーバーヘッドの関数呼び出しを武器とした組み込み向けの設計であり、住み分けが図られていた。
スーパーコンピュータ・ワークステーションへの採用
iPSC/860
AI生成コンテンツ / AI-generated contents
AI生成コンテンツ / AI-generated contents
i860は整数演算こそ振るわなかったが、浮動小数点演算は同時期のRISCプロセッサよりも高速だったため、ハイパフォーマンスコンピューティング (HPC)用途で活路を見出した。米ロスアラモス国立研究所 に納入された256プロセッサー構成の「iPSC/860」がその代表例である。
その後継として、最大2048プロセッサー(計画では最大4096プロセッサー)を集約した「Intel Paragon」も開発され、スーパーコンピューター分野でi860アーキテクチャを大規模に展開した。こうした並列計算機では、浮動小数点演算に特化したi860の設計がうまく生かされたと言える。
3Dグラフィックスカード「NeXT Dimension」への採用
NeXT Dimension
AI生成コンテンツ / AI-generated contents
AI生成コンテンツ / AI-generated contents
意外な用途として、後にアップル に買収されるNeXT Computer 社が最初にリリースしたワークステーション「NeXT Cube」用のグラフィックスカード「NeXT Dimension」にも i860 が採用された。NeXT Cubeはグラフィック処理をすべてPostScript で実現する意欲的な製品だったが、これを処理できるグラフィックスコントローラーが当時存在せず、処理の大半をCPUで行っていた。

i860 は複数のピクセルを1命令で扱えるSIMD 的なグラフィックスパイプラインを備えていたため、これを利用することで高速にPostScriptの実行が可能になった。SIMDとは、1つの命令で複数のデータに対して同一の演算を同時に行う処理方式で、画像処理のように大量のピクセルへ同じ演算を繰り返す用途と相性がよく、後のMMX やSSE といった拡張命令の基礎となる考え方でもある。汎用CPUとしては振るわなかったi860だが、こうした特殊用途では独自の存在感を示した。
i860 は複数のピクセルを1命令で扱えるSIMD 的なグラフィックスパイプラインを備えていたため、これを利用することで高速にPostScriptの実行が可能になった。SIMDとは、1つの命令で複数のデータに対して同一の演算を同時に行う処理方式で、画像処理のように大量のピクセルへ同じ演算を繰り返す用途と相性がよく、後のMMX やSSE といった拡張命令の基礎となる考え方でもある。汎用CPUとしては振るわなかったi860だが、こうした特殊用途では独自の存在感を示した。
i860の終焉
1989年(昭和64年)に登場した初代「i860XR」は1μmプロセスで製造され、25/40MHzで動作した。後継の「i860XP」は0.8μmプロセスに微細化されて40/50MHz駆動となり、キャッシュ容量の増加やマルチプロセッサー対応の高速な外部バスなど性能改善が図られたが、根本的なソフトウェアの最適化が進まない限り性能は上がらなかった。

1990年代に入るとi386 やその後継製品が急速に性能を上げていき、i860は1990年代中盤にひっそりと製品ラインから姿を消した。黒歴史入りの要因は「やりすぎ」に尽きる。RISCの理想に忠実すぎたわりに、コンパイラなどのソフトウェア開発が後手に回ったため、性能が発揮されなかったのである。

もっとも、この教訓は無駄にはならなかった。後の64ビットCPU「Itanium」の開発では、当初からかなりの資金を投入してソフトウェアの開発も同時に進められている。結果はともかくとして、i860はソフトウェアの重要性を身をもって示した点に価値があったと言えるだろう。

i860の開発と並行して、インテル は x86系の i386・i486・Pentium の開発も着実に進めており、汎用CPU市場ではソフトウェア資産の互換性を武器にしたこれらのx86系CPUがシェアを伸ばし続けていた。性能面で苦戦する i860 とは対照的なこの成功は、結果としてインテルが汎用CPUの主軸をx86に据え置く判断を後押しすることになった。

なお、i860の主任アーキテクトを務めたレス・コーン(Les Kohn)氏はその後インテルを離れ、NexGen社でx86互換CPU「Nx586」「Nx686」の設計を主導した。このNx686コアは後にAMDに買収されて「K6」の基盤となっており、i860の開発で培われた技術は思わぬ形で後年のx86互換CPU開発にも受け継がれている。
1990年代に入るとi386 やその後継製品が急速に性能を上げていき、i860は1990年代中盤にひっそりと製品ラインから姿を消した。黒歴史入りの要因は「やりすぎ」に尽きる。RISCの理想に忠実すぎたわりに、コンパイラなどのソフトウェア開発が後手に回ったため、性能が発揮されなかったのである。
もっとも、この教訓は無駄にはならなかった。後の64ビットCPU「Itanium」の開発では、当初からかなりの資金を投入してソフトウェアの開発も同時に進められている。結果はともかくとして、i860はソフトウェアの重要性を身をもって示した点に価値があったと言えるだろう。
i860の開発と並行して、インテル は x86系の i386・i486・Pentium の開発も着実に進めており、汎用CPU市場ではソフトウェア資産の互換性を武器にしたこれらのx86系CPUがシェアを伸ばし続けていた。性能面で苦戦する i860 とは対照的なこの成功は、結果としてインテルが汎用CPUの主軸をx86に据え置く判断を後押しすることになった。
なお、i860の主任アーキテクトを務めたレス・コーン(Les Kohn)氏はその後インテルを離れ、NexGen社でx86互換CPU「Nx586」「Nx686」の設計を主導した。このNx686コアは後にAMDに買収されて「K6」の基盤となっており、i860の開発で培われた技術は思わぬ形で後年のx86互換CPU開発にも受け継がれている。
主要スペック
| 項目 | 仕様 |
|---|---|
| メーカー | インテル |
| 発表 | 1989年出荷開始(i860XR) |
| データ幅 | 整数32ビット、浮動小数点64ビット(内部レジスター128ビット) |
| 外部データバス | 64ビット |
| 実行ユニット | Core Execution/Floating-Point Adder/Floating-Point Multiplier他 計9ユニット |
| 命令セット | RISC(Dual-Operation Instruction対応) |
| 動作モード | Pipelined Mode/Scalar Mode |
| CPUクロック | 25~50MHz(製品により異なる) |
| 製造プロセス | 1μm(i860XR)~0.8μm(i860XP) |
| 理論性能 | 最大80MFLOPS(40MHz動作時) |
| 生産終了 | 1990年代中盤 |
CPUの歴史
| 発表年 | メーカー | CPU名 | ビット数 | 最大クロック |
|---|---|---|---|---|
| 1970年 | Garrett AiResearch | MP944 (軍用) | 20bit | 375KHz |
| 1971年 | インテル | 4004 | 4bit | 750KHz |
| 1974年 | インテル | 8080 | 8bit | 3.125MHz |
| 1975年 | モステクノロジー | MOS 6502 | 8bit | 3MHz |
| 1976年 | ザイログ | Z80 | 8bit | 20MHz |
| 1978年 | インテル | 8086 | 16bit | 10MHz |
| 1979年 | モトローラ | MC6809 | 8bit | 2MHz |
| 1979年 | ザイログ | Z8000 | 16bit | 10MHz |
| 1980年 | モトローラ | MC68000 | 16bit | 20MHz |
| 1983年 | NEC | V30 | 16bit | 16MHz |
| 1984年 | インテル | 80286 | 16bit | 12MHz |
| 1985年 | インテル | 80386 | 32bit | 40MHz |
| 1985年 | インテル | i960 | 32bit | 100MHz |
| 1985年 | サン・マイクロシステムズ | SPARC | 32bit | 150MHz |
| 1985年 | エイコーン | ARM1 | 32bit | 6MHz |
| 1986年 | MIPS | R2000 | 32bit | 15MHz |
| 1987年 | ザイログ | Z280 | 16bit | 12MHz |
| 1987年 | モトローラ | MC68030 | 32bit | 50MHz |
| 1988年 | MIPS | R3000 | 32bit | 40MHz |
| 1989年 | インテル | 80486 | 32bit | 100MHz |
| 1989年 | インテル | i860 | 32bit | 50MHz |
| 1990年 | モトローラ | MC68040 | 32bit | 40MHz |
| 1991年 | MIPS | R4000 | 64bit | 200MHz |
| 1992年 | DEC | Alpha 21064 | 64bit | 200MHz |
| 1993年 | IBM, モトローラ, Apple | PowerPC 601 | 32bit | 120MHz |
| 1993年 | インテル | Pentium | 32bit | 300MHz |
| 1994年 | IBM, モトローラ, Apple | PowerPC 603 | 32bit | 300MHz |
| 1995年 | サイリックス | Cyrix Cx5x86 | 32bit | 133MHz |
| 1995年 | AMD | Am5x86 | 32bit | 160MHz |
| 1995年 | サン・マイクロシステムズ | UltraSPARC | 64bit | 200MHz |
| 1999年 | IBM, モトローラ | PowerPC G4 | 32bit | 1.67GHz |
| 1999年 | AMD | Athlon | 32bit | 2.33GHz |
| 2000年 | インテル | Pentium 4 | 32bit | 3.8GHz |
| 2001年 | インテル | Itanium | 64bit | 800MHz |
| 2003年 | AMD | Opteron | 64bit | 3.5GHz |
| 2003年 | インテル | Pentium M | 32bit | 2.26GHz |
| 2006年 | SCE,ソニー,IBM,東芝 | Cell | 64bit | 3.2GHz |
| 2006年 | インテル | Core Duo | 32bit | 2.33GHz |
| 2006年 | インテル | Core 2 Duo | 64bit | 3.33GHz |
| 2008年 | インテル | Core i9/i7/i5/i3 | 64bit | 5.8GHz |
| 2017年 | AMD | Ryzen | 64bit | 5.7GHz |
| 2020年 | Apple | M1/M2/M3/M4/M5 | 64bit | 3.49GHz |
| 2023年 | インテル | Core Ultra 9 / 7 / 5 | 64bit | 5.1GHz |
参考書籍
|
|
忘れ去られたCPU黒歴史 | ||
| 著者 | 大原 雄介 | ||
| 出版社 | 角川アスキー総合研究所 | ||
| サイズ | 単行本 | ||
| 発売日 | 2012年07月10日頃 | ||
| 価格 | 1,540円(税込) | ||
| ISBN | 9784048867719 | ||
参考サイト
- Intel i860:Wikipedia(英語版)
(この項おわり)


