富士通の「プラットフォームSoC」第2弾は省電力機器向け。

富士通セミコンダクター(以下、富士通)は、「プラットフォームSoC」と呼ぶコンセプトに基づいて、パートナー企業とのエコシステム構築によるソリューション提案型ビジネスを加速させている。既存のアプリケーションプロセッサでは対応できないさまざまなニーズを持つ顧客に対し、最適な仕様と日本メーカーならではのきめ細かいサポートで新たな選択肢を提供する。ここでは富士通に、「プラットフォームSoC」製品の展開について聞いた。またパートナー企業5社に、各社の製品概要、および協業のねらいを聞いた。

メインイメージ

ハード、OS、フレームワークの三つの軸で製品開発を考える

近年、無線モジュールやセンサーを搭載する組み込み機器に注目が集まっている。情報端末や家電機器がインターネットに接続されるようになり、私たちの身の回りでもIoT(Internet of Things:モノのインターネット)時代の到来を実感することが多くなってきている。背景には、インターネット接続が容易になったこと、そしてオープンソース・ソフトウェア(OSS)文化が台頭し、IoT機器の実現に必要なソフトウェアを入手しやすくなったことなどがある。「あらゆるモノがインターネットにつながる。このことは、あらゆる組み込み機器がインターネットにつながると言い換えることができます。IoT時代の組み込み機器開発では、ハードウェア、OS、そしてオープン・フレームワークの三つの軸を意識する必要があります」(富士通 須賀氏)。

「ハードウェア」については、画像処理やグラフィックス処理といった、機器そのものを特徴づける機能を必要とし、IoT時代の組み込み機器では、当然ながらネットワーク接続の機能も必要となる。これらの能力を具現化するハードウェアが求められてきている。

「OS」については、標準OSの採用がポイントとなり、ハードウェアの潜在能力を引き出すとともに、各種OSSと組み合わせて利用できるLinuxに代表されるような標準OSの環境が必要となる。

「オープン・フレームワーク」とは、例えばOpenGLやOpenCL、OpenMAXなど、アプリケーション構築に利用される各種標準ライブラリを指す。最近では、こうしたオープンな規格を中心に、アプリケーション構築のエコシステムが形成される傾向にある。

プラットフォームSoC省電力版の汎用プロセッサS73を開発

富士通は「プラットフォームSoC」のコンセプトに基づき、製品を提供している。プラットフォームSoCはまさにハードウェア、OS、オープン・フレームワークの三つの軸を意識して製品化したSoC開発基盤となっている。

プラットフォームSoCでは、CPU/GPUコア、それに付随するメモリ・インタフェース・ブロック、メディア処理ブロック、高速I/Oブロックを含むデバイス構成の大枠が、あらかじめ定義されている。この部分が“土台(プラットフォーム)”となり、土台だけを汎用プロセッサとして使うこともでき、ユーザーが土台に独自の回路を付加してカスタムSoCを起こすことも可能だ。

カスタム化する場合は、ユーザー論理はAMBA AXIバスにつなぎ、一般にカスタム・プロセッサを開発する際には、CPUまわりの回路を注意深く設計する必要があるという。例えば、バスネックが発生しないか、特定のCPUコアやメモリ・ブロックにアクセスが集中していないか、などを事前に検証しなければならない。「プラットフォームSoCでは、土台の部分があらかじめ当社によって設計・最適化済みなので、このような問題がかなり解消されます」(須賀氏)。プラットフォームSoCをベースにカスタムSoCを開発すれば、Linuxを動かすところまでは、問題なく進むことができる。別メニューとなるが、プラットフォームSoCの土台の内部まで手を入れてデバイス全体の最適化を図る従来型のASIC開発受託にも、要望があれば対応可能だ。

「プラットフォームSoC S70シリーズ」の最初のデバイスである「MB86S70」を2013年の秋に開発し、提供を始めた。MB86S70はプラットフォームSoCのフラッグシップとなるデバイスで、ハイエンド市場をターゲットとしている。MB86S70は、2.4GHz動作のCortex®-A15を2コア、800MHz動作のCortex-A7を2コア搭載しており、ARM®が提唱するbig.LITTLE™アーキテクチャを構成することで、省電力と高性能を両立させることができる。また、GPUコアのMali™-T624を4コア搭載しており、さらに4K2K映像のデコードに対応したH.264などのメディアCODECやPCI Expressインタフェース、Wake on LAN(ネットワーク待機応答)の機能も備えている。こうした機能構成は、主にソフトウェア・プログラマブルな画像処理応用を意識しているという。

