このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第116回

忘れ去られたCPU黒歴史 渾身のRISC CPUが駄作 i860

2011年08月29日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

特異な構造と動作モードを持つi860

 当初は「Intel 80860」という名前で呼ばれていたこの製品。途中から「i860」に名前が切り替わり、1989年にチップの出荷が開始された。ちなみにi860と並行して、もうひとつのRISCベースCPUである「i960」も開発されている。実はi960の方が先に出荷されているのだが(1985年に完成して1986年に出荷)、こちらは別の黒歴史化しているので、次回にご紹介したい。

 i860のアーキテクチャーは、なかなか特異な構造であった。i860内部は以下の9つのユニットがあり、下の図のような構造で接続されていた。

「i860 Microprocessor Datasheet」より引用した構造図

  • Core Execution Unit(整数演算)
  • Floating-Point Control Unit(浮動小数点演算制御)
  • Floating-Point Adder Unit(浮動小数点加算)
  • Floating-Point Multiplier Unit(浮動小数点乗算)
  • Graphics Unit(グラフィックス処理)
  • Paging Unit(メモリーのページング制御)
  • Instruction Cache(命令キャッシュ)
  • Data Cache(データキャッシュ)
  • Bus and Cache Control Unit(バス/キャッシュ制御)

 整数演算は32bitだがFPUは64bitであり、しかもFPU用のレジスターは128bit幅になっている。これに合わせて、内部バスは基本128bit幅である。

 整数演算ユニットと浮動小数点加算/乗算が、別々のパイプラインとして構成されているというのも特異であるが、これを制御する命令体系はさらに特異である。i860には「Dual-Operation Instruction」というモードが用意されており、これを使うと、整数演算演算と64bitの浮動小数点演算を同時に行なえる。いわゆるMIMD(Multi-Instruction、Multi-Data)で、命令フォーマット的にはVLIWになる。

 その浮動小数点演算は、さらに「Pipelined Mode」と「Scalar Mode」という2種類の動作モードを持つ。Pipelinedモードはいわゆる通常のプロセッサーパイプラインであり、例えば5段のパイプラインなら、5つの連続した命令が順次パイプラインの中で処理される。

 一方のScalar Modeでは、ひとつの命令処理が終わるまで、次の命令のフェッチにかからないという、「非」パイプライン動作をする。ほとんどの浮動小数点演算は両方のモードをサポートしているが、一部の命令はScalar Modeのみで動作する。

 さらに特異なのは、パイプラインの各ステージの状態を、ソフトウェアから確認できることだ。「PSR」(Processor Status Register)や「EPSR」(Extended Processor Status Register)、「FSR」(Floating-point Status Register)といった制御用のレジスターには、パイプラインの各ステージで問題があった場合に、細かくその状態を示すビットが用意されていた。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン