(57)【要約】【課題】ＲＡＭ上で実行するＲＡＭ実行プログラムをＲＯＭに記録した電子機器において、ＲＯＭ容量を抑えつつ、起動時間を早くすること。【解決手段】ＲＯＭ１０２の非圧縮領域にＲＡＭ１０３上でＣＰＵ１０１が実行するＲＡＭ実行プログラムの一部に当たる第１プログラムを圧縮されていない状態で格納しておき、また、ＲＯＭ１０２の圧縮領域にＲＡＭ実行プログラムの第１プログラム以外に当たる第２プログラムを圧縮した状態で格納しておき、ＣＰＵ１０１がブートプログラムを実行することにより、非圧縮領域に圧縮されていない状態で格納される第１プログラムを読み出してＲＡＭ１０３に配置する第１処理と、圧縮領域に圧縮された状態で格納される第２プログラムを読み出して伸長処理してＲＡＭ１０３に配置する第２処理を行う。【選択図】図３
2012133537.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとＲＯＭとＲＡＭを有する電子装置であって、
前記ＲＡＭ上で前記プロセッサが実行するＲＡＭ実行プログラムの一部に当たる第１プログラムを圧縮されていない状態で格納する前記ＲＯＭ内に設けられる非圧縮領域と、
前記ＲＡＭ実行プログラムの前記第１プログラム以外に当たる第２プログラムを圧縮された状態で格納する前記ＲＯＭ内に設けられる圧縮領域と、
前記電子装置の起動処理において、前記非圧縮領域に圧縮されていない状態で格納される前記第１プログラムを読み出して前記ＲＡＭに配置する第１処理と、前記圧縮領域に圧縮された状態で格納される前記第２プログラムを読み出して伸長処理して前記ＲＡＭに配置する第２処理とを行う起動処理手段と、
を有することを特徴とする電子装置。
【請求項２】
前記非圧縮領域の開始アドレス、前記非圧縮領域のサイズ、前記圧縮領域の開始アドレス、及び前記圧縮領域のサイズを格納する前記ＲＯＭ内に設けられるヘッダ領域を備え、
前記起動処理手段は、前記ヘッダ領域に格納される情報を用いて、前記第１処理及び前記第２処理を行うことを特徴とする請求項１に記載の電子装置。
【請求項３】
プロセッサとＲＯＭとＲＡＭを有する電子装置であって、
前記ＲＡＭ上で前記プロセッサが実行するＲＡＭ実行プログラムを複数のブロックに分割した各ブロックを、圧縮されていない状態、又は、圧縮された状態で格納する前記ＲＯＭ内に設けられるブロック格納領域と、
前記電子装置の起動処理において、前記ブロック格納領域に格納される各ブロック毎に、圧縮されていない状態か、圧縮された状態かを判断し、圧縮されていない状態で格納されているブロックについては該ブロックを読み出して前記ＲＡＭに配置する第１処理を行い、圧縮された状態で格納されているブロックについては該ブロックを読み出して伸長処理して前記ＲＡＭに配置する第２処理を行う起動処理手段と、
を有することを特徴とする電子装置。
【請求項４】
前記ブロック毎に、圧縮されていない状態か、圧縮された状態かを示す情報を格納する前記ＲＯＭ内に設けられるヘッダ領域を備え、
前記起動処理手段は、前記ヘッダ領域に格納される情報を用いて、前記ブロック毎に、圧縮されていない状態か、圧縮された状態かを判断することを特徴とする請求項３に記載の電子装置。
【請求項５】
前記ヘッダ領域はさらに、前記ブロック毎に、ブロックの開始アドレス、ブロックのサイズを格納し、
前記起動処理手段は、前記ヘッダ領域に格納される情報を用いて、前記第１処理及び前記第２処理を行うことを特徴とする請求項４に記載の電子装置。
【請求項６】
前記ＲＯＭは、前記電子装置の起動時に前記プロセッサに前記第１処理及び第２処理を実行させるためのブートプログラムをコンピュータ読み取り可能に記録したものであり、
前記起動処理手段は、前記電子装置の起動時に、前記プロセッサが前記ＲＯＭに格納されるブートプログラムを実行することにより実現されることを特徴とする請求項１乃至５のいずれか１項に記載の電子装置。
【請求項７】
前記ＲＯＭ上で前記プロセッサが実行するＲＯＭ実行プログラムを格納するＲＯＭ実行領域を前記ＲＯＭ内に備えることを特徴とする請求項１乃至６のいずれか１項に記載の電子装置。
【請求項８】
プロセッサとＲＯＭとＲＡＭを有する電子装置の制御方法であって、
前記ＲＯＭ内に設けられた非圧縮領域に前記ＲＡＭ上で前記プロセッサが実行するＲＡＭ実行プログラムの一部に当たる第１プログラムを圧縮されていない状態で格納しておき、また、前記ＲＯＭ内に設けられた圧縮領域に前記ＲＡＭ実行プログラムの前記第１プログラム以外に当たる第２プログラムを圧縮した状態で格納しておき、
起動処理手段が、前記電子装置の起動処理において、前記非圧縮領域に圧縮されていない状態で格納される前記第１プログラムを読み出して前記ＲＡＭに配置する第１処理と、前記圧縮領域に圧縮された状態で格納される前記第２プログラムを読み出して伸長処理して前記ＲＡＭに配置する第２処理とを行う起動処理ステップを有することを特徴とする電子装置の制御方法。
【請求項９】
プロセッサとＲＯＭとＲＡＭを有する電子装置の制御方法であって、
前記ＲＯＭ内に設けられたブロック格納領域に、前記ＲＡＭ上で前記プロセッサが実行するＲＡＭ実行プログラムを複数のブロックに分割した各ブロックを、圧縮されていない状態、又は、圧縮された状態で格納しておき、
起動処理手段が、前記電子装置の起動処理において、前記ブロック格納領域に格納される各ブロック毎に、圧縮されていない状態か、圧縮された状態かを判断し、圧縮されていない状態で格納されているブロックについては該ブロックを読み出して前記ＲＡＭに配置する第１処理を行い、圧縮された状態で格納されているブロックについては該ブロックを読み出して伸長処理して前記ＲＡＭに配置する第２処理を行う起動処理ステップを有することを特徴とする電子装置の制御方法。
【請求項１０】
プロセッサとＲＯＭとＲＡＭを有する電子装置の前記ＲＯＭ内に設けられた非圧縮領域に前記ＲＡＭ上で前記プロセッサが実行するＲＡＭ実行プログラムの一部に当たる第１プログラムを圧縮されていない状態で格納しておき、また、前記ＲＯＭ内に設けられた圧縮領域に前記ＲＡＭ実行プログラムの前記第１プログラム以外に当たる第２プログラムを圧縮した状態で格納しておき、
前記プロセッサを、前記電子装置の起動処理において、前記非圧縮領域に圧縮されていない状態で格納される前記第１プログラムを読み出して前記ＲＡＭに配置する第１処理と、前記圧縮領域に圧縮された状態で格納される前記第２プログラムを読み出して伸長処理して前記ＲＡＭに配置する第２処理とを行う起動処理手段として機能させるためのプログラム。
【請求項１１】
プロセッサとＲＯＭとＲＡＭを有する電子装置の前記ＲＯＭ内に設けられたブロック格納領域に、前記ＲＡＭ上で前記プロセッサが実行するＲＡＭ実行プログラムを複数のブロックに分割した各ブロックを、圧縮されていない状態、又は、圧縮された状態で格納しておき、
前記プロセッサを、前記電子装置の起動処理において、前記ブロック格納領域に格納される各ブロック毎に、圧縮されていない状態か、圧縮された状態かを判断し、圧縮されていない状態で格納されているブロックについては該ブロックを読み出して前記ＲＡＭに配置する第１処理を行い、圧縮された状態で格納されているブロックについては該ブロックを読み出して伸長処理して前記ＲＡＭに配置する第２処理を行う起動処理手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＭ上で実行する制御プログラムをＲＯＭに記録した電子装置に関する。
【背景技術】
【０００２】
従来より、各種の電子装置（プリンタや画像処理装置）には、圧縮した制御プログラムをＲＯＭに保存し、起動時にＲＡＭに伸長し、伸長したＲＡＭ上の制御プログラムをＣＰＵが実行することにより、ＲＯＭ容量を削減するものがあった（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２１７００５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、伸長処理は通常ＣＰＵで行うため、ＲＯＭからＲＡＭへのコピーに比べて処理時間がかかり、装置の起動が遅くなってしまうという問題があった。
また、一般的にＲＯＭの容量は４ＭＢ、８ＭＢ、１６ＭＢのように２の冪乗（累乗）の容量しか存在しない。このため、例えば、ＲＯＭに格納するプログラムの容量が８ＭＢを少しでも超えてしてしまうと、倍の１６ＭＢのＲＯＭを使用することになってしまう。
【０００５】
従来では、プログラムのサイズが増えてＲＯＭに入らなくなった場合、コストを優先する場合はプログラムを圧縮してＲＯＭに格納し、一方、起動時間を優先する場合はＲＯＭサイズを増やしてプログラムを圧縮することなく（非圧縮で）ＲＯＭに格納していた。
【０００６】
しかし、このような従来の構成では、コスト、起動時間のいずれかを犠牲にすることとなり、コストアップの防止と起動時間の短縮の双方を実現することができないといった課題があった。
【０００７】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ＲＡＭ上で実行するＲＡＭ実行プログラムをＲＯＭに記録した電子機器において、ＲＯＭ容量を抑えつつ、起動時間を早くする仕組みを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、プロセッサとＲＯＭとＲＡＭを有する電子装置であって、前記ＲＡＭ上で前記プロセッサが実行するＲＡＭ実行プログラムの一部に当たる第１プログラムを圧縮されていない状態で格納する前記ＲＯＭ内に設けられる非圧縮領域と、前記ＲＡＭ実行プログラムの前記第１プログラム以外に当たる第２プログラムを圧縮された状態で格納する前記ＲＯＭ内に設けられる圧縮領域と、前記電子装置の起動処理において、前記非圧縮領域に圧縮されていない状態で格納される前記第１プログラムを読み出して前記ＲＡＭに配置する第１処理と、前記圧縮領域に圧縮された状態で格納される前記第２プログラムを読み出して伸長処理して前記ＲＡＭに配置する第２処理とを行う起動処理手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ＲＡＭ上で実行するＲＡＭ実行プログラムをＲＯＭに記録した電子機器において、ＲＯＭ容量を抑えつつ、起動時間を早くすることが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施例を示す電子装置１００の構成の一例を示すブロック図である。
【図２】本発明の実施例１における処理の一例を示すフローチャートである。
【図３】本発明の実施例１におけるＲＯＭ１０２、ＲＡＭ１０３のメモリマップ構成を示す図である。
【図４】本発明の実施例２における処理の一例を示すフローチャートである。
【図５】本発明の実施例２におけるＲＯＭ１０２、ＲＡＭ１０３のメモリマップ構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１２】
図１は、本発明の一実施例を示す電子装置１００の構成の一例を示すブロック図である。
図１に示すように、電子装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３にて構成される。電子装置１００は、例えば、プリンタや画像処理装置等の各種電子機器のコントローラに対応する。
【００１３】
ＣＰＵ１０１は、システム制御部として機能し、電子装置１００の全体を制御するプロセッサである。ＲＯＭ１０２は、ＣＰＵ１０１で実行する制御プログラム等をコンピュータ読み取り可能に記録（格納）するものである。
ＲＡＭ１０３は、制御プログラム、プログラム制御変数、各種ワーク用バッファ等をコンピュータ読み取り可能に記録（格納）するものである。
【００１４】
図２は、本発明の実施例１における処理の一例を示すフローチャートである。
図３は、本発明の実施例１におけるＲＯＭ、ＲＡＭのメモリマップ構成を示す図である。
なお、図２のフローチャートの各処理は、図１のＣＰＵ１０１がＲＯＭ１０２のブート処理部に格納される制御プログラムを実行することにより実現されるものである。
図３に示すように、ＲＯＭ１０２には、ＲＯＭ内に、ヘッダ部３０１、ＲＯＭ実行部３０２、ＲＡＭ実行非圧縮部３０３、ＲＡＭ実行圧縮部３０４、・・・、ブート処理部３０５等の各記憶領域が設けられている。
【００１５】
ヘッダ部３０１（ヘッダ領域）には、ＲＯＭ実行部３０２の開始アドレス３０７、ＲＯＭ実行部３０２のサイズ３０８、ＲＡＭ実行非圧縮部３０３の開始アドレス３０９、ＲＡＭ実行非圧縮部３０３のサイズ３１０、ＲＡＭ実行圧縮部３０４の開始アドレス３１１、ＲＡＭ実行圧縮部３０４のサイズ３１２といった情報が格納されている。
【００１６】
ＲＯＭ実行部３０２（ＲＯＭ実行領域）には、ＣＰＵ１０１がＲＯＭ上で実行するプログラム（ＲＯＭ実行プログラム）が格納されている。ＲＯＭ実行プログラムとは、ＣＰＵ１０１が直接ＲＯＭ１０２から読み出して実行するものである。
ＲＡＭ実行非圧縮部３０３及びＲＡＭ実行圧縮部３０４には、ＣＰＵ１０１が、ＲＡＭ上で実行するプログラム（ＲＡＭ実行プログラム）が格納されている。ＲＡＭ実行プログラムとは、ＣＰＵ１０１が一旦ＲＯＭ１０２からＲＡＭ１０３のＲＡＭ実行部３０６に配置しておき、該ＲＡＭ実行部３０６から読み出して実行するものである。
【００１７】
なお、ＲＡＭ実行非圧縮部３０３（非圧縮領域）には、ＲＡＭ実行プログラムの一部に当たる第１プログラムが圧縮されていない状態（非圧縮状態）で格納される。また、ＲＡＭ実行圧縮部３０４（圧縮領域）には、ＲＡＭ実行プログラムの前記第１プログラム以外に当たる第２プログラムが圧縮された状態で格納される。よって、ＲＡＭ実行圧縮部３０４に格納されるプログラムは、伸長処理した上でＲＡＭ１０３のＲＡＭ実行部３０６に配置する必要がある。
【００１８】
ブート処理部３０５には、電子装置１００に電源が投入された場合に、ＣＰＵ１０１が実行する制御プログラム（ブートプログラム）が格納されている。
ＲＡＭ１０３には、ＲＡＭ実行部３０６等の各記憶領域が設けられている。なお、ＣＰＵ１０１は、ＲＡＭ１０３のＲＡＭ実行部３０６に格納されるプログラムを読み出して実行する。
【００１９】
以下、図２の処理を詳細に説明する。
電子装置１００に電源が投入されると、電子装置１００のＣＰＵ１０１は、ＲＯＭ１０２のブート処理部３０５に格納される制御プログラムを実行して、図２のフローチャートの処理を含む起動処理を開始する。
【００２０】
電子装置１００のＣＰＵ１０１は、Ｓ２０１において、ＲＯＭ１０２のヘッダ部３０１から情報を読み込む。
次に、Ｓ２０２において、ＣＰＵ１０１は、上記Ｓ２０１で読み込んだ情報を用いて、ＲＡＭ実行非圧縮部３０３のサイズ３１０が０より大きい（非圧縮部サイズ＞０）かどうかを判断する。
【００２１】
そして、上記Ｓ２０２において、ＲＡＭ実行非圧縮部３０３のサイズ３１０が０より大きい（非圧縮部サイズ＞０）と判断した場合（Ｓ２０２でＹｅｓ）、ＣＰＵ１０１は、Ｓ２０３に処理を進める。
Ｓ２０３では、ＣＰＵ１０１は、ＲＡＭ実行非圧縮部３０３に格納されている情報（ＲＡＭ実行プログラムの一部）をＲＡＭ１０３のＲＡＭ実行部５０５にコピーする（第１処理）。そして、Ｓ２０４に処理を進める。
【００２２】
一方、上記Ｓ２０２において、ＲＡＭ実行非圧縮部３０３のサイズ３１０が０以下である（非圧縮部サイズ≦０）と判断した場合（Ｓ２０２でＮｏ）、ＣＰＵ１０１は、そのままＳ２０４に処理を進める。
【００２３】
Ｓ２０４では、ＣＰＵ１０１は、上記Ｓ２０１で読み込んだ情報を用いて、ＲＡＭ実行圧縮部３０４のサイズ３１２が０より大きい（圧縮部サイズ＞０）かどうかを判断する。
そして、上記Ｓ２０４において、ＲＡＭ実行圧縮部３０４のサイズ３１２が０より大きい（圧縮部サイズ＞０）と判断した場合（Ｓ２０４でＹｅｓ）、ＣＰＵ１０１は、Ｓ２０５に処理を進める。
【００２４】
Ｓ２０５では、ＣＰＵ１０１は、ＲＡＭ実行圧縮部３０４に格納されている圧縮された情報（ＲＡＭ実行プログラムの一部）を伸長処理して、ＲＡＭ１０３のＲＡＭ実行部３０６に格納する（第２処理）。
次に、Ｓ２０６において、ＣＰＵ１０１は、上記Ｓ２０５における伸長処理でエラーが発生しなかった（伸長処理ＯＫ）かどうかを判断する。
そして、上記Ｓ２０６において、伸長処理でエラーが発生したと判断した場合（Ｓ２０６でＮｏ）、ＣＰＵ１０１は、Ｓ２０７において、エラー処理を行い、本フローチャートの処理を終了する。
【００２５】
一方、上記Ｓ２０６において、伸長処理でエラーが発生しなかったと判断した場合（Ｓ２０６でＹｅｓ）、ＣＰＵ１０１は、そのまま本フローチャートの処理を終了する。
【００２６】
一方、上記Ｓ２０４において、ＲＡＭ実行圧縮部３０４のサイズ３１２が０以下である（圧縮部サイズ≦０）と判断した場合（Ｓ２０４でＮｏ）、ＣＰＵ１０１は、そのまま本フローチャートの処理を終了する。
【００２７】
本実施例では、ＲＡＭ１０３のＲＡＭ実行部５０５に配置されて実行されるＲＡＭ実行プログラムを、非圧縮部分、圧縮部分に分けて、ＲＯＭ１０２のＲＡＭ実行非圧縮部３０３、ＲＡＭ実行圧縮部３０４にそれぞれ格納する構成を有する。例えば、圧縮率の良い部分や伸長処理スピードが速くなる部分を優先して圧縮部分としてＲＯＭ１０２のＲＡＭ実行圧縮部３０４に格納するように構成する。また、圧縮率の悪い部分や伸長処理スピードが遅くなってしまう部分を優先して非圧縮部分としてＲＯＭ１０２のＲＡＭ実行非圧縮部３０３に格納するように構成する。
【００２８】
また、本実施例では、電子装置１００の制御プログラムを、ＲＯＭから直接実行するプログラム（ＲＯＭ実行プログラム）、ＲＡＭ１０３に配置して実行するプログラム（ＲＡＭ実行プログラム）に分けて、ＲＯＭ１０２のＲＯＭ実行部３０２、ＲＡＭ実行部（ＲＡＭ実行非圧縮部３０３、ＲＡＭ実行圧縮部３０４）にそれぞれ格納する構成を有する。例えば、より高速に実行することを要求されるプログラム（又はプログラムの一部）を優先してＲＡＭ実行プログラムとしてＲＡＭ実行部（ＲＡＭ実行非圧縮部３０３、ＲＡＭ実行圧縮部３０４）に格納するように構成する。また、それほど高速に実行することを要求されていないプログラム（又はプログラムの一部）を優先してＲＯＭ実行部３０２に格納するように構成する。
【００２９】
例えば、本実施例の電子装置１００を、画像処理装置とした場合、画像処理に関連するプログラムを優先してＲＡＭ実行プログラムとしてＲＡＭ実行部（ＲＡＭ実行非圧縮部３０３、ＲＡＭ実行圧縮部３０４）に格納するように構成する。また、ユーザインタフェースに関連するプログラムや管理プログラム、夜間に行うバッチ処理に関するプログラム等を優先してＲＯＭ実行プログラムとしてＲＯＭ実行部３０２に格納するように構成する。なお、管理プログラムは、例えば、画像処理装置の情報を、ネットワークを介して外部の管理装置に通知するプログラム等を含む。１つのモジュール（プログラム）を、ＲＯＭ１０２のＲＯＭ実行部３０２、ＲＡＭ実行非圧縮部３０３、ＲＡＭ実行圧縮部３０４に分けて格納してもよい。
【００３０】
また、ＲＯＭ１０２に、ＲＯＭ実行部３０２を設けることなく、電子装置１００の制御プログラムを全てＲＡＭ実行プログラムとし、ＲＡＭ実行部（ＲＡＭ実行非圧縮部３０３、ＲＡＭ実行圧縮部３０４）に格納するようにしてもよい。
【００３１】
以上示したように、本実施例の電子装置によれば、制御プログラムの一部を圧縮しないままのＲＡＭ実行非圧縮部３０３と、制御プログラムの残りを圧縮したＲＡＭ実行圧縮部３０４とに分割してＲＯＭ１０２に格納するように構成する。そして、電子装置１００の起動時（ブート処理時）に、ＣＰＵ１０１が、ＲＡＭ実行非圧縮部３０３内のプログラムをそのままＲＡＭ１０３にコピーし、ＲＡＭ実行圧縮部３０４内のプログラムを伸長（解凍）してＲＡＭ１０３に格納する。このような構成をとることにより、ＲＯＭ１０２に収まるようにＲＡＭ実行非圧縮部３０３のサイズを決めることができるため、可能な限りＲＡＭ実行圧縮部３０４のサイズを抑えることで、ＲＯＭ１０２容量を抑えつつ、起動時間を早くすることが可能になる。従って、ＲＯＭのコストアップの防止と起動時間の短縮の双方を実現することができる電子装置を提供することが可能となる。
【実施例２】
【００３２】
以下、図４、図５を用いて、本発明の実施例２について説明する。
図４は、本発明の実施例２における処理の一例を示すフローチャートである。
図５は、本発明の実施例２におけるＲＯＭ、ＲＡＭのメモリマップ構成を示す図である。
なお、図４のフローチャートの各処理は、図１のＣＰＵ１０１がＲＯＭ１０２のブート処理部に格納される制御プログラムを実行することにより実現されるものである。
図５に示すように、ＲＯＭ１０２には、ヘッダ部５０１、ＲＯＭ実行部５０２、ＲＡＭ実行圧縮・非圧縮ブロック部５０３、・・・、ブート処理部５０４等の各記憶領域が設けられている。
【００３３】
ＲＯＭ実行部５０２には、ＣＰＵ１０１がＲＯＭ上で実行するプログラム（ＲＯＭ実行プログラム）が格納されている（ＲＯＭ実行領域）。
【００３４】
ＲＡＭ実行圧縮・非圧縮ブロック部５０３は、ＣＰＵ１０１がＲＡＭ上で実行するプログラム（ＲＡＭ実行プログラム）を複数のブロックに分割した各ブロックが、圧縮されていない状態、又は、圧縮された状態で格納されている（ブロック格納領域）。即ち、ブロックには、圧縮処理されていない（非圧縮の）ものと、圧縮処理されたものとがあり、この属性が、圧縮・非圧縮種別５１０として、ヘッダ部５０１のブロック情報内に格納されている。なお、圧縮処理されたブロックは、伸長処理した上でＲＡＭ１０３のＲＡＭ実行部５０５に配置する必要がある。
【００３５】
ヘッダ部５０１には、ＲＯＭ実行部５０２の開始アドレス５０６、ＲＯＭ実行部５０２のサイズ５０７、ＲＡＭ実行部分割ブロック数５０８、ブロック情報５０９といった情報が格納されている。ＲＡＭ実行部分割ブロック数５０８は、ＲＡＭ実行圧縮・非圧縮ブロック部５０３内の分割ブロック数が格納されている。
【００３６】
ブロック情報５０９には、ＲＡＭ実行圧縮・非圧縮ブロック部５０３内のブロック毎に、圧縮・非圧縮種別５１０には、そのブロックが圧縮されているか／非圧縮かを示す情報が格納されている。この圧縮・非圧縮種別５１０を用いて、ブロック毎に、圧縮されていない状態か、圧縮された状態かを判断することが可能となる。開始アドレス５１１には、そのブロックの開始アドレスを示す情報が格納されている。サイズ５１２には、そのブロックのサイズを示す情報が格納されている。
【００３７】
ブート処理部５０４には、電子装置１００に電源が投入された場合に、ＣＰＵ１０１が、実行する制御プログラム（ブートプログラム）が格納されている。
ＲＡＭ１０３には、ＲＡＭ実行部５０５等の各記憶領域が設けられている。なお、ＣＰＵ１０１は、ＲＡＭ１０３のＲＡＭ実行部５０５に格納されるプログラムを読み出して実行する。
【００３８】
以下、図４の処理を詳細に説明する。
電子装置１００に電源が投入されると、電子装置１００のＣＰＵ１０１は、ＲＯＭ１０２のブート処理部５０４に格納される制御プログラムを実行して、図４のフローチャートの処理を含む起動処理を開始する。
【００３９】
電子装置１００のＣＰＵ１０１は、Ｓ４０１において、ＲＯＭ１０２のヘッダ部５０１から情報を読み込む。
次に、Ｓ４０２において、ＣＰＵ１０１は、ＲＡＭ１０３のワーク領域に確保される変数ｎを「１」に初期化して、Ｓ４０３に処理を進める。
Ｓ４０３では、ＣＰＵ１０１は、上記Ｓ４０１で読み込んだヘッダ部５０１の情報を用いて、変数ｎがＲＡＭ実行部分割ブロック数５０８以下（ｎ≦分割ブロック数）かどうかを判断する。
【００４０】
そして、上記Ｓ４０３において、変数ｎがＲＡＭ実行部分割ブロック数５０８以下（ｎ≦分割ブロック数）であると判断した場合（Ｓ４０３でＹｅｓ）、ＣＰＵ１０１は、Ｓ４０４に処理を進める。
【００４１】
Ｓ４０４では、ＣＰＵ１０１は、上記Ｓ４０１で読み込んだヘッダ部５０１の情報からｎブロック目の圧縮・非圧縮種別５１０、開始アドレス５１１、サイズ５１２を取得する。
【００４２】
次に、Ｓ４０５において、ＣＰＵ１０１は、上記Ｓ４０４で取得したｎブロック目の圧縮・非圧縮種別５１０が「圧縮」であるか否かを判断する。
そして、上記Ｓ４０５にて、ｎブロック目の圧縮・非圧縮種別５１０が「非圧縮」であると判断した場合（Ｓ４０５でＮｏ）、ＣＰＵ１０１は、Ｓ４０６に処理を進める。
Ｓ４０６では、ＣＰＵ１０１は、上記Ｓ４０４で取得した開始アドレス５１１、サイズ５１２を用いて、ＲＡＭ実行圧縮・非圧縮ブロック部５０３のｎブロック目に格納される情報（ＲＡＭ実行プログラムの一部）を、ＲＡＭ１０３のＲＡＭ実行部５０５にコピーする（第１処理）。そして、Ｓ４０９に処理を進める。
【００４３】
一方、上記Ｓ４０５にて、ｎブロック目の圧縮・非圧縮種別５１０が「圧縮」であると判断した場合（Ｓ４０５でＹｅｓ）、ＣＰＵ１０１は、Ｓ４０７に処理を進める。
Ｓ４０７では、ＣＰＵ１０１は、上記Ｓ４０４で取得した開始アドレス５１１、サイズ５１２を用いてＲＡＭ実行圧縮・非圧縮ブロック部５０３のｎブロック目に格納されている圧縮された情報（ＲＡＭ実行プログラムの一部）を伸長処理し、ＲＡＭ１０３のＲＡＭ実行部５０５に格納する（第２処理）。そして、Ｓ４０８に処理を進める。
【００４４】
Ｓ４０８では、ＣＰＵ１０１は、上記Ｓ４０７における伸長処理でエラーが発生しなかった（伸長処理ＯＫ）かどうかを判断する。
そして、伸長処理でエラーが発生したと判断した場合（Ｓ４０８でＮｏ）、ＣＰＵ１０１は、Ｓ４１０において、エラー処理を行い、本フローチャートの処理を終了する。
【００４５】
一方、伸長処理でエラーが発生しなかったと判断した場合（Ｓ４０８でＹｅｓ）、ＣＰＵ１０１は、Ｓ４０９に処理を進める。
Ｓ４０９では、ＣＰＵ１０１は、変数ｎに「１」を加算して、Ｓ４０３に処理を戻す。
そして、上記Ｓ４０３において、ＣＰＵ１０１は、変数ｎがＲＡＭ実行部分割ブロック数５０８を超えた（ｎ＞分割ブロック数）と判断した場合（Ｓ４０３でＮｏ）、ＣＰＵ１０１は、本フローチャートの処理を終了する。
【００４６】
なお、本実施例では、ＲＡＭ１０３のＲＡＭ実行部５０５に配置されて実行されるＲＡＭ実行プログラムを分割した複数のブロックを、非圧縮部分と、圧縮部分に分けて、ＲＯＭ１０２のＲＡＭ実行圧縮・非圧縮ブロック部５０３に格納する構成を有する。例えば、圧縮率の良い部分や伸長処理スピードが速くなる部分を優先して圧縮部分とする。また、圧縮率の悪いプログラムや伸長処理スピードが遅くなってしまう部分を優先して非圧縮部分とする。そして、各ブロックをＲＡＭ実行圧縮・非圧縮ブロック部５０３に格納するように構成する。
【００４７】
また、本実施例では、電子装置１００の制御プログラムを、ＲＯＭから直接実行するプログラム（ＲＯＭ実行プログラム）、ＲＡＭ１０３のＲＡＭ実行部５０５に配置して実行するプログラム（ＲＡＭ実行プログラム）に分けて、ＲＯＭ１０２のＲＯＭ実行部５０２、ＲＡＭ実行圧縮・非圧縮ブロック部５０３にそれぞれ格納する構成を有する。例えば、より高速に実行することを要求されるプログラム（又はプログラムの一部）を優先してＲＡＭ実行プログラムとしてＲＡＭ実行圧縮・非圧縮ブロック部５０３に格納するように構成する。また、それほど高速に実行することを要求されていないプログラム（又はプログラムの一部）を優先してＲＯＭ実行部５０２に格納するように構成する。
【００４８】
例えば、本実施例の電子装置１００を、画像処理装置とした場合、画像処理に関連するプログラムを優先してＲＡＭ実行プログラムとしてＲＡＭ実行圧縮・非圧縮ブロック部５０３に格納するように構成する。また、ユーザインタフェースに関連するプログラムや管理プログラム、夜間に行うバッチ処理に関するプログラム等を優先してＲＯＭ実行プログラムとしてＲＯＭ実行部５０２に格納するように構成する。なお、管理プログラムは、例えば、画像処理装置の情報を、ネットワークを介して外部の管理装置に通知するプログラム等を含む。１つのモジュール（プログラム）を、ＲＯＭ１０２のＲＯＭ実行部５０２、ＲＡＭ実行圧縮・非圧縮ブロック部５０３の異なるブロックに分けて格納してもよい。
【００４９】
また、ＲＯＭ１０２に、ＲＯＭ実行部５０２を設けることなく、電子装置１００の制御プログラムを全てＲＡＭ実行プログラムとし、ＲＡＭ実行圧縮・非圧縮ブロック部５０３に格納するようにしてもよい。
【００５０】
以上示したように、本実施例の電子装置によれば、ＲＯＭ１０２に収まるようにＲＡＭ実行圧縮・非圧縮ブロック部５０３内に圧縮して格納する分割ブロックのサイズを決めることができる。このため、可能な限り圧縮するブロックを抑えることで、ＲＯＭ１０２容量を抑えつつ、起動時間を早くすることが可能になる。従って、ＲＯＭのコストアップの防止と起動時間の短縮の双方を実現することができる電子装置を提供することが可能となる。
【００５１】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００５２】
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００５３】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００５４】
１００    電子装置
１０１    ＣＰＵ
１０２    ＲＯＭ
１０３    ＲＡＭ
【図１】
2012133537.tif 000003
【図２】
2012133537.tif 000004
【図３】
2012133537.tif 000005
【図４】
2012133537.tif 000006
【図５】
2012133537.tif 000007