iOS 7 で Apple が 64 ビット モバイル デバイスに移行したことは驚きだったが、同社が開発者向けに説明した情報によると、64 ビット モバイル アプリへの移行は短期的には大きなメリットをもたらすが、長期的に見ても Google の Android がそれを再現するのは困難と思われる。
多くの懐疑的な反応に遭遇
Apple の 64 ビット アーキテクチャへの移行は、でっちあげか、実質的なメリットのない無意味なマーケティング戦略か、あるいはいずれにせよ誰もがいつかは従う避けられない移行であり、したがってニュース価値も信用に値しないと主張する評論家や自称専門家は少なくありません。
レポートでは、基本的に 64 ビットへの移行自体には iPhone 5s にすぐに役立つメリットはないが、将来的には他のデバイス、たとえば次の iPad の世代では役立つ可能性があると認めることで、こうした懐疑的な意見をまとめようと頻繁に試みてきました。
CNETのブルック・クローザーズ氏は、「同社の 64 ビット チップへの移行は必要不可欠であり、Apple が最初にそこに到達したことは意義深い」という小見出しを付けたが、同氏のレポートでも「すべてのアプリが 64 ビット プロセッサの恩恵を受けるかと問われれば、答えはノーだ。ほとんどのアプリでは、意味のある恩恵は受けられないだろう」と結論付けている。
同じくCNET のライターであるスティーブン・シャンクランド氏は、Apple の 64 ビット発表を強く否定した。
「64 ビット チップは 32 ビットの遺物よりもソフトウェアを魔法のように高速に実行できるという Apple のマーケティングの文句を鵜呑みにしてはいけない」とサブヘッドは警告し、「64 ビット設計ではほとんどのタスクのパフォーマンスが自動的に向上するわけではない」と付け加えた。
ExtremeTechの Joel Hruska 氏によるさらに刺激的なレポートでは、「64 ビットの A7 チップはマーケティング上の誇大宣伝であり、パフォーマンスは向上しない」と主張しています。
これらの意見は、AppleがCocoa Touchの64ビット移行ガイドでiOS開発者に伝えている内容と矛盾している。「64ビット処理をサポートするアプリは、同じデバイス上で動作する32ビットアプリと比較して、ほぼ常にパフォーマンスが向上します」 - Apple
「64 ビット処理をサポートするアプリは、同じデバイスで実行される 32 ビット アプリと比較して、ほぼ常にパフォーマンスが向上します」と同社は iOS 上の Cocoa Touch 開発に関して述べています。
たとえ Apple が携帯電話の 64 ビット CPU の価値についてマーケティングの宣伝をしているだけだったとしても、アプリに 64 ビット サポートを追加するメリットについて開発者に内緒で嘘をついたところで何の意味もありません。むしろ、かなり逆効果でしょう。
もし64ビット版A7がApp Storeアプリに実質的な直接的なメリットをもたらさなかったとしたら、Appleはサードパーティパートナーに他の戦略的進歩(数多く存在する)に取り組んでもらう方が賢明だったと言えるでしょう。3年前の初代iPad発売時と同様に、メディア関係者による当初の懐疑論は明らかに誤りです。
64ビットへの移行はすべて同じではない
64 ビット アーキテクチャに移行する利点に関する混乱は、PowerPC の場合、64 ビットへの移行が当初は多くのアプリケーションでメモリ使用量の増加以外に大きな効果をもたらさなかったという事実に関係している可能性があります。
しかし、これはPPCがIBMの64ビットPOWERアーキテクチャの縮小版として誕生したためであり、この設計は当初から多くのレジスタを備えていました。PPCはG5で64ビットにスケールアップされるまで、10年強の間32ビットプラットフォームとしても存在していました。比較的初期の64ビットへの移行では、アーキテクチャの大幅な見直しは必要ありませんでした。
しかし、Intelのx86プロセッサにとって、64ビットx86プロセッサへの移行は、長年の課題であった「レジスタ不足」の解決策をもたらしました。x86ファミリは元々16ビットアーキテクチャであり、段階的に32ビットCPUへと拡張されたため、64ビットPCが登場した頃には、x86の設計は25年近くも前のものとなっていました。
インテルの x86 と同様に、ARM の既存のチップ アーキテクチャも、64 ビット パッケージの一部として提供される新しい 64 ビット ハードウェア機能の恩恵を受けています。これは、ARM アーキテクチャも現在 25 周年を迎えており、それに続いてハイエンドでのアーキテクチャの飛躍が予定されているためです。
Apple によれば、新しい A7 には、32 ビットの先行モデルに比べて汎用レジスタと浮動小数点レジスタ (どちらも CPU 内でアドレスとデータの小規模ストレージとして機能し、ソフトウェアが外部 RAM に頻繁にアクセスする必要がなくなる) が 2 倍あるという。
同時に、PPC および x86 デスクトップが 64 ビットに移行したことを長く覚えている人なら、当時の Mac や PC が今日の iOS デバイスよりも少ない RAM (たとえば、PowerMac G5 では 256 ~ 512 MB) で出荷されるのが一般的だったことも覚えているはずです。そのため、64 ビット アーキテクチャのメリットを実現するには少なくとも 4 GB の RAM が必要であるという主張は特に奇妙です。
Appleの64ビットOS Xへの移行
さて、当事者から
Appleは、「アーキテクチャの改良点として、64ビットARMプロセッサには、以前のプロセッサの2倍の整数レジスタと浮動小数点レジスタが搭載されています。その結果、64ビットアプリは一度に多くのデータを処理できるようになり、パフォーマンスが向上します。一般的に、64ビットアプリは32ビットアプリよりも高速かつ効率的に動作します」と述べています。
64ビット整数演算やカスタムNEON演算を多用するアプリでは、さらに大きなパフォーマンス向上が見られます。64ビットプロセスでは、ポインタは64ビットになり、以前は32ビットだった一部の整数型も64ビットになります。
システムフレームワーク、特にUIKitとFoundationの多くのデータ型も変更されました。一般的に、64ビットアプリは32ビットアプリよりも高速かつ効率的に動作します。しかし、64ビットコードへの移行はメモリ使用量の増加を伴います。適切に管理しないと、メモリ消費量の増加はアプリのパフォーマンスに悪影響を及ぼす可能性があります。
iOS 7と64ビットでのメモリ管理
Appleは開発者にアプリを64ビット向けに再コンパイルすることを望んでおり、Xcode開発ツール内で移行に伴う面倒な作業の多くを自ら処理することで、これを容易にしています。これにより、「ファットバイナリ」パッケージ(別名ユニバーサルバイナリ)が提供され、32ビットと64ビットの両方のコードを同じアプリパッケージにシームレスに展開できます。
iOSシミュレータでPCalcを64ビットで動作させました。1時間ほどかかりましたが、それほど難しくありませんでした。あとは実際にテストするために5Sが必要です。
— ジェームズ・トムソン (@jamesthomson) 2013年9月16日
iOSの64ビットへの移行は、iOS 7の関連のない機能強化からも恩恵を受けています。Appleは次のように推奨しています。「既存のアプリをお持ちの場合は、まずiOS 7向けにアプリをアップデートし、その後64ビットプロセッサで動作するように移植してください。まずiOS 7向けにアップデートすることで、非推奨のコードパスを削除し、最新のプラクティスを適用できます。」
同社はまた、たとえサードパーティ製アプリ自体が 64 ビットへの移行によって大きなメリットを得られないとしても、そのアプリがユーザー向けにタイトルの 64 ビット版をリリースすることが有益である理由についても説明しており、主な結果としてエンドユーザーのメモリ使用量が削減されるという。
Appleは、「iOSが64ビットデバイス上で実行されている場合、iOSには32ビット版と64ビット版のシステムフレームワークが別々に含まれています。デバイス上で実行されるすべてのアプリが64ビットランタイム用にコンパイルされている場合、iOSはこれらのライブラリの32ビット版をロードしません。そのため、システムのメモリ使用量が少なくなり、アプリの起動が速くなります」と説明しています。
すべての組み込みアプリは既に64ビットランタイムをサポートしているため、64ビットデバイスで実行されるすべてのアプリ、特にバックグラウンド処理をサポートするアプリを64ビットランタイム用にコンパイルすることは、誰にとっても有益です。パフォーマンスにそれほど依存しないアプリであっても、このメモリ効率の恩恵を受けることができます。
64ビットへの移行のメリットとデメリット
つまり、iOS アプリを 64 ビットに移行する利点には、A7 の 64 ビット コアのハードウェア上の利点 (レジスタの増加、おそらくキャッシュの増加を含む)、新しい 64 ビット ARMv8 命令セットに固有の改善と最適化、および iOS 7 に付随する必須の API 強化が含まれます。
移行の主なデメリットは、iPhone 5sユーザーがすべてのアプリを64ビットに移行できない場合、システムメモリの消費量が増えることです。そのため、Apps Storeのタイトルを64ビットに移行することはAppleにとって重要な優先事項であり、サードパーティ開発者にもその対応を強く求めることになります。
したがって、大量の数値計算を行わないアプリでも、Apple の 64 ビット移行の恩恵を受けることができます。その理由としては、これらのアプリが使用する iOS 7 の共通ライブラリとフレームワークが、新しい 64 ビット ハードウェアを活用できるようにすでに最適化されていること、また、この移行によって最新の API を介した副次的なメリットがもたらされ、iOS 7 の新しい外観、デザイン面、その他の機能強化と合わせて、App Store のタイトル ライブラリ全体がリフレッシュされるためです。
GoogleのAndroidにおける64ビットのハードル
GoogleのAndroidが64ビットに移行するかどうかも、予測が難しい。Androidが使用するLinuxカーネルは既に64ビットアーキテクチャに移植されており、ARMv8への移植も検討されている。ただし、モバイル向けに最適化されたデバイスの開発を目的としたものではない。これは、AppleがA7を発表した時点では「他社はまだ話題にすらしていなかった」話題だ。
しかし、AndroidアプリはLinuxプロセスではなく、Javaライクな仮想マシン上で実行されるDalvik実行ファイルです。一般的なAndroidの「.dex」アプリは、iOS Cocoa Touchアプリのようなネイティブコードではありません。
むしろ、これらはAdobe Flashミドルウェアや、ネイティブブラウザのJavaScriptエンジン内で実行されるJavaScriptコード(Google ChromeOSも基本的には同じです)に近いものです。AndroidのDalvik/Java VMアーキテクチャを再設計し、64ビットプロセッサを効果的に活用することは、決して容易な作業ではありません。
64ビットAndroidは技術的にはほとんど意味をなさない
AppleのiOSとは異なり、AndroidのDalvik VMは「デスクトップクラス」のアプリをモバイルデバイスに移植することを目的として設計されたわけではありません。GoogleのAndroidプロジェクトは、SunのJavaモバイルプラットフォームをGoogleがライセンス料なしで利用できるオープンソースプロジェクトとして採用・拡張する手段として始まりました。Dalvik VMは、RAMの少ない低速プロセッサでシンプルなアプレットを実行するために特別に開発されました。iPhoneが登場して初めて、AndroidはAndroidに追いつくべく方向転換しました。
出典: Google
AndroidのDalvikを64ビットに移植するのは、小型エコノボックスを全地形対応SUVに改造するようなものです。それを捨てて、GoogleにとってのChromeOS、つまりゼロから始める方がはるかに理にかなっています。
ゲームなど、パフォーマンス向上のためにDalvik VMを使わずに動作する「ネイティブ」Androidアプリも存在します。このネイティブと仮想の分断された亀裂は、たとえGoogleがAndroidを真の64ビット環境にしたいと考えていたとしても、その取り組みをさらに複雑にしています。
既存の両タイプのソフトウェアの 32 ビット互換性を維持しながら、ネイティブ アプリと VM アプリの両方を 64 ビットで動作させるには、既に iOS よりも多くの RAM を必要とするプラットフォームでは、メモリ管理の問題が発生します。
64ビットAndroidはビジネス的にあまり意味がない
また、Facebook や Angry Birds などのクロスプラットフォームの基本アプリや、Samsung の Jay Z 市場調査アプリのように基本的に壁紙、電子書籍、音楽アルバムである Google Play タイトルの大規模な一群以外には目新しい重要なアプリがほとんどないプラットフォームでは、64 ビット CPU によってどのようなメリットが得られるのかも明らかではありません。
出典: Google Play
Androidスマートフォンには、Epic GamesのInfinity Bladeシリーズのようなコンソールスタイルのビデオゲームが著しく不足しています。さらに、タブレットからゲーム専用機、カメラ、音楽プレーヤーに至るまで、Androidを新しいフォームファクターに搭載する取り組みは、いずれも非常に控えめな結果に終わりました。売上が低迷しているだけでなく、ターゲットデバイスが極めてローエンドであることも影響しています。
メディアは、発展途上国で多くのホワイト ボックス タブレットに Android が搭載さていることを祝福するのをやめないが、最低のコンポーネントを搭載してすでに利益が出ていない 39 ドルのタブレットに、ハイエンドの 64 ビット プロセッサを搭載することには、ビジネス上の根拠がない。
Appleは、iPhoneやiPadといった高級デバイスの販売を維持しており、その規模はAndroidプラットフォーム全体に匹敵する。Androidプラットフォームは、ほとんど利益の出ない低価格帯のデバイスで構成されている。SamsungのハイエンドスマートフォンからGoogleのNexus 7タブレットに至るまで、Appleの製品に匹敵するハードウェアは、Appleほどの販売数には達しておらず、利益率もはるかに低い。
Apple の iPhone 5s レベルの 64 ビットの高級 Android デバイスを生産することは、純粋に企業の自尊心を試すものになるだろう。これは、Google の ChromeBook Pixel や少量生産の手作り Moto X、Samsung の売上の少ない大型タブレットの膨大なラインナップ、LG の高級 Prada フォン、または 2 万ユーロで金メッキを施しながら会社を無価値から救うことのできなかった Porsche Design Blackberry と比較できる。
また、64 ビットへの技術的に複雑な移行は、Google 自身が、Andy Rubin の Android 中心の戦略を倍増させるのではなく、Chrome に注力している中で行われることになる。この戦略は、これまでのところ主に、知的財産に対する無頓着なアプローチに関連する重大な法的問題を蓄積し、物、特にソフトウェアにお金を払いたくないユーザーのファン層を同社に築いてきた。
サムスンの64ビット状況
これらの現実により、Samsung は、スペック上の都合で、約束した 64 ビット チップの上に 32 ビット Android を仮想化せざるを得なくなる可能性があります。その結果、実際のパフォーマンス向上ではなく、ベンチマークの演出のために行われた、まさに「でっちあげの 64 ビット」が生まれます。これは、Apple が A7 の衝撃的なニュースを発表して以来、テクノロジー メディアがこぞって非難してきたことそのものです。
Androidの64ビットアプリへの移行には、もう一つ複雑な問題が伴います。プラットフォームとしてのAndroidにとっての大きな問題は、開発者が実際にAndroidを活用していないことです。Androidは斬新で興味深いアプリを開発するための最適なプラットフォームとは言えません。さらに、開発者は既存のAndroid 3.x/4.xの機能を本格的に活用していません。これは主に、Androidインストールベースの大部分が依然としてAndroid 2.xに頼っていることが原因です。
Google Play をよく調べると、Android 4.x を必要とするアプリや、数年前に導入された新機能を特別に活用するアプリはほとんど見つからないでしょう。
Google は、Google Play のアクティブ ユーザーを表す円グラフで Android のインストール ベースの大部分を除外していますが、Android 4.0 のリリースから 2 年が経過した現在でも、Play のアクティブ アプリ ダウンロード者の半分しか占めていないと報告しています。また、Android 4.x のその部分も 3 つの API レベル (および 2 つのデザート名) に分割されています。
Googleによると、今月時点で、昨年11月にリリースされたAndroid 4.2を使用しているアクティブユーザーはわずか8.5%にとどまっているとのことです。これは前四半期の2.3%から増加しています。このペースだと、昨年のAndroidは年末までに15%を超えることはないでしょう。
出典: Google
Samsung や他のライセンシーが販売する携帯電話の大半がローエンドデバイスであることを考えると、Android の新しい 64 ビット版がプラットフォームのユーザーベースの 10 分の 1 を獲得するのに 何年かかるでしょうか?
そうであれば、サムスンが理論上は64ビットのハイエンド「Galaxy S6」を発売したとしても、開発者が新しいチップアーキテクチャの恩恵を受けられるような新しい便利なアプリケーションを開発する可能性は低く、結果としてその作業のほとんどが、Appleが新旧のアプリを混在させることの副作用と表現するRAM使用量の増加につながることになるだろう。
サムスンが選択する選択肢は、サムスンのBada、インテルのMoblin、ノキアのMaemoを融合させたLinuxのるつぼ、Tizenを完成させて出荷することだ。Tizenは、サムスンに独自の「純粋な」モバイルLinuxプラットフォームをもたらす可能性がある。
Tizenを64ビットに移植するのは、現在32ビットのレガシーアプリのエコシステムが存在しないため、比較的容易です。これはTizenの欠点でもあります。
Tizenは、AndroidとWindows Phoneに次ぐ第三のプラットフォームを追加することで、サムスン社内の開発活動を細分化させる可能性もある。あるいは、サムスンがTizenを自社の優先プラットフォームとして成功裏に立ち上げることができれば、GoogleのAndroid市場シェアは瞬く間に崩壊するだろう。
より可能性が高いのは、Samsung が、BlackBerry の PlayBook OS と同様に、既存の 32 ビット Android アプリを互換性環境でホストしながら、約束した 64 ビット ハードウェアで実行する 64 ビット Tizen をリリースするという、穏健な代替シナリオです。ただし、この戦略は、金メッキの Porsche Design フォンと同程度には機能しました。
いずれにせよ、Apple は 1 年か 2 年は 64 ビットの iPhone と (確実に) iPad を独占的に販売し、他のモバイル プラットフォームで 64 ビットの代替品が採用される最先端に到達するずっと前に、App Store アプリのライブラリを 64 ビット対応に移行できるようです。
AppleのA7の64ビット後継者には、もう一つの障害が立ちはだかっています。これは、他社が携帯電話の64ビット化に着目する前から、AppleがA7アーキテクチャの実現に数十億ドルを投じた理由を説明する一助となります。この点については、今後のセクションで考察します。