近年、機能の複雑化が進むデジタル家電や携帯機器のOSに、LinuxやAndroidを使用するケースが増加していますが、電源断からの起動(コールドブート)時間が数十秒から1分前後もかかり、機器メーカーにとって改善すべき課題となっています。
Ubiquitous QuickBootはそのような課題を根本から解決するために、独自開発した新技術を採用したソリューションです。
楽曲再生(音出し)デモ ラストモード機能付き
システムの起動に必要なメモリ領域を優先的に不揮発性メモリからRAMに復元することで、他の方式と比べて圧倒的な速度で瞬間起動を実現します。また、アプリケーション側で使用しているメモリ量に依存せず常に高速起動が可能であり、残りのメモリ領域は起動後に順次 読み込みを行うため、ユーザーの操作にほとんど影響を与えません。
本ソリューションを利用することで、ユーザーの操作性を損なわず、待機電力をほぼゼロにした状態からシステムを瞬間起動できるデジタル家電や携帯機器などの製品を、開発いただくことが可能となります。
図1:ハイバネーション方式とクイックブートの動作原理の違い
図2:システム状態のメモリ・サイズと起動時間の関係模式図
QuickBootは、アプリケーションの特性に合わせて3種類の起動モードをサポートしています。
工場出荷時のスナップショットイメージで常に起動するモード
ランタイム時に新たなスナップショットイメージを作成。次回起動時には、新しく作成したスナップショットイメージから起動
スナップショットイメージを取り直さなくとも、アプリケーションの追加/削除、Androidのテーマの変更(アイコン移動、壁紙変更)等に対応するモード
1つのストレージを複数のパーティションに分けて、LinuxとQuickBootで共有して使用することが可能です。ストレージ共有機能は、共有によるオーバーヘッドが最小になるように最適化されています。対応デバイスは、SDおよびNANDなど。 高速起動を追求される場合には、QuickBoot専用のストレージをご用意いただくことをお勧めしています。
Linuxが使用しているメモリ領域のみを詰めてスナップショットイメージとして格納。
Linuxが使用しているメモリ領域を圧縮して、スナップショットイメージとして格納。圧縮アルゴリズムは、Non-GPLのものであれば、お客様が自由に選択可能。LZF、LZMA圧縮のサンプルコードを同梱。
シングルコアCPUに加え、高機能、省電力などのニーズから需要が高まりつつあるマルチコアCPUにも対応。幅広い組込み機器で採用が進んでいるARM社のCortex-A9 MPCoreをベースとしたCPUをサポートしています。
スナップショットイメージの全面書き換えではなく、新旧2つのスナップショットイメージの差分を抽出し、差分情報のみから新スナップショットイメージを作成するための各種ユーティリティを提供。アップデートに必要なバイナリのサイズを大幅に削減します。
QuickBoot SDKは、お客様のターゲットボード環境にQuickBootを実装するためのSDK(ソフトウェア開発キット)です。QuickBoot SDK は、特定のリファレンスボードに QuickBoot を適用する例を示すことにより、その適用例を参照することによって、お客様のターゲット環境に QuickBoot を簡単に実装できるように設計されています。
QuickBoot Android Packは、QuickBoot SDKのオプション製品で、Androidが動作するスマートフォン、タブレット等をターゲットアプリケーションとして、Androidの使い勝手を制限することなくAndroidのホームスクリーンまでを高速起動するAndroid・モード起動を実現するパッケージです。
QuickBoot RTPは、半導体ベンダあるいはボードベンダ等が提供する特定のターゲットボード向けにQuickBootを実装したもので、インストールするだけでQuickBootがすぐ使用できるRTP(ランタイムパッケージ)製品です。ターゲットボードに付属して提供されるLinux BSPをそのまま利用して、アプリケーションを実装し、製品として量産するユースケースを想定して設計されています。
ユビキタスでは、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 + Source |
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を実装する際の適用例として、解説されています。 |
大項目 | 中項目 | 小項目 | 内容 | ||
---|---|---|---|---|---|
ハードウェア要件 | サポート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) |
QuickBoot RTPは、半導体ベンダあるいはボードベンダ等が提供する特定のターゲットボード向けにQuickBootを実装したもので、インストールするだけでQuickBootがすぐ使用できるRTP(ランタイムパッケージ)製品です。ターゲットボードに付属して提供されるLinux BSPをそのまま利用して、アプリケーションを実装し、製品として量産するユースケースを想定して設計されています。
QuickBoot RTP は、半導体ベンダパートナーあるいはボードベンダパートナー(販社、販売代理店)から当該ターゲットボードのオプション製品という位置づけで提供(販売)されます。また同時にメンテナンスサポートサービス、量産ロイヤリティについても申し受けています。
製品名 | ボード名 | CPU | 販売パートナー |
---|---|---|---|
QuickBoot RTP for Armadillo-440 Coming Soon !! 2013年 5月下旬より提供開始予定 |
Armadillo-440 |
Freescale i.MX25(ARM926EJ-S) |
株式会社アットマークテクノ |
QuickBoot RTPで提供される各コンポーネントの位置づけは、次図の通りです。
コンポーネント | 機能概略 | 提供 形態 |
---|---|---|
QuickBoot スナップショットスクリプト | Linux 上で実行するシェルスクリプト。所望のアプリケーションを起動した後に、このシェルスクリプトを実行して、そのアプリケーションの実行状態を保存・復帰させます。 | Source |
QuickBoot スナップショットドライバ | このドライバでは、RAM イメージを不揮発性メモリへ書き込む処理および周辺 I/O のレジスタ値等の保存・復帰処理等を行います。 | Source |
QuickBoot BIOS/IRA | QuickBoot BIOS は、Linux とは独立して動作し、CPUのレジスタ操作や、RAMイメージの保存・復元処理を行います。また、QuickBoot IRA は、高速起動メカニズムを提供します。 (*)IRA : Intelligent Resource Allocator の略。 QuickBoot RTPでは、ターゲットボードに最適化されたものをBinary形式で提供します。 |
Binary |
QuickBoot Storage BIOS | 不揮発メモリ(ストレージ)への読み書きを行うドライバBIOSです。 QuickBoot RTPでは、ターゲットボードに付属しているストレージに対応したもの(固定)をBinary形式で提供します。 |
Binary |
種類 | 内容 |
---|---|
マニュアル | Overview、RTP Manualから構成されており、QuickBoot機能概要、QuickBootの導入手順、デバイスドライバ等のカスタマイズ方法などQuickBootを使用する為の情報が記述されています。 |
項目 | QuickBoot SDK | QuickBoot RTP | |
---|---|---|---|
製品概要 | 任意のカスタムボードに対して、開発者自身でQuickBootを実装する為のソフトウェア開発キット | 特定ボードに対して、QuickBootが実装済み。インストールするだけでQuickBootが利用可能 | |
用途 | カスタムボードでアプリケーションを含め、高速起動させたい場合等 | Linux BSP付きの特定ボードにアプリケーションを追加して使用する場合に、高速起動させたい場合等 | |
QuickBoot コアモジュール (QuickBoot BIOS/IRA & QuickBoot Storage BIOS) |
提供形態 | ソースコード(一部バイナリ) | バイナリ |
カスタマイズ | QuickBootコアモジュール動作フェーズでユーザコードを追加することが可能 | 不可 | |
デバイス対応 | 初期対応レベル | リファレンス用QBSPでは、シェル起動する上で最低限必要なデバイスに対応 | シェル起動する上で最低限必要なデバイスに対応しているのに加え、一部デバイスがサンプル実装(AS-IS) |
カスタマイズ | 任意のデバイスに対応可能 | 任意のデバイスに対応可能 | |
スナップショットイメージ保存デバイス | 任意 | 固定 | |
スナップショットイメージの圧縮 | 任意 | 固定 | |
差分アップデート | 可能 | 不可 | |
Android Pack | 追加購入 | 設定なし |
年月 | 顧客名 | 製品分野 | 製品型番 (Link to Press Release) |
---|---|---|---|
2012.11 | パイオニア | ワイヤレスDJシステム | XDJ-AERO |
2013.01 | JVCケンウッド | カーナビゲーションシステム | “彩速ナビ”「MDV-Z700」「MDV-X500」「MDV-R700」 |
2013.04 | JVCケンウッド | カーナビゲーションシステム | “彩速ナビ”「MDV-Z700W」 |