(57)【要約】【課題】電子機器のプロセッサ等によって実現される読み出し手段や伸長手段に応じてデータの分割及び圧縮を行い、データを読み出して実行するまでの時間をより短縮する。【解決手段】一実施形態における電子機器は、記憶手段に保持されたデータを分割して圧縮することにより圧縮データを生成し、圧縮ブロックに加工するデータ加工手段であって、圧縮データを伸長するための情報である圧縮ブロック情報を付加するデータ加工手段と、圧縮ブロックの読み出し手段であって、圧縮ブロック情報に基づいて、圧縮データの伸長手段を指定する読み出し手段と、圧縮データを圧縮ブロック情報に基づいて伸長する１つ以上の伸長手段とを有する。データ加工手段は、読み出し手段の読み出し速度、１つ以上の伸長手段の伸長処理速度、及びデータを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、データの分割数、圧縮形式、及び前記圧縮データの伸長手段を決定する。【選択図】図１
2018185615.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段に保持されたデータを分割して圧縮することにより圧縮データを生成し、前記圧縮データを含む圧縮ブロックに加工するデータ加工手段であって、前記圧縮ブロックに前記圧縮データを伸長するための情報である圧縮ブロック情報を付加するデータ加工手段と、
前記圧縮ブロックを読み出す読み出し手段であって、読み出した前記圧縮ブロックに付加された前記圧縮ブロック情報に基づいて、前記圧縮データを伸長する伸長手段を指定する読み出し手段と、
前記読み出し手段が読み出した前記圧縮ブロックに含まれる前記圧縮データを、前記圧縮ブロック情報に基づいて伸長する１つ以上の伸長手段と
を有し、
前記データ加工手段は、前記読み出し手段の読み出し速度、前記１つ以上の伸長手段の伸長処理速度、及び前記データを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、前記データの分割数、圧縮形式、及び前記圧縮データの伸長手段を決定することを特徴とする電子機器。
【請求項２】
前記データ加工手段は、前記分割判定情報に基づいて、前記読み出し手段による全ての前記圧縮ブロックの読み出し時間と、前記１つ以上の伸長手段による全ての前記圧縮ブロックに含まれる前記圧縮データの伸長時間との合計時間が最も短くなるように、前記データの分割数、圧縮形式、及び前記圧縮データごとの伸長手段を決定することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記圧縮ブロック情報は、前記圧縮ブロックのサイズ、前記圧縮データを伸長するために使用される伸長手段を指定する情報、前記圧縮データの圧縮形式、前記圧縮データの展開先アドレス、前記圧縮データのサイズを含むことを特徴とする請求項１または２に記載の電子機器。
【請求項４】
前記データは、プログラムであることを特徴とする請求項１乃至３のいずれか１項に記載の電子機器。
【請求項５】
前記プログラムは、起動プログラムであることを特徴とする請求項４に記載の電子機器。
【請求項６】
データを分割して圧縮することにより生成された圧縮データを含む圧縮ブロックであって、前記圧縮データを伸長するための情報である圧縮ブロック情報が付加された圧縮ブロックを保持する記憶手段と、
前記圧縮ブロックを読み出す読み出し手段であって、読み出した前記圧縮ブロックに付加された前記圧縮ブロック情報に基づいて、前記圧縮データを伸長する伸長手段を指定する読み出し手段と、
前記読み出し手段が読み出した前記圧縮ブロックに含まれる前記圧縮データを、前記圧縮ブロック情報に基づいて伸長する１つ以上の伸長手段と
を有し、
前記圧縮ブロックは、前記読み出し手段の読み出し速度、前記１つ以上の伸長手段の伸長処理速度、及び前記データを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、前記データの分割数、圧縮形式、及び前記圧縮データの伸長手段が決定されることを特徴とする電子機器。
【請求項７】
電子機器によって実行される方法であって、
記憶手段に保持されたデータを分割して圧縮することにより圧縮データを生成し、前記圧縮データを含む圧縮ブロックに加工するデータ加工工程であって、前記圧縮ブロックに前記圧縮データを伸長するための情報である圧縮ブロック情報を付加するデータ加工工程と、
読み出し手段によって前記圧縮ブロックを読み出す読み出し工程であって、読み出した前記圧縮ブロックに付加された前記圧縮ブロック情報に基づいて、前記圧縮データを伸長する伸長手段を指定する読み出し工程と、
前記読み出し工程において読み出した前記圧縮ブロックに含まれる前記圧縮データを、前記圧縮ブロック情報に基づいて１つ以上の伸長手段によって伸長する伸長工程と
を含み、
前記データ加工工程は、前記読み出し手段の読み出し速度、前記１つ以上の伸長手段の伸長処理速度、及び前記データを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、前記データの分割数、圧縮形式、及び前記圧縮データの伸長手段を決定する工程を含むことを特徴とする方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の電子機器として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶手段に保持されたデータを読み出して実行する電子機器、方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、組込みシステム等の電子機器は、ソフトウェアプログラム等のデータをフラッシュメモリなどの不揮発性記憶手段に保持しておき、起動時に、ＲＡＭ（ランダムアクセスメモリ）に読み出して実行している。かかる電子機器では、データを分割及び圧縮して不揮発性記憶手段に保持しておき、データの読み出し処理と伸長処理を並行して行うことで、データを読み出して実行するまでの時間を短縮する技術が知られている（特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１５５５８２号公報
【特許文献２】特開２０１３−２２２３７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１、２に記載の技術では、電子機器のプロセッサ等によって実現される読み出しや伸長に応じたデータの分割及び圧縮がなされていないため、データを読み出して実行するまでの時間をより短縮する余地があった。
【課題を解決するための手段】
【０００５】
本発明の一実施形態における電子機器は、記憶手段に保持されたデータを分割して圧縮することにより圧縮データを生成し、前記圧縮データを含む圧縮ブロックに加工するデータ加工手段であって、前記圧縮ブロックに前記圧縮データを伸長するための情報である圧縮ブロック情報を付加するデータ加工手段と、前記圧縮ブロックを読み出す読み出し手段であって、読み出した前記圧縮ブロックに付加された前記圧縮ブロック情報に基づいて、前記圧縮データを伸長する伸長手段を指定する読み出し手段と、前記読み出し手段が読み出した前記圧縮ブロックに含まれる前記圧縮データを、前記圧縮ブロック情報に基づいて伸長する１つ以上の伸長手段とを有し、前記データ加工手段は、前記読み出し手段の読み出し速度、前記１つ以上の伸長手段の伸長処理速度、及び前記データを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、前記データの分割数、圧縮形式、及び前記圧縮データの伸長手段を決定することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、電子機器のプロセッサ等によって実現される読み出しや伸長に応じてデータの分割及び圧縮を行うことで、データを読み出して実行するまでの時間をより短縮することができる。
【図面の簡単な説明】
【０００７】
【図１】実施形態１における電子機器の構成図である。
【図２】実施形態１における分割判定情報の構成図である。
【図３】実施形態１における圧縮前プログラムから圧縮後プログラムへの分割と、圧縮ブロックに含まれる情報を示した図である。
【図４】実施形態１において全圧縮ブロックの読み出しと伸長に要する時間を算出した結果を示す図である。
【図５】実施形態１における圧縮前プログラムの分割及び圧縮処理のフローチャートである。
【図６】実施形態１における圧縮後プログラムの読み出し及び伸長処理のフローチャートである。
【図７】実施形態１における圧縮後プログラムの読み出し及び伸長処理に要する時間を説明する図である。
【発明を実施するための形態】
【０００８】
以下、添付の図面を参照して、本発明の実施形態について詳細に説明する。なお、以下の実施形態は一例に過ぎず、本発明を限定するものではない。
【０００９】
（実施形態１）
図１は、本発明の実施形態１における電子機器の主要部の（ａ）構成図及び（ｂ）機能ブロック図である。
【００１０】
図１（ａ）において、本実施形態における電子機器１００は、バス１０１と、バス１０１に接続されたプロセッサＡ１０２、プロセッサＢ１０３、プロセッサＣ１０４、ＲＡＭ１０５、フラッシュメモリ１０６、及びＤＭＡコントローラ１０７とを備える。
【００１１】
プロセッサＡ１０２、プロセッサＢ１０３、及びプロセッサＣ１０４は、ＲＡＭ（ランダムアクセスメモリ）１０５に保持されているプログラムを実行することにより、電子機器１００を統括的に制御し、後述する電子機器１００の各機能を実現する。なお、本実施形態では、電子機器１００が３つのプロセッサを備えるものとして説明するが、電子機器１００が備えるプロセッサは３つに限定されるものではなく、１つ以上のプロセッサを備えていればよい。
【００１２】
ＲＡＭ１０５は、電子機器１００のメインメモリとして動作し、フラッシュメモリ１０６から読み出され、伸長されることで実行可能になった状態のプログラムを保持する揮発性記憶部である。
【００１３】
フラッシュメモリ１０６は、プログラムを１つ以上のブロックに分割し、圧縮することにより生成された１つ以上の圧縮ブロックを保持する不揮発性記憶部である。
【００１４】
ＤＭＡ（ダイレクトメモリアクセス）コントローラ１０７は、プロセッサＡ１０２などの指示に従い、メモリ間のデータ転送を制御する。
【００１５】
なお、本実施形態では、不揮発性記憶部としてフラッシュメモリ１０６、揮発性記憶部としてＲＡＭ１０５を用いているが、本発明の不揮発性記憶部および揮発性記憶部はこれらに限るものではない。
【００１６】
図１（ｂ）は、本実施形態における電子機器１００の機能ブロック図である。電子機器１００は、データ加工部１１０、読み出し部１１４、及び１つ以上の伸長部１１５を備える。
【００１７】
データ加工部１１０は、ＲＡＭ１０５またはフラッシュメモリ１０６に保持されている圧縮前プログラム１１２を、分割判定情報１１１に応じて１つ以上のブロックに分割して、ブロックごとに圧縮する。さらに、データ加工部１１０は、圧縮したブロックごとに伸長を行う伸張部の情報（プロセッサ情報）を付加し、１つ以上の圧縮ブロックを含む圧縮後プログラム１１３に加工する。圧縮後プログラム１１３は、フラッシュメモリ１０６に記憶される。圧縮前プログラム１１２は、電子機器１００全体または一部のソフトウェアプログラム（以下、単にプログラムとも称する）である。
【００１８】
読み出し部１１４は、フラッシュメモリ１０６に保持されている圧縮後プログラム１１３の圧縮ブロックを順に読み出し、読み出した圧縮ブロックを伸長する伸長部１１５を指定する。
【００１９】
１つ以上の伸長部１１５はそれぞれ、読み出された圧縮後プログラム１１３の圧縮ブロックを伸長する。圧縮後プログラム１１３の全ての圧縮ブロックが伸長されると、圧縮前プログラム１１２となる。
【００２０】
なお、本実施形態では、電子機器１００がデータ加工部１１０を備えるものとして説明するが、別の装置で圧縮前プログラム１１２を圧縮後プログラム１１３に加工し、電子機器１００の記憶部に保持させ、読み出し及び伸長処理を行ってもよい。
【００２１】
分割判定情報１１１は、読み出し部１１４の構成と性能、伸長部１１５の構成と性能、圧縮前プログラム１１２のデータ形式、適用可能な圧縮形式とその圧縮率を含む。分割判定情報１１１の詳細は、図２を参照して後述する。
【００２２】
図２は、本実施形態における分割判定情報の構成を示す。なお、図示された分割判定情報の構成は一例に過ぎず、図示された構成に限定されるものではない。
【００２３】
分割判定情報２００は、圧縮前プログラムを加工するための加工情報２１０と、圧縮後プログラムをフラッシュメモリ１０６から読み出すための読み出し情報２２０と、読み出した圧縮後プログラムを伸長するための伸長情報２３０とを含む。
【００２４】
加工情報２１０は、圧縮前プログラムのデータ形式２１１と、圧縮情報２１２とを含む。また、圧縮情報２１２は、圧縮形式と圧縮率とを含む。本実施形態では、データ形式２１１は起動プログラムであり、圧縮情報２１２の圧縮形式はＡ、圧縮率は５０％である。
【００２５】
読み出し情報２２０は、読み出し部として使用するプロセッサ数２２１と、プロセッサ情報２２２とを含む。加えて、読み出しに使用されるプロセッサの読み出し性能を示す、圧縮ブロックのサイズ別の読み出し速度リスト２２３を含む。本実施形態では、使用するプロセッサ数は１、使用するプロセッサはプロセッサＡ１０２である。また、圧縮ブロックのサイズ別の読み出し速度は、圧縮ブロックのサイズが１ＭＢ以上であれば、１１．２ＭＢ／ｓである。同様に、１ＭＢより小さく１００ＫＢまでであれば、１１．１ＭＢ／ｓ、１００ＫＢより小さく５０ＫＢまでであれば、１０．７ＭＢ／ｓ、５０ＫＢより小さく２５ＫＢまでであれば、１０ＭＢ／ｓである。一般的に、圧縮ブロックのサイズが小さいほど、読み出し処理での手順処理時間や圧縮ブロックごとに存在する情報データのサイズ分、読み出し速度は遅くなる。
【００２６】
伸長情報２３０は、圧縮形式２３１と、伸長部として使用するプロセッサ数２３２を含む。加えて、伸長部として使用されるプロセッサごとに、プロセッサ情報と、プロセッサごとの伸長処理速度とをまとめた伸長性能情報２３３、２３４を含む。本実施形態では、圧縮形式２３１はＡであり、使用するプロセッサ数２３２は２である。また、伸長部として使用される１つ目のプロセッサはプロセッサＢであり、その伸長性能である伸長処理速度は８ＭＢ／ｓである。また、２つ目のプロセッサはプロセッサＣであり、その伸長性能である伸長処理速度は８ＭＢ／ｓである。
【００２７】
図３は、本実施形態における圧縮前プログラムから圧縮後プログラムへの分割と、圧縮ブロックに含まれる情報を示す。加工データの元である圧縮前プログラム３００は、分割判定情報に基づいて決定された分割数で分割される。ここでは、圧縮前プログラム３００のサイズは２０ＭＢであり、ｎ個のブロック３０１、３０２、３０３に分割されている。分割された各ブロックが圧縮されると、それぞれ圧縮ブロック３１１、３１２、３１３となる。全ての圧縮ブロックをまとめたものが圧縮後プログラム３１０であり、そのサイズは１０ＭＢである。
【００２８】
各圧縮ブロックは、圧縮ブロック３２０で示すように構成されている。圧縮ブロック３２０は、圧縮ブロックサイズ３２１と、圧縮ブロックを伸長する際に使用される伸長部の伸長プロセッサ情報３２２とを含む。なお、伸長部はプロセッサに限定されず、例えば、専用回路のハードウェアで構成されてもよい。したがって、伸長プロセッサ情報３２２もプロセッサの情報に限定されず、専用回路のハードウェア情報でもよい。加えて、圧縮ブロック３２０は、圧縮データ３２６の圧縮形式３２３、圧縮データ３２６の伸長後の展開先アドレス３２４、圧縮データ３２６のサイズである圧縮データサイズ３２５、伸長対象のデータである圧縮データ３２６を含む。圧縮ブロックサイズ３２１、伸長プロセッサ情報３２２、圧縮形式３２３、展開先アドレス３２４、圧縮データサイズ３２５は管理情報であり、圧縮ブロック情報と称する。なお、圧縮後プログラム３１０の最後の圧縮ブロック３１３は、先に説明した構成に加え、圧縮データ３２６の最後に圧縮後プログラム３１０の終端を示す終端情報３２７を含む。終端情報３２７は、圧縮後プログラム３１０の終端を識別できる固定値である。
【００２９】
次に、本実施形態において、電子機器１００のデータ加工部１１０が、加工データの元である圧縮前プログラム３００を分割して圧縮し、圧縮後プログラム３１０へ加工する処理を説明する。データ加工部には、プロセッサＡ１０２、プロセッサＢ１０３、またはプロセッサＣ１０４が使用される。また、分割と圧縮は、１つのプロセッサで行ってもよいし、複数のプロセッサで分担し、分割と圧縮を並列して行ってもよい。ここでは、データ加工部としてプロセッサＡ１０２が、圧縮前プログラム３００の分割と圧縮を行うこととする。
【００３０】
プロセッサＡ１０２は、図３の圧縮前プログラム３００のサイズが２０ＭＢであり、図２の分割判定情報２００の圧縮率が５０％であることから、圧縮後プログラム３１０のサイズが１０ＭＢになることが分かる。
【００３１】
圧縮前プログラム３００を最も短い時間でＲＡＭ１０５に展開するためには、圧縮後プログラム３１０の読み出し時間と、読み出した圧縮後プログラム３１０の伸長時間との合計時間が、最も短くならなければならない。そうすることにより、電子機器１００の起動時間を最も短縮させることができる。
【００３２】
図４は、本実施形態において、分割判定情報２００に基づいて全圧縮ブロックの読み出しと伸長に要する時間を算出した結果４００を示す図である。ここでは、データ加工部が、圧縮前プログラム３００を異なる分割数で分割して圧縮した場合の複数のケースについて、それぞれ全圧縮ブロックの読み出しと伸長に要する時間を算出する。データ加工部は、算出した結果に基づいて、全圧縮ブロックの読み出しと伸長に要する時間が最も短くなる圧縮前プログラム３００の分割数を決定する。
【００３３】
圧縮済みフラグ４０１は、圧縮前プログラム３００を圧縮するかしないかを示す。「非」は、圧縮前プログラム３００が非圧縮であることを表し、「済」は、圧縮前プログラム３００が圧縮されることを表す。
【００３４】
１つの圧縮ブロックのサイズ４０２は、非圧縮の場合は圧縮前プログラム３００のサイズを示し、圧縮の場合は圧縮後プログラム３１０における１つの圧縮ブロックのサイズを示す。また、分割を伴う圧縮の場合、１つの圧縮ブロックのサイズ４０２は、分割判定情報２００に含まれる読み出し情報２２０の、圧縮ブロックのサイズ別読み出し速度リスト２２３に含まれる読み出し速度ごとのブロックサイズとなっている。なお、後述するように、ケース４０７、４０８はプログラムの分割を行わないケースであるため、それぞれ、圧縮前プログラム３００及び圧縮後プログラム３１０そのもののサイズとなっている。
【００３５】
圧縮ブロック数４０３は、非圧縮（ケース４０７）の場合は分割を行わないため０であり、圧縮の場合は、圧縮後プログラムのサイズ（１０ＭＢ）を１つの圧縮ブロックのサイズ４０２で分割した数となっている。
【００３６】
全圧縮ブロックの読み出し時間４０４は、全ての圧縮ブロックの読み出しに要する時間である。１つの圧縮ブロックの読み出し速度は圧縮ブロックのサイズに応じて異なるため、全圧縮ブロックの読み出し時間４０４も圧縮ブロックのサイズに応じて変化する。なお、非圧縮の場合は、圧縮前プログラムそのものを読み出すのに必要な時間である。
【００３７】
１つの圧縮ブロックの伸長時間４０５は、分割した１つの圧縮ブロックを１つの伸長部で伸長するのに要する時間である。したがって、１つの圧縮ブロックのサイズ４０２を１つの伸長部で伸長する際に要する時間となる。なお、非圧縮（ケース４０７）の場合は伸長を行わないため０となる。
【００３８】
全圧縮ブロックの読み出し伸長時間４０６は、図７を参照して後述するように、全圧縮ブロックの読み出し時間４０４と、１つの圧縮ブロックの伸長時間４０５の合計時間である。全圧縮ブロックの読み出し伸長時間４０６が最も短いものが、圧縮前プログラム３００を最も短い時間でＲＡＭ１０５に展開することが可能なケースであり、電子機器１００の起動時間が最も速いケースとなる。
【００３９】
ケース４０７は、非圧縮のケースであり、分割及び圧縮を行わずに圧縮前プログラム３００をそのままフラッシュメモリ１０６に保持し、起動時に読み出すケースである。ケース４０７では、圧縮前プログラム３００の分割及び圧縮を行わないため、１つの圧縮ブロックのサイズ４０２は２０ＭＢであり、圧縮ブロック数４０３は０である。全圧縮ブロックの読み出し時間４０４は、１つの圧縮ブロックのサイズ４０２の２０ＭＢを、圧縮ブロックサイズ別読み出し速度リスト２２３に含まれる圧縮ブロックサイズ〜１ＭＢにおける１１．２ＭＢ／ｓで除算した結果、１．７８６秒となる。１つの圧縮ブロックの伸長時間４０５は、０である。結果として、全圧縮ブロックの読み出し伸長時間４０６も１．７８６秒となる。
【００４０】
ケース４０８は、分割を行わずに圧縮を行うケースであり、１つの圧縮ブロックのサイズ４０２が圧縮後プログラム３１０そのもののサイズである１０ＭＢであり、圧縮ブロック数４０３は１である。全圧縮ブロックの読み出し時間４０４は、１つの圧縮ブロックのサイズ４０２の１０ＭＢを、圧縮ブロックサイズ別読み出し速度リスト２２３の圧縮ブロックサイズ〜１ＭＢにおける１１．２ＭＢ／ｓで除算した結果、０．８９３秒となる。１つの圧縮ブロックの伸長時間４０５は、１つの圧縮ブロックのサイズ４０２の１０ＭＢを、伸長性能情報２３３の伸長処理速度８ＭＢ/sで除算した結果、１．２５０秒となる。したがって、全圧縮ブロックの読み出し伸長時間４０６は、全圧縮ブロックの読み出し時間４０４と１つの圧縮ブロックの伸長時間４０５の合計値となり、２．１４３秒となる。
【００４１】
ケース４０９は、分割を行って圧縮を行うケースであり、１つの圧縮ブロックのサイズ４０２が１ＭＢであり、圧縮後プログラム３１０のサイズである１０ＭＢを１ＭＢで分割すると、圧縮ブロック数４０３は１０となる。全圧縮ブロックの読み出し時間４０４は、圧縮ブロックサイズ別読み出し速度リスト２２３の圧縮ブロックサイズ〜１ＭＢにおける１１．２ＭＢ／ｓに基づいて算出すると、０．８９３秒となる。１つの圧縮ブロックの伸長時間４０５は、１つの圧縮ブロックのサイズ４０２の１ＭＢを、伸長性能情報２３４の伸長処理速度８ＭＢ/sで除算した結果、０．１２５秒となる。全圧縮ブロックの読み出し伸長時間４０６は、全圧縮ブロックの読み出し時間４０４と１つの圧縮ブロックの伸長時間４０５の合計値となり、１．０１８秒となる。
【００４２】
以降、ケース４１０からケース４１２まで同様の計算を行い、それぞれのケースで全圧縮ブロック読み出し伸長時間４０６を算出する。結果として、全圧縮ブロックの読み出し伸長時間４０６は、ケース４１０において１つの圧縮ブロックのサイズ４０２が０．１ＭＢである場合、０．９１４秒となる。ケース４１１において、１つの圧縮ブロックのサイズ４０２が０．０５ＭＢである場合、０．９４１秒となる。ケース４１２において、１つの圧縮ブロックのサイズ４０２が０．０２５ＭＢである場合、１．００３秒となる。
【００４３】
この結果４００から、データ加工部は、全圧縮ブロック読み出し伸長時間４０６が最も短いのは、ケース４１０（０．９１４秒）であると決定することができる。ケース４１０において、１つの圧縮ブロックのサイズ４０２は０．１ＭＢであり、圧縮ブロック数４０３は、１００である。したがって、データ加工部（プロセッサＡ１０２）は、圧縮前プログラム３００を１００のブロックに分割し、分割したブロックを圧縮して圧縮データ３２６を生成する。また、データ加工部は、圧縮データ３２６に、図３を参照して説明した圧縮ブロック情報を付加して、圧縮ブロック３２０に加工する。本実施形態では、この際の伸長プロセッサ情報３２２は、奇数番目のブロックに対してプロセッサＢを指定し、偶数番目のブロックに対してプロセッサＣを指定する。データ加工部は、加工した圧縮ブロック３２０をまとめた圧縮後プログラム３１０を、フラッシュメモリ１０６に保持させる。
【００４４】
分割判定情報２００が、複数の圧縮形式とそれに関する伸長情報を含む場合、各圧縮形式における全圧縮ブロックの読み出し伸長時間４０６を算出して比較し、時間が最も短くなるケースを選択するようにしてもよい。
【００４５】
同様に、複数の伸長部のそれぞれで伸長処理速度が異なる場合、伸長部ごとのブロックサイズと読み出し時間、伸長時間を比較して、時間が最も短くなるケースを選択するようにしてもよい。
【００４６】
図５は、本実施形態における圧縮前プログラムの分割及び圧縮処理のフローチャートを示す。フローチャートの各ステップは、電子機器１００のデータ加工部１１０によって実行される。
【００４７】
ステップＳ５０１において、データ加工部は、図４を参照して上述したように、分割判定情報２００に基づいて圧縮前プログラム３００の分割及び圧縮方法を決定する。具体的には、分割及び圧縮方法として、圧縮前プログラム３００の分割数、圧縮形式、及び圧縮データを伸長するための伸長部などを決定する。
【００４８】
ステップＳ５０２において、データ加工部は、決定した分割及び圧縮方法に従い、圧縮前プログラムを分割して圧縮し、１つ以上の圧縮データを生成する。
【００４９】
ステップＳ５０３において、データ加工部は、生成した１つ以上の圧縮データのそれぞれに管理情報である圧縮ブロック情報を付加して、圧縮ブロックに加工する。圧縮ブロック情報には、圧縮データを伸長するための伸長部の情報などが含まれる。
【００５０】
ステップＳ５０４において、データ加工部は、１つ以上の圧縮ブロックをまとめた圧縮後プログラム３１０を、不揮発性記憶部であるフラッシュメモリ１０６に記憶する。
【００５１】
以上説明したように、電子機器１００のデータ加工部１１０は、加工データの元である圧縮前プログラム３００を分割して圧縮し、圧縮後プログラム３１０へと加工する。フラッシュメモリ１０６に記憶された圧縮後プログラム３１０は、電子機器１００の次の起動時にフラッシュメモリ１０６から読み出され、伸長されることで、圧縮前プログラム３００となる。
【００５２】
次に、本実施形態において、電子機器１００の読み出し部１１４及び１つ以上の伸長部１１５が、フラッシュメモリ１０６に保持されている圧縮後プログラム３１０を読み出し、伸長する処理について説明する。
【００５３】
図６は、本実施形態における圧縮後プログラムの読み出し及び伸長処理のフローチャートである。
【００５４】
ステップＳ６０１において、電子機器１００は、電源が投入され、起動する際に、分割判定情報２００に基づいて読み出し処理を行う読み出し部としてプロセッサＡ１０２を指定する。
【００５５】
ステップＳ６０２において、プロセッサＡ１０２は、ＤＭＡコントローラ１０７を制御して、圧縮後プログラム３１０の圧縮ブロック１をフラッシュメモリ１０６からＲＡＭ１０５へ読み出す。
【００５６】
ステップＳ６０３において、プロセッサＡ１０２は、圧縮ブロック１の圧縮ブロック情報の伸長プロセッサ情報がプロセッサＢであるため、圧縮ブロック１の伸長部としてプロセッサＢ１０３を指定する。伸長部として指定されたプロセッサＢ１０３は、読み出された圧縮ブロック１の伸長処理を行う。プロセッサＢ１０３による伸長処理については後述する。
【００５７】
ステップＳ６０４において、プロセッサＡ１０２は、圧縮ブロック１の圧縮データ３２６に終端情報３２７が含まれているかどうかを判定する。圧縮ブロック１の圧縮データ３２６には終端情報３２７が含まれていないため、ステップＳ６０２に戻り、プロセッサＡ１０２は、次の圧縮ブロック２をフラッシュメモリ１０６からＲＡＭ１０５へ読み出す。ステップＳ６０３において、プロセッサＡ１０２は、圧縮ブロック２の圧縮ブロック情報の伸長プロセッサ情報はプロセッサＣであるため、圧縮ブロック２の伸長部としてプロセッサＣ１０４を指定する。ステップＳ６０４において、プロセッサＡ１０２は、圧縮ブロック２の圧縮データ３２６に終端情報３２７が含まれているかどうか判定する。圧縮ブロック２の圧縮データ３２６には終端情報３２７が含まれないため、プロセッサＡ１０２は、ステップＳ６０２に戻り、次の圧縮ブロック３をフラッシュメモリ１０６からＲＡＭ１０５へ読み出す。このようにして、プロセッサＡ１０２は、圧縮データ３２６に含まれる終端情報３２７が検出されるまで、処理を繰り返す。
【００５８】
ステップＳ６０４において終端情報３２７が検出されると、プロセッサＡ１０２は、全ての圧縮ブロックをフラッシュメモリ１０６からＲＡＭ１０５へ読み出したと判断し、データの読み出しを完了する。圧縮後プログラム３１０の読み出し処理では、プロセッサＡ１０２とＤＭＡコントローラ１０７のみがフラッシュメモリ１０６と接続しているバス１０１を占有するので、ＲＡＭ１０５への読み出し時間が短縮される。
【００５９】
次いで、ステップＳ６０３において伸長部として指定されたプロセッサによる圧縮ブロックの伸長処理について説明する。
【００６０】
プロセッサＢ１０３は、プロセッサＡ１０２が圧縮ブロック１を読み出した後、ＲＡＭ１０５に読み出された圧縮ブロック１を伸長する。プロセッサＢ１０３は、圧縮ブロック１の圧縮ブロック情報に従って、圧縮形式３２３で圧縮された圧縮データサイズ３２５の圧縮データ３２６を展開先アドレス３２４へ伸長する。伸長処理が完了すると、プロセッサＢ１０３は、プロセッサＡ１０２に伸長処理が完了したことを通知する。
【００６１】
同様に、プロセッサＣ１０４は、圧縮ブロック２を伸長する。このように、伸長部として指定された各プロセッサは、圧縮ブロックの伸長処理を他の圧縮ブロックの読み出し処理及び伸長処理と並行して行う。
【００６２】
ステップＳ６０５において、プロセッサＡ１０２は、全ての圧縮ブロックの伸長処理が完了した後、電子機器１００を起動する。
【００６３】
以上説明したように、電子機器１００の読み出し部１１４及び１つ以上の伸長部１１５が、フラッシュメモリに保持されている圧縮後プログラム３１０の読み出し及び伸長処理を行う。
【００６４】
図７は、本実施形態における圧縮後プログラムの読み出し及び伸長処理に要する時間を説明する図である。
【００６５】
読み出し時間７０１は、読み出し部であるプロセッサＡ１０２による１つの圧縮ブロックの読み出し時間である。伸長時間７０２は、伸長部であるプロセッサＢ１０３による１つの圧縮ブロックの伸長時間である。待ち時間７０３は、伸長部であるプロセッサＢ１０３が前の圧縮ブロックの伸長処理を完了した後、次の圧縮ブロックの伸長処理を開始するまでの待ち時間である。待ち時間７０３は、読み出し時間７０１×２−プロセッサＢの圧縮ブロック伸長時間７０２で求めることができる。
【００６６】
伸長時間７０４は、伸長部であるプロセッサＣ１０４の１つの圧縮ブロックの伸長時間である。待ち時間７０５は、伸長部であるプロセッサＣ１０４が前の圧縮ブロックの伸長処理を完了した後、次の圧縮ブロックの伸長処理を開始するまでの待ち時間である。待ち時間７０５は、読み出し時間７０１×２−プロセッサＣの圧縮ブロック伸長時間７０４で求めることができる。
【００６７】
全圧縮ブロックの読み出し時間７０６は、読み出し部であるプロセッサＡ１０２による全ての圧縮ブロックの読み出し時間であり、１つの圧縮ブロックの読み出し時間７０１×分割したブロック数で求めることができる。
【００６８】
全圧縮ブロックの読み出し伸長時間７０７は、全圧縮ブロックの読み出し時間７０６と、プロセッサＣ１０４での１つの圧縮ブロックの伸長時間７０４で決定される。
【００６９】
本実施形態では、図４のケース４１０によると、圧縮ブロックのサイズは０．１ＭＢであり、１つの圧縮ブロックの読み出し時間７０１は、０．００９０１秒となる。プロセッサＢ１０３による１つの圧縮ブロックの伸長時間７０４は、０．０１３ｓとなり、プロセッサＣ１０４による１つの圧縮ブロックの伸長時間７０２も同じ時間となる。全圧縮ブロックの読み出し時間７０６は、０．００９０１秒×分割したブロック数１００で求められ、０．９０１秒となる。したがって、全圧縮ブロックの読み出し伸長時間７０７は、０．９０１秒＋０．０１３秒で求められ、０．９１４秒となる。
【００７０】
以上説明したように、圧縮前プログラムのサイズと分割判定情報から、圧縮後プログラムの読み出し及び伸長処理時間が最も短くなるように、圧縮前プログラムの分割数を決定して圧縮ブロックに加工し、不揮発性記憶部に保持することができる。本発明による電子機器は、起動時に不揮発性記憶部から圧縮ブロックを読み出して複数の伸長部で伸長することでプログラムの展開時間を短縮し、起動時間を速くすることができる。
【００７１】
（その他の実施形態）
本発明は、上述した実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018185615.tif 000003
【図２】
2018185615.tif 000004
【図３】
2018185615.tif 000005
【図４】
2018185615.tif 000006
【図５】
2018185615.tif 000007
【図６】
2018185615.tif 000008
【図７】
2018185615.tif 000009