2021 年 07 月 02 日
採用が広がる組込み Linux の高速起動ソリューション
~ 組込み Linux 向け高速起動ソリューション「LINEOWarp!!」を解説 ~
目次
- 組込み Linux 向け高速起動ソリューション「LINEOWarp!!」ってなに?
- Warp!! はどんなところに使われている?
- Warp!! ってどんな技術?
- Warp!! の特長
- 実際に動かしてみた!
組込み Linux 向け高速起動ソリューション「LINEOWarp!!」ってなに?
「LINEOWarp!!」(以下 Warp!!)は組込み Linux 向けの高速起動ソリューションです。
Linux は、汎用的なネットワークプロトコルへの対応や、リッチなアプリケーションの開発を容易にしてくれます。
近年は様々な組込み機器でもネットワークに繋がることが当たり前になり、より高機能な OS が求められる時代になってきています。
しかし Linux は、他の組込み系 OS(RTOS など ) や OS レスシステムなどと比べると起動時間が非常に遅いですが、組込み機器では素早く立ち上げる必要があります。
Linux の起動時間を短くする方法として、システムをシュリンクすることで高速化を実現するチューニング方式や、終了時点のメモリの状態を保持して次回起動時にその保持したメモリ状態に復帰し起動時間を早くするハイバーネーション方式などがあります。
Warp!! はコールドブート(電源が切れた状態からの起動)でもお客様のアプリケーションが立ち上がるまでの時間を高速化を実現するソリューションです。
「Warp!!」はどんなところに使われている?
Warp!! は幅広い分野の IoT・組込み機器で使用されています。
使用されている機器と利用による効果
- 車載(カーナビなどのインフォテイメント系)
- 医療機器(超音波診断装置など)
- オフィス機器(MFP など)
- 産業機器(製造設備、パネコンなど)
- 計測機器 など
どんな場面で使われているか?(使用例)
例えば、車載機器でバックビューモニターがすぐに使えるように、3 秒以内に起動しなければならない、といった要件があるとします。これを満たすためには一般的な起動高速化で実現することは難しいため、Warp!! のような特別なソリューションを使用します。
また、省エネ目的としてもメリットがあります。
機器を使用していない間、スリープ状態で待機電力を消費するようなもの(例えばプリンタなど)で、Warp!! を使用することで待機中の電力を消費せず、使用時には素早く立ち上げることが可能です。
他にも工場の出荷検査時に起動時間が短くなることで検査時間を短縮しコストを削減するといった使い方や、常時電源が入っているような機器でも瞬停からすぐに復帰する必要があるものなどでの利用に適しています。
Warp!! ってどんな技術?
Warp!! は 2 次記憶装置(Flash 等)に確保した保存領域に、アプリケーションを起動した状態でのシステムメモリおよび H/W の状態(レジスタ の内容)のスナップショットイメージ ※ として保存しておき、電源 ON 時に保存したスナップショットイメージからシステムメモリを一挙に復元し起動高速化を実現します。
一挙にシステムメモリを復元する事により、初期化コードの実行の軽減、メモリアクセスの軽減がされ高速化が期待できます。
- ※
- スナップショットイメージ
スナップショットはアプリケーションが起動した状態でのシステムメモリおよび H/W の状態(レジスタの内容)をイメージとしてキャプチャしたものです。スナップショットイメージは 2 次記憶装置(Flash 等)にスナップショット専用に確保した領域に保存されます。
Warp!! の特長
Warp!! には大きく分けて 3 つの特長があります。
- Speed
- Flexibility
- Supported CPU
圧倒的な起動スピード(Speed)
通常起動と Warp!! 起動の時間を比較した一例です。
Warp!! では通常起動と比べ大幅に起動時間を短くすることが可能です。
用途に応じたフレキシブルな起動方法(Flexibility)
Warp!! では使い方に合わせて 3 つの起動方法を選択可能です。
高速起動モード
毎回同じスナップショットイメージを使用して起動します。
Linux は終了時にシャットダウン処理をする必要がありますが、組込み機器では動作中に突然の電源断となるものもあります。
突然の電源断となるものや、終了時に状態を保存する必要がない機器では、高速起動モードを使用します。
組込み機器の場合、高速起動モードで運用されることが多いです。
ハイバネーションモード
終了時にスナップショットイメージを再取得することで、
終了時の状態に復帰します。
設定値や終了時の状態を保存する必要がある場合にはこちらのモードを使用します。
ハイバネーションモードでは、終了時にスナップショットを保存する時間を確保する必要があるため、突然の電源断となるものには使用できません。
Android モード (※Android システムでのみお使い頂けます )
Android システムの理想的な高速起動を実現します。
高速起動を可能にするだけでなく、スナップショットイメージの再取得を行わなくても Warp helper がユーザの設定値を保存します。
幅広い組込み系 CPU 対応(Supported CPU)
Warp!! はこれまで様々な組込み系 CPU に対応してきています。
以下は現在対応済みの CPU です。
ARM | Cortex-A53 / Cortex-A57 / Cortex-A72 / Cortex-A7 / Cortex-A15 / Cortex-A5 / Cortex-A8 / Cortex-A9 / ARM11 / ARM9 / Marvell ARMADA 16x |
---|---|
Intel | ATOM (IA32-64) |
Power Architecture | PowerQUICC II Pro / PowerQUICC-III / 440 / 464 / QorIQ |
SuperH | SH-4 / SH-4A / SH-4AL |
MIPS | MIPS 24K / MIPS 34K / MIPS 74K |
★マルチコアの CPU に対応!
★64bit CPU に対応!
上記のラインナップにない CPU にも対応可能です。
Warp!! を実際に動かしてみた!
今回は Advantech RSB-3720 (Cortex-A53 Quad Core) で Warp!! を搭載しました。
このボードの通常起動時間は 17 秒です。
Warp!! での起動時間をご覧ください。
電源を入れてからブラウザで検索ができるようになるまで、10 秒もかかっていません。
Warp!! はスナップショットの取得位置を工夫することで、使いたい場所にいち早く復帰させることが可能です。
デモ機の起動時間の詳細データは以下のようになっています。
Warp!! を搭載した場合、通常起動と比べ、約 1/3 の時間で起動します。
今回のデモ機の場合には、bootloader が 3.85 秒と起動時間の大半を占めていますが、Warp!! の効果が発揮される Linux OS の立ち上げ部分で比較をすると、13.49 秒から 2.68 秒と大幅に短縮され、約 1/5 の時間で復帰をしています。
最後に
「LINEOWarp!!」に関する詳細情報は下記 URL よりご覧いただけます。
- LineoWarp!! 製品ページ
https://www.lineo.co.jp/warp/index.html - 対応機器のデモ動画ページ
https://www.lineo.co.jp/warp/demo.html
「LINEOWarp!!」に関するお問い合わせは sales@lineo.co.jp またはサイバートラスト
「IoT 製品サービスお問い合わせフォーム」までお気軽にご連絡ください。