オルタナティブ・ブログ > ヨロズIT善問答 >

30年に渡って関わってきた米国のITの出来事、人物、技術について語る。

低電力消費ソフトウエアー: 低電力コンピューティングに必須

»

前回最近のコンピューティングが低電力に向かっていると書いた。コンピューティングというと、チップやその他のハードウエアを連想するが、当然低電力コン ピューティングを実現するには、ハードの上で実行されるソフトウエアも低電力で正しく動作しなければならない。組み込みシステムでない世界では、プロセッ サーやメモリーやストレッジは安いのだから、とにかくソフトは分かりやすく書け、リソースはどれだけかかっても構わないと言われてきた。ここに来て、その 傾向が変わり始めている。例えば、データセンターでのサーバーは安価で性能も低いサーバーを何台も並列に使用するという方向に進んでいる。もちろんこれ は、ウエブやSNSの様なスケール・アウトが必要な環境であり、ハイパーフォーマンス・コンピューティングについてはスケール・アップしなければならない が。

組み込み式システムは過去も今も低電力で作動することが必須だ。最近はセンサーやその他のアプリケーションで、リソースが更に限られ たオブジェクトの数が爆発的に伸びてきた。こういった環境で作動するシステムでは、低電力が不可欠だ。ARMチップは低電力で作動することが知られてい る。しかし、チップだけが低電力でも問題は解決しない。その上で作動するソフトウエアも低電圧をサポートしなければならない。最近参加したARM TechConで4つの会社をインタビューした。そのうちの3社はこの低電力コンピューティングをサポートするソフトウエアやツールを提供している。簡単 にその3社の製品を紹介しよう。

yaSSL社。ここはオープンソースのSSLを二重ライセンス(オープンと商業)で提供している。商業的 に使用しない場合はオープンソースとして使用できる。この会社のルーツはオープンソースのデータベースの会社のMySQLだ。2005年にMySQLが提 供するコードの所有権やライセンスを精査したところ、OpenSSLが問題になった。2点の問題が指摘された。1つはコードそのものが、長年の追加と変更 のため、大きくなり過ぎて保守や管理が困難になったことだ。もう1つはそのコードの所有権やライセンスの詳細が不明なことだった。2つ目の問題はここでは あまり関係がないので、省略する。

周知のように、プログラムを長年保守していると、必ずしも最初に開発した人が続けて保守するとは限らな い。プログラムのサイズが大きくなると、必ずしも保守している人がコードの全てを完全には把握しているとは限らない。その場合、変更を加える場合、設計を 見直して根本的な変更を加えるよりも出来るだけ簡単になるような変更を加えがちである。そうなると、バグが挿入される場合もあるが、コードがきたなくなっ て効率の良い実行ができない場合が生じる。これが長年積み重さなって来ると、保守できない状態になってくる。そこで、コードを一から書き直すということ で、yaSSL社が生まれた。その当時はこれからは、益々組み込み式システムの市場が活性化すると読み、システムをできるだけ小さくした。コードの大きさ は20–100 kB で、実行に必要なメモリーはわずか5–50 kBだ。更に、市場としては、ゲーム端末、電力網でのメータを含む各種機器やSkypeなどのストリーム・メディアだ。

コードを新規に書 き直してそのコードサイズを落とし、必要なリソースを制限することで、新たな市場の台頭に備えることができた訳だ。SSLは標準化されており、少し気のき いたプログラマーなら、独自のSSLのパッケージを開発できるだろう。しかし、yaSSLは機能以外のところで差別化を達成している。学ぶところは多い。

IS2T 社: この会社はJava MEのCLDCの解を提供する。MicroEJと呼ばれる製品は開発環境とJVM、そしてシミュレータを提供する。開発環境はEclipseをベースにし ている。プラグインを利用してJavaの他CとC++もサポートする。この環境の特徴はともかくコードと必要とされるメモリーが小さい。JVMで言えば、 大手のベンダーが 130 KbのRAMを必要とするところ、僅か1.5kBしか必要としない。JVMのサイズから言えば、僅か28kBのフラッシュしか必要としない。しかも、ブー トに掛かる時間は120 MHzで2msだ。更にこれで、ユーザー・インターフェース(UI)を開発してもせいぜい90-140 kBで出来てしまう。更に、JNIを使って、Javaのバイトコードから既存のCやC++のコードを呼び出すことができるし、その反対も可能だ。JVMは ベアーメタル上でもRTOSの上でも実行可能である。このパッケージを使用すれば、今まででは、気のきいたUIを提供出来なかったInternet of thingsにましなUIを提供できる。例えば、各種メーター類などだ。

SSL同様Java仕様も標準化されている。差別化はコードサ イズや必要なメモリーのサイズだろう。IS2T社はノウハウを秘密にするため、特許の申請さえしない。実際に証明するには、試しに簡単な仕様を送ると短時 間に実装して、デモすることにしているそうだ。ここでも、低電力で動作する標準化された製品で競争している。

IAR社:最後は、IAR社 だ。この会社は30年の歴史を持つ。各種の製品があるが、中でもpower debuggerは非常に興味深い。ソースコード段階でのデバッガーは広く行き渡っているが、このデバッガーは各ステートメントのレベルでの電力消費を提 供するところがミソだ。ハードの電力消費を測定するのは比較的簡単だ。プローブを挿入して測定すれば良い。ソフトの場合は少し複雑だ。ソフトの場合電力消 費はソフトの信号によって、ハードの各コンポーネントがその命令に反応して仕事を実行して電力を消費する。もちろん、ハード全体を測定する場合は総電力消 費は分かるのだが、ソフトのそれぞれの部分がどのように電力を消費しているかの細かいところまでは分からない。このデバッガーはそれを提供してくれる。

似 たような機能としては、プロファイリングがある。これはソフトの各所にプローブを挿入して実行し、実行した情報を収集するものだ。この情報は各所が何回実 行されたか、あるファンクションが何回呼ばれたかなどを提供する。これをもとに、性能を上昇させるために、コードを変更する。しかし、組み込み式システム では、電力の消費はスピードと共に重要だ。時としては、スピードよりも重要かもしれない。Power debuggerは既存のデバッガーの機能に電力消費の情報を加味している。

更に、もう1点。ARMは最近まで、組み込み式システムなど の低電力の分野のみに特化していたが、サーバーの分野にも参入し始めている。ARMチップを使用するサーバーベンダーのSeaMicroは今年の初めに AMDによって買収された。その他HPもARMベースのサーバーの開発を行っている。低電力で同じ仕事が出来るのであれば、グリーンでクリーンだ。しか も、それがICTのベンダーにとっては千載一遇のチャンスかも知れない。市場を独占している大企業に勝つには、パラダイムがシフトしたときの空白をいかに 早く的確に埋めることができたものが、その新しい市場を勝ち取ることができるのだから。

Comment(0)