汎用プロセッサのラインアップとして、S70シリーズの2番目のデバイスとなる「MB86S73」の開発がすでに完了している。「MB86S70がハイエンドの画像処理応用を意識した機能構成であったのに対して、MB86S73はミッドレンジやローエンドの市場を意識して性能を最適化するとともに、省電力化も図っています」(須賀氏)。MB86S73は、1.2GHz動作のCortex-A7を2コア搭載し、GPUコアのMali-T624(1コア)やJPEG CODECも搭載している。MB86S70はWake on LANの機能を備えており、ネットワーク待機状態に移行することで消費電力を抑えられる。一方、MB86S73は、Wake on LANに加えて、Wake on USB(USB待機応答)の機能も備えている。さらに、メモリ・コントローラにも手を加えており、本デバイスがスリープ状態であっても、外部のSDRAMに電力を供給し続ける省電力モードを備え、1mW以下の消費電力を実現する。汎用プロセッサのラインアップが増えることで、あらゆる組み込み機器への展開が期待される。

ソフトウェア開発環境は、MB86S70とMB86S73のそれぞれについて、評価・開発ボードとLinux BSP(Board Support Package)を用意している。Linux BSPには、デバイス上にLinux環境を構築するために必要なすべてのソフトウェアと情報が含まれ、具体的には、オープンソースのブートローダーであるU-Bootのソース・コード、Linuxカーネルのソース・コード、ファームウェア書き換えツール、OpenGLライブラリ、OpenCLライブラリ、マルチメディア・ライブラリ、ネットワーク待機応答ライブラリ、ユーザー・マニュアルなどで構成されている。このLinuxカーネルは、OpenGLやOpenCL、OpenMAXといったオープン・フレームワークに対応しており、これがハードウェアの差異を隠ぺいするため、アプリケーション・ソフトウェアの開発者は、ハードウェアの違いをほとんど意識する必要がない。「プラットフォームSoCのコンセプトに基づいて開発している限り、S70シリーズ間でほとんどのソフトウェア資産を継承できます」(須賀氏)。

パートナー企業との連携で直感的で豊かな表現力を実現

MB86S70は、3Dグラフィックスと映像が混在した表現力のあるメニュー画面やUI(User Interface)、大画面のフィルタ処理、画像認識を伴うAR(Augmented Reality:拡張現実)アプリケーションなどを実現するのに最適である。一方、MB86S73は静止画を対象とした画像処理などに適している。こうしたシステムの開発では、ビジュアル的に優れたアプリケーション・ソフトウェアをユーザー自身で開発する必要がある。

こうしたソフトウェアの開発を容易にするべく、パートナー企業とエコシステムを構築している。「UI開発の課題として、今後は組み込み機器にも、スマートフォンやタブレットに採用されているような、直感的で豊かな表現を実現するUIが求められます」(富士通 瀧本氏)。このようなUIを機器に実装するための取り組みも行っている。

まず、ハードウェアに要求される処理性能である。インタラクティブ性が重要となるUIにおいて、直感的で豊かな表現を実現するためには、高いグラフィックス処理性能とCPU性能が要求される。また一般に、「UIの設計」と「UIシステムの開発」は別の作業となる。前者はデザイナーの仕事であり、後者はプログラマーの仕事となる。デザイナーがUIを設計し、プログラマーがUI仕様に基づいてソフトウェアを作成し、さらにでき上がったソフトウェアをデザイナーがレビューする。その結果に基づいてプログラマーがコードを修正し…、というようなやりとりが何度も発生し、開発期間の長期化を招く。そのため「UIの開発では、こうした問題を解消するために、専用の開発環境が必要となります」(瀧本氏)。

ARシステムは画像認識によって抽出した情報からデータベースを検索し、新たな情報(拡張情報)を画像に付加して表示している。UI開発と同等以上のグラフィックス処理性能とCPU性能が求められる。また、ARは発展途上の技術のため、新しい使い方が登場するであろう。現在は、カメラ・モジュールやGPSモジュールを利用するARシステムが多い。今後は、他の機能とも連携する可能性があるため、将来に向けたシステムの拡張性も視野に入れておきたい。

「富士通では、UI開発やARシステムの開発で実績のあるパートナー企業、Unity Technologies社、セガ社、エイチアイ社といった企業と連携して、アプリケーション開発を支援するソリューションの構築に取り組んでいます」(瀧本氏)。これらのパートナーは、UIやARシステムを容易に実現できる専用の開発環境、およびS70シリーズのうえで動作するランタイム・プログラム(ミドル

ウェア)を提供している。ソフトウェアのカスタマイズや最適化が必要になる局面では、富士通ビー・エス・シー社のシステム構築サービスが利用可能である。

