Linux / Android を高速起動

Ubiquitous QuickBootLinux / Android 組込みシステムの高速起動ソリューション

Ubiquitous QuickBoot 概要

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

近年、機能の複雑化が進むデジタル家電や携帯機器の OS に、Linux や Android を使用するケースが増加していますが、電源断からの起動(コールドブート)時間が数十秒から 1分前後もかかり、機器メーカーにとって改善すべき課題となっています。
特にカーナビゲーションやドライブレコーダーなどの車載機では、エンジンを始動したら自動車が走り出してしまうため起動時間の短縮は必須項目です。

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

Ubiquitous QuickBoot on Nitrogen7 (NXP i.MX7D) 高速起動デモ動画(クリックして再生)
Ubiquitous QuickBoot on Nitrogen7 (NXP i.MX7D) 高速起動デモ

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

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


主な機能

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

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

・スタティック・モード

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

・ダイナミック・モード

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

・Android 向け起動モード(Ubiquitous QuickBoot Android Pack で対応)

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

ストレージの共有機能

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

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

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

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

・圧縮イメージ (Compressed Image)

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

差分アップデート機能

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

新機能・機能強化 (2016年12月発表)

・SecureBoot 対応

SecureBoot と協調して動作し、従来の改ざんチェックに加え、QuickBoot 主要モジュールおよびスナップショットイメージを含めた形で改ざんを検知しながら、セキュリティ面に配慮した高速起動を実現

・起動時間が大幅に短縮

スナップショットイメージの読込み時間を従来比で 30%~40%高速化させた Super Read Boost 機能を開発し、さらなる高速起動を実現

・スナップショットイメージの保存時間が大幅に短縮

スナップショットイメージの書き込み時間を従来比で 30%~50%高速化させた Super Write Boost 機能を開発。 製造ラインならびにランタイム時にスナップショットイメージを保存する時間を大幅に短縮し、生産性の向上ならびにユーザビリティを向上

・スナップショットイメージの読み出しサイズの最適化

スナップショットイメージの読み出しサイズをユーザー指定により以前よりも柔軟に調整でき、アプリケーションに最適な高速起動が可能

・起動時にマルチコアを使ったユーザースレッド

CPU コア毎にユーザースレッドを定義し、バックグラウンドで複数のタスクの動作をサポートし、起動途中に他の処理を同時に実行することが可能

・最新のストレージメディアをサポート

UHS-I、 HS200、 HS400 など最新の高速な SD / eMMC の規格に対応

※プレスリリースへのリンクは、こちら

製品ラインアップ

QuickBoot SDK

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

QuickBoot Android Pack

QuickBoot Android Pack は、QuickBoot SDK のオプション製品で、Android Pack / Android・モードと Android Pack / Static mode+ の 2種類を用意しています。

Android・モードは、Android の使い勝手を制限することなく Android のホームスクリーンまでを高速起動します。スマートフォンやタブレット等と同様なユースケースに最適なモードです。

Static mode+ は、Android アプリケーションに対して、スナップショットイメージを任意のタイミングで取得することができ、高速起動を実現します。
また QuickBoot 起動後の Android アプリケーションの追加 / アップデート / 削除、各種設定値の反映に対応可能です。
組込みに特化し、Android をプラットフォームとして利用した機器開発に最適なモードです。

QuickBoot RTP

QuickBoot RTP は、半導体ベンダあるいはボードベンダ等が提供する特定のターゲットボード向けに QuickBoot を実装したもので、インストールするだけで QuickBoot がすぐ使用できる RTP(ランタイムパッケージ)製品です。
ターゲットボードに付属して提供される Linux BSP をそのまま利用して、アプリケーションを実装し、製品として量産するユースケースを想定して設計されています。

お問い合わせはこちら

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 + 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 を実装する際の適用例として、解説されています。

QuickBoot SDK Release 1.3 仕様

