PR

 タブレット端末がすでに国内でもいくつか発表されています。その傾向の一つに「デュアルコア」CPUの搭載があります。デュアルコアCPUの搭載により、性能が向上し、性能を求められるアプリをモバイルで利用可能になります。

 タブレット向けのAndroid 3.0はデュアルコアに対して最適化しているようですが、スマートフォン向けのAndroid 2.3はデュアルコアに最適化されておらず、その性能を生かし切れないようです。AndroidはカーネルにLinuxを使っているので、基本的にはマルチコア対応が可能です。なぜ、バージョンによってデュアルコアへの対応が違うのかというと、アプリを実行する「Dalvik」という仮想マシンに理由があります。

 AndroidアプリはJavaというプログラミング言語で記述され、それがDalvikというJava仮想マシンで実行される構造になっています。このDalvikは、一般的なJavaと違っていて、アプリの起動時間を短縮するためにちょっと特殊な構造になっています。このため、Android 2.3までは、端末を単純にマルチコア化しても、アプリはあまりその恩恵を受けられなかったのです。

 Android 3.0では、このDalvikやシステムAPIを処理する部分(Bionicと呼ばれています)を改良し、マルチスレッドの同時実行を可能にしました。このため、アプリをマルチスレッド化すれば、より効率的に実行可能になります。また、ガベージコレクション(メモリー領域をスキャンして、不要な領域を解放する作業)を別のプロセッサ(やコア)で実行可能になったので、シングルスレッドのアプリでも実行効率が向上しました。

 そういうわけで、マルチコア対応がようやく可能になったので、採用例が増えているのです。ほかにも、マルチコア搭載タブレット端末が増えているというトレンドに関係のあるのがARM系の新CPUの登場です。

 組み込み系では、すべての分野で、最高性能が必要というわけではないので、一定の性能でも十分であり、メーカーも、段階的に最高性能を上げつつ、次世代アーキテクチャに移行させていくといったやり方をします。実際、2010年1月に発売されたグーグルのスマートフォン「Nexus One」と、2011年発表の「Nexus S」は、ともにクロック周波数は1GHz。グラフィックスに関しては性能向上の余地があるため、まったく同じ性能というわけではありませんが、パソコン的な見方をするとクロック周波数が1年間も変わらないのは奇妙な感じがします。

 ただ、今年から利用可能なプロセッサコアに「Cortex-A9」が加わります。Cortex-A9は、ARM系で初めてアウト・オブ・オーダー(本来の命令順序に関係なく命令を処理する)を実現したCPUです。最大クロック周波数もそれまでの「Cortex-A8」と比べて高まっており、さらに「MPcore」と呼ぶ技術により、マルチコア化が容易です。