ニュース
» 2011年09月21日 15時00分 UPDATE

「1+4」コアって、なにそれ?:NVIDIA、次世代Tegra「Kal-El」の構成と性能を公開 (1/2)

NVIDIAが現在開発中の“次世代Tegra”の概要と性能を解説する資料を公開した。ここでは“最大”クアッドコアという構成と新技術について紹介する。

[長浜和也,ITmedia]

Kal-Elは、負荷に合わせて使うコアを“切り替える”

 NVIDIAは、9月21日(現地時間)に2つのドキュメント「Variable SMP A Multi-Core CPU Architecture for Low Power and High Performance」「The Benefits of Quad Core CPUs in Mobile Devices」を公開した。現在開発を進めている“次世代Tegra”こと「Kal-El」の構成と導入を予定している新しい省電力技術の解説、そして、現時点におけるベンチマークテストの結果を紹介している。

 NVIDIAは、この資料で消費電力を抑えたままでも高い処理能力を実現するため、Kal-Elが、低消費電力動作に適したトランジスタを採用するシングルコアARMと、高い処理能力を発揮できるトランジスタを採用するクアッドコアARMという、「5つのコア」で構成することを明らかにした。

kn_kalel_01.jpg NVIDIAが明らかにした“Kal-El”の構成では、“Companion”と称する1基のCoreと、そのほか4基のCoreを搭載する

 NVIDIAの説明では、低消費電力に適した(トランジスタで構成する)プロセッサは、わずかな電力消費で動作するが、その処理能力は低く、高い処理能力を得るために高クロックで動作させると汎用のプロセッサ以上に電力を消費する必要があるという。

 一方で、高い処理能力を発揮できる(トランジスタで構成した)汎用のプロセッサは、消費電力を抑えるために低いクロックで動作させても、消費電力は低消費電力に適したプロセッサより多い。しかし、動作クロックを上げて処理能力を向上させた状態の消費電力は、低消費電力に適したプロセッサより少なくて済む。

 NVIDIAは、この理由として、低消費電力に適したプロセッサでは、性能を上げると漏れ電流が増加して、プロセッサ全体で使う消費電力も増加するためと説明する(正確なたとえでないが、直感的に把握するには、太いストローと細いストローのそれぞれで水を吸い上げてみると分かりやすい。細いストローは、微量な水でも吸い上げられるが、多くの水を吸い上げようとすると“力いっぱい”吸わなければならない。太いストローなら、力をいれずに多くの水を吸い上げられるが、吸い上げる水を少なくしようとしても、一定の量は必ず吸ってしまう)。

 Kal-Elでは、処理性能を必要としない状態で有効になるシングルコアのARMと処理性能を必要とする状態で有効になるクアッドコアのARMを一緒にすることで、処理能力を抑えた場合でも処理能力を上げた場合でも消費電力の抑制を実現する。(記事掲載当初、処理性能の記述で誤りがありました。おわびして訂正いたします)

 NVIDIAは、処理能力を抑えた状態でシングルコアARMが有効になり、高い処理能力が求められた状態でクアッドコアARMが有効になるように切り替えるために、独自に開発した「Variable Symmetric Multiprocessing」(vSMP)と呼ぶ技術をKal-Elに導入する。また、駆動電圧に合わせて動作クロックを変更できる「Dynamic Voltage and Frequency」(DVFS)も導入して動作クロックを可変にする。

kn_kalel_02.jpgkn_kalel_03.jpg 低消費電力に適したトランジスタを採用したプロセッサと、高性能発揮に適したトランジスタを採用したプロセッサで、性能と消費電力の関係を比べると、高性能を発揮する状態の消費電力で逆転現象が起きる(写真=左)。Kal-Elで導入するvSMPはそれぞれに適したプロセッサを有効にすることで、消費電力の抑制を実現する(写真=右)

 公開された資料では、Kal-Elは、低処理能力時で有効にする「Power Optimized Companion CPU Core」として低消費電力に適したプロセスルールを採用するシングルコアのCortex A9を搭載し、動作クロックは0〜500MHzまで変更できる。また、高処理能力時で有効にする「Performance Optimized Main CPU Cores」には、汎用のプロセスルールを採用したCortex A9を4コア搭載し、動作クロックは0MHzから“GHz”クラスまで変更可能になるという(資料では動作クロックの上限を示していない)。

 マルチコアをサポートするAndroid 3.x(Honeycomb)では、有効になっているCPUコアに処理を均等に分散するが、Kal-Elでは、OSによるマルチコア機能とは独立して、Kal-Elに組み込んだハードウェア制御とソフトウェア制御によって有効にするコアの管理を行う。この管理では、CPUの負荷(と必要になるCPUの動作クロック)を監視してCompanion CPU CoreとMain CPU Coresの“切り替え”を自動で行う。また、クアッドコアのMain CPU Coresが有効になった状態において、必要となる処理能力によって有効になるコアの数を1〜4基と変えることも可能だ。

 Companion CPU CoreとMain CPU Coresは、同時に有効になることはなく、一方だけが動作する。そのため、それぞれのコアが利用する2次キャッシュメモリは共用され、切り替え時にキャッシュメモリにあるデータの同期や整合を取る処理が必要ないため、性能の与える影響はないとNVIDIAは説明する。

 NVIDIAは、Companion CPU Coreが有効になる利用場面として、メールやSNSなどの同期のためのネットワークアクセスを伴う“待ちうけ状態”や、専用のハードウェアエンジンを使う音楽や動画の再生など、CPUに負荷のかからない処理を挙げている。一方、Main CPU Coresに切り替わって1コアだけが有効になる利用場面としては、メールの作成、シンプルなデザインと機能のWebページやマップの利用、2Dグラフィックスのゲームが紹介されている。

kn_kalel_04.jpg vSMPでは、ネットワーク接続を伴う“アイドル状態”などでCompanion CPU Coreを有効にする一方、ユーザーがアプリケーションを利用するなど、ある程度の負荷が生じるとクアッドコアのMain CPU Coresに動作が切り替わる。また、Main CPU Coresでも、CPUにかかる負荷に合わせて有効になるコアの数が1〜4基で動的に変化する

       1|2 次のページへ

Copyright© 2016 ITmedia, Inc. All Rights Reserved.