(57)【要約】      （修正有）【課題】メモリ制御に関する処理を高速化する。【解決手段】ＲＡＭ２０に読み出された複数のプログラムに従ってＣＰＵ１０が演算を行うことにより複数のプログラム夫々に対応した機能を実現する複合機であって、ＣＰＵ１０がＲＯＭ３０に格納されたプログラムに従って演算を行うことにより、ＲＡＭ２０において複数のプログラム夫々を読み出す領域を決定し、ＣＰＵ１０がＲＯＭ３０に格納されたプログラムに従って演算を行うことにより、ＲＯＭ３０に格納されたプログラムをＲＡＭ２０に読み出し、ＣＰＵ１０によるプログラムの参照先をＲＡＭ２０に切り替え、ＣＰＵ１０がＲＡＭ２０に読み出されたプログラムに従って演算を行うことにより、ＲＡＭ２０のうち複数のプログラムに従って演算を行う際に処理する対象の情報を格納するための領域を割り当てる。【選択図】図１
2014049019.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置に読み出された複数のプログラムに従って演算装置が演算を行うことにより前記複数のプログラム夫々に対応した機能を実現する画像処理装置であって、
前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより構成され、前記主記憶装置において前記複数のプログラム夫々を読み出す領域を決定するプログラム配置処理部と、
前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより構成され、前記不揮発性記憶媒体に格納されたプログラムを前記主記憶装置に読み出し、前記演算装置によるプログラムの参照先を前記不揮発性記憶媒体から前記主記憶装置に切り替えるプログラム参照先切替部と、
前記演算装置が前記主記憶装置に読み出されたプログラムに従って演算を行うことにより構成され、前記主記憶装置の領域を、前記複数のプログラムに従って前記演算装置が演算を行う際に処理する対象の情報を格納するための領域として割り当てる割り当て処理部とを含むことを特徴とする画像処理装置。
【請求項２】
前記割り当て処理部は、前記複数のプログラム夫々に対応した機能の動作状態に応じて、前記処理する対象の情報を格納するための領域の割り当てを変更することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記割り当て処理部は、前記複数のプログラムにおいて用いられる文字コードに応じて、前記主記憶装置の領域を、前記複数のプログラムに従って前記演算装置が演算を行う際に処理する対象の情報を格納するための領域として割り当てることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
主記憶装置に読み出された複数のプログラムに従って演算装置が演算を行うことにより前記複数のプログラム夫々に対応した機能を実現する画像処理装置の制御方法であって、
前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより、前記主記憶装置において前記複数のプログラム夫々を読み出す領域を決定し、
前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより、前記不揮発性記憶媒体に格納されたプログラムを前記主記憶装置に読み出し、前記演算装置によるプログラムの参照先を前記不揮発性記憶媒体から前記主記憶装置に切り替え、
前記演算装置が前記主記憶装置に読み出されたプログラムに従って演算を行うことにより、前記主記憶装置の領域を、前記複数のプログラムに従って前記演算装置が演算を行う際に処理する対象の情報を格納するための領域として割り当てることを特徴とする画像処理装置の制御方法。
【請求項５】
主記憶装置に読み出された複数のプログラムに従って演算装置が演算を行うことにより前記複数のプログラム夫々に対応した機能を実現する画像処理装置の制御プログラムであって、
前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより、前記主記憶装置において前記複数のプログラム夫々を読み出す領域を決定するステップと、
前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより、前記不揮発性記憶媒体に格納されたプログラムを前記主記憶装置に読み出し、前記演算装置によるプログラムの参照先を前記不揮発性記憶媒体から前記主記憶装置に切り替えるステップと、
前記演算装置が前記主記憶装置に読み出されたプログラムに従って演算を行うことにより、前記主記憶装置の領域を、前記複数のプログラムに従って前記演算装置が演算を行う際に処理する対象の情報を格納するための領域として割り当てるステップとを情報処理装置に実行させることを特徴とする画像処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法及び制御プログラムに関し、特に、装置の起動に要する時間の短縮に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能なＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：複合機）として構成されることが多い。
【０００３】
このような画像処理装置においては、演算装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が演算処理を行う際の作業領域となるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の領域の効率的な利用のため、画像出力用、画像処理用、画像読取用の夫々のために動的にメモリ領域を確保することが提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されているようなメモリ領域の制御は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納されているメモリ制御用のプログラムに従ってＣＰＵが演算を行うことにより実現される。この際、ＣＰＵの演算速度が年々高速化されているのに対して、ＲＯＭのアクセス速度には限界があるため、ＣＰＵがＲＯＭに格納されたプログラムに基づいて演算を行う際にＲＯＭのアクセス速度がボトルネックとなる。
【０００５】
特に、上述したような複数の機能を備える複合機においては、メモリ領域の割り当てを行うべきアプリケーションが多くなるため、メモリ領域の割り当て処理における処理速度は、装置の起動に要する時間等に大きく影響する。
【０００６】
本発明は、上記実情を考慮してなされたものであり、メモリ制御に関する処理を高速化することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様は、主記憶装置に読み出された複数のプログラムに従って演算装置が演算を行うことにより前記複数のプログラム夫々に対応した機能を実現する画像処理装置であって、前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより構成され、前記主記憶装置において前記複数のプログラム夫々を読み出す領域を決定するプログラム配置処理部と、前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより構成され、前記不揮発性記憶媒体に格納されたプログラムを前記主記憶装置に読み出し、前記演算装置によるプログラムの参照先を前記不揮発性記憶媒体から前記主記憶装置に切り替えるプログラム参照先切替部と、前記演算装置が前記主記憶装置に読み出されたプログラムに従って演算を行うことにより構成され、前記主記憶装置の領域を、前記複数のプログラムに従って前記演算装置が演算を行う際に処理する対象の情報を格納するための領域として割り当てる割り当て処理部とを含むことを特徴とする。
【０００８】
また、本発明の他の態様は、主記憶装置に読み出された複数のプログラムに従って演算装置が演算を行うことにより前記複数のプログラム夫々に対応した機能を実現する画像処理装置の制御方法であって、前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより、前記主記憶装置において前記複数のプログラム夫々を読み出す領域を決定し、前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより、前記不揮発性記憶媒体に格納されたプログラムを前記主記憶装置に読み出し、前記演算装置によるプログラムの参照先を前記不揮発性記憶媒体から前記主記憶装置に切り替え、前記演算装置が前記主記憶装置に読み出されたプログラムに従って演算を行うことにより、前記主記憶装置の領域を、前記複数のプログラムに従って前記演算装置が演算を行う際に処理する対象の情報を格納するための領域として割り当てることを特徴とする。
【０００９】
また、本発明の更に他の態様は、主記憶装置に読み出された複数のプログラムに従って演算装置が演算を行うことにより前記複数のプログラム夫々に対応した機能を実現する画像処理装置の制御プログラムであって、前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより、前記主記憶装置において前記複数のプログラム夫々を読み出す領域を決定するステップと、前記演算装置が前記主記憶装置とは異なる不揮発性記憶媒体に格納されたプログラムに従って演算を行うことにより、前記不揮発性記憶媒体に格納されたプログラムを前記主記憶装置に読み出し、前記演算装置によるプログラムの参照先を前記不揮発性記憶媒体から前記主記憶装置に切り替えるステップと、前記演算装置が前記主記憶装置に読み出されたプログラムに従って演算を行うことにより、前記主記憶装置の領域を、前記複数のプログラムに従って前記演算装置が演算を行う際に処理する対象の情報を格納するための領域として割り当てるステップとを情報処理装置に実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、メモリ制御に関する処理を高速化することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る複合機のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態に係る複合機の機能構成を示すブロック図である。
【図３】本発明の実施形態に係るソフトウェア構成を示す図である。
【図４】本発明の実施形態に係る複合機の電源投入時におけるメモリ制御動作を示すフローチャートである。
【図５】本発明の実施形態に係る複合機の機種に応じたプログラム領域を示す図である。
【図６】本発明の実施形態に係る１つのアプリケーションに対するメモリ領域の割り当てを示す図である。
【図７】本発明の実施形態に係るデバイスの動作速度を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プリンタ、スキャナ、ファクシミリ等の複数の機能が搭載された複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）を、画像処理装置の例とし、そのような複合機におけるメモリ制御について説明する。
【００１３】
図１は、本実施の形態に係る画像形成装置１のハードウェア構成を示す図である。本実施形態に係る複合機１は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能なＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：複合機）である。図１に示すように、本実施形態に係る複合機１は、一般的なサーバやＰＣ等と同様の構成を含む。
【００１４】
即ち、本実施形態に係る画像形成装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０及びＩ／Ｆ５０がバス９０を介して接続されている。また、Ｉ／Ｆ５０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）６０、操作部７０及びエンジン８０が接続されている。
【００１５】
ＣＰＵ１０は演算手段であり、画像形成装置全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やファームウェア等のプログラムが格納されている。
【００１６】
本実施形態におけるＣＰＵ１０によるＲＡＭ２０へのアクセスの制御は、ＲＯＭ３０に格納されているＢＩＯＳに含まれる機能によって実現される。一般的に、ＣＰＵ１０がＲＯＭ３０に格納されているプログラムに従った処理を実行する際には、ＲＯＭ３０にアクセスすることにより、ＲＯＭ３０格納された状態のプログラムに従って演算を行う。これに対して、本実施形態に係る要旨は、ＲＯＭ３０に格納されているプログラムをＲＡＭ２０読み出すことにある。
【００１７】
ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。Ｉ／Ｆ５０は、バス８０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ６０は、ユーザが画像形成装置の状態を確認するための視覚的ユーザインタフェースである。操作部７０は、キーボード、マウス、各種のハードボタン、タッチパネル等、ユーザが画像形成装置に情報を入力するためのユーザインタフェースである。エンジン８０は、画像形成出力を実行するプロッタやスキャンを行うためのスキャナ等のハードウェアである。
【００１８】
このようなハードウェア構成において、ＲＯＭ３０やＨＤＤ４０若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムがＲＡＭ２０に読み出され、ＣＰＵ１０がそれらのプログラムに従って演算を行うことによりソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像処理システムを構成する各機器の機能を実現する機能ブロックが構成される。
【００１９】
次に、本実施形態に係る複合機１の機能構成について説明する。図２は、本実施形態に係る複合機１の機能構成を示すブロック図である。図２に示すように、本実施形態に係る複合機１は、コントローラ１００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）１１０、スキャナユニット１２０、排紙トレイ１３０、ディスプレイパネル１４０、給紙テーブル１５０、プリントエンジン１６０、排紙トレイ１７０及びネットワークＩ／Ｆ１８０を有する。
【００２０】
また、コントローラ１００は、主制御部１０１、エンジン制御部１０２、入出力制御部１０３、画像処理部１０４及び操作表示制御部１０５を有する。図２に示すように、本実施形態に係る複合機１は、スキャナユニット１２０、プリントエンジン１６０を有する複合機として構成されている。尚、図２においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【００２１】
ディスプレイパネル１４０は、複合機１の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが複合機１を直接操作し若しくは複合機１に対して情報を入力する際の入力インタフェース（操作部）でもある。ネットワークＩ／Ｆ１８０は、複合機１がネットワークを介して管理者用端末等の他の機器と通信するためのインタフェースであり、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢインタフェースが用いられる。
【００２２】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ３０やＨＤＤ４０等の不揮発性記憶媒体に格納されたファームウェア等の制御プログラムが、ＲＡＭ２０にロードされ、それらのプログラムに従ってＣＰＵ１０が演算を行うことにより構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ１００が構成される。コントローラ１００は、複合機１全体を制御する制御部として機能する。
【００２３】
主制御部１０１は、コントローラ１００に含まれる各部を制御する役割を担い、コントローラ１００の各部に命令を与える。エンジン制御部１０２は、プリントエンジン１６０やスキャナユニット１２０等を制御若しくは駆動する駆動手段としての役割を担う。入出力制御部１０３は、ネットワークＩ／Ｆ１８０を介して入力される信号や命令を主制御部１０１に入力する。また、主制御部１０１は、入出力制御部１０３を制御し、ネットワークＩ／Ｆ１８０及びネットワークを介して他の装置にアクセスする。
【００２４】
画像処理部１０４は、主制御部１０１の制御に従い、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン１６０が画像形成動作において形成すべき画像を描画するための情報である。また、画像処理部１０４は、スキャナユニット１２０から入力される撮像データを処理し、画像データを生成する。この画像データとは、スキャナ動作の結果物として複合機１に格納され若しくはネットワークＩ／Ｆ１８０を介して他の機器に送信される情報である。
【００２５】
複合機１がプリンタとして動作する場合は、まず、入出力制御部１０３がネットワークＩ／Ｆ１８０を介して印刷ジョブを受信する。入出力制御部１０３は、受信した印刷ジョブを主制御部１０１に転送する。主制御部１０１は、印刷ジョブを受信すると、画像処理部１０４を制御して印刷ジョブに含まれる文書情報若しくは画像情報に基づいて描画情報を生成する。画像処理部１０４によって描画情報が生成されると、エンジン制御部１０２は、生成された描画情報に基づき、給紙テーブル１５０から搬送される用紙に対して画像形成を実行する。
【００２６】
プリントエンジン１６０の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン１６０によって画像形成が施された文書は排紙トレイ１７０に排紙される。
【００２７】
複合機１がスキャナとして動作する場合は、ユーザによるディスプレイパネル１４０の操作若しくはネットワークＩ／Ｆ１８０を介して外部の機器から入力されるスキャン実行指示に応じて、操作表示制御部１０５若しくは入出力制御部１０３が主制御部１０１にスキャン実行信号を転送する。主制御部１０１は、受信したスキャン実行信号に基づき、エンジン制御部１０２を制御する。
【００２８】
エンジン制御部１０２は、ＡＤＦ１１０を駆動し、ＡＤＦ１１０にセットされた撮像対象原稿をスキャナユニット１２０に搬送する。また、エンジン制御部１０２は、スキャナユニット１２０を駆動し、ＡＤＦ１１０から搬送される原稿を撮像する。また、ＡＤＦ１１０に原稿がセットされておらず、スキャナユニット１２０に直接原稿がセットされた場合、スキャナユニット１２０は、エンジン制御部１０２の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット１２０が撮像部として動作する。
【００２９】
撮像動作においては、スキャナユニット１２０に含まれるＣＣＤ等の撮像素子が原稿を光学的に走査し、光学情報に基づいた撮像情報が生成される。エンジン制御部１０２は、スキャナユニット１２０が生成した撮像情報を画像処理部１０４に転送する。画像処理部１０４は、主制御部１０１の制御に従い、エンジン制御部１０２から受信した撮像情報に基づき画像情報を生成する。画像処理部１０４が生成した画像情報はＨＤＤ４０等の複合機１に装着された記憶媒体に保存される。画像処理部１０４によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ４０等に格納され若しくはネットワークＩ／Ｆ１８０、近距離通信Ｉ／Ｆ１９０を介して、入出力制御部１０３により外部の装置に送信される。
【００３０】
また、複合機１が複写機として動作する場合は、エンジン制御部１０２がスキャナユニット１２０から受信した撮像情報若しくは画像処理部１０４が生成した画像情報に基づき、画像処理部１０４が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部１０２がプリントエンジン１６０を駆動する。
【００３１】
次に、図３を参照して、本実施形態に係る複合機１のソフトウェア構成について説明する。図３に示すように、本実施形態に係るソフトウェア２００は、複数のアプリケーションと、プラットフォームとによって構成される。
【００３２】
アプリケーションとしては、コピーアプリ２３１、プリンタアプリ２３２、スキャナアプリ２３３、ファクシミリアプリ２３４及びネットワークファイルアプリ２３５が含まれる。コピーアプリ２３１は、複合機１をコピー機として動作させるためのアプリケーションである。プリンタアプリ２３２は、複合機１をプリンタとして動作させるためのアプリケーションである。スキャナアプリ２３３は、複合機１をスキャナとして動作させるためのアプリケーションである。
【００３３】
ファクシミリアプリ２３４は、複合機１をファクシミリとして動作させるためのアプリケーションである。ネットワークアプリ２３５は、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書等を配信するためのＷｅｂサーバソフト、ＨＴＭＬ文書等を閲覧するためのＷｅｂブラウザ等を含み、複合機１をネットワークサーバやネットワーククライアントとして動作させるためのアプリケーションである。
【００３４】
ソフトウェア２００における上記のアプリケーション以外のモジュールは、アプリケーションからハードウェアへの処理要求に関する情報処理を実行するためのプラットフォームである。アプリケーションからの処理要求の受信には、予め定義されている関数により処理要求を受信するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）１２２が用いられる。
【００３５】
プラットフォームには、ＳＣＳ（Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌ  Ｓｅｒｖｉｃｅ）２２１等の諸々のコントロールサービスを含むＳＲＭ（Ｓｙｓｔｅｍ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ）２２０と、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）２１０が含まれる。
【００３６】
ＳＣＳ２２１等のコントロールサービスは、アプリケーションからハードウェアへの処理要求を解釈し、解釈結果に応じてハードウェアの獲得要求を生成する。ＳＣＳ２２１のプロセスは、省電力状態への遷移等、システムの管理に関する制御を行う。
【００３７】
ＳＲＭ２２０は、ハードウェアの獲得要求を調停して、調停結果に応じてハードウェアへの処理要求を実現するための制御を行う。具体的に言うと、ＳＲＭ２２０のプロセスは、獲得要求に係るハードウェアが利用可能か否か（他の獲得要求と競合しないか否か）を判定して、利用可能である場合にはその旨をコントロールサービスであるＳＣＳ２２１に通知する。さらには、獲得要求に係るハードウェアの利用スケジュールを作成して、作成結果に応じてハードウェアへの処理要求を実現するための制御を行う。
【００３８】
ＯＳ２１０は、上記の調停結果に応じてハードウェアを管理する。ＯＳ２１０は、図３に示すようにファイルシステム２１１及びドライバ２１２を含む。ファイルシステム２１１は、複合機１においてファイルを管理するための機能を提供する。ドライバ２１２は、ハードウェアを駆動するためのソフトウェア・モジュールである。図３においては、図示の容易化のためにドライバ２１２を一のブロックで示しているが、複数のハードウェア・デバイス夫々に対応してドライバが設けられる。
【００３９】
図３に示すようなソフトウェア構成は、ＨＤＤ４０等の不揮発性の記憶媒体に格納されているプログラムがＲＡＭ２０に読み出されることによって実現される。このような構成において、本実施形態に係る要旨は、図３に示すアプリケーション夫々に対するＲＡＭ２０の領域の割り当て処理と、その割り当て処理を行うプログラム・モジュールの動作のさせ方にある。
【００４０】
先ず、本実施形態に係る複合機１において電源が投入された後の、メモリ制御に関する動作について図４を参照して説明する。図４に示すように、複合機１に電源が投入され、ＲＯＭ３０に格納されているＢＩＯＳのプログラムに従って演算を行うことによりブート処理を開始したＣＰＵ１０は、まず複合機１に搭載されている周辺機器のチェック処理を行う（Ｓ４０１）。
【００４１】
Ｓ４０１において、ＣＰＵ１０は、バス９０やＩ／Ｆ５０を介して接続されている機器に信号を送信してその応答を取得する処理や、接続されている機器から情報を読み出す処理を行うことにより、搭載されている機器のチェック処理を実現する。このような処理により搭載されている機器をチェックすると、ＲＯＭ３０に格納されているプログラムに従って演算を行うＣＰＵ１０は、チェックによって認識した機器夫々に対するプログラム領域の割り当てを決定する（Ｓ４０２）。即ち、Ｓ４０２においては、ＲＯＭ３０に格納されているプログラムに従って演算を行うＣＰＵ１０が、プログラム配置処理部として機能する。
【００４２】
図５は、複合機１の機種の違いによる搭載機能の違いや、それに従って必要となるメモリ領域の違いを示す図である。図５に示すように、例えば、“機種Ａ”の場合、共通で必要となる領域は“１．５ＭＢ”であり、コピーアプリ２３１のための“２ＭＢ”、プリンタアプリ２３２のために“１０ＭＢ”が必要である。また、“機種Ａ”はスキャナ機能が実装されていない機種であり、スキャナアプリ２３３のための領域は不要である。
【００４３】
図５に示すような、夫々のプログラムに要する記憶領域の情報は、例えばＨＤＤ４０やＮＶ−ＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）等の不揮発性記憶媒体において、ＢＩＯＳに従って演算を行うＣＰＵ１０がアクセス可能な領域に格納されている。この他、Ｓ４０１の処理において夫々の機器から読み出される情報に、夫々の機器に対応するアプリケーション・プログラムの容量の情報を含めても良い。
【００４４】
Ｓ４０２の処理は、このようにして取得された夫々の機器に対応するアプリケーション・プログラムをロードするためのＲＡＭ２０の領域（以降、「プログラム領域」とする）を決定する処理である。即ち、ＣＰＵ１０は、Ｓ４０２において、夫々のアプリケーション・プログラムをロードするべきＲＡＭ２０上のアドレスや範囲を決定する。
【００４５】
また、Ｓ４０２においてＣＰＵ１０は、夫々の機器に対応するアプリケーション・プログラムをロードするためのプログラム領域に加えて、ＢＩＯＳを構成するプログラムのうち、ＲＡＭ２０へのアクセス制御を行うプログラム（以降、「メモリ制御プログラム」とする）を読み出す領域の割り当て処理も行う。
【００４６】
Ｓ４０２の処理により、夫々のプログラムをロードするためのプログラム領域の割り当て処理を完了すると、ＲＯＭ３０に格納されているプログラムに従って演算を行うＣＰＵ１０は、夫々のプログラムを割り当てたＲＡＭ２０上の領域にロードする（Ｓ４０３）。Ｓ４０３においては、図２に示す夫々のアプリケーション・プログラムをＨＤＤ４０等の不揮発性記憶媒体から読み出してロードすると共に、ＲＯＭ３０に格納されているＢＩＯＳのうち上述したメモリ制御プログラムに該当する部分を、ＲＡＭ２０上の決定された領域にコピーする。
【００４７】
Ｓ４０３の処理を完了すると、ＲＯＭ３０に格納されているプログラムに従って演算を行うＣＰＵ１０は、以降の処理を、ＲＡＭ２０上にロードされたメモリ制御プログラムに従って演算を行うように、プログラムの参照先を切り替える（Ｓ４０４）。Ｓ４０４の処理により、以降、ＣＰＵ１０は、ＲＯＭ３０ではなく、ＲＡＭ２０にロードされたメモリ制御プログラムに従って演算を行うことにより処理を行う。これにより、ＲＯＭ３０を参照するよりもアクセス時間が短くなり、以降の処理をより高速に実行することが可能となる。このように、Ｓ４０３、Ｓ４０４においては、ＲＯＭ３０に格納されているプログラムに従って演算を行うＣＰＵ１０が、プログラム参照先切替部として機能する。
【００４８】
Ｓ４０４の処理により、プログラムの参照先をＲＡＭ２０に切り替えたＣＰＵ１０は、ＲＡＭ２０に読み出されたメモリ制御プログラムに従って演算を行うことにより、複合機１の動作条件をチェックする（Ｓ４０５）。Ｓ４０５においてＣＰＵ１０は、ＲＯＭ２０やＨＤＤ４０、または図示しないリムーバブルメディア等の不揮発性の記憶媒体にアクセスし、そこに格納されている情報に基づいて複合機１の動作条件をチェックする。
【００４９】
Ｓ４０５においてチェックされる動作条件は、アプリケーション夫々についてのＲＡＭ２０の領域を割り当てるために参照される情報であり、例えば、複合機１の仕向け地、機種、ファームウェアバージョン、搭載されているＲＡＭ２０の記憶容量等である。これらの情報は、ＲＡＭ２０において夫々のアプリケーション毎に確保するべき領域を決定するために用いられる。
【００５０】
複合機１の仕向け地によって、複合機１で用いられる文字コードが変わるため、結果的に夫々のアプリケーションにおいて確保するべきメモリ領域も変化する。また、複合機１の機種やファームウェアバージョンが異なれば、夫々のアプリケーションにおいて用いるべき機能が異なり、夫々のアプリケーションが動作するために要するメモリ容量が異なる場合があり、結果的に、夫々のアプリケーションにおいて確保するべきメモリ領域も変化する。
【００５１】
更に、ＲＡＭ２０の記憶容量が充分にあれば、夫々のアプリケーションすべてに対して必要十分な領域を割り当てることが可能である。これに対して、ＲＡＭ２０の記憶容量が十分でなければ、夫々のアプリケーションに対して最低限必要な領域を割り当てると共に、優先度の高いアプリケーションに対して少しでも多くの領域を割り当てる等、効率的な領域割り当て処理が必要となる。
【００５２】
ＲＡＭ２０に読み出されたメモリ制御プログラムに従って演算を行うＣＰＵ１０は、複合機１の動作条件をチェックすると、上述したような動作条件に対するメモリ領域の確保処理を行う（Ｓ４０６）。即ち、Ｓ４０５、Ｓ４０６においては、ＲＡＭ２０に読み出されたプログラムに従って演算を行うＣＰＵ１０が、割り当て処理部として機能する。
【００５３】
図６は、ＲＡＭ２０において、夫々のアプリケーション毎に確保されるメモリ領域の例を示す図である。図６に示すように、ＲＡＭ２０においては、上述した“プログラム領域”の他、印刷言語を格納するための“印刷言語用領域”、画像データを格納するための“画像データ領域”が確保される。尚、図６に示すように、ＲＡＭ２０における領域の確保に際して、ＣＰＵ１０は、夫々の領域の“先頭アドレス”及び“領域サイズ”を指定する。
【００５４】
このような処理により、複合機１に電源が投入された後の処理のうち、ＲＡＭ２０の制御に関する動作が完了する。このように、本実施形態に係るメモリ制御プログラムに基づくＣＰＵ１０の処理のうち、図４のＳ４０５以降の処理、即ち、ＲＯＭ３０やＨＤＤ４０等を参照して動作条件をチェックする処理と、チェックした動作条件に応じてメモリ領域を割り当てる処理において、ＣＰＵ１０は、ＲＡＭ２０に読み出されたメモリ制御プログラムに従って演算を行うことにより処理を行う。
【００５５】
ＲＡＭ２０は、ＲＯＭ１０よりも一般的にアクセス速度が速いため、Ｓ４０５以降のメモリ制御処理を高速化することが可能となる。図７は、ＲＯＭ３０、ＲＡＭ２０及びＣＰＵ１０の動作速度の例を示す図である。図７に示すように、ＣＰＵ１０及びＲＡＭ２０が２５ＭＨｚで動作するのに対し、ＲＯＭ３０は１０ＭＨｚで動作する。
【００５６】
そのため、ＣＰＵ１０がＲＯＭ３０に格納されているプログラムに従って演算を行うことにより処理を実行すると、ＲＯＭ３０に格納されているプログラムを参照する際、２５ＭＨｚというＣＰＵ１０の動作速度が活かしきれずにボトルネックが発生する。その結果、電源投入後の複合機１の起動処理に要する時間が長くなる。
【００５７】
これに対して、上記実施形態において説明したように、ＲＯＭ３０に格納されているプログラムのうちメモリ制御に関するプログラムをＲＡＭ２０に読み出し、以降の処理はＲＡＭ２０に読み出されたプログラムに従って演算を行うことにより実行するようにすれば、上述したボトルネックの問題を解消し、電源投入後の複合機１の起動処理に要する時間を短くすることができる。
【００５８】
以上説明したように、本実施形態に係るメモリ制御の態様によれば、メモリ制御に関する処理を高速化することが可能となる。
【００５９】
尚、上記実施形態においては、Ｓ４０５において動作条件として複合機１の仕向け地をチェックし、その仕向け地に基づいて文字コードを判断する場合を例として説明した。この他、可能であれば、使用される文字コードを直接確認しても良い。
【００６０】
尚、仕向け地によって変化するものとして文字コードの他、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）の種類が変化する場合もあり得る。例えば、ＰＤＬの種類としては、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ）やＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）等があり、国によって使い分けられている。従って、Ｓ４０６においては、文字コードの他ＰＤＬに応じて確保するべきメモリ領域を決定することも考えられる。また、Ｓ４０５においては、ＰＤＬを直接確認するようにしても良い。
【００６１】
また、上記実施形態においては、複合機１に電源が投入された際の起動動作におけるメモリ領域の割り当て処理について説明した。これに加えて、メモリ制御プログラムの機能として、夫々のアプリケーションの動作状態に応じて夫々のアプリケーションに対するメモリ領域の割り当てを変更する機能を持たせる場合がある。この場合においても、メモリ制御プログラムＲＡＭ２０に読み出されているため、そのプログラムに従って演算を行うＣＰＵ１０によるメモリ領域の割り当て処理を高速化することが可能であり、結果的に複合機１の動作を高速化することが可能となる。
【符号の説明】
【００６２】
１  複合機
１０  ＣＰＵ
２０  ＲＡＭ
３０  ＲＯＭ
４０  ＨＤＤ
５０  Ｉ／Ｆ
６０  ＬＣＤ
７０  操作部
８０  エンジン
１００  コントローラ
１０１  主制御部
１０２  エンジン制御部
１０３  入出力制御部
１０４  画像処理部
１０５  操作表示制御部
１１０  ＡＤＦ
１２０  スキャナユニット
１３０  排紙トレイ
１４０  ディスプレイパネル
１５０  給紙テーブル
１６０  プリントエンジン
１７０  排紙トレイ
１８０  ネットワークＩ／Ｆ
２００  ソフトウェア
２１０  ＯＳ
２１１  ファイルシステム
２１２  ドライバ
２２０  ＳＲＭ
２２１  ＳＣＳ
２３１  コピーアプリ
２３２  プリンタアプリ
２３３  スキャナアプリ
２３４  ファクシミリアプリ
２３５  ネットワークアプリ
【先行技術文献】
【特許文献】
【００６３】
【特許文献１】特表２００９−５５２２６号公報
【図１】
2014049019.tif 000003
【図２】
2014049019.tif 000004
【図３】
2014049019.tif 000005
【図４】
2014049019.tif 000006
【図５】
2014049019.tif 000007
【図６】
2014049019.tif 000008
【図７】
2014049019.tif 000009