大項目 中項目 小項目 内容
ハードウェア要件 サポート CPU ARMア ーキテクチャ シングル Cortex-A5/A8/A9 [ARM9 / ARM11: R1.2 にて対応]
マルチ(SMP) Cortex-A7 / A9 / A15 / A53 / A57 MPCore
その他 ご相談ください。
RAM サイズ 数百キロバイト。QuickBoot BIOS / IRA、QuickBoot Storage BIOS で使用
不揮発性メモリ 種類 NAND フラッシュ ROM、 SDカード、 eMMC、 HDD など
スナップショットイメージ格納用として使用
サイズ Linux / Android で使用しているメモリサイズ
圧縮サポート サポート有り。(LZ4、LZF、LZMA、zlib 圧縮のサンプルコード同梱)
格納方式 パックドイメージ(Packed Image)
圧縮イメージ(Compressed Image)
ストレージ共有 Linux と QuickBoot で 1つのストレージを共有可能
ソフトウェア要件 サポートOS Linux Kernel 2.6.26+, 3.x, 4.x その他については、お問い合わせください。
Android Android 4.x, 5.x 最新バージョンには、順次対応予定。
オプションパッケージの Ubiquitous QuickBoot Android Pack にてサポート。

お問い合わせはこちら

QuickBoot RTP

QuickBoot RTP は、半導体ベンダあるいはボードベンダ等が提供する特定のターゲットボード向けに QuickBoot を実装したもので、インストールするだけで QuickBoot がすぐ使用できる RTP(ランタイムパッケージ)製品です。
ターゲットボードに付属して提供される Linux BSP をそのまま利用して、アプリケーションを実装し、製品として量産するユースケースを想定して設計されています。

QuickBoot RTP は、半導体ベンダパートナーあるいはボードベンダパートナー(販社、販売代理店)から当該ターゲットボードのオプション製品という位置づけで提供(販売)されます。
また同時にメンテナンスサポートサービス、量産ロイヤリティについても申し受けています。

QuickBoot RTP サポートボード

製品名 ボード名 CPU パートナー
QuickBoot RTP for Armadillo-440(410)
Armadillo-440(410)

Freescale
i.MX25(ARM926EJ-S)
株式会社アットマークテクノ

※QuickBoot SDK は、Armadillo-400(410 / 420 / 440 / 460)シリーズ / Armadillo-800(810 / 840)シリーズ/Armadillo-IoT シリーズ / Armadillo-EVA シリーズ(800EVA / 1500EVA)に対応。ご相談ください。

QuickBoot RTP による QuickBoot 起動と通常起動 比較動画

Ubiquitous QuickBoot RTP for Armadillo-440(クリックして再生)
Ubiquitous QuickBoot on Nitrogen7 (NXP i.MX7D) 高速起動デモ

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

QuickBoot RTP で提供される各コンポーネントの位置づけは、次図の通りです。

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 SDK QuickBoot RTP
製品概要 任意のカスタムボードに対して、開発者自身で QuickBoot を実装する為のソフトウェア開発キット 特定ボードに対して、QuickBoot が実装済み。インストールするだけで QuickBoot が利用可能
用途 カスタムボードでアプリケーションを含め、高速起動させたい場合等 Linux BSP 付きの特定ボードにアプリケーションを追加して使用する場合に、高速起動させたい場合等
QuickBoot コアモジュール
(QuickBoot BIOS / IRA & QuickBoot Storage BIOS)
提供形態 ソースコード(一部バイナリ) バイナリ
カスタマイズ QuickBoot コアモジュール動作フェーズでユーザコードを追加することが可能 不可
デバイス対応 初期対応レベル リファレンス用 QBSP では、シェル起動する上で最低限必要なデバイスに対応 シェル起動する上で最低限必要なデバイスに対応しているのに加え、一部デバイスがサンプル実装(AS-IS)
カスタマイズ 任意のデバイスに対応可能 任意のデバイスに対応可能
スナップショットイメージ保存デバイス 任意 固定
スナップショットイメージの圧縮 任意 固定
差分アップデート 可能 不可
Android Pack 追加購入 設定なし

お問い合わせはこちら

QuickBoot デモンストレーション動画(画像をクリックすると動画が開きます)

Android Static Mode+ デモ(ベータ版)  Android Static Mode+ デモ(ベータ版)

  Board: Renesas KOELSCH Board
  SoC: Renesas R-Car M2 (Cortex-A15 Dual Core)
  OS: Android 4.4.2 (KitKat)


Android Static Mode+ 通常起動との比較デモ(ベータ版)  Android Static Mode+ 通常起動との比較デモ(ベータ版)

  Board: Renesas KOELSCH Board
  SoC: Renesas R-Car M2 (Cortex-A15 Dual Core)
  OS: Android 4.4.2 (KitKat)


