【コラム】

OS X ハッキング!

174 Intel MacのAC/DC変換器? -Whole Lotta "Rosetta"-

    海上 忍  [2006/04/13]

    いきなり宣伝で恐縮ですが、「これだけは知っておきたい デジタル家電のしくみとポイント2」(技術評論社刊、1,344円)、いよいよ本日発売! 怪しげなデジモノを購入する際の参考資料としてどうぞ。Mac関連のトピックも豊富ですよ。

    さて、今回はIntel Macの新機能「Rosetta」について。必要に応じてシステムのバックグラウンドで起動されるため、実際のところ強く意識することは少ないが、Intel Macの導入を検討中のMacユーザにとっては気掛かりな存在のはず。動作原理とそのパフォーマンスを手短かにまとめてみたので、ご一読願いたい。

    Rosettaの"法則"

    Intel Macに用意されたPowerPC用バイナリの実行環境「Rosetta」は、いわゆる「ユニバーサルバイナリ」と密接な関係がある。ユニバーサルバイナリはPowerPCとIntel両方のバイナリを含んでいるため、どちらのプラットフォームで実行してもベストパフォーマンスを発揮できるが、PowerPC専用のバイナリをIntel Macで実行した場合には、PowerPC→Intelトランスレータの「Rosetta」が自動的に作動する仕組みだ。

    Rosettaは簡単に言えば「逐次バイナリ変換装置」で、CFM/Mach-OのPowerPCバイナリをIntel CPU向けに翻訳する機能を果たすが、すべてのアプリケーションが動作対象となるわけではない。Classic環境および旧Mac OS用アプリケーション、G5専用コードを含むアプリケーションなど、そもそも対象から外れているものは典型例だ。

    覚えておきたいのが、ユニバーサルバイナリのアプリケーションは構成要素すべてがユニバーサルバイナリ化されていなければならない、という法則。PowerPCはビッグエンディアン、Intelはリトルエンディアンとデータをら列する順序が正反対なため、両方式を混在させることは許されない。Rosettaがバイナリの翻訳を開始するときには、必要なプロセスすべてを実行してエンディアンを統一することが必要となる。つまり、プラグインだけRosettaで、といった処理はできないことになる。

    本体はユニバーサルバイナリ対応していてもプラグインが未対応(PowerPCのまま)というアプリケーションは、すべてPowerPCバイナリとして実行することで解決する。SafariやFirefoxのプラグインをIntel Macで(速度を犠牲にしても)使いたい場合には、Finderの情報ウインドウにある「Rosettaを使って開く」オプションを有効にして、Rosetta経由で起動すればOKだ。

    Rosetta環境で起動可能なアプリケーションには、Finderの情報ウインドウに「Rosettaを使って開く」オプションが表示される

    RosettaをTerminalから呼び出す

    Rosettaの機能は、Terminalから利用することもできる。使い方は簡単、実行したいコマンドの直前にtranslateコマンドを記述すればOK。パスが通らないディレクトリ(/usr/libexec/oah)に保存されているため、事前にエイリアスを定義するか実行時にフルパスを指定することになるが、Finderの情報ウインドウにRosettaオプションがないアプリケーションを強制的にRosettaで起動したいときに使える。

    iTunesのようにRosettaオプションがないアプリケーションも、translateコマンドを利用すればRosetta環境で起動できる

    Rosettaは本当に速いのか?

    気になるRosettaのパフォーマンスだが、ベンチマークソフト「Xbench」を通常時とRosettaの2つのモードでテストしたところ、Rosettaのスコアは通常時の約1/4~1/5となった(表1)。描画速度やディスクI/Oへの影響が少ないためか、多くのアプリケーションではそれほどパフォーマンス低下を感じないものの、AltivecのようにPowerPC固有の機能を必要とするアプリケーションでは厳しい結果となる(veclib項目の不自然なスコアについては、こちらを参照のこと)。

    それで本音はどうなのよと訊かれれば、やはり速いと答えざるをえない(PearPC の遅さを思い出してほしい)。前述の"法則"などいくつか留意しておけば、PowerPC時代の遺産も有効に活用できるはずだ。

    表1:Xbench 1.2(ユニバーサルバイナリ版)の実行結果

      新iMac/1.83GHzRosettaMacBook Pro 2.0GHzRosetta新Mac mini(Duo)Rosetta
    CPU Test70.3814.2368.8114.9763.8313.02
    GCD Loop238.23153.02247.43164.44216.4137.62
    Floating Point Basic82.9613.975.4414.4775.2612.84
    VecLib FFT40.816.7938.997.2136.996.21
    Floating Point Library62.2118.0465.8618.8156.4416.36
    Thread Test182.8444.89193.4445.2164.1340.27
    Memory Test96.2834.96103.3136.3598.5431.98
    Quartz Graphics Test64.3146.9951.3139.2164.8938.77
    OpenGL Graphics Test131.7994.51133.44101.31184.97142.65
    User Interface Test16.411.8927.759.2820.898.57
    Disk Test96.8195.2732.1431.8831.7731.64
    TOTAL56.2228.27102.125.7752.9922.29

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン