(57)【要約】【課題】本発明は、メモリ容量を削減しつつ起動時の処理速度を向上させる電子装置、起動制御方法、起動制御プログラム及び記録媒体に関する。【解決手段】電子装置１は、電源ＯＦＦに際して、ＤＲＡＭ６上のメインプログラム及びワークデータからなるプログラム関連データを、ＤＭＡＣ１４によって第２バス２３を介してＣＯＤＥＣ１３に転送して圧縮させた圧縮プログラム関連データをＮＡＮＤメモリ５に保管し、電源ＯＮ時に、ＮＡＮＤメモリ５の圧縮関連データをＣＯＤＥＣ１３に転送してＣＯＤＥＣ１３で伸長された圧縮関連データをＤＲＡＭ６に展開するが、この電源ＯＮ時に、ＣＰＵ１１によるブートＲＯＭ３からのブートプログラムの読み出しが完了するまでは、ＣＰＵ１１とブートＲＯＭ３を接続する第１バス２２と第２バス２３とを切り離し、ブートプログラムの読み出しが完了すると、第１バス２２と第２バス２３を接続する。【選択図】          図１
2011123802.tif 000002
【特許請求の範囲】
【請求項１】
第１バスと第２バスの接続と切り離しを行うバス接続／切り離し手段と、
前記第１バスに接続され、ブートプログラムの格納されているブートプログラム用不揮発性メモリと、
前記第２バスに接続され、メインプログラムが展開されて実行される揮発性メモリと、
前記第１バスに接続され、電源がＯＮされると、前記ブートプログラム用不揮発性メモリから前記ブートプログラムを読み出してブート処理を実行するとともに、前記揮発性メモリのメインプログラムを実行して、該メインプログラムの実行に伴うワークデータを該揮発性メモリに書き込む実行手段と、
前記第２バスに接続され、前記メインプログラム及び前記ワークデータを所定の圧縮方式で圧縮する圧縮手段と、
前記第２バスに接続され、前記圧縮手段の圧縮した圧縮メインプログラム及び圧縮ワークデータを保管する圧縮データ用不揮発性メモリと、
前記第２バスに接続され、前記圧縮メインプログラム及び前記圧縮ワークデータを伸長する伸長手段と、
前記第２バスに接続され、電源のＯＦＦに際して、前記揮発性メモリ上の前記メインプログラム及び前記ワークデータを前記圧縮手段に転送して該圧縮手段で圧縮された圧縮メインプログラム及び圧縮ワークデータを前記圧縮データ用不揮発性メモリに保管させ、電源がＯＮされると、該圧縮データ用不揮発性メモリの該圧縮メインプログラム及び該圧縮ワークデータを前記伸長手段に転送して該伸長手段で伸長されたメインプログラム及びワークデータを前記揮発性メモリに展開する転送手段と、
前記バス接続／切り離し手段に、少なくとも電源がＯＮされたときに前記実行手段が前記ブートプログラム用不揮発性メモリの前記ブートプログラムを読み取る期間においては前記第１バスと前記第２バスを切り離させ、該実行手段による該ブートプログラムの読み出しが完了すると、該第１バスと該第２バスを接続させるバス接続制御手段と、
を備えていることを特徴とする電子装置。
【請求項２】
前記電子装置は、
前記揮発性メモリの前記メインプログラム及び前記ワークデータの前記転送手段による前記圧縮手段へのデータ転送単位を所定のブロック単位に設定し、また、前記圧縮データ用不揮発性メモリの前記圧縮メインプログラム及び前記圧縮ワークデータを該ブロック単位で該転送手段に前記伸長手段へ転送させる転送単位設定手段と、
前記転送単位設定手段によって設定されて前記圧縮手段で圧縮された該ブロック単位の前記圧縮メインプログラム及び前記圧縮ワークデータに対して伸長時の優先順位を決定する伸長優先順位情報を含む付加情報を生成して該ブロック単位の該圧縮メインプログラム及び該圧縮ワークデータに付加する付加情報手段と、
を備え、前記転送手段は、電源がＯＮされたときに、前記付加情報に基づいた読み出し順序で、前記圧縮データ用不揮発性メモリの前記ブロック単位の前記圧縮メインプログラム及び前記圧縮ワークデータの読み出しを行うことを特徴とする請求項１記載の電子装置。
【請求項３】
前記電子装置は、
所定の圧縮方式で圧縮された圧縮メインプログラムを格納するメインプログラム用不揮発性メモリと、
前記圧縮メインプログラム及び前記圧縮ワークデータの前記伸長手段による伸長処理での伸長エラーの有無を検出するエラー検出手段と、
前記エラー検出手段が前記伸長エラーの発生を検出すると、前記転送手段による前記圧縮データ用不揮発性メモリからの前記圧縮メインプログラム及び前記圧縮ワークデータの読み出し及び前記伸長手段による該圧縮メインプログラム及び該圧縮ワークデータの伸長を中止させて、該転送手段に前記メインプログラム用不揮発性メモリから前記圧縮メインプログラムの読み出しを行わせて該伸長手段に該圧縮メインプログラムの伸長を行わせて伸長された該メインプログラムを前記揮発性メモリに展開させる伸長データ切り替え手段と、
を備えていることを特徴とする請求項１または請求項２記載の電子装置。
【請求項４】
前記電子装置は、
所定の時間毎に、前記転送手段に前記揮発性メモリ上の前記メインプログラム及び前記ワークデータを前記圧縮手段に転送させて該圧縮手段に圧縮させ、該圧縮手段の圧縮した圧縮メインプログラム及び圧縮ワークデータを前記圧縮データ用不揮発性メモリに保管させる定期保管手段を備えていることを特徴とする請求項１から請求項３のいずれかに記載の電子装置。
【請求項５】
前記電子装置は、
前記電源がＯＮされると、前記実行手段による前記ブート処理と並行して、前記揮発性メモリ及び前記圧縮データ用不揮発性メモリの初期化をハードウェア処理で実行する初期化手段を備えていることを特徴とする請求項１から請求項４のいずれかに記載の電子装置。
【請求項６】
揮発性メモリのメインプログラムを実行するとともに、該メインプログラムの実行に伴うワークデータを該揮発性メモリに書き込む実行処理ステップと、
前記メインプログラム及び前記ワークデータを所定の圧縮方式で圧縮する圧縮処理ステップと、
前記圧縮処理ステップで圧縮された圧縮メインプログラム及び圧縮ワークデータを圧縮データ用不揮発性メモリに保管する圧縮データ保管処理ステップと、
圧縮メインプログラム及び圧縮ワークデータを伸長する伸長処理ステップと、
電源のＯＦＦに際して、前記揮発性メモリ上の前記メインプログラム及び前記ワークデータを前記圧縮処理ステップに転送して該圧縮処理ステップで圧縮された圧縮メインプログラム及び圧縮ワークデータを前記圧縮データ用不揮発性メモリに保管し、電源がＯＮされると、該圧縮データ用不揮発性メモリの該圧縮メインプログラム及び該圧縮ワークデータを前記伸長処理ステップに転送して該伸長処理ステップで伸長されたメインプログラム及びワークデータを前記揮発性メモリに展開する転送処理ステップと、
少なくとも電源がＯＮされたときに前記実行処理ステップが前記ブートプログラム用不揮発性メモリの前記ブートプログラムを読み取る期間においては、該実行処理ステップによる前記ブートプログラム用不揮発性メモリの読み取りを可能とする第１バスと前記圧縮データ用不揮発性メモリ、前記揮発性メモリに対する前記転送処理ステップによるデータの読み取り、書き込み処理と前記圧縮処理ステップ及び前記伸長処理ステップによるデータの圧縮、伸長を可能とする第２バスを切り離し、該実行処理ステップによる該ブートプログラムの読み取りが完了すると、該第１バスと該第２バスを接続するバス接続制御処理ステップと、
を有していることを特徴とする起動制御方法。
【請求項７】
コンピュータに、
揮発性メモリのメインプログラムを実行するとともに、該メインプログラムの実行に伴うワークデータを該揮発性メモリに書き込む実行処理と、
前記メインプログラム及び前記ワークデータを所定の圧縮方式で圧縮する圧縮処理と、
前記圧縮処理で圧縮された圧縮メインプログラム及び圧縮ワークデータを圧縮データ用不揮発性メモリに保管する圧縮データ保管処理と、
圧縮メインプログラム及び圧縮ワークデータを伸長する伸長処理と、
電源のＯＦＦに際して、前記揮発性メモリ上の前記メインプログラム及び前記ワークデータを前記圧縮処理に転送して該圧縮処理で圧縮された圧縮メインプログラム及び圧縮ワークデータを前記圧縮データ用不揮発性メモリに保管し、電源がＯＮされると、該圧縮データ用不揮発性メモリの該圧縮メインプログラム及び該圧縮ワークデータを前記伸長処理ステップに転送して該伸長処理で伸長されたメインプログラム及びワークデータを前記揮発性メモリに展開する転送処理と、
少なくとも電源がＯＮされたときに前記実行処理が前記ブートプログラム用不揮発性メモリの前記ブートプログラムを読み取る期間においては、該実行処理による前記ブートプログラム用不揮発性メモリの読み取りを可能とする第１バスと前記圧縮データ用不揮発性メモリ、前記揮発性メモリに対する前記転送処理によるデータの読み取り、書き込み処理と前記圧縮処理及び前記伸長処理によるデータの圧縮、伸長を可能とする第２バスを切り離し、該実行処理による該ブートプログラムの読み取りが完了すると、該第１バスと該第２バスを接続するバス接続制御処理と、
を実行させることを特徴とする起動制御プログラム。
【請求項８】
請求項７記載の起動制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置、起動制御方法、起動制御プログラム及び記録媒体に関し、詳細には、メモリ容量を削減しつつ起動時の処理速度を向上させる電子装置、起動制御方法、起動制御プログラム及び記録媒体に関する。
【背景技術】
【０００２】
近年、複合装置、複写装置、プリンタ装置、ファクシミリ装置、コンピュータ等の電子装置においては、機能の向上等に伴って、電子装置の動作を制御するシステムプログラムやアプリケーションプログラム等のメインプログラムが増大化してきている。ところが、電子装置においては、一般的に、メインプログラムは、高価なＲＯＭ（Read Only Memory）に格納されており、メインプログラムの増大化に伴って高価なＲＯＭの容量が増加することによる価格を抑制するために、従来から、メインプログラムを圧縮して、装置起動時にメインプログラムを起動させるためのブートプログラムとともにＲＯＭに格納して、ＲＯＭ内に圧縮されて格納されているメインプログラムを起動時にＲＡＭ（Random Access Memory）上に伸長して実行することが行われるようになってきている。
【０００３】
そして、近年、電子装置は、手動操作による装置電源の投入による装置起動だけでなく、省エネルギーを図るために、電子装置が利用されていない待機状態が所定時間経過すると、主要各部への電源の供給を停止または低減させる省エネルギーモードを備えており、この省エネルギーモードからの復帰時においても、ＲＯＭのメインプログラムを伸長して実行している。
【０００４】
そして、このような電源復帰時や省エネルギーモードからの復帰時の起動時間を短縮することは、電子装置の利用性を向上させる上で重要である。そこで、従来、ＣＰＵにより伸長される第１の圧縮済みシステムプログラムと、データ伸長ハードウェアにより伸長される第２の圧縮済みシステムプログラムとをＲＯＭに格納し、装置起動時にＣＰＵにより第１の圧縮済みシステムプログラムを伸長するとともに、データ伸長ハードウェアにより第２の圧縮済みシステムプログラムを伸長してＲＡＭ上に配置してＣＰＵが実行することで、電子装置の立ち上げ時間の短縮を図った技術が提案されている（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記公報記載の従来技術にあっては、ＲＯＭに格納されているＣＰＵ用とハードウェア用の圧縮済みプログラムをＣＰＵとハードウェアが読み取って伸長しているため、１つのＲＯＭに対してＣＰＵとハードウェアがアクセスする状態となり、ＲＯＭからのプログラムの読み出し速度が遅くなって、処理速度の向上を図る上で改良の必要があった。また、この従来技術にあっては、ハードウェアに圧縮済プログラムを伸長させるためには、ハードウェアの動作設定情報をＣＰＵのブートプログラムに入れておく必要があり、ブートプログラムのコード量が増加することとなる。さらに、圧縮されているのがプログラムのみであって、装置電源の投入の度に、ワークデータを別に待避させた不揮発メモリからＲＡＭに展開する必要があり、ワークデータの処理のための時間を考慮した技術が要望されている。
【０００６】
そこで、本発明は、電源ＯＮ時等の立ち上がり時間を短縮する電子装置、起動制御方法、起動制御プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、上記目的を達成するために、電源がＯＮされているときに、揮発性メモリ上のメインプログラム及び実行手段が該メインプログラムを実行することによって生成されたワークデータを、電源がＯＦＦされる際に、転送手段によって圧縮手段に転送して該圧縮手段で圧縮された圧縮メインプログラム及び圧縮ワークデータを圧縮データ用不揮発性メモリに保管し、その後、電源がＯＮされると、転送手段によって該圧縮データ用不揮発性メモリの該圧縮メインプログラム及び該圧縮ワークデータを伸長手段に転送して該伸長手段で伸長されたメインプログラム及びワークデータを該揮発性メモリに展開するが、この電源がＯＮされたときに、少なくとも実行手段がブートプログラム用不揮発性メモリからブートプログラムを読み出すまでの期間においては、該実行手段と該ブートプログラム用不揮発性メモリを接続する第１バスと前記圧縮データ用不揮発性メモリ、前記揮発性メモリ、前記転送手段、前記圧縮手段及び前記伸長手段を接続する第２バスとを切り離し、該実行手段による該ブートプログラムの読み出しが完了すると、該第１バスと該第２バスを接続することを特徴としている。
【０００８】
また、本発明は、前記転送手段によって、前記揮発性メモリの前記メインプログラム及び前記ワークデータを前記圧縮手段へ所定のブロック単位で転送し、該圧縮手段で圧縮された該ブロック単位の前記圧縮メインプログラム及び前記圧縮ワークデータに対して伸長時の優先順位を決定する伸長優先順位情報を含む付加情報を生成して、該ブロック単位の該圧縮メインプログラム及び該圧縮ワークデータに付加して前記圧縮データ用不揮発性メモリに保管し、電源がＯＮされたときに、前記転送手段が、前記付加情報に基づいた読み出し順序で、該圧縮データ用不揮発性メモリの該ブロック単位の該圧縮メインプログラム及び該圧縮ワークデータの読み出しを行うことを特徴としてもよい。
【０００９】
さらに、本発明は、前記圧縮メインプログラム及び前記圧縮ワークデータの前記伸長手段による伸長処理における伸長エラーの発生を検出すると、前記転送手段による前記圧縮データ用不揮発性メモリからの前記圧縮メインプログラム及び前記圧縮ワークデータの読み出し及び前記伸長手段による該圧縮メインプログラム及び該圧縮ワークデータの伸長を中止させて、該転送手段に、所定の圧縮方式で圧縮された圧縮メインプログラムを格納するメインプログラム用不揮発性メモリから該圧縮メインプログラムの読み出しを行わせて該伸長手段に該圧縮メインプログラムの伸長を行わせて伸長された該メインプログラムを前記揮発性メモリに展開させることを特徴としてもよい。
【発明の効果】
【００１０】
本発明によれば、電源ＯＮ時等の立ち上がり時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例を適用した電子装置の要部ブロック構成図。
【図２】プログラムデータ及びワークデータの圧縮／伸長と付加情報の付加処理の説明図。
【図３】電源ＯＦＦ時のプログラム関連データ保存処理を示すフローチャート。
【図４】電源ＯＮ時の起動制御処理を示すフローチャート。
【図５】電源ＯＮ時のメモリの初期化をハードウェア処理で行う場合の起動制御処理を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１３】
図１〜図５は、本発明の電子装置、起動制御方法、起動制御プログラム及び記録媒体の第１実施例を示す図であり、図１は、本発明の電子装置、起動制御方法、起動制御プログラム及び記録媒体の第１実施例を適用した電子装置１の要部ブロック構成図である。
【００１４】
図１において、電子装置１は、複合装置、複写装置、プリンタ装置、ファクシミリ装置、コンピュータ等であり、ＡＳＩＣ（Application Specific Integrated Circuit）２、ブートＲＯＭ３、ＲＯＭ４、ＮＡＮＤメモリ５及びＤＲＡＭ（Dynamic Random Access Memory）６等を備えているとともに、図示しないが、電子装置１としてのその他の構成部を備えている。電子装置１のその他の構成部は、例えば、電子装置１が複合装置であるときには、原稿の画像を読み取るスキャナ部、画像データに基づいて画像を用紙に記録出力するプリンタ部、データをファクシミリ通信するファクシミリ部、ネットワークを介してデータを送受信する転送部、各種動作指示を行ったり、各種情報の表示出力を行う操作表示部等である。
【００１５】
ＡＳＩＣ２は、ＣＰＵ（Central Processing Unit ）１１、アービタ１２、ＣＯＤＥＣ（COmpresser/DECompressor：圧縮／伸張部）１３、ＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）１４、ＤＲＡＭ（Dynamic Random Access Memory）コントローラ１５、付加情報部１６、伸長切り替え部１７、伸長エラー検出部１８、ＳＡＴＡ（シリアルＡＴＡ）１９、ＳＡＴＡ／ＮＡＮＤ初期化部２０、ＮＡＮＤコントローラ２１、ＤＲＡＭ初期化部２２及び第１バス２３と第２バス２４等を備えている。
【００１６】
第１バス２３には、ＣＰＵ１１とアービタ１２及びブートＲＯＭ３が接続されており、第２バス２４には、アービタ１２、ＣＯＤＥＣ１３、ＤＭＡＣ１４とＤＲＡＭコントローラ１５及びＲＯＭ４が接続されている。第２バス２４は、ＣＰＵ１１がブートＲＯＭ３からブートプログラムの読み出しを行っているときに、平行してＮＡＮＤメモリ５からＤＲＡＭ６へデータ転送を行うために使用され、該データ転送後には、ＤＲＡＭ６をアービタ１２を介して第１バス２３に接続して、ＣＰＵ１１が、ＤＲＡＭ６からプログラムデータ等の読み出しを行う。
【００１７】
ブートＲＯＭ（ブートプログラム用不揮発性メモリ）３は、非圧縮のブートプログラムが格納されており、ＲＯＭ（メインプログラム用不揮発性メモリ）４は、所定の圧縮方式で圧縮されたメインプログラム（圧縮メインプログラム）が格納されている。ＲＯＭ４に格納されている圧縮メインプログラムは、電子装置１の動作に必要なシステムプログラム及びアプリケーションプログラムであり、所定の圧縮方式（ＬＺＨ形式等）で圧縮された状態で格納されている。
【００１８】
アービタ（バス接続／切り離し手段、バス接続制御手段）１２は、ＤＭＡＣ１４とＣＰＵ１１のアクセス調停を行い、また、第１バス２３と第２バス２４の接続及び切り離しを行う。
【００１９】
ＮＡＮＤメモリ（圧縮データ用不揮発性メモリ）５は、ＳＡＴＡインターフェイスを有する不揮発性のＮＡＮＤ型のメモリであり、電源ＯＦＦ時や定期保存時に、ＡＳＩＣ２のＣＯＤＥＣ１３で圧縮されたメインプログラムＤａ〜Ｄｄ及びワークデータが書き込まれ、また、電源オン時に読み出される。
【００２０】
ＤＲＡＭ２１は、揮発性メモリであり、ＡＳＩＣ２よるワークメモリとして利用される。特に、ＤＲＡＭ２１は、図２に示すように、ＡＳＩＣ２によってメインプログラムＤａ〜Ｄｄがバンド単位（所定のブロック単位）で展開されて実行されるバンド単位のメインプログラムＤａ〜Ｄｄの保管されるメインプログラムエリアＰａ〜Ｐｄ、該メインプログラムＤａ〜Ｄｄの実行によって発生するワークデータＤｗが格納されるワークエリアＷ及び画像データＤｇが格納される画像データエリアＧを備えている。
【００２１】
ＡＳＩＣ２のＣＰＵ（実行手段）１１は、第１バス２３を介してブートＲＯＭ３及びアービタ１２に接続されており、アービタ１２を介することなく第１バス２３を通してブートＲＯＭ３にアクセスする。ＣＰＵ１１は、ブートＲＯＭ３に直接アクセスしてブートプログラムを読み出し、ブート処理を実行して、必要に応じて、アービタ１２を介してＤＲＡＭ６やＮＡＮＤメモリ５にアクセスする。また、ＣＰＵ１１は、アービタ１２を介してＲＯＭ４の圧縮メインプログラムＤａ〜Ｄｄを読み出して、ＣＯＤＥＣ１３に伸長させ、伸長されたメインプログラムＤａ〜ＤｄをＤＲＡＭ６に送って、ＤＲＡＭ６のメインプログラムエリアＰａ〜Ｐｄで該メインプログラムＤａ〜Ｄｄを実行する。ＣＰＵ１１は、このメインプログラムＤａ〜Ｄｄの実行において発生するワークデータＤｗをワークエリアＷに書き込む。さらに、ＣＰＵ１１は、ＤＭＡＣ１４を動作させるディスクリプタ設定を行ってＤＭＡＣ１４を起動させる。
【００２２】
ＤＭＡＣ１４は、ＣＰＵ１１によって設定されるディスクリプタに基づいて、ＤＲＡＭ２１とＮＡＮＤメモリ５との間のデータ転送やＲＯＭ４とＣＯＤＥＣ１３との間のデータ転送を行う。
【００２３】
ＳＡＴＡ１９は、ＮＡＮＤメモリ５に接続され、ＮＡＮＤメモリ５とのインターフェイスを行う。
【００２４】
ＳＡＴＡ／ＮＡＮＤ初期化部（初期化手段）２０は、ＮＡＮＤメモリ５及びＳＡＴＡ１９の初期化（コンフィギュレーション等）を行うハードウェアであり、ＣＰＵ１１によって初期化を行ってもよいが、ハードウェアで初期化を行うことで、ブートプログラムの容量低減や電源立ち上がり時間の短縮を図ることができる。
ＮＡＮＤコントローラ２１は、ＳＡＴＡ１９のインターフェイスとＮＡＮＤメモリ５のインターフェイスを備えており、これらの間の信号及びデータの授受を行う。
【００２５】
ＣＯＤＥＣ（圧縮手段、伸長手段）１３は、電源ＯＦＦ時に、ＤＲＡＭ６で使用していたメインプログラムＤａ〜Ｄｄ及びメインプログラムＤａ〜ＤｄのワークエリアＷのデータ（ワークデータＤｗ）を所定の圧縮方式で圧縮するデータ圧縮部と、電源ＯＮ時に、ＮＡＮＤメモリ５に圧縮されて格納されている圧縮メインプログラムＤａ〜Ｄｄ及びワークデータＤｗを伸長するデータ伸張部と、を備えた圧縮・伸長モジュールである。ＣＯＤＥＣ１３は、画像データとプログラム及びワークデータの特性の相異から、プログラムの圧縮率をより一層高めるために、画像データの圧縮方式（ＪＰＥＧ（Joint Photographic Experts Group）等）とは異なり、メインプログラムＤａ〜ＤｄやワークデータＤｗの圧縮に適した圧縮方式（ＬＺＨ形式等）を使用して圧縮／伸長する。ＤＭＡＣ１４は、このＣＯＤＥＣ１３の圧縮した圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗを、図２に示すように、ＮＡＮＤメモリ５に転送して格納し、また、ＮＡＮＤメモリ５の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗを、ＣＯＤＥＣ１３に転送して、ＣＯＤＥＣ１３に伸長させた後、ＤＲＡＭ６に転送して格納する。すなわち、ＣＯＤＥＣ１３は、ＤＲＡＭ６に保存されているメインプログラムＤａ〜Ｄｄ、ワークデータＤｗ及び画像データＤｇのうち、メインプログラムＤａ〜ＤｄとワークデータＤｗを圧縮し、画像データＤｇについては圧縮しない。
【００２６】
付加情報部（付加情報手段）１６は、ＣＯＤＥＣ１３で圧縮されてＮＡＮＤメモリ５に格納されたメインプログラムＤａ〜Ｄｄ及びワークデータＤｗに対して付加情報Ｆａ〜Ｆｗを書き込んで付加し、また、メインプログラムＤａ〜Ｄｄ及びワークデータＤｗに付加されている付加情報Ｆａ〜Ｆｗを読み出す。こ付加情報Ｆａ〜Ｆｗは、例えば、メインプログラムＤａ〜Ｄｄ及びワークデータＤｗのバンドの圧縮データ量情報、バンド単位の伸長優先順位情報等であり、バンド単位の伸長優先順位情報とは、ワークデータＤｗや優先順位の低いメインプログラムＤａ〜Ｄｄ（オプション等）のデータ伸長を後回しにして、一部のプログラムが実行できない制約付きであっても立ち上がり時間を短縮するのには、ＣＯＤＥＣ１３で優先して伸長処理を行う必要性等で決定される優先順位である。なお、ＮＡＮＤメモリ５内のメインプログラムＤａ〜Ｄｄ及びワークデータＤｗは、電子装置１の電源ＯＮ時には、この伸長優先順位に関わらず、最終的には、全て伸長されるため、この制約は無くなる。
【００２７】
伸長切り替え部（伸長データ切り替え手段）１７は、ＣＰＵ１１の制御下で、ＮＡＮＤメモリ５からの圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗのＣＯＤＥＣ１３での伸長処理を中止させ、ＣＯＤＥＣ１３でのプログラムデータの伸長処理を、ＮＡＮＤメモリ５からの圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗからＲＯＭ４からの圧縮メインプログラムに切り替える。伸長切り替え部１７は、このＣＯＤＥＣ１３での伸長処理対象のＤＭＡＣ１４による転送元を、ファームウェア処理またはハードウェア処理によって切り替える。
【００２８】
伸長エラー検出部（エラー検出手段）１８は、ＣＯＤＥＣ１３による圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗの伸長処理におけるエラー（伸長エラー）の検出を行い、伸長エラーを検出すると、ＣＰＵ１１に通知する。伸長エラー検出部１８は、ＣＯＤＥＣ１３における圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗの伸長処理でのコード自体やコード終端等において、本来生成されることのないデータを検出すると、伸長エラーありと判断する。
【００２９】
ＤＲＡＭコントローラ１５は、ＤＲＡＭ６とのアクセスを制御するメモリコントローラであり、ＤＲＡＭ初期化部（初期化手段）２２は、ＤＲＡＭ６とアクセスするための初期化をハードウェア処理によって行う。なお、ＤＲＡＭ６の初期化は、ＣＰＵ１１によって行ってもよいが、ＤＲＡＭ初期化部２２によってハードウェアで初期化することで、ブートＲＯＭ３に格納するブートプログラムの容量低減や電源立ち上がり時間の短縮化を図ることができる。
【００３０】
なお、電子装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明の起動制御方法を実行する起動制御プログラムを読み込んでＲＯＭ４に導入することで、後述する立ち上がり時間を短縮する起動制御方法を実行する電子装置として構築されている。この起動制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
また、上記構成においては、ＤＲＡＭコントローラ１５とＤＲＡＭ初期化部２２は、ＡＳＩＣ２内に、搭載されている場合について説明しているが、ＤＲＡＭコントローラ１５及びＤＲＡＭ初期化部２２は、ＤＲＡＭ６とともにＡＳＩＣ２外に設けられていてもよい。
【００３１】
次に、本実施例の作用を説明する。本実施例の電子装置１は、電源がＯＮされて動作しているときにＤＲＡＭ６に展開されていたメインプログラムＤａ〜Ｄｄ及びワークデータＤｗを、電源ＯＦＦ時や定期保存時等にＣＯＤＥＣ１３で圧縮してＮＡＮＤメモリ５に保管し、電源ＯＮ時にＮＡＮＤメモリ５の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗをＣＯＤＥＣ１３で伸長してＤＲＡＭ６に展開して実行することで、電源ＯＮ時の立ち上がり時間を短縮している。
【００３２】
すなわち、電子装置１は、図３に示すように、ＣＰＵ１１は、電子装置１及びＡＳＩＣ２の電源がＯＮのとき、所定時間間隔で、電子装置１の電源スイッチのＯＦＦ操作による電源ＯＦＦ要求があったか、消費電力を削減する省エネルギーモードに移行するためにＡＳＩＣ２の電源ＯＦＦ要求があったか、また、定期的にＤＲＡＭ６内のプログラム関連データ（メインプログラム及びワークデータ）動作内容を保存する定期保存トリガが入ったかをチェックし（ステップＳ１０１）、これらのいずれかの電源ＯＦＦ要求または定期保存トリガがあると、現在の動作処理や割り込み処理等を終了して待機状態に移行する動作終了処理を開始して（ステップＳ１０２）、動作終了処理が完了するのを待つ（ステップＳ１０３）。この定期保存トリガは、例えば、定期的にＣＯＤＥＣ１３を起動させるハードウェアとして設けられた図示しない定期起動部（定期保管手段）から出力される。
【００３３】
ＣＰＵ１１は、ステップＳ１０３で、動作終了処理を完了すると、ＤＭＡのディスクリプタを、図２に示したように、メインプログラムＤａ〜Ｄｄ及びワークデータＤｗを、用途に応じたバンド単位に分割して設定し（ステップＳ１０３）、ＤＭＡＣ１４にＤＭＡ転送の起動をかけてＤＭＡ転送を開始させる（ステップＳ１０５）。すなわち、ＣＰＵ１１は、ＤＲＡＭ６のメインプログラムＤａ〜Ｄｄを、図２に示すように、複数（図２では、４つのメインプログラムＤａ〜Ｄｄと１つのワークデータＤｗの合計５つ）のディスクリプタを設定する。この場合、ＣＰＵ１１は、ディスクリプタの圧縮実行順を伸長時の優先順（バンド単位の伸長優先順位）として、付加情報部１６に設定して、付加情報部１６が該付加情報Ｆａ〜ＦｗをＮＡＮＤメモリ５に保管されたプログラムデータＰａ〜Ｐｄ及びワークデータＤｗに付加してもよい。このようにすると、圧縮時のバンド順と同じ順番で伸長することができる。そして、ＣＰＵ１１は、ＤＭＡ転送を開始させると、以降、ＤＲＡＭ６のワークエリアへの書き込みを行わない。
【００３４】
次に、ＣＰＵ１１は、ＤＭＡＣ１４がＤＲＡＭ６からＣＯＤＥＣ１３に転送した１バンドのメインプログラムＤａ〜ＤｄまたはワークデータＤｗをＣＯＤＥＣ１３に圧縮させ（ステップＳ１０６）、圧縮されたデータをＣＯＤＥＣ１３からＳＡＴＡ１９を介してＮＡＮＤメモリ５に転送させて書き込ませる（ステップＳ１０７）。このとき、ＣＯＤＥＣ１３は、ディスクリプタ単位（＝バンド単位）でデータの圧縮を行い、１バンド分の圧縮が完了すると、その圧縮データ量を記憶する。
【００３５】
ＣＰＵ１１は、１バンド分のデータの圧縮とナンドメモリ５への書き込みが完了すると、付加情報部１６に、上記ＣＯＤＥＣ１３の記憶しているバンド単位の圧縮データ量とバンド単位の伸長優先順位情報をＳＡＴＡ１９経由でＮＡＮＤメモリ５へ書き込ませる（ステップＳ１０８）。このバンド単位の圧縮データ量は、上記ＣＯＤＥＣ１３がバンドデータを圧縮する際に計算した圧縮データ量であり、バンド単位の伸長優先順位情報は、上述のように、圧縮実行順を伸長時の優先順とする伸長優先順位、または、ＣＰＵ１１がディスクリプタの中で指定する伸長優先順位等の情報である。
【００３６】
次に、ＣＰＵ１１は、１バンド分のデータの圧縮とＮＡＮＤメモリ５への書き込み及び付加情報Ｆａ〜ＦｗのＮＡＮＤメモリ５への書き込みが完了したかチェックし（ステップＳ１０９）、完了していないときには、ステップＳ１０６に戻って上記同様に処理する（ステップＳ１０６〜Ｓ１０９）。
【００３７】
ステップＳ１０９で、１バンド分の処理が終了すると、ＣＰＵ１１は、ＤＲＡＭ６のメインプログラムＤａ〜Ｄｄ及びワークデータＤｗの圧縮とＮＡＮＤメモリ５への書き込み及び付加情報Ｆａ〜ＦｗのＮＡＮＤメモリ５への書き込みが完了したかチェックし（ステップＳ１１０）、全バンドの処理を終了していないときには、ステップＳ１０５に戻って、次のバンドのＤＭＡ転送を開始させる処理から上記同様に処理する（ステップＳ１０５〜Ｓ１１０）。
【００３８】
ステップＳ１１０で、全てのバンドの処理を終了すると、ＣＰＵ１１は、電子装置１の電源をＯＦＦにする（ステップＳ１１１）。ＣＰＵ１１は、この電子装置１の電源ＯＦＦの処理を、例えば、電源部に設けられているハードウェアタイマを動作させることで、実行する。
【００３９】
次に、電子装置１は、電子装置１またはＡＳＩＣ２の電源がＯＮされると、図４に示すように、起動制御処理を行う。
【００４０】
すなわち、ＣＰＵ１１は、図４に示すように、電子装置１またはＡＳＩＣ２の電源がＯＮされると（ステップＳ２０１）、ブートＲＯＭ３のブートプログラムを読み出して、該ブートプログラムに従ってＣＰＵ周辺の初期化及びＤＲＡＭ６及びＮＡＮＤメモリ５のソフトウェア処理を行い（ステップＳ２０２）、ＣＰＵ周辺の初期化を開始すると、ＤＲＡＭ６及びＮＡＮＤメモリ５の初期化が完了するのを待つ（ステップＳ２０３）。このＤＲＡＭ６及びＮＡＮＤメモリ５の初期化が完了したか否かは、ＣＰＵ１１自体がＤＲＡＭ６及びＮＡＮＤメモリ５の初期化を判断する。このＣＰＵ１１がブートＲＯＭ３のブートプログラムの読み出しを行っている間は、アービタ１２は、第１バス２３と第２バス２４の接続を切り離し、ＣＰＵ１１によるブートＲＯＭ３からのブートプログラムの読み出しを完了すると、第１バス２と第２バス２４を接続させる。
【００４１】
ステップＳ２０３で、メモリの初期化処理が完了すると、ＣＰＵ１１は、圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗがＮＡＮＤメモリ５に保存されているか（圧縮保存データ有りか）を判断する（ステップＳ２０４）。なお、この圧縮保存データ有りか否かは、ＤＭＡＣ１４が、圧縮データを保存する際に、ＮＡＮＤメモリ５の予め決められたエリアにステータスを保存し、ＣＰＵ１１がこのステータス保存エリアにアクセスして圧縮保存データがあるか否か確認する。ステップＳ２０４で、圧縮保存データがないときには、ＣＰＵ１１は、通常のブート処理を行う（ステップＳ２０５）。ＣＰＵ１１は、この通常のブート処理においては、ＲＯＭ４に保存されている圧縮メインプログラムをＤＭＡＣ１４に読み出させてＣＯＤＥＣ１３に転送させ、ＣＯＤＥＣ１３で伸長されたメインプログラムをＤＲＡＭ６に展開させて、ＤＲＡＭ６に展開されたメインプログラムを実行する。
【００４２】
ステップＳ２０４で、圧縮保存データがあるときには、ＣＰＵ１１は、ブートＲＯＭ３のブートプログラムに従って、ＤＭＡＣ１４によってＮＡＮＤメモリ５の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗを、付加情報Ｆａ〜Ｆｗに基づいて、特に、付加情報Ｆａ〜Ｆｗの伸長優先順位に基づいてバンド毎にＣＯＤＥＣ１３に転送して伸長させた後、ＤＲＡＭ６に伸長されたメインプログラムＤａ〜Ｄｄ及びワークデータＤｗを展開する処理をループ処理する（ステップＳ２０６）。なお、この処理では、スリープ等に移行して、その後、割り込みによって復帰してもよい。すなわち、ＡＳＩＣ２は、ＣＰＵ１１による第１バス２３を利用したブートプログラムによるブート処理と平行して、ＣＰＵ１１が介在することなく、ＤＭＡＣ１４及びＣＯＤＥＣ１３によって、第２バス２４を利用して、圧縮プログラムデータ及び圧縮ワークデータＤｗを伸長して、ＤＲＡＭ６へ展開する。
【００４３】
そして、ＣＰＵ１１は、伸長エラー検出部１８から伸長エラー通知があったか否かをチェックし（ステップＳ２０７）、伸長エラー通知があると、通常ブート処理を行う（ステップＳ２０５）。
【００４４】
ステップＳ２０７で、伸長エラー通知がないと、ＣＰＵ１１は、ＮＡＮＤメモリ５に保存されている圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗの全バンドの転送終了通知がＤＭＡＣ１４からあったかチェックし（ステップＳ２０８）、全バンドの転送が終了していないときには、ステップＳ２０６に戻って上記同様に処理する（ステップＳ２０６〜Ｓ２０８、Ｓ２０５）。
【００４５】
ステップＳ２０８で、全バンドの転送が終了すると、ＣＰＵ１１は、ＤＲＡＭ６の該当アドレス（該当部分）にジャンプし、メインプログラムＤａ〜ＤｄとワークデータＤｗを使用して処理を実行する（ステップＳ２０９）。
【００４６】
このように、本実施例の電子装置１は、電源がＯＮされているときに、ＤＲＡＭ６上のメインプログラムＤａ〜Ｄｄ及びＣＰＵ１１がメインプログラムＤａ〜Ｄｄを実行することによって生成されたワークデータＤｗを、電源がＯＦＦされる際に、ＤＭＡＣ１４によってＣＯＤＥＣ１３に転送してＣＯＤＥＣ１３で圧縮された圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗをＮＡＮＤメモリ５に保管し、その後、電源がＯＮされると、ＤＭＡＣ１４が、ＮＡＮＤメモリ５の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗをＣＯＤＥＣ１３に転送して該ＣＯＤＥＣ１３で伸長されたメインプログラムＤａ〜Ｄｄ及びワークデータＤｗをＤＲＡＭ６に展開するが、この電源がＯＮされたときに、少なくともＣＰＵ１１とブートＲＯＭ３を接続してＣＰＵ１１がブートＲＯＭ３からブートプログラムを読み出すまでの期間においては、ＣＰＵ１１とブートＲＯＭ３を接続する第１バス２３とＮＡＮＤメモリ５、ＤＲＡＭ６、ＤＭＡＣ１４及びＣＯＤＥＣ１３を接続する第２バス２４とをアービタ１２によって切り離し、ＣＰＵ１１によるブートＲＯＭ３からのブートプログラムの読み出しが完了すると、第１バス２３と第２バス２４をアービタ１２によって接続する。
【００４７】
したがって、ブートプログラムによるＣＰＵ１１のブート処理と平行して、ブートプログラムを読み出すのに使用する第１バス２３とは異なる第２バス２４によりＣＰＵ１１が介在することなく圧縮メインプログラムＤａ〜Ｄｄ及びメインプログラムＤａ〜Ｄｄの圧縮ワークデータＤｗを伸長してＤＲＡＭ６へ展開することができ、電源ＯＮ時の立ち上がりにおける起動時間を短縮することができる。
【００４８】
また、本実施例の電子装置１は、ＤＭＡＣ１４によって、ＤＲＡＭ６のメインプログラムＤａ〜Ｄｄ及びワークデータＤｗをＣＯＤＥＣ１３へ所定のブロック単位であるバンド単位で転送し、ＣＯＤＥＣ１３で圧縮されたバンド単位の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗに対して伸長時の優先順位を決定する伸長優先順位情報を含む付加情報Ｆａ〜Ｆｗを付加情報部１６で生成して、該バンド単位の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗに付加してＮＡＮＤメモリ５に保管し、該ＮＡＮＤメモリ５の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗを、ＤＭＡＣ１４が、電源がＯＮされたときに、該付加情報Ｆａ〜Ｆｗに基づいた読み出し順序で、ＮＡＮＤメモリ５の該バースト単位の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗの読み出しを行っている。
【００４９】
したがって、ＤＲＡＭ６のメインプログラムＤａ〜Ｄｄ及びワークデータＤｗを、プログラムの種類／ワーク領域等に応じてバンド単位に分けて、用途に応じて独立してバンド単位で伸長可能な形式で圧縮することができ、また、圧縮後のデータの付加情報Ｆａ〜Ｆｗとして、バンド単位の圧縮データ量情報、バンド単位の伸長優先順位情報等の付加情報Ｆａ〜Ｆｗを付けてＮＡＮＤメモリ５に保存して、付加情報Ｆａ〜Ｆｗに基づいて読み出すことができる。その結果、全てのプログラムやワークデータＤｗが伸長されていない状態であっても、プログラム及びワークデータＤｗの展開を適切に行うことができ、待機状態に近い速やかな起動動作を実現することができる。
【００５０】
この場合、メインプログラムＤａ〜Ｄｄ及びワークデータＤｗをデータ構造に適した圧縮方式でＣＯＤＥＣ１３において圧縮しているので、圧縮後のデータ量を抑制することができる。
【００５１】
さらに、本実施例の電子装置１は、圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗのＣＯＤＥＣ１３による伸長処理における伸長エラーの発生を伸長エラー検出部１８が検出すると、ＤＭＡＣ１４によるＮＡＮＤメモリ５からの圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗの読み出し及びＣＯＤＥＣ１３による該圧縮メインプログラムＤａ〜Ｄｄ及び該圧縮ワークデータＤｗの伸長を中止して、ＤＭＡＣ１４に、ＲＯＭ４から圧縮メインプログラムの読み出しを行わせてＣＯＤＥＣ１３に該圧縮メインプログラムの伸長を行って、伸長されたメインプログラムをＤＲＡＭ６に展開している。
【００５２】
したがって、ＮＡＮＤメモリ５の圧縮メインプログラムＤａ〜Ｄｄ及び該圧縮ワークデータＤｗの伸長に失敗しても、ＲＯＭ４のメインプログラムを伸長して、適切にかつ確実に起動することができ、エラーに対して適切に対応することができる。
【００５３】
また、本実施例の電子装置１は、所定の時間毎に、ＤＭＡＣ１４にＤＲＡＭ６上のメインプログラムＤａ〜Ｄｄ及びワークデータＤｗをＣＯＤＥＣ１３に転送して、ＣＯＤＥＣ１３に圧縮させ、ＣＯＤＥＣ１３の圧縮した圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗをＮＡＮＤメモリ５に保管させている。
【００５４】
したがって、電源ＯＦＦ時に、ＤＲＡＭ６のメインプログラムＤａ〜Ｄｄ及びワークデータＤｗの圧縮が間に合わない事態（停電等）が発生した場合にも、電源ＯＮ時の立ち上げ時間を、ＲＯＭ４のメインプログラムを読み込んで立ち上げを行う場合に比較して、短縮することができる。
【００５５】
なお、電ＯＮ時のプログラム関連データ起動処理においては、図５に示すように、ＤＲＡＭ６及びＮＡＮＤメモリ５の初期化を行ってもよい。
【００５６】
すなわち、ＣＰＵ１１は、図５に示すように、電子装置１またはＡＳＩＣ２の電源がＯＮされると（ステップＳ３０１）、ブートＲＯＭ３のブートプログラムを読み出して、該ブートプログラムに従ってＣＰＵ周辺の初期化を行うとともにＤＲＡＭ初期化部２２及びＳＡＴＡ／ＮＡＮＤ初期化部２０に起動をかけて、ＤＲＡＭ初期化部２２によるＤＲＡＭ６の初期化及びＳＡＴＡ／ＮＡＮＤ初期化部２０によるＮＡＮＤメモリ５の初期化を開始させ（ステップＳ３０２）、ＤＲＡＭ６及びＮＡＮＤメモリ５の初期化が完了するのを待つ（ステップＳ３０３）。このＤＲＡＭ６及びＮＡＮＤメモリ５の初期化が完了したか否かは、ＤＲＡＭ６の初期化をハードウェア処理で行うＤＲＡＭ初期化部２２及びＮＡＮＤメモリ５の初期化をハードウェア処理で行うＳＡＴＡ／ＮＡＮＤ初期化部２０からの初期化完了を通知する割り込みまたはポーリングによってＣＰＵ１１が判断する。
【００５７】
ステップＳ３０３で、メモリの初期化処理が完了すると、ＣＰＵ１１は、圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗがＮＡＮＤメモリ５に保存されているか（圧縮保存データ有りか）を判断し（ステップＳ３０４）、圧縮保存データがないときには、上記同様の通常のブート処理を行う（ステップＳ３０５）。
【００５８】
ステップＳ３０４で、圧縮保存データがあるときには、ＤＭＡＣ１４が、ＮＡＮＤメモリ５から圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗに付加されている付加情報Ｆａ〜Ｆｗを読み出し、該付加情報Ｆａ〜Ｆｗに基づいて、ハードウェア処理によって自ら、ＮＡＮＤメモリ５から圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗに対する転送バンド設定等のＤＭＡ転送のスタート設定を行って、特に、付加情報Ｆａ〜Ｆｗの伸長優先順位に基づいた順番にバンド毎にＣＯＤＥＣ１３へＤＭＡ転送を開始する（ステップＳ３０８）。ＣＯＤＥＣ１３は、転送されてきた圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗを伸長し、ＤＭＡＣ１４が、伸長されたメインプログラムＤａ〜Ｄｄ及びワークデータＤｗをＤＲＡＭ６へ展開する（ステップＳ３０９）。ＡＳＩＣ２は、このＮＡＮＤメモリ５の圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗのＤＲＡＭ６への展開処理を、ＣＰＵ１１による第１バス２３を利用したブートプログラムによるブート処理と平行して、ＣＰＵ１１が一切介在することなく、ＤＭＡＣ１４及びＣＯＤＥＣ１３がハードウェア処理によって、第２バス２４を利用して実行する。
【００５９】
そして、伸長切り替え部１７は、伸長エラー検出部１８から伸長エラー通知があったか否かをチェックし（ステップＳ３１０）、伸長エラー通知があると、ＤＭＡＣ１４に圧縮プログラムデータの読み出し先を、ＮＡＮＤメモリ５からＲＯＭ４に切り替えるように通知して、ＤＭＡＣ１４が圧縮プログラムデータの読み出し先をＮＡＮＤメモリ５からＲＯＭ４に切り替える。ＣＯＤＥＣ１３は、ＲＯＭ４から読み出されてきた圧縮プログラムデータを伸長して、伸長したプログラムデータをＤＲＡＭ６に展開する通常ブート処理を行う（ステップＳ３０５）。
【００６０】
ステップＳ３１０で、伸長エラー通知がないと、ＤＭＡＣ１４が、ＮＡＮＤメモリ５に保存されている圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗの１バンドの転送が完了したかチェックし（ステップＳ３１１）、１バンドの転送が完了していないときには、ステップＳ３０９に戻って上記同様の処理を行う（ステップＳ３０９〜Ｓ３１１）。ステップＳ３１１で、１バンドの転送が完了すると、ＤＭＡＣ１４は、ＮＡＮＤメモリ５に保存されている圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗの全バンドの転送が完了したかチェックし（ステップＳ３１２）、全バンドの転送が終了していないときには、ステップＳ３０８に戻って上記同様に処理する（ステップＳ３０８〜Ｓ３１２、Ｓ３０５）。
【００６１】
ステップＳ３１２で、全バンドの転送が終了すると、ＤＭＡＣ１４は、ＮＡＮＤメモリ５に保存されている圧縮メインプログラムＤａ〜Ｄｄ及び圧縮ワークデータＤｗの全バンドのＤＲＡＭ６への転送を完了した旨をＣＰＵ１１に通知し、ＣＰＵ１１がＤＲＡＭ６の該当アドレス（該当部分）にジャンプして、メインプログラムＤａ〜ＤｄとワークデータＤｗを使用して処理を実行する（ステップＳ３１３）。
【００６２】
このように、本実施例の電子装置１は、電源ＯＮ時に、ＣＰＵ１１によるブート処理と並行して、ＤＲＡＭ６及びＮＡＮＤメモリ５の初期化をハードウェア処理で実行している。
【００６３】
したがって、ＮＡＮＤメモリ５やＤＲＡＭ６の初期化処理を、ＣＰＵ１１の実行するブートプログラムに依存することなく、ハードウェアのみで行うことができ、ブートプログラムでの初期化処理を待つことなくデータ転送を開始して、電源ＯＮ時の起動時間をより一層短縮することができる。
【００６４】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６５】
本発明は、電源ＯＦＦ時等にプログラムデータを圧縮して不揮発メモリに保管し、電源ＯＮ時にプログラムデータを伸長して起動する複合装置、ファクシミリ装置、プリンタ装置、複写装置、コンピュータ等の電子装置に利用することができる。
【符号の説明】
【００６６】
１  電子装置
２  ＡＳＩＣ
３  ブートＲＯＭ
４  ＲＯＭ
５  ＮＡＮＤメモリ
６  ＤＲＡＭ
１１  ＣＰＵ
１２  アービタ
１３  ＣＯＤＥＣ
１４  ＤＭＡＣ
１５  ＤＲＡＭコントローラ
１６  付加情報部
１７  伸長切り替え部
１８  伸長エラー検出部
１９  ＳＡＴＡ
２０  ＳＡＴＡ／ＮＡＮＤ初期化部
２１  ＮＡＮＤコントローラ
２２  ＤＲＡＭ初期化部
２３  第１バス
２４  第２バス
【先行技術文献】
【特許文献】
【００６７】
【特許文献１】特開２００２−３６６３６２号公報
【図１】
2011123802.tif 000003
【図２】
2011123802.tif 000004
【図３】
2011123802.tif 000005
【図４】
2011123802.tif 000006
【図５】
2011123802.tif 000007