製品情報

linux,高速起動,FastBoot,Android,高速起動ソリューションのQuickBoot
組込みシステムの高速起動ソリューション

Linux/Androidをわずか数秒からで瞬間起動し、アプリケーション実行状態へ復元可能な新技術

近年、機能の複雑化が進むデジタル家電や携帯機器のOSに、LinuxやAndroidを使用するケースが増加していますが、電源断からの起動(コールドブート)時間が数十秒から1分前後もかかり、機器メーカーにとって改善すべき課題となっています。

Ubiquitous QuickBootはそのような課題を根本から解決するために、独自開発した新技術を採用したソリューションです。



楽曲再生(音出し)デモ ラストモード機能付き

システムの起動に必要なメモリ領域を優先的に不揮発性メモリからRAMに復元することで、他の方式と比べて圧倒的な速度で瞬間起動を実現します。また、アプリケーション側で使用しているメモリ量に依存せず常に高速起動が可能であり、残りのメモリ領域は起動後に順次 読み込みを行うため、ユーザーの操作にほとんど影響を与えません。

本ソリューションを利用することで、ユーザーの操作性を損なわず、待機電力をほぼゼロにした状態からシステムを瞬間起動できるデジタル家電や携帯機器などの製品を、開発いただくことが可能となります。

ハイバネーション方式とクイックブートの動作原理の違い
図1:ハイバネーション方式とクイックブートの動作原理の違い

システム状態のメモリ・サイズと起動時間の関係模式図
図2:システム状態のメモリ・サイズと起動時間の関係模式図

主な機能

3種類の起動モードをサポート

QuickBootは、アプリケーションの特性に合わせて3種類の起動モードをサポートしています。

 ・スタティック・モード

     工場出荷時のスナップショットイメージで常に起動するモード

 ・ダイナミック・モード

     ランタイム時に新たなスナップショットイメージを作成。次回起動時には、新しく作成したスナップショットイメージから起動

 ・Android・モード(Ubiquitous QuickBoot Android Packで対応)

    スナップショットイメージを取り直さなくとも、アプリケーションの追加/削除、Androidのテーマの変更(アイコン移動、壁紙変更)等に対応するモード


ストレージの共有機能

1つのストレージを複数のパーティションに分けて、LinuxとQuickBootで共有して使用することが可能です。ストレージ共有機能は、共有によるオーバーヘッドが最小になるように最適化されています。対応デバイスは、SDおよびNANDなど。 高速起動を追求される場合には、QuickBoot専用のストレージをご用意いただくことをお勧めしています。


スナップショットイメージの圧縮機能

 ・パックドイメージ (Packed Image)

Linuxが使用しているメモリ領域のみを詰めてスナップショットイメージとして格納。

 ・圧縮イメージ (Compressed Image)

Linuxが使用しているメモリ領域を圧縮して、スナップショットイメージとして格納。圧縮アルゴリズムは、Non-GPLのものであれば、お客様が自由に選択可能。LZF、LZMA圧縮のサンプルコードを同梱。


マルチコア対応

シングルコアCPUに加え、高機能、省電力などのニーズから需要が高まりつつあるマルチコアCPUにも対応。幅広い組込み機器で採用が進んでいるARM社のCortex-A9 MPCoreをベースとしたCPUをサポートしています。

差分アップデート機能

スナップショットイメージの全面書き換えではなく、新旧2つのスナップショットイメージの差分を抽出し、差分情報のみから新スナップショットイメージを作成するための各種ユーティリティを提供。アップデートに必要なバイナリのサイズを大幅に削減します。

QuickBoot SDK

ユビキタスでは、QuickBoot をお客様のターゲット環境に実装するためのコンポーネントを QuickBoot SDK (ソフトウェア開発キット) として提供しています。

QuickBoot SDK は、特定のリファレンスボードに QuickBoot を適用する例を示すことにより、その適用例を参照することによって、お客様のターゲット環境に QuickBoot を簡単に実装できるように設計されています。

QuickBoot SDK には、次のコンポーネントとドキュメントが同梱されています。

コンポーネントの位置づけ

Linux/Android における QuickBoot の各コンポーネントの位置づけは、次図の通りです。

コンポーネントの概要
    コンポーネント 機能概略 提供
    形態
    QuickBoot スナップショットスクリプト Linux 上で実行するシェルスクリプト。所望のアプリケーションを起動した後に、このシェルスクリプトを実行して、そのアプリケーションの実行状態を保存・復帰させます。 Source
    QuickBoot スナップショットドライバ このドライバでは、RAM イメージを不揮発性メモリへ書き込む処理および周辺 I/O のレジスタ値等の保存・復帰処理等を行います。 Source
    QuickBoot BIOS/IRA QuickBoot BIOS は、Linux とは独立して動作し、CPUのレジスタ操作や、RAMイメージの保存・復元処理を行います。また、QuickBoot IRA は、高速起動メカニズムを提供します。 (*)IRA : Intelligent Resource Allocator の略 Binary
    QuickBoot Storage BIOS 不揮発メモリ(ストレージ)への読み書きを行うドライバBIOSです。 Source
    Kernel Patch QuickBoot を適用する上で必要なKernelへの変更部分をKernel Patchとして提供します Source
    ドキュメント
      種類 内容
      デベロッパーズマニュアル Overview、SDK Manual、Porting Guide、Package Manualから構成されており、QuickBoot機能概要、各種ツールの使用方法、QuickBootの適用方法などQuickBootを実装する技術情報が記述されています。
      アプリケーションノート Start Guide、Application Noteから構成されており、リファレンス用評価ボードにQuickBootを実装する際の適用例として、解説されています。

QuickBoot SDK Release 1.2仕様
    大項目 中項目 小項目 内容
    ハードウェア要件 サポートCPU ARMアーキテクチャ シングル ARM9, ARM11, Cortex-A8/9
    マルチ(SMP) Cortex-A9 MPCore
    その他 ご相談ください。
    RAM サイズ 数百キロバイト。QuickBoot BIOS/IRA、QuickBoot Storage BIOSで使用
    不揮発性メモリ 種類 NANDフラッシュROM、 SDカード、 eMMC、 HDDなど
    スナップショットイメージ格納用として使用
    サイズ Linux/Androidで使用しているメモリサイズ
    圧縮サポート サポート有り。(LZF、LZMA圧縮のサンプルコード同梱)
    格納方式 パックドイメージ(Packed Image)
    圧縮イメージ(Compressed Image)
    ストレージ共有 LinuxとQuickBootで1つのストレージを共有可能
    ソフトウェア要件 サポートOS Linux Kernel 2.6.26 以上。その他については、お問い合わせください。
    Android Android 2.2、2.3  最新バージョンには、順次対応予定。
    オプションパッケージのUbiquitous QuickBoot Android Packにてサポート。
    リファレンスボード ボード名 シングルコア版 Freescale Semiconductor社 i.MX51 EVK (i.MX51)
    マルチコア版 pandaboard.org PandaBoard (TI OMAP4)

紹介動画

極小待機電力で待機・応答・瞬間起動のネットワークアクセス


待機電力ゼロからの高速起動


ハイバネーション方式との比較


ネットワーク接続アプリケーションでの例