Freescale i.MX6Q Sabre Lite (Freescale i.MX6Q) Staticモード デモ(ベータ版)  Freescale i.MX6Q Sabre Lite (Freescale i.MX6Q)
 Staticモード デモ(ベータ版)

  Board: NXP (Freescale) i.MX6Q Sabre Lite
  SoC: NXP (Freescale) i.MX6Q (Cortex-A9 Quad Core)
  OS: Android 4.4.2 (KitKat)


Freescale i.MX6DL SABLE SDP Android Lollipop Staticモード デモ(ベータ版)  Freescale i.MX6DL SABLE SDP
 Android Lollipop Staticモード デモ(ベータ版)

  Board: NXP (Freescale) i.MX6DL Sabre SDP
  SoC: NXP (Freescale) i.MX6DL (Cortex-A9 Dual Core)
  OS: Android 5.0 (Lollipop)


DIGI ConnectCore 6(Freescale i.MX6Q) Media Player デモ(ベータ版)  DIGI ConnectCore 6(Freescale i.MX6Q) Media Player デモ(ベータ版)

  Board: DIGI ConnectCore Wi-i.MX6 Jumpstart Kit
  SoC: NXP (Freescale) i.MX6Q (Cortex-A9 Quad Core)
  OS: Linux 3.10.54/Digi Embedded Yocto 1.6.7


BeagleBone Black (TI AM335x) Qt/E Demo(ベータ版)  BeagleBone Black (TI AM335x) Qt/E Demo(ベータ版)

  Board: BeagleBone Black
  SoC: TI AM3352 (Cortex-A8)
  OS: Linux 3.14.26


Renesas R-Car E2/ALT Board (Renesas R-Car E2) Linux 動画デモ  Renesas R-Car E2/ALT Board (Renesas R-Car E2) Linux 動画デモ

  Board: Renesas ALT Board
  SoC: Renesas R-Car E2 (Cortex-A7 Dual Core)
  OS: Linux 3.10.31-LTSI/Renesas Linux BSP Yocto 1.4.0


採用事例動画

Ubiquitous QuickBoot on KENWOOD MDV-Z700(クリックして再生)
Ubiquitous QuickBoot on KENWOOD MDV-Z700

お問い合わせはこちら

QuickBoot - 採用事例(一部抜粋)とプレスリリースのご紹介

年月 顧客名 製品分野 製品型番 (クリックするとプレスリリースぺージが開きます)
2012.11 パイオニア ワイヤレスDJシステム XDJ-AERO
2013.01 JVC
ケンウッド
カーナビゲーション
システム
"彩速ナビ"「MDV-Z700」「MDV-X500」「MDV-R700」
2013.04 JVC
ケンウッド
カーナビゲーション
システム
"彩速ナビ"「MDV-Z700W」
2013.10 富士通テン カーナビゲーション
システム
"ECLIPSE(イクリプス)"「AVN-ZX03i」「AVN-Z03iW」「AVN-Z03i」
2014.03 JVC
ケンウッド
カーナビゲーション
システム
"彩速ナビ"「MDV-L401」「MDV-L301」
2014.11 富士通テン カーナビゲーション
システム
"ECLIPSE(イクリプス)"
SZシリーズ3機種「AVN-SZX04i」「AVN-SZ04iW」「AVN-SZ04i」
Zシリーズ3機種「AVN-ZX04i」「AVN-Z04iW」「AVN-Z04i」
2014.12 JVC
ケンウッド
カーナビゲーション
システム
"彩速ナビ"「MDV-L402」、「MDV-L502」、「MDV-L502W」
2015.02 JVC
ケンウッド
カーナビゲーション
システム
"彩速ナビ"「MDV-Z702」、「MDV-Z702W」
2015.06 JVC
ケンウッド
モニターレシーバー 米国向け「DDX9902S」、「DDX9702S」
2015.12 JVC
ケンウッド
カーナビゲーション
システム
"彩速ナビ"「MDV-L503W」「MDV-L503」

採用事例動画

Ubiquitous QuickBoot on KENWOOD MDV-Z700(クリックして再生)
Ubiquitous QuickBoot on KENWOOD MDV-Z700

お問い合せ

お問い合せの内容に合わせて選択してください。

製品・セミナーについて IR・採用・その他について