米Apple Computer, Inc.が,米Intel Corp.の86系マイクロプロセサを採用したMac OS搭載パソコン(Tech-On!関連記事)で,PowerPCに向けた既存のアプリケーション・ソフトウエアを実行するために用意する技術「Rosetta」の概要が明らかになった。米Transitive Corp.の動的コンパイラ技術を導入する。

 Transitive社は,英University of Manchesterで開発された動的コンパイラ技術を商用化するために,2000年に設立された企業である。同社の技術「QuickTransit」は,既に米Silicon Graphics, Inc.(SGI)に採用されている。MIPS系のマイクロプロセサとIRIX OSを組み合わせた環境で動作するアプリケーション・ソフトウエアを,「Itanium 2」とLinuxを搭載した画像処理向けコンピュータ「Silicon Graphics Prism」で動かすことに使われてきた。

 Apple社の方針で,Transitive社はApple社に提供する技術について一切コメントできないという。だが,Transitive社は2004年9月に,PowerPC用のアプリケーション・ソフトウエアを86系やMIPS系のマイクロプロセサを搭載したパソコンやサーバ機,あるいはメインフレームで動作させる製品「QuickTransit for PowerPC」を発表している。Rosettaはこの製品に用いた技術を基に開発されたとみられる。Transitive社President兼CEOであるBob Wiederhold氏によると,同社の技術を製品に採用するコンピュータ・メーカーとは通常,1年~1年半共同開発作業を行うという。「Apple社とも長期間やりとりをしてきた」(同氏)。

組み込み分野にも虎視眈々


 QuickTransitの動的コンパイラ技術を動作させるには通常,1.5Mバイト~2Mバイトの主記憶を占有する。そこで動作するソフトウエアは主に3つの部分から成る。オブジェクト・コードをターゲットの環境に向け変更する「Dynamic Binary Translation」と,アプリケーション・ソフトウエアがコールするOSの機能をターゲットのOSにマッピングする「Operating System Call Mapper」,グラフィックス・ライブラリ向けに同様の変換をする「Graphics Subsystem Call Mapper」である。

 Wiederhold氏によると,3つの部分の中でも特にDynamic Binary Translationが重要な役割を担う。この部分を詳しく見ると,さらに主に3つの要素に分かれている。オブジェクト・コードの命令ブロックを中間コードに変更する「front end decoder」と,この中間コードを分析して,頻繁に実行するコードをメモリに保存しながら,ターゲットの環境に最適化する「optimizing kernel」,ターゲットのマイクロプロセサの命令を生成する「back-end code generator」である。ちなみにSGI社向けのQuickTransitは,ネイティブのオブジェクト・コードを実行する場合のターゲットの演算性能を100としたとき,平均すると80まで引き出せるという。

 現在はコンピュータ向けの製品に力を入れているものの,Transitive社は組み込み市場にも興味があるとする。「マイクロプロセサとメモリの価格対性能比が向上すれば,組み込み機器市場にも我々の技術を生かすチャンスがあるとみている」(同氏)。