アーム(株)は16日、都内で記者発表会を開催し、11日(米国時間)に米国で開催された“Microprocessor Forum 2000”のカンファレンスにおいて英アーム本社が発表した、ARMプロセッサーコアの2つの拡張アーキテクチャーについて説明した。
英アーム社がMicroprocessor Forumで発表した2つの拡張アーキテクチャーは、昨年発表したDSP拡張に次ぐもので、今後急拡大が期待されるIA(Internet Appliance)やHGW(Home GateWay)機器への応用を狙ったものという。今回のアーキテクチャーは、Java拡張とメディア拡張だ。
左から、プロダクト・マネージャのデビッド・コーミー(David Cormie)氏、チーフ・テクニカル・オフィサーのツドー・ブラウン(Tudor Brown)氏、日本法人のマーケティング・ディレクター、岩瀬貞二郎氏。テクニカル・マーケティング・ディレクタのジョン・レイフィールド(John Rayfield)氏は、フライトの都合とのことで、残念ながら参加しなかった |
Java拡張『Jazelle』
『Jazelle』と名付けられたJava拡張は、ARMプロセッサーコアにJavaバイトコードをハードウェアで直接実行するエンジンを内蔵するというもの。既存アプリケーションとともにJavaを高速で処理でき、低コストで、メモリ消費も小さい。資料によると、Java処理性能はコンパイルオーバーヘッドを除いたJIT(Just-In-Time)コンパイラーに迫るレベルで、Java言語のベンチマークであるCaffeineMark値は、通常のJVM(Java Virtual Machine)での実行より8倍も高速になるという。またメモリー効率も高く、JavaVMの2分の1のメモリー容量で利用できるとしている。
各種Java実行環境の比較
性能(CaffeineMark値) | バイトコードサイズ | 規模(クラスライブラリ含まず) | |
Sun JVM | 1 | 1 | 16KB |
最適化したJavaVM | 2.5 | 1 | 16KB |
JIT | 9(コンパイル時間含まず) | 8 | 100KB |
ハードウェアコプロセッサー | 4.3 | 1 | 16KB |
Jazelle | 8 | 1 | 8KB |
Javaを直接実行するプロセッサーというと、米サン・マイクロシステムズ社のJavaプロセッサー『picoJava』がまず挙げられるが、専用Javaプロセッサーでは各種リアルタイムOSや、既存のアプリケーションを実行することができない。また、Java用のコプロセッサーを内蔵するという方法もあるが、携帯電話などへの応用を考えると消費電力が、家庭向けIAを考えると価格が、それぞれ問題となり、しかもプログラム上で扱いにくくなってしまう。それに対しJazelleでは、Javaの実行時には“Javaステート”で動作し、JavaVMをハードウェアでエミュレーションするという方式を採用している。バイトコードの80パーセントあまりを、そのハードウェアエミュレーターで実行し、残る約20パーセントの複雑なバイトコードは、あらかじめ最適化されたARM命令のサポートコードで処理する。このサポートコードが、約8KB未満ということだ。もちろん、プログラマーはJazelleを意識する必要はない。Java拡張以外は、普通のARMプロセッサーとして扱えるのだ。
Jazelleは、“Java”と“Gazelle”を合わせた造語であるらしい。Gazelleのように素早くJavaを実行する、といった意味なのだろう。ハードウェア的には、既存のARMコアから約1万2000ゲートの増加で済み、導入は容易だと思われる。ロードマップによると、このJazelle拡張を施した『ARM9』は、2001の第1四半期に登場予定。以下、『ARM7』+Jazelleは2001年の第3四半期、『ARM10』+Jazelleは2002年の第1四半期、と続く予定だ。なお、まだ現時点では、搭載時の正式な型番などは決定していない。
Java拡張がなされても、アプリケーションレベルではまったく考慮する必要がない。“Trusted Interface”と書かれた横線より上は、今までと同じ環境だ |
SIMDメディア拡張
一方のメディア拡張は、昨年のDSP拡張アーキテクチャーを発展させたもので、SIMD(Single Instruction Multiple Data)機能の実装だ。こちらは登場時期が未定で、少なくともJazelleより実装が遅れるとのこと。また、まだ特別な名称はない。
今回のメディア拡張は、従来のDSP拡張でも足りなかった部分を補い、より高度なメディア処理が要求されてきたことに応えたものという。次世代携帯電話のTV通話機能で要求されるビデオ処理、PDAでの高圧縮音楽処理、自動車の衝突回避レーダーで必要とされる膨大なFFT演算など、大量のデータを高速処理する内容のものが対象だ。
この拡張では、新たにSIMD演算、デュアル乗算やメディア乗算、飽和演算命令を追加している。この結果、たとえば16ビット複合乗算では、かつて5サイクルを必要としていたものが、新命令では2サイクルに減らせ、ビタビ演算などでは最大3倍のパフォーマンスを得られるようになった。より具体的な処理では、たとえばMPEG-4の処理に必要なクロック周波数が、従来のARM9Eコアでは60MHzだったものが、SIMD拡張したものでは33MHzまで低減できるという。そのぶんだけ消費電力を下げることもできるし、他の処理を行なうこともできるというわけだ。
このSIMD拡張に必要な追加ゲート数は未定だが、Jazelleの場合よりも小さいという。また、JavaとSIMDの両方を搭載することも可能とのことで、特に次世代携帯電話のハイエンド端末などは、このようなプロセッサが必要になるのではないだろうか。
MPEG-4の各処理ごとに従来コアと比較した図。棒グラフは、それぞれの処理にどれだけのクロック数が必要かを表している。その合計は従来コアで60MHz、SIMD拡張では33MHzになり、約45パーセントの性能向上となった |