富士通は、Java実行環境を提供している日本オラクル社とも共同でソリューションの構築を進めている。「クラウドにつながる機器の開発では、Javaの環境が広く使われており、S70シリーズはクラウド・システムの一部としても使われる、と見ているからです」(瀧本氏)。具体的には、センサー端末とクラウド・サーバの間に配置されるゲートウェイ機器への適用を想定しているという。例えば、HEMS(Home Energy Management System)の場合、複数のセンサーから取得した情報をもとに、リアルタイムに電力制御を行う必要がある。S70シリーズは、このようなゲートウェイデバイスに要求される機能を提供する。

【日本オラクル】Run Anywhereで組み込みを変える

Javaで名声を博する日本オラクル社は、S70シリーズ・プラットフォームSoCのサポートを強化している。単一のテクノロジー勝負ではなく、デバイスベンダーとの共同プロモーションによりJavaが動作するデバイスの拡大を図っている。「私たちが開発しているJava実行環境を、MB86S70で動作させています。Javaの特徴は、同一のプログラムをさまざまなプラットフォーム上で動かせることです」(日本オラクル阿部氏)。

プログラムの下にはVM(Virtual Machine)の層があり、APIでつなぐことにより、デバイス間の差異を隠ぺいする。例えば、パソコン(x86)で作成したプログラムを、MB86S70上でそのまま動作できる。パソコンやMB86S70には、Java SE(Standard Edition)と呼ばれるJavaの標準的なVMがインストールされるのだが、それよりもサイズの小さいJava ME(Micro Edition)を入れれば、その上でも同一のプログラムが動作する。Java MEは、通信モジュールやセンサー・ノードなどで使用できる。「2014年3月に公開した「Java 8」では、従来、Java MEの一部であったCDC(Connected Device Configuration)の規格が、Java SEに取り込まれました」(阿部氏)。CDCは、複合機やセットトップボックス、ネットワーク機器などで使われているJava実行環境のコンフィギュレーションである(次ページ 図6)。さらに、今回のバージョンから、Java SEのEmbedded版については、搭載する機能(パッケージ)を取捨選択することにより、Java実行環境の動作に必要なメモリ容量を調整できるようになった。具体的には、Compact1~3(約10M~24Mバイト)の三つのプロファイルを用意している。

「MB86S70上では、UI制御や印刷、3Dグラフィックスなどの機能を備えたGUIライブラリ「JavaFX」を動作させています」(阿部氏)。組み込み機器の中には、画面のないものも多いため、Java SEのEmbedded版では、この機能を外すことが可能だ。

【Unity Technologies】ビジュアル・アプリやAR開発を支援

UIおよびAR開発環境を提供するUnity Technologies社は、ビジュアル的にすぐれたアプリケーション開発ミドルウェアとして、統合開発環境「Unity」を提供している。プログラミングにはC#やJavaScriptを使い、ランタイム・プログラムを出力する。Unityのユーザーは、世界中に290万人いる。「多くのユーザーに支持されている理由の一つは、マルチプラットフォーム対応です。現在、AndroidやiOS、Windows、Mac(OS X)、Linuxなどに対応しており、各プラットフォームへの変換は、“Build”ボタンを押すだけで完了します」(Unity伊藤氏)。

MB86S70の場合、UI開発に利用されるケースが多いが、それ以外にも多くの用途が期待される。例えば、カメラ・アプリで顔認識を行った後、撮影画像を変形させたり、別の画像を乗せたり、といったエンターテイメント的な機能を実現する。UnityはARを使ったシステムの開発にも利用できる。例えば、近くを人が通ると、映像の中の髪の毛がなびくといった、人に反応するデジタル・サイネージ(電子看板)などへの応用だ。また、工場で使用する業務用タブレット端末で工場内をカメラ撮影し、画像認識技術によって棚やコンテナなどを識別し、どのような部品が入っているかを撮影した映像に重ねてテキスト表示するような用途などにも期待できる。

「UnityにはAsset Storeというオンライン・ストアが組み込まれており、拡張機能や3Dモデル、テクスチャ、エフェクトなどを購入できます」(伊藤氏)。例えば、Qualcomm社が開発したARライブラリ「Vuforia」をアドオンすることにより、Unityの中で簡単にARシステムを開発できる。

【セガ】ゲームの知識と経験を組み込みへ

ゲーム業界で名高いセガ社は、アプリケーション開発のコストダウンに寄与するミドルウェア「Acroarts」を提供している。セガ社は「ゲームのノウハウにより、あらゆるデジタル・デバイスをエンターテイメントにしていく」ことを標榜しており、10年以上の蓄積されたノウハウを活かし、開発ツールとランタイム・エンジンとしてまとめたものが「Acroarts」である。

