このページの本文へ

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

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

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

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

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

RISCの理想と現実の狭間で
肝心の性能はパッとせず

 これらの意図するところは明白である。Datasheetの2.6、"Instruction Set"という節の冒頭にはこうある。

Parallelism in the i860 microprocessor is not transparent; rather, programmers have complete control over parallelism and therefore can archive maximum performance for a variety of computational problems.
i860マイクロプロセッサーでは、自動での並列処理は一切してくれない。そのためプログラマーは処理にあわせて最大の性能を引き出すためには、完璧に並列処理できるように制御する必要がある

 つまり、「制御方法は用意するから、後は勝手にやってね」という発想だ。RISCの思想はまさにこれであり、その思想を忠実に体現したアーキテクチャーとも言える。

 だが、物事には何事も程度というものがある。RISCプロセッサーも最初はシンプルな命令体系だったのが、次第に命令が複雑化していって、いろいろな性能改善のメカニズムを内蔵していった。これは「何でもかんでもソフトウェア任せにすればいい、というものではない」ことを、RISCプロセッサーベンダー各社が身をもって体験した結果でもある。

 i860の最初のバージョンは最大40MHzで動作して、FPUは同時に2命令を実行できた。つまり理論上の性能は80MFLOPSに達するはずだった。ところが実際にベンチマークテストをしてみると、フルにハンドアセンブルでプログラムを書いた場合でも40MFLOPSそこそこ、コンパイラーを使ってプログラムを生成すると10MFLOPS程度にしかならなかった。

 比較的最適化しやすい浮動小数点演算ですらこれだから、整数演算ともなるとさらに性能が下がっている。筆者の手元には、インテルが1989年3月にリリースした「i860 Processor Performance」というレポートがあるが、これによると整数演算性能を測る「Dhrystone 1.1」の結果は以下のようになっている。

MIPS R2000(16.67MHz) 27400 Dhry's/秒
MIPS R3000(25MHz) 42300 Dhry's/秒
Intel i860(33.3MHz) 69000 Dhry's/秒

 ただし、これはインテルが総力を挙げてフルチューンした結果らしい。搭載製品を使ってのベンチマークの結果を見ると、R3000(25MHz)を搭載するMIPS M2000マシン上での結果が51440 Dhry's/秒なのに対して、i860(40MHz)を搭載するクボタコンピューターの「Titan Vitra 800」マシン上で53705 Dhry's/秒という数字もある。つまり同一周波数だと、R3000に及ばない程度の性能でしかなかったようだ。

 またi860は、コンテキストスイッチが極めて遅いという欠点もあった。Windowsでも何でもマルチタスクのOSは、複数のプログラムをきわめて短い時間で切り替えながら処理を進めていく。こうした処理の切り替えがコンテキストスイッチだが、切り替えが入ると当然パイプラインの中身は全部破棄されて、新しいプログラムをロードする必要がある。こうした処理はそもそも性能の最適化が難しいため(最適化を主とするなら、やってはいけないような処理の塊)、i860では極端に性能低下が起きることになった。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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