i860は高性能だがコンパイラ整備の遅れで主流になれず

1989年出荷開始
i860
i860(80860)
AI生成コンテンツ / AI-generated contents
i860(Intel 80860)は、インテル が1989年(昭和64年)に出荷した32/64ビットのRISC (リスク) マイクロプロセッサである。当時のCISC対RISC論争の中で開発された渾身作でありながら、コンパイラ整備の遅れとコンテキストスイッチの重さが災いし、「駄作」の烙印を押されることになった。一方で浮動小数点演算性能は高く、スーパーコンピュータやNeXTのグラフィックスカードなど意外な分野で活躍した。

目次

CISC対RISC論争とi860の誕生

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のアーキテクチャ
i860 の内部は9つのユニットで構成され、整数演算を担う「Core Execution Unit」と、浮動小数点演算を担う「Floating-Point Adder Unit」「Floating-Point Multiplier Unit」などが独立したパイプラインとして並んでいた。整数演算は32ビット幅だが浮動小数点演算ユニットは64ビット幅で、レジスターは128ビット幅を持つという、当時としては特異な構成である。

外部との接続には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的な発想を先取りしたものであった。

理想と現実:コンパイラ任せの限界

i860のデータシートには「i860マイクロプロセッサでは自動での並列処理は一切してくれない。プログラマーは完璧に並列処理できるよう自ら制御する必要がある」という趣旨の記述がある。つまりハードウェアによる自動最適化を放棄し、性能を引き出す責任のすべてをコンパイラとプログラマーに委ねる、極端な設計思想であった。

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

加えて i860コンテキストスイッチが極めて遅いという欠点も抱えていた。コンテキストスイッチとは、CPUが複数のプログラムを切り替えて実行する際に、実行中のプログラムの状態(レジスターの内容やプログラムカウンターなど)を保存し、次に動かすプログラムの状態を復元する処理を指す。Windowsなどマルチタスク環境では短い時間で頻繁に発生するが、i860は状態の保存・復元を高速化する専用の仕組みを持たず、切り替えのたびにパイプラインの中身がすべて破棄されて再ロードが必要になるため、こうした処理で極端な性能低下を招いた。

i960との比較

i960 (80960)
i960 (80960)
AI生成コンテンツ / AI-generated contents
インテルは同時期に、もうひとつのRISC CPU「i960」も開発していた。実はi960の方が先に完成しており(1985年にテープアウトし1986年(昭和61年)出荷)、i860とは別の黒歴史をたどっている。i960はALU・乗除算・メモリーの3実行ユニットを備えたシングルチップ 商用スーパースカラRISCとして世界初の実装とされ、組み込み分野で幅広く使われた。
i860i960 は同じインテル製RISCでありながら性格はまったく異なる。i860は浮動小数点演算性能に特化した汎用・科学技術計算向けの設計、i960はレジスターウインドウによる低オーバーヘッドの関数呼び出しを武器とした組み込み向けの設計であり、住み分けが図られていた。

スーパーコンピュータ・ワークステーションへの採用

iPSC/860
iPSC/860
AI生成コンテンツ / AI-generated contents
i860は整数演算こそ振るわなかったが、浮動小数点演算は同時期のRISCプロセッサよりも高速だったため、ハイパフォーマンスコンピューティング (HPC)用途で活路を見出した。米ロスアラモス国立研究所 に納入された256プロセッサー構成の「iPSC/860」がその代表例である。
その後継として、最大2048プロセッサー(計画では最大4096プロセッサー)を集約した「Intel Paragon」も開発され、スーパーコンピューター分野でi860アーキテクチャを大規模に展開した。こうした並列計算機では、浮動小数点演算に特化したi860の設計がうまく生かされたと言える。

3Dグラフィックスカード「NeXT Dimension」への採用

NeXT Dimension
NeXT Dimension
AI生成コンテンツ / AI-generated contents
意外な用途として、後にアップル に買収されるNeXT Computer 社が最初にリリースしたワークステーション「NeXT Cube」用のグラフィックスカード「NeXT Dimension」にも i860 が採用された。NeXT Cubeはグラフィック処理をすべてPostScript で実現する意欲的な製品だったが、これを処理できるグラフィックスコントローラーが当時存在せず、処理の大半をCPUで行っていた。

i860 は複数のピクセルを1命令で扱えるSIMD (シングルインストラクションマルチプルデータ)  的なグラフィックスパイプラインを備えていたため、これを利用することで高速にPostScriptの実行が可能になった。SIMDとは、1つの命令で複数のデータに対して同一の演算を同時に行う処理方式で、画像処理のように大量のピクセルへ同じ演算を繰り返す用途と相性がよく、後のMMXSSE といった拡張命令の基礎となる考え方でもある。汎用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系の i386i486Pentium の開発も着実に進めており、汎用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 (軍用)20bit375KHz
1971年インテル40044bit750KHz
1974年インテル80808bit3.125MHz
1975年モステクノロジーMOS 65028bit3MHz
1976年ザイログZ808bit20MHz
1978年インテル808616bit10MHz
1979年モトローラMC68098bit2MHz
1979年ザイログZ800016bit10MHz
1980年モトローラMC6800016bit20MHz
1983年NECV3016bit16MHz
1984年インテル8028616bit12MHz
1985年インテル8038632bit40MHz
1985年インテルi96032bit100MHz
1985年サン・マイクロシステムズSPARC32bit150MHz
1985年エイコーンARM132bit6MHz
1986年MIPSR200032bit15MHz
1987年ザイログZ28016bit12MHz
1987年モトローラMC6803032bit50MHz
1988年MIPSR300032bit40MHz
1989年インテル8048632bit100MHz
1989年インテルi86032bit50MHz
1990年モトローラMC6804032bit40MHz
1991年MIPSR400064bit200MHz
1992年DECAlpha 2106464bit200MHz
1993年IBM, モトローラ, ApplePowerPC 60132bit120MHz
1993年インテルPentium32bit300MHz
1994年IBM, モトローラ, ApplePowerPC 60332bit300MHz
1995年サイリックスCyrix Cx5x8632bit133MHz
1995年AMDAm5x8632bit160MHz
1995年サン・マイクロシステムズUltraSPARC64bit200MHz
1999年IBM, モトローラPowerPC G432bit1.67GHz
1999年AMDAthlon32bit2.33GHz
2000年インテルPentium 432bit3.8GHz
2001年インテルItanium64bit800MHz
2003年AMDOpteron64bit3.5GHz
2003年インテルPentium M32bit2.26GHz
2006年SCE,ソニー,IBM,東芝Cell64bit3.2GHz
2006年インテルCore Duo32bit2.33GHz
2006年インテルCore 2 Duo64bit3.33GHz
2008年インテルCore i9/i7/i5/i364bit5.8GHz
2017年AMDRyzen64bit5.7GHz
2020年AppleM1/M2/M3/M4/M564bit3.49GHz
2023年インテルCore Ultra 9 / 7 / 564bit5.1GHz

参考書籍

表紙 忘れ去られたCPU黒歴史
著者 大原 雄介
出版社 角川アスキー総合研究所
サイズ 単行本
発売日 2012年07月10日頃
価格 1,540円(税込)
ISBN 9784048867719

参考サイト

(この項おわり)
header