64 ビット・コンピューティングによりモバイル・エクスペリエンスを向上する

同カテゴリーの次の記事

GCC 5.0 での x86 向けの最適化新機能: 32 ビット・モードにおける PIC

この記事は、インテル® デベロッパー・ゾーンに掲載されている「How 64-bit computing will improve the mobile experience」の日本語参考訳です。


エンドユーザーにもっと優れたモバイル・エクスペリエンス提供したい場合は、64 ビット・コンピューティングを検討してみると良いでしょう。強力な 64 ビット・アーキテクチャーにより、スマートフォンとタブレットにおいて大幅なパフォーマンスの向上、4GB を超えるメモリーの使用、セキュリティー機能の強化を図ることができます。

大きな進歩
1975 年に Cray-1* スーパーコンピューターで初めて採用されて以来、64 ビット・コンピューティング・アーキテクチャーは処理能力の頂点と見なされてきました。1990 年代半ばには、マイクロコンピューター・クラスのサーバーやハイエンドのデスクトップ・ワークステーションでも採用されるようになりました。

今日 64 ビット・プロセッサーは珍しいものではなく、近い将来スマートフォンやタブレットでも一般的になるでしょう。64 ビット・アーキテクチャーを利用することで、スマートフォンとタブレットは大幅なパフォーマンスの向上、4GB を超えるメモリー、より大きなインメモリー・データ・セットによる利点が得られます。

セキュリティーの強化
64 ビット・アーキテクチャーは、セキュリティー上の脅威を回避し、デバイスデータとエンタープライズ・ネットワークをより強力に保護します。Nielsen 社の 2014 年 7 月の報告によると、2013 年の 18 才以上の Android* および iPhone* ユーザーのモバイルアプリ使用時間は毎月 30 時間以上で、これは 2012 年と比べて 65% 増加しています。モバイルデバイスは、複雑な処理やセキュリティーが要求されるビジネスシーンでも浸透しつつあります。2012 年に Symantec によって確認されたウイルス定義は 2 億件を超え、これは 1991 年から 2011 年に確認された数に相当します。スマートフォンとタブレットにおいてデジタルウォレットや個人情報への依存が高まりつつある中、適切な保護とユーザー・エクスペリエンスを提供するため、モバイル・ハードウェアでこれらへの対応が求められています。

インテルと Android*
インテルのソフトウェア & サービスグループは、2004 年より Linux* カーネルの進化と 64 ビット・コンピューティングへの対応を支援してきました。同グループのオープンソース・テクノロジー・センター (OTC) のエンジニアリング・ディレクターである Joe Daly は、「インテルは、すべてのオープンソース・ブラウザー・プログラム (Chromium* と Blink* を含む) に参加し、GCC コンパイラー、商用コンパイラー、ハイパーバイザー、SLC ドライバー、および “システムに関連するあらゆるもの” への取り組みを行っています」と述べています。

インテルのハードウェア・プラットフォーム・グループがチップの能力を引き出せるように、OTC は Android* メインラインを開発しました。このメインラインは、Android* 実装がクリーンな状態かどうか確認が必要な場合に、リファレンスとしても使用されています。

現在 OTC は、Android* L と 64 ビット Android* ランタイム (ART) に力を入れています。インテルは以前のバージョンの OS とランタイムにも貢献してきましたが、今年リリースされるバージョンでは、SIMD 命令とインテルのハードウェア向けにコードを最適化するランタイム・コンパイラーにより、64 ビット・ハードウェアの機能とパフォーマンスを利用できるように取り組んでいます。

64 ビット・モバイル・プラットフォームの利点
32 ビット Dalvik* と 64 ビット ART ランタイムの主任エンジニア兼パフォーマンス・アーキテクトの Kumar Shiv は、「64 ビット・モバイル・プラットフォームは、ユーザーにさまざまな利点をもたらし、 ユーザーがそれらを実感することができるでしょう。」と述べています。その良い例として、セキュアなアプリの暗号化/復号化サイクルやメディア再生時のエンコード/デコードがあげられます。大きなビットストリームに対して多数の論理演算を行う場合、一度に 64 ビットを処理できることは大きな利点です。「一部の高度なアルゴリズムは、32 ビットでは処理に時間がかかりすぎるため、64 ビットでのみ利用できます。複雑な算術演算では、64 ビットが不可欠です。」と Shiv は説明しています。

