LINEOWarp!!® 機能・仕様
LINEOWarp!! の最新バージョン 6.0 にて新規追加または機能改善が図られた部分については 6.0 のマークがついています。
Warp!! 起動
ストレージに確保したスナップショット領域に、アプリケーションを起動した状態でのシステムメモリおよび HW の状態(レジスタ の内容)のスナップショットイメージを保存しておき、電源 ON 時に保存したスナップショットイメージからシステムメモリを一挙に復元し起動高速化を実現。
一挙にシステムメモリを復元する事により、初期化コードの実行の軽減、メモリアクセスの軽減がされ高速化の可能性が期待できます。
圧縮伸長処理の改善による起動時間の短縮
6.0従来バージョンよりもデータの伸長時間、及び圧縮サイズが 10~20%、更に 64bit CPU では圧縮時間も 30% 削減。これにより、従来バージョンと比べてさらなる高速起動を実現しました。
スナップショット保存機能
電源 ON 時にスナップショットイメージ *1 からシステムメモリを一挙に復元することで高速起動を実現しています。このスナップショットの保存に組込み Linux ディストリビュータであるリネオならではのテクノロジーがあります。
ターゲット単体でスナップショット保存が実行可能
製品に最適なスナップショット保存モードを選択可能
- 保存対象となるメモリサイズを縮小
実際に使用されているメモリのみを保存するため、搭載メモリサイズに依存しません。 - スナップショットの圧縮
約1/5 ~ 1/2 に圧縮可能(圧縮率はスナップショットデータに依存)
I/O との並列処理による高速処理を実現
- 高速圧縮保存モードをサポート
複数のスナップショットをサポート
セパレートモード *2 で起動をさらに高速化
SMP/AMP に対応可能
SDRAM 全体を保存対象にすることが可能
スナップショット保存先として様々なストレージに対応
- RAM、NOR/NAND Flash、SD、eMMC、SATA、PATA、NVMe
スナップショットの差分アップデートツールの提供
6.0- 旧スナップショットイメージと新スナップショットイメージの差分ファイルを抽出することが可能となりました。 差分アップデートを利用することで、ターゲットに配布するスナップショットイメージのサイズを従来バージョンより小さくできます。
セキュアブート&スナップショット保護オプションの追加
6.0- SoC のセキュアブート機能と連携して、スナップショットイメージの改竄を防止する保護機能をオプションとして選択できるようになりました。
- *1
- スナップショットとは : アプリケーションが起動した状態でのシステムメモリおよび H/W の状態(レジスタの内容)をイメージとしてキャプチャしたものです。スナップショットイメージは2次記憶装置(Flash 等)にスナップショット専用に確保した領域に保存されます。
- *2
- セパレートモードとは : スナップショットの対象メモリを2つのグループに分割することで、電源投入直後に転送が必要なスナップショットの量を少なくする機能です。
3 つの起動方法を選択可能
ハイバネーションモード
電源 OFF 時の状態に復帰します。シャットダウン時に毎回スナップショットの保存が必要です。
高速起動モード
毎回同じスナップショットイメージから起動します。
Android モード
Android System の理想的な高速起動を実現します。
高速起動を可能にするだけでなくユーザの設定値の反映も可能です。終了時に明示的な保存処理は不要です。
Multi-Core 対応
スナップショット分割保存
SoC の Multi-Core 化は今後ますます進むことが予測されますし、Storage 規格も SD 3.0、eMMC 4.5 / 5.0 以降では大幅に高速化が進みます。Warp!! 5 ではこれらのメリットを起動高速化に最大限に活用できる仕組みとして、スナップショットの分割保存に対応しました。
Multi-Core
高速なストレージデバイス上にスナップショットをいくつかに分割して保存し、これらに CPU Coreを割り当てて、Multi-Core で一挙にメモリを復元することが可能です。
Multi-Core / Multi-Storage
バスの干渉の少ない低速なストレージデバイスのいくつかにスナップショットを分割保存し、これらに CPU Core を割り当てて、Multi-Core で一挙にメモリを復元することで I/O の最適化が可能です。
User API の Multi-Core 利用
CPU Core をユーザスレッド専用に割り当てることで、効率的なシステムの初期化が可能になりました。例えば、サブシステムを複数抱えた複雑なシステムにおいて、各サブシステムとの同期合わせ等が Linux 起動前に実現可能です。
UserAPI サポート
ユーザースレッドにより、H/W の並列初期化や起動後に直ちに実行させたいアプリケーションを動作させることが可能です。また、Warp!! Software Development kit に UserAPI のサンプルプログラムが付属しています。
- Power On 後、早期段階でスナップショットの読出し伸長とユーザスレッドを並列実行
- ユーザーは定期的に呼び出されるファンクションを設定し、例えば FPGA へデータ転送する DMA の再投入などの処理が可能
スナップショット Switch 機能
スナップショット Switch 機能により、bootloader だけではなく kernel コマンドラインからスナップショット切り替えの指示が可能となります。
システム条件
Hibernation Driver を格納する領域(ROM 64K)
ルートファイルシステム用の記憶領域以外にシステムメモリのスナップショットを保存する領域
bootloader
* Hibernation Driver の呼出の追加
kernel
* 各種ドライバは、PM※ の Suspend/Resume の実装
* Hibernation Driver 呼び出し等の Warp!! 用パッチ適用
※ パワーマネジメント対応(PM 対応)
Warp!! 起動時後にすぐに使用したいデバイスに対しては、初期化処理を実施する必要があります。
必要なデバイスに対して初期化処理が実施されるようカスタマイズ対応(PM 対応)を行います。
様々な CPU コアへの対応
ARM | Cortex-A55 new / Cortex-A76 new / Cortex-A35 / Cortex-A53 / Cortex-A57 / Cortex-A72 / Cortex-A7 / Cortex-A15 / Cortex-A5 / Cortex-A8 / Cortex-A9 / ARM11 / ARM9 / Marvell ARMADA 16x |
---|---|
SuperH | SH-4 / SH-4A / SH-4AL |
Power Architecture | Power QUICC II Pro / Power QUICC-III / 440 / 464 / QorIQ P1022 |
MIPS | MIPS24K / MIPS34K / MIPS74K |
Intel | ATOM |
RISC-V | RISC-V 6.0 |