Azulが独自CPUをやめた理由 / ISAは差別化要因でなくなったのか

Azul Systemsは、Java実行専用のコンピュータを売っている会社で、従来は専用に設計したCPUを自社ハードウェアに用いていた。

上のスライドでは、独自アーキテクチャを用いる利点を以下のように纏めている。

  • 完全にECC保護されたレジスタとキャッシュ/メモリ
  • Hardware Transactional Memoryのサポート
  • タグ付きのLoad/Store
  • リード/ライトバリア

しかし、Azulは独自CPUの開発をやめて、x86の仮想化を用いたソリューションに移行するとしている。

要するにEPTやNested-Pagingがリード/ライトバリアのような特殊なメモリ要件を満たすのに十分な機能を持っていることを示唆している。また、Azulは大量のMMU操作を行うための効率的なLinux向けインターフェースをオープンソースにしている。微妙にわかりづらいことになっているが、Azulは独自CPUを止めて、

の2方向の製品を提供したいようだ。今のところZingは前者に相当する。
...という部分はよく理解できるとして、HTMとタグ付きLoad/Storeは要らなかったんだろうかというのが個人的な疑問。

独自ISAの生きる道

x86やARMの今後には問題無いだろう。”それ以外"は絶妙な状況にある。

  • 独自ISAをやめるケース

Azulのように、過去に独自のISAを採用していたベンダが、既存のアーキテクチャで同様の機能を実現するようになるケースが有る。
元AGEIA、現nVidiaPhysXは、従来PPUと呼ばれるカスタムMIPSプロセサによって実現されていたが、現在の実装はGPU上で動作する。
従来8bitマイクロコントローラを手掛けていたベンダが提供する32bitプラットフォームでは、MicrochipのPIC32がMIPSとなった。AtmelはAVR32という独自アーキテクチャを展開する一方、AT91のようなARM SoCも提供している。

  • やめないケース + Linuxに適応するケース

UbicomのIPシリーズは従来チップ内蔵RAMに集中していたが( http://pc.watch.impress.co.jp/docs/2003/0624/epf04.htm )、現在はそのマルチスレッド構成は変えないまま、タスクの一つとしてLinuxを動作させている( http://developer.ubicom.com/wiki/index.php/Theory_of_Operation )。このため、低ピン数のような実装の特徴は一部犠牲にすることとなった。(ただしISA自体は独自のものを使いつづけているように見える)
AtmelはAT91(ARM)とAVR32(独自)の両方にLinuxを提供している。

  • やめないケース

DSP/GPUアーキテクチャは代表格だろう。
しかし、OpenCLのような標準や開発環境の近代化のおかげで、VLIWのような既存のコンパイラにとって不得意なアーキテクチャは敬遠される傾向にある。
DSPベンダは従来からC/C++言語対応を求められてきたため、多くは自前のコンパイラを持っており、アーキテクチャの大きな変更は避けているように思える。GPUベンダはnVidia/ATIともに、より"C言語フレンドリ"で"GPGPU向き"なアーキテクチャに変えつつある。
また、XtensaシリーズのようなカスタムISAキットは多くの場所で採用されている。例えば、nVidia/ATIはメディア処理のためのDSPにXtensaを採用している(ARMでなく)。

  • 今後出現する(と考えられる)ケース

特殊なアーキテクチャは今後も展開されるため、それをサポートするためのISAは今後も開発され続ける可能性は有る。例えば、Xbox360 GPUのように、メモリ側に演算資源を追加するようなケースがある。
また、private useのためにISAを用意するケースもいくつか有る。ToshibaのSpursEngineは制御用プロセサとして32bitプロセサを使用している。

  • 消滅していく(と考えられる)ケース

Intel Itanium(旧IA-64)は継続を支持できる理由が思いあたらない。
SuperHSPARCは政治的な事情でライセンスビジネスに熱心でない。ライセンスビジネスが好調でないのはISAにとってあまり良い影響をおよぼさないように思える。
ARMやMIPS、Xtensaのライセンシは5社は思いつくが、僕はSH-4のライセンシを1社も知らない。
逆に言えば、ISAの政治的な重要性は薄れてきた(と判断されている)のかもしれない。確かにその要因自体はいくらでもある。"選択と集中"の過程で、独自アーキテクチャのプロセサはメインストリーム(= プログラマブルな消費者/エンタープライズ向け製品のプロセサ)からは姿を消していくだろう。