Intel_i860
[Wikipedia|▼Menu]

Intel i860インテル i860 マイクロプロセッサ(50MHz XP版)
生産時期1989年から1990年代半ばまで
生産者インテル
CPU周波数25 MHz から 50 MHz
コア数1
テンプレートを表示

Intel i860(または80860)はインテルRISCマイクロプロセッサであり、1989年にリリースされた。i860(とi960)は、インテルにとって1980年代i432以来の完全に新しいハイエンドISAについての試みであった。i860は鳴り物入りで登場し、多くの人が設計が優れていると考えていたi960のリリースを覆い隠したほどだったが、i960が組み込みシステムに活路を見出したのに対して、i860は商業的には全く成功せず、プロジェクトは1990年代中ごろに終結させられた。

アンドルー・グローヴはi860の市場での失敗の原因はインテルにあるとして、次のように述べている。

「我々は同時期に登場した2つの非常に強力なチップを手にしていた。486は主にCISCテクノロジーに基づき、それまでのPCソフトウェアと互換性があった。i860はRISCテクノロジーに基づき、非常に高速だが何とも互換性がなかった。我々はどうすべきかわからなかった。だから両方を市場に投入し、市場に決めさせようとした。…我々の曖昧な態度のせいで、顧客はインテルが486を押しているのか、i860を押しているのか、いぶかしく思うことになった。」

?アンドルー・グローヴ[1]
目次

1 技術的特性

2 性能 (問題)

3 バージョンと実際の使用例

4 脚注・出典

5 参考文献

6 外部リンク

技術的特性

i860は当時ではユニークだったいくつかの特徴を備えている[2]。特にVLIWアーキテクチャと高速浮動小数点数演算が挙げられる。ひとつの32ビットALUとひとつの64ビットFPUを備えており、FPUは3つの部分(加算器、乗算器、グラフィックスプロセッサ)から成っている。ALUと乗算器、加算器に対してそれぞれ命令パイプラインを備えていて、最大3命令を1クロックサイクルで実行することができる。

バスは64ビットかそれ以上であった。キャッシュを結ぶ内部メモリバス128ビット幅である。CPUもFPUも32本の32ビットレジスタを持ち(うち1つは必ず0を返すゼロレジスタ)、それをFPUは16本の64ビットレジスタとして使った。ALUに対する命令は一度にふたつフェッチして外部バスをフルに使っている。このため、インテルはこのデザインを「i860 64ビット マイクロプロセッサ」と称した[3]

i860の命令は8ビットから128ビットまでのデータサイズを扱うことができる[4]

グラフィックスユニットをマイクロプロセッサチップに内蔵するのは当時としては珍しかった。これは基本的にはFPUレジスタを8本の128ビットレジスタとして使った64ビット整数演算ユニットである。様々なSIMD的な命令と基本的な64ビット整数演算機能を持っていた。このi860での経験が後のPentiumプロセッサのMMX機能に影響を与えた。

i860の非常にユニークな機能のひとつとして、各機能ユニットのパイプラインに対してプログラムからアクセス可能であったことが挙げられる。そのため、コンパイラが注意深く命令を並べてパイプラインが満たされた状態にする必要があった。一般的なアーキテクチャではCPU上のスケジューラがその役割を担うが、初期のRISC設計ではシステムの複雑さが用途を限定してしまう。i860はこれを丸ごとチップからコンパイラへ移してしまった。これによりコアが単純になり、他の機能をチップに組み込むことができるようになるため、性能向上につながる。結果としてi860はグラフィックスと浮動小数点については高速に実行できたが、一般的な用途では満足できる性能を出すようなプログラムを書くのが困難だった(後述)。
性能 (問題)

紙上の性能はシングルチップとしては非常に印象的なものだったが、実際の性能は全く違っていた。何が問題なのか当時は不明だったが、実行時のコードの流れを予測することが難しかったためと思われる。つまり、コンパイル時に命令を正しく並べることが非常に困難だったのである。例えば、ふたつの数値の加算命令はその数値がキャッシュ上になければ非常に時間がかかる。しかし、プログラマにはその数値がキャッシュにあるかどうかは分からないのである。もし予想が外れれば、データを待つためにパイプラインが停止する。i860のデザインはこういったことをコンパイラが効果的に行うことを前提としていて、それは不可能だったことが実証されている。XP版では理論上単精度でも倍精度でも60から80MFLOPS[5]の性能が見込まれたが、アセンブリ言語で書いたプログラムでもせいぜい40MFLOPSで、コンパイラを使うと10MFLOPSも難しかった。

もうひとつの重大な問題はコンテキストスイッチを高速に行う手段がなかったことである。i860はいくつかのパイプラインを持っていて、割り込みによってそれを壊すので、復帰時に元に戻さなければならなかった。この処理には最低でも62クロックサイクルを要し、最悪の場合2,000クロックサイクルにもなった。これはクロック周波数40 MHzでは2万分の1秒(50μ秒)であり、CPUにとってはとてつもなく長い。このためi860は汎用CPUになれなかったのである。
バージョンと実際の使用例 i860 XP-50 CPU が3個搭載された基板。インテルのスーパーコンピュータ Paragon XP/S(英語版) で使われたもの。 Intel i860 XR

このチップにはふたつのバージョンがあった。コードネームN10のXRとコードネームN11のXPである。XPには大きなキャッシュ、二次キャッシュ、より高速なバスと、並列計算のためのバススヌーピング機能とキャッシュ・コンシステンシ機能を持っていた。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:31 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef