ユビキタスは2010年2月15日、本社を東京都新宿区西新宿に移転したが、この新社屋移転に併せて同社のQuickBoot技術の最新状況の公開を行った。

そもそもQuickBootは昨年11月に開催されたET2009に併せて同社が発表した、新しいBootの最適化技法である。従来、停止状態から高速に起動するための技法として広く使われているのが、いわゆるハイバネーションである。つまりメモリのイメージをそのまま外部ストレージ(PCならHDDやSSDだし、組み込み向け機器ならフラッシュメモリなど)に保存しておき、起動時には保存しておいたイメージをそのままメモリに展開する、という技法である。ただ8bitとか16bitのMCUのように、SRAMが数KBとか数十KBのオーダーのものならこれでも十分だが、32bit MCU+LinuxなどのOSを搭載し、さらにその上にウィンドウシステムやアプリケーションを搭載した場合、必要となるメモリ量は数十MB~数百MBのオーダーとなる。こうなると、ハイバネーションを使ってもメモリ全体をロードするのにもう少し(数十秒)必要になる。

QuickBootはハイバネーションの一種であるが、特徴的なのはまとめて全量を読み込むのではなく、読み込むべきメモリ領域を分割した上で、必要になる部分から順次読み込み、それと共にアプリケーションプロセスを再開することだ(Photo01)。もちろん最初は、アプリケーションプロセスの実行と並行してフラッシュメモリからメモリへのロードも引き続き行っているから、相対的にCPU負荷は大きく、アプリケーションプロセスをフルスピードで動かすのは難しい。とはいえ、先行してアプリケーションを再開できるのはアプリケーションによっては非常にメリットが大きい。実際ET2009では、例えば車のバックモニターのシステムにこれを搭載したいといった引き合いもあったそうで、その後も国内外からの関心が高いという。

Photo01:QuickBootの模式図。QuickBootを用いると、カーネル+最小限のユーザプロセス空間がメモリに読み込まれた時点でプロセスの実行を再開できる

そのQuickBootであるが、同社の説明によればET2009で展示したのはあくまで実験的なものであり、現在製品化に向けてコードの全面的なリファクタリングを行っているとか。またET2009ではあくまでスタンドアロンシステムでのみ利用できたが、現在はネットワークを含めた対応が出来たそうで、実際起動直後にWebブラウザを動かし、ネットワークに接続できる様子がデモされた。

このネットワーク対応、デモは固定IPを振ってのものであるが、実際にはDHCPクライアントとして動作することもできるようにする計画。ET2009では電源Offの状態からアプリケーション開始まで1秒程度に納まることが示されたが、今回は(ネットワーク回線の速度も当然影響するが)ネットワークに繋がるまでDHCPのIPリースを含めて3~5秒で動作するといった事が示された。ネットワーククライアントとして動作する機器にQuickBootを、という要件も多いそうで、こうしたニーズに応えられるようにという配慮だそうだ。

ちなみにQuickBootはあくまでもハイバネーションからの復帰を高速化する技法であり、ハイバネーションへの退避、つまりメモリからフラッシュの退避時間は高速化できないため、30秒程度(これは環境に依存)の時間は掛かってしまうとの事だった。

今後の予定としては2010年春頃(関係者によれば、「GW前には」との事だった)をめどにSDKをリリースする予定だという。SDKは、QuickBootのコア部分はライブラリあるいはバイナリの形で配布し、ユーザーがカスタマイズできる部分はソースで提供。ユーザーはこれを利用し、自身の環境に合わせてビルドするという形にする予定という話であった。またリファレンスプラットフォームはAtmark TechnoのArmadillo-500 FXを想定しており、これ用のQuickBootのシステムをサンプルで提供するとの事であった。

さらに今後の展開については、現状はARM-11ベースのSingle CPU環境を想定しているが、次第にMulti CPUの環境が普通に利用されるようになってきている現状を鑑みて、マルチプロセッサの対応は検討している(「超えなければいけない壁はいくつかありますが、やれないことは無いと思います」)との事だった。またQuickBootは原理的には特定のOSやCPUアーキテクチャに依存するものではないため、他のOSやCPUへの移植も可能だとか。ただしマンパワー的にもマーケット的にも、今すぐ検討や開発を始めるという訳にはいかないようで、今後の課題という事になるようだ。