近年では、組み込み機器での活用が進んでいる。「私たちはこのAcroartsを用いて、MB86S70の中に遊びの精神を注入していきます。Acroartsには、2D/3Dグラフィックスの開発支援、UIの開発支援、時代を象徴する遊び/先進技術を使った遊びの開発支援という三つの役割があります」(セガ近藤氏)。その一環として、最近はAR技術を使ったコンテンツ開発支援にも力を入れている。ユーザーは、Cなどのプログラミング言語をいっさい使うことなく、ツールの上だけでさまざまなコンテンツを作成することができる。

ARを機器間連携に応用する新たな技術も開発中だ。「例えば、遠くにある大画面テレビに映っているあらゆるオブジェクトに、手元のスマホの画面を介して触れることができる、といった使い方が可能となります」(近藤氏)。こういった、人とコンピュータを円滑にコミュニケーションさせる技術は、ゲーム業界では長年のテーマとして取り組んでいる。特に、画像技術と関連したUIを、「グラフィカル・ヒューマン・インタフェース」と呼んでおり、このAR技術も、研究成果の一つなっている。「富士通社は、企業ビジョンとして『ヒューマン・セントリックなICT(人間中心の情報通信技術)』を掲げています。これは、人とコンピュータのより良い関係を目指す点において、私たちが研究してきたグラフィカル・ヒューマン・インタフェースと非常に親和性が高く、この二つが組み合わさることにより、情報の分かりやすさ、伝わりやすさが、さらに1歩前進すると考えています」(近藤氏)。

【エイチアイ】「人間中心設計」でUI開発

高機能UI統合開発環境を提供するエイチアイ社は、広い意味での“UI”を実現するオーサリング・ツール「exbeans UI Conductor (エックスビーンズUIコンダクター(以下、UIC))を提供する。ユーザーはパソコン上で、直感的なドラッグ&ドロップ操作によってUIを設計でき、試作の段階で専門のエンジニアがいなくても、企画担当者やデザイナーが自身でUIのプロトタイピング開発が可能。「この上流工程における成果物はUICの専用ランタイムエンジンを利用することで、下流工程のUIアプリケーション開発に流用することができ、上流から下流工程への一貫したUI開発が可能となります」(エイチアイ 高橋氏)。

UICはプラグイン・アーキテクチャを採用している。例えばデジタル・カメラであれば、イメージセンサーや顔認識エンジンといった構成要素をUICの中に取り込み、パソコン上でシステム全体の動作を検証・評価できるように拡張できる。また、「超上流工程」の位置づけで、UI / UX(User Interface / User Experience)の領域における“使いやすさ”の品質を高める取り組みとしてコンサルティング事業も行っている。ISOで定義されている「人間中心設計」のエキスパートをUI開発のプロジェクトに置くことで、ユーザーがより使いやすい製品を実現するために、HCD/UCD(Human Centered Design / User Centered Design)プロセスの観点からユーザー用件を定義し、製品コンセプトからユーザー利用要件を導き出し、それをシステム機能として具現化することができる。従来、企画側が考えたコンセプトを実現しようとした際、システム側の制限などにより、具現化できない局面に対して、エイチアイ社が間に入って問題を解消することができるという。「UI開発のプロ集団として、超上流工程から下流工程まで一貫した人間中心設計に基づく開発プロセスを提唱し、豊かなユーザー体験を実現するソリューションを提供します」(高橋氏)。

【富士通ビー・エス・シー】SIer(システムインテグレータ)の立場でソフト開発を支援

スマートフォン、インフラ機器、車載機器、デジタル家電、イメージング機器などの領域で事業を展開する富士通ビー・エス・シーは、同社が培ったノウハウでS70プラットフォームSoCを支援していく。イメージング機器においては、2009年にニコンシステム(ニコンの子会社)と合弁会社を設立し、ニコン製のデジタル・カメラや監視カメラなどのファームウェアを共同開発した実績を持つ。組み込み機器の開発向けに、ソフトウェアのカスタマイズやチューニングなど、性能を最大限に引き出す支援をする。具体的なメニューとして「ユーザーアプリケーションの開発支援、ポーティング/チューニング支援、工程およびドキュメントの定義を含めた開発プロセス支援の3つのサービスを提供します」(富士通ビー・エス・シー地引氏)。

同社が関わる工程は案件によるが、要件定義の段階から関わる場合は、開発対象に合ったプロセッサやミドルウェアをメーカーと一緒に選定する。また、使用するプロセッサやミドルウェアをメーカーがすでに選定済みの場合は、ソフトウェアの実装やGUI開発などを支援する。「最近ではGUIについて、3Dグラフィックスやアニメーションなどの処理を要求するメーカーが出てきています。また、画面サイズが大きくなり、フレーム速度も高速のものが要求されています」(地引氏)。

GUI開発において、性能面のチューニングは常に求められる。S70シリーズは、ARMベースのアーキテクチャだが、多くのプロセッサ・コアを内蔵しているため、並列処理やバスネック回避など、専門家のノウハウを活用したい。