後藤弘茂のWeekly海外ニュース
スマートウォッチなど新興ウェアラブルデバイスに最適化したSoC
(2014/10/23 06:00)
幅広いウェアラブル市場の難しさ
FitBitに代表されるアクティビティトラッカーやAndroid Wearベースのスマートウォッチなど、ウェアラブルデバイスが一気に花開きつつある。ウェアラブルデバイスは、より広いIoT(The Internet of Things)の市場の一部だ。IoTの難しさの1つは、個々の市場分野ごとに、異なるコンフィギュレーションのチップが必要になること。IoTの一部のウェアラブルデバイスの市場の中だけでも、市場の多様性が広く、異なる種類のチップが必要となる。
ARMは10月に米サンタクララで行なった同社の技術カンファレンス「ARM Techcon」で、ウェアラブル向けのチップ設計のセッション「Design Principles for Ultra-Low Power Wearable SoCs」を行なった。
ウェアラブルの課題は、人間の体に付けるデバイスは、多種多様に渡ること。生活記録の「ライフログ(Lifelog)」や医療/ヘルスモニタから、モバイル体験を拡張するようなメガネ型のスマートグラス、「AR(Augmented Reality:拡張現実)」ゴーグルまで、フォームファクタも機能も幅広い。
またデバイスを装着する部位によって、センサータイプや求められるコンピューティング性能など機能的な面が異なる。下のスライドはARMが今年(2014年)春に台北で開催したIoTデバイス開発のためのカンファレンス「Connecting Everything, the future of IoT World - ARM Embedded/IoT Seminar」のfreescaleのスライドだ。
ユーザーの幅が広いウェアラブルデバイス
使われているCPUコアも、組み込み向けのCortex-Mファミリから、Cortex-A9やA7のマルチコアまで性能レンジが広い。バッテリと駆動時間も、コインバッテリで1カ月持つものから、数百mAhで毎日充電が必要なものまである。
ウェアラブルデバイスの開発をさらに厄介にしているのが、身につけるという特性から拡張されるユーザーや用途だ。ユーザーだけを見ても、老齢者や子供のアクティビティやヘルスのモニタリング、ティーンエイジャーのファッションアイテム、さらにはペットや家畜へのウェアラブルモニターまで広い。人類以外のユーザーも含むので、最終的にはユーザー数が人口数よりも膨れ上がる可能性があるという。
老齢者や子供をウェアラブルのユーザーに考えると、操作や保持をできる限り簡易にする必要があるとARMは主張する。軽量で装着感を感じさせないことや、バッテリ充電をあまり意識させないことが重要となる。また、ファッション的な要素を考えると、装飾品と電子機器の間に落としどころを見つける必要がある。
また、ディスプレイが小さいウェアラブルでは、基本的にハンズフリーが求められる。マンマシンインターフェイスの改革が求められている点もウェアラブルを難しくしている。
3セグメントに分かれるウェアラブルデバイス
ARMはウェアラブルの市場が大きく3つのセグメントに分かれると見ている。「ベーシックウェアラブル」は、万歩計から進化したアクティビティモニターのような固定機能ウェアラブルデバイス。「ミッドレンジウェアラブル」はスマートウォッチのようなユーザーとインタラクトするデバイス。「ハイエンドウェアラブル」は、グラスやARゴーグル、ウェアラブルフォンのようなプロセッシングパフォーマンスを必要とするデバイスだ。
上のスライドを見ると明瞭に分かるように、ベーシックウェアラブルは固定機能デバイスなので、OSはシンプルな組み込みOSか、OSを使わないベアメタル(Bare metal)。ディスプレイは持たないか最小限、通信は現状ではBluetooth。従来の組み込みマイクロコントローラ(MCU)でカバーできる範囲となっている。MCUは組み込みの世界では当たり前の製品カテゴリで、低性能CPUコアとI/O、それから典型的には組み込みメモリを内蔵する。現在の製品では、通常は、オンチップのEmbedded Flashストレージと、ワーキングメモリのSRAMを持つ。メモリも内蔵するという意味では、真の意味のSoC(System on a Chip)だが、慣例的にはMCUと呼ぶ。
この市場での現在の代表的なデバイスであるアクティビティモニターは、まさにこうした構成のチップを載せている。FitBitのリストバンド型モデルである「FitBit Force(健康上の理由で米国でリコール)」の例では下のスライドのようにCortex-M3ベースのSTMicroelectronicsのMCU「STM32L151C6」を使っている。非常に低電力のMCUだ。
同じウェアラブルでもカメラ型の「GoPro Hero」では、Cortex-M4ベースのFreescaleMCU「SCK20DN51Z」と、イメージプロセッサを含むカメラSoCにARM11ベースのAmbarella「A770」の構成となっている。ちなみに、スライドではGoPro Hero 2となっているが、実際にはGoPro Hero 3だと見られる。
このように、ベーシックウェアラブルの範疇のデバイスは、従来の組み込み向けのソリューションでカバーが可能だ。GoProの例を見ると、MCUとカメラSoCの統合のような最適化もできそうだ。
概観すると、こうしたエントリレベルのベーシックウェアラブルデバイスは、ARMのCPUコアならCortex-Mファミリまででカバーされていることが分かる。実際には、ミッドレンジウェアラブルでも、組み込みOSを搭載した機器はCortex-Mとなる。組み込みの世界で、ARMのARM7やARM9が切り開いてきた市場を、そのままCortex-Mが引き継いだ形だ。
ミッドレンジのウェアラブル機器ではチップの構成が異なる
ミッドレンジウェアラブルとなると状況が異なって来る。従来の組み込み向けMCUでは、カバーできなくなるからだ。
ミッドレンジウェアラブルの典型であるスマートウォッチは、前回の記事で述べたように、ベーシックスマートウォッチと、高機能スマートウォッチに分かれる。下位のベーシックなスマートウォッチは、シンプルな組み込みOSで、限られた機能に留まる。それに対して、下記のスライドにあるように、上位の高機能スマートウォッチになると、AndroidやiOSのような機能の揃ったOS「リッチOS(Rich OS)」が乗り、それが全てのハードウェア機能を押し上げる。ハイエンドになると、もっとプロセッシング性能が必要となる。
前回の記事でも紹介したが、ベーシックなスマートウォッチのPebble Technologyの「Pebble Steel」は、MCUがSTMicroelectronicsの「STM32F205RE」で、CPUコアはCortex-M3、OSは組み込み向けOSの定番「FreeRTOS」を拡張したPebble OS。STM32F205REは、FitBitと同じSTMicroelectronicsのCortex-M3 MCUでも、より高性能で内蔵メモリ容量も大きいチップだ。しかし、MCUクラスのチップであることは変わりがない。
一方、高機能スマートウォッチの走りだったOmateの「Omate TrueSmart」は、SoCがMediaTekのモバイルSoC「MT6572」で、CPUコアはデュアルCortex-A7、OSはAndroid。また、最近のAndroid WearベーススマートウォッチのSoCは、Qualcommの「Snapdragon 400」やTexas Instrumentsの「OMAP3」などのモバイル向けSoCを搭載する。CPUコアはCortex-A7/8。組み込み向けMCUではなく、モバイルSoCやアプリケーションプロセッサと呼ばれるカテゴリのチップを載せている。
後者の高機能スマートウォッチがCortex-Aを使うのは、リッチOSに必須の「MMU(Memory Management Unit)」のためでもある。Cortex-MはMMUを持たないが、Cortex-AはMMUを搭載している。また、Cortex-Mは組み込みメモリを前提として設計されており、Cortex-Aは大容量の外付けメモリを想定しているという違いもある。前回の記事で説明したように、現状では、ミッドレンジ以上のウェアラブルに最適化したチップがまだ間に合っていないため、モバイルSoCを低電圧駆動して代用しており、これがウェアラブル機器のバッテリ駆動時間が非常に短い原因となっている。
各ウェアラブル機器毎に異なるチップの機能
こうした機能的な区分から考えると、実際にはミッドレンジデバイスのうち、リッチOSではないデバイスはベーシックなウェアラブルに組み入れた方がよさそうだ。実際にデバイスに対する機能要求から見た区分だとそうなる。下のスライドはARMのConnecting Everything, the future of IoT World - ARM Embedded/IoT Seminarカンファレンスのものだ。こちらはデバイス機能で区分されており、上のスライドとはカテゴリ区分が異なる。
こちらの区分では、ベーシックスマートウォッチは、左のエントリレベルに入る。一見して分かるように、ミッドレンジのデバイスではリッチOSを走らせるためMMUを備えたCortex-Aファミリとなる。ローエンドのCortex-A5が推奨されているが、現実にはCortex-A7も多くなるだろう。
さらに特徴的なのは、上の機能要求のところで、ミッドレンジのデバイスでは、Cortex-A5に加えてI/OタスクのためにプロセッサコアとしてCortex-M0+などの併用が推奨されていることだ。これはハイエンドウェアラブルでも同様で、これが高性能なウェアラブルデバイス向けのチップの特徴となっている。
つまり、ベーシックなウェアラブル機器は、センサーと通信と制御のトラッカー機能を持つ。加速度などのモーションセンサーとそのデータを処理するコンピュートと、処理したデータを通信する機能の組み合わせだ。それに対して、スマートウォッチを含むミッドレンジウェアラブルでは、トラッカー機能に加えて、より高度なリッチOSを走らせ、ユーザーにUIで表示し、OSの上のアプリを走らせる機能を備える。カメラやビデオ、音声認識、音声ガイドなどの機能も機種によっては必要で、通信もWi-Fiが必要となる。
ウェアラブルSoCでは常時動作の超低電力ユニットが必須
ここでポイントは、ベーシックなトラッカー機能は、常に機能し続ける「オールウェイズオン/オールウェイズアウェア(Always-on/Always-Aware)」の必要があり、それが超低電力で実現されなければならないことだ。単体のベーシックウェアラブルデバイスでは、超低電力が当たり前となっている。
そして、ミッドレンジウェアラブルのスマートウォッチなどに統合されるトラッカー機能についても同様に超低電力が求められる。スマートグラスやARゴーグルのようなハイエンドウェアラブルでも同様で、ウェアラブルデバイスである限り、モーションセンサなどのトラッカー機能をオールウェイズオン(常時オン)で常に超低電力動作させる必要があるとARM Techconのセッションでは指摘された。
そのため、ミッドレンジから上のウェアラブルデバイスは、常時オンの超低電力機能部と、オンデマンドの高性能かつ電力効率の高い機能部の組み合わせになるという。CPUコアでは、Cortex-Mが常時オンを、Cortex-Aがオンデマンドを担当する。
下のスライドは、今年10月のJEDECのカンファレンスMobile Forumで示されたウェアラブルシステムの構成例だ。「Always on CPU」となっているのがCortex-M、「Apps. CPU」となっているのがCortex-Aだ。左端のベーシックウェアラブルから、右へ移るにつれて機能ブロックが加わって行くことが分かる。Cortex-AとGPUコア、ディスプレイプロセッサ、ビデオプロセッサが加わる。
メモリ回りも変わる。ベーシックウェアラブルでは、メモリはオンチップのEmbedded Flashストレージと、ワーキングメモリのSRAM、プログラムのROMが基本。それがミッドレンジになると、Embedded Flashはオプショナルとなり外付けNANDストレージが標準となる。また、ワーキングメモリもDRAMコントローラDMCが加わり、外付けDRAMがサポートされる。ただし、内蔵メモリもCortex-Mは内蔵メモリを使うといった使い分けで必要になる場合もある。
下のスライドはARM Techconで示されたミッドレンジ以上のウェアラブルデバイスのSoC構成例だ。より分かりやすい図に起こしたものが、下の図となる。
こうして見ると、ウェアラブル向けのチップは、Android Wearなどに向けたミッドレンジチップでも、モバイルSoCとは方向性が異なることが分かる。実際には、CPUやGPUのIPの実装レベルになると、モバイルSoCとはもっと決定的に異なる。