Rubyを使って構築したデジタル家電向けUI。
Rubyを使って構築したデジタル家電向けUI。
[画像のクリックで拡大表示]
東芝の家電向けCell開発環境の構成。
東芝の家電向けCell開発環境の構成。
[画像のクリックで拡大表示]
デモの外観。右にあるのはCellが搭載されたリファレンス・セット「CRS2」。
デモの外観。右にあるのはCellが搭載されたリファレンス・セット「CRS2」。
[画像のクリックで拡大表示]

 東芝は,プログラミング言語「Ruby」を使って開発したデジタル家電向けのGUIを展示した。マイクロプロセサ「Cell」を搭載したリファレンス・セット「CRS2」(関連記事1)で動作させた。東芝の半導体部門はデジタル家電向けにCellを普及させる目論見を持っているが,「せっかくCellのような高速なマイクロプロセサを組み込み機器で使うのであれば,Rubyのような開発効率の高い言語を使って,ソフトウエア開発の作業自体を楽しいものにしたい。そういう思いから今回,開発言語としてRubyを採用した」(東芝の説明員)という。なお,同実演にはRubyの生みの親であるまつもとゆきひろ氏も視察に訪れていた」(関連記事2)

 東芝のブースではCRS2上でLinux(Fedora 7)を動作させ,ソニーのデジタル家電向けGUI「XMB」と似たようなGUIを動作させていた。DLNAによるネットワーク越しのコンテンツ視聴,地デジ視聴,音楽再生などを想定したGUIメニューを作り込んである。今回は電子番組表などすべてのアプリケーションを作り込んであるわけではないが,将来的にはデジタル家電向けプラットフォーム「OCMP(Open Connected Media Platform)」として発展させ,家電メーカーに対し採用を促していく計画である。

 ここで使われたGUIアプリケーションは,ソース・コードの約8割をRubyで構築した。グラフィックス描画ライブラリとしては「Cairo」を,画面の描画については組み込みLinuxで一般的に用いられているライブラリ「DirectFB」を利用した。CairoはもともとはX-Window向けだが,今回,DirectFBへの描画に対応させたという。

「CellだからこそRubyで」

 Rubyはインタープリタで動作するスクリプト言語のため,一般にC言語などで組んだアプリケーションよりも動作が遅くなるといわれる。今回は,数GHz動作が可能と,デジタル家電で用いるマイクロプロセサとしては高速なCellを用いたこともあり,実演ではGUIメニューは十分なレスポンスで動作していた。

 ただし,「現在のデジタル家電で一般的な数百MHz動作のマイクロプロセサを使った場合は,Rubyで構築した今回のGUIを十分な速度で動作させるのは難しいかもしれない」(東芝の説明員)という。

 Rubyは生産性の高さが評価され,現在,Webシステムの分野で多く使われているが,デジタル家電など組み込みソフトウエアの分野ではそれ程普及しているわけではない。組み込みソフトウエア技術者が生産性向上のためにRubyを採用したくとも,実際にはメモリ容量やマイクロプロセサのコスト上昇を嫌って実行に移せないというのが実情である。

 デジタル家電へのCellの搭載は,こうした状況を変える可能性がある。映像認識によるユーザー・インタフェース(関連記事34),あるいは動画のトランスコーディング(関連記事5)といった膨大な演算能力が必要な用途を理由にCellの搭載を決断できれば,「副次的に開発言語もRubyを採用しようとの判断が働きやすくなるのでは」(東芝の説明員)とみる。

 なお,Cellは組み込み機器向けとしては高速であるものの,その真価は信号処理プロセサ「SPE」が複数個搭載されている点にある。このためOSなどの汎用処理を担うPower系CPUコア「PPE」に限っていえば,米Intel社の最新の86系マイクロプロセサと比べると,処理性能は見劣りするといわれている。今回のデモで,東芝はRubyアプリケーションをCellのPPE上で動作させており,複数のSPEで並列動作はさせていない。一般的なデジタル家電のマイクロプロセサよりはパワフルだが,パソコンで動作させる場合と比べるとGUIアプリケーションの動作は遅くなっているという。

この記事を英語で読む