インテルはリファレンス・スタックで、最も一般的なセキュリティーとプライバシー対策を含む Android* の完全な実装を提供しています。Linux* にも、64 ビット・プロセッサー・モードでのみ有効になる、最も低いレベルへの攻撃を防ぐセキュリティー機能がいくつかあります。「スマートフォンとタブレットをクラウドへの安全なゲートウェイにするため、Android* にはベリファイド・ブート、認証管理、コンテンツ保護、その他の機能があります。」と Daly は指摘しています。

ビッグデータの時代を迎え、モバイルデバイスにおいて 64 ビット・コンピューティングによるセキュリティーが不可欠になるでしょう。「IoT デバイスでは、セキュリティーが最大の懸念事項と言えます。これらのデバイスにはさまざまな個人情報が含まれており、それらはすべてインターネット上にあるからです。そのため、これらのデバイスはできるだけセキュアでなければなりません。」と Shiv は指摘しています。

セキュリティー以外の機能
デジタル写真やグラフィック効果も 64 ビット・プラットフォームにより利点がもたらされます。「スマートフォンはカメラとしても使用されています。数枚の写真を同時に編集したり、HDR (ハイ・ダイナミック・レンジ) 処理を行ったり、シーンを抽出するには多くのメモリーが必要です。」と Daly は述べています。モバイルデバイスでの写真の撮影と編集は、64 ビット・プラットフォームにより向上します。

汎用アプリも 64 ビット・プラットフォームによる利点が得られます。2000 年代にエンタープライズ Linux* と Windows* を 64 ビットへ移行した経験から、Daly は「ISV が 64 ビット・プラットフォームに移行することで、アプリのパフォーマンスが約 15% 向上するだろう」と予測しています。これは平均値であり、アプリによっては向上率がこれよりも大きくまたは小さくなるでしょう。暗号化、イメージ処理、およびパックドデータ命令を利用可能なその他の処理では、64 ビットを利用することでパフォーマンスが大幅に向上するでしょう。一方、32 ビット向けに高度に最適化されたアプリではパフォーマンスが向上しない可能性があります。「実際、32 ビット向けに高度に最適化されたアプリは、64 ビットを利用することでパフォーマンスが低下する恐れがあります。」と Daly は述べています。

コード変更は必要か?
64 ビット・デバイスの出現による重要なことは、デバイスが ARM ベースか IA ベースかに関係なく、Java* アプリはコード変更なしに 32 ビット Dalvik ランタイムと 64 ビット ART のどちらでも実行できるということです。ただし、アプリにネイティブコードや Java* Native Interface (JNI) を利用する呼び出しが含まれている場合は、再コンパイルする必要があります。64 ビット・アーキテクチャーを利用するため、複数のバイナリーを生成する必要があります。

ネイティブコードを移行する場合は、処理が異なります。「単にアプリを Android* L 対応にするのであれば、再コンパイルしてテストするだけで済みます。しかし、64 ビットへ移行する場合は、コードを移植し、新しい NDK でネイティブコードを再コンパイルする必要があります。」と Daly は説明しています。それには、Android* Native Development Kit (NDK) R10 を使用します。また、Android* アプリをビルド、テスト、デバッグするための API ライブラリーとツールを提供する Android* SDK も利用します。Android* SDK は Eclipse IDE に統合し、インテル® INDE ツールスイートとともに使用することができます。Android* L (Android* Lollipop とも呼ばれる) も必要です。インテルは、コンパイラーオプティマイザー、さまざまなソフトウェア・パートナー・プログラムを含む、業界最先端の 64 ビット開発ツールを提供しています。

大きな力には大きな責任が伴う
64 ビットに対応するためには、ハードウェアとソフトウェアがバランス良く調和されていなければなりません。ほとんどのアプリは 64 ビットで問題なく動作するでしょう。ただし、一部のアプリは、利用可能な物理メモリーによりパフォーマンスが制限される可能性があります。デバイスのメモリー容量が 64 ビット・コンピューティングに対応するのには少し時間がかかるかもしれません。そのため、しばらくの間は、32 ビットと 64 ビット・バージョンのアプリが必要になるでしょう。

インテルの長年にわたる 64 ビット・ハードウェアにおける経験と 64 ビット向けソフトウェアおよび最適化への取り組みにより、タブレットとスマートフォン・プラットフォームの進化に必要な準備は整っています。メモリーと速度の制限がなくなれば、モバイル設計は、開発者の想像力とそれをどのように利用するかにかかっています。

この記事は、Raj Lahari と共同で執筆しました。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事