(57)【特許請求の範囲】
【請求項１】
画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像形成装置に画像処理を実行させるための１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で前記画像処理ハードウェア及び前記画像処理アプリケーションの間に介在し、画像形成装置に前記画像処理アプリケーションから共通に利用される前記画像処理ハードウェアの制御を実行させるための複数のプログラムとを有する画像形成装置であって、
メモリ上の同一な物理メモリ領域に、前記オペレーティングシステムに含まれるカーネルおよび前記プログラムの仮想メモリ領域を割り当てるメモリ管理手段を有することを特徴とする画像形成装置。
【請求項２】
前記メモリ管理手段は、メモリ上の同一な物理メモリ領域に、カーネル内部のモジュールのための仮想メモリ領域および前記プログラム内部のモジュールのための仮想メモリ領域を割り当てることを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記メモリ管理手段は、起動時に、メモリ上の同一な物理メモリ領域に、カーネル内部のモジュールのための仮想メモリ領域および前記プログラム内部のモジュールのための仮想メモリ領域を割り当てることを特徴とする請求項１記載の画像形成装置。
【請求項４】
前記カーネル内部のモジュールは、デバイス制御モジュールであり、前記プログラム内部のモジュールは、インターフェース制御モジュールであることを特徴とする請求項２又は３記載の画像形成装置。
【請求項５】
前記デバイス制御モジュールは、シリアルインターフェース用のデバイス制御モジュールであり、前記インターフェース制御モジュールは、シリアルインターフェース用のインターフェース制御モジュールであることを特徴とする請求項４記載の画像形成装置。
【請求項６】
前記デバイス制御モジュールは、パラレルインターフェース用のデバイス制御モジュールであり、前記インターフェース制御モジュールは、パラレルインターフェース用のインターフェース制御モジュールであることを特徴とする請求項４記載の画像形成装置。
【請求項７】
画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像形成装置に画像処理を実行させるための１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で前記画像処理ハードウェア及び前記画像処理アプリケーションの間に介在し、画像形成装置に前記画像処理アプリケーションから共通に利用される前記画像処理ハードウェアの制御を実行させるための複数のプログラムとを有する画像形成装置であって、
メモリ上に割り当てられた前記オペレーティングシステムに含まれるカーネルの仮想メモリ領域と、
前記カーネルの仮想メモリ領域と同一な物理メモリ領域に割り当てられた前記プログラムの仮想メモリ領域と
を有することを特徴とする画像形成装置。
【請求項８】
前記カーネルの仮想メモリ領域はカーネル内部のモジュールのためのものであり、前記プログラムの仮想メモリ領域は前記プログラム内部のモジュールのためのものであることを特徴とする請求項７記載の画像形成装置。
【請求項９】
前記カーネル内部のモジュールは、画像形成装置に、前記メモリ上に割り当てられた前記カーネルの仮想メモリ領域にデータを格納し、その格納位置を前記プログラム内部のモジュールに通知する処理を実行させるためのものであることを特徴とする請求項８記載の画像形成装置。
【請求項１０】
前記カーネル内部のモジュールは、画像形成装置に、前記メモリ上に割り当てられた仮想メモリ領域の先頭からのオフセットとデータサイズとを利用し、前記プログラム内部のモジュールにデータの格納位置を通知する処理を実行させるためのものであることを特徴とする請求項８記載の画像形成装置。
【請求項１１】
前記プログラム内部のモジュールは、画像形成装置に、前記カーネルの仮想メモリ領域に格納されたデータを、前記プログラムの仮想メモリ領域から取得する処理を実行させるものであることを特徴とする請求項９又は１０記載の画像形成装置。
【請求項１２】
画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像形成装置に画像処理を実行させるための１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で前記画像処理ハードウェア及び前記画像処理アプリケーションの間に介在し、画像形成装置に前記画像処理アプリケーションから共通に利用される前記画像処理ハードウェアの制御を実行させるための複数のプログラムとを有する画像形成装置のメモリ管理方法であって、
メモリ上に、前記オペレーティングシステムに含まれるカーネルの仮想メモリ領域を割り当てる第１の領域確保段階と、
前記カーネルの仮想メモリ領域を割り当てた物理メモリ領域に、前記プログラムの仮想メモリ領域を割り当てる第２の領域確保段階と
を有することを特徴とするメモリ管理方法。
【請求項１３】
前記第１の領域確保段階では、メモリ上の物理メモリ領域に、カーネル内部のモジュールのための仮想メモリ領域を割り当て、
前記第２の領域確保段階では、カーネル内部のモジュールのための仮想メモリ領域を割り当てた前記メモリ上の物理メモリ領域に、前記プログラム内部のモジュールのための仮想メモリ領域を割り当てることを特徴とする請求項１２記載のメモリ管理方法。
【請求項１４】
前記第１の領域確保段階では、前記画像形成装置の起動時、メモリ上の物理メモリ領域に、カーネル内部のモジュールのための仮想メモリ領域を割り当て、
前記第２の領域確保段階では、カーネル内部のモジュールのための仮想メモリ領域を割り当てた前記メモリ上の物理メモリ領域に、前記プログラム内部のモジュールのための仮想メモリ領域を割り当てることを特徴とする請求項１２記載のメモリ管理方法。
【請求項１５】
前記カーネル内部のモジュールは、デバイス制御モジュールであり、前記プログラム内部のモジュールは、インターフェース制御モジュールであることを特徴とする請求項１３又は１４記載のメモリ管理方法。
【請求項１６】
前記デバイス制御モジュールは、シリアルインターフェース用のデバイス制御モジュールであり、前記インターフェース制御モジュールは、シリアルインターフェース用のインターフェース制御モジュールであることを特徴とする請求項１５記載のメモリ管理方法。
【請求項１７】
前記デバイス制御モジュールは、パラレルインターフェース用のデバイス制御モジュールであり、前記インターフェース制御モジュールは、パラレルインターフェース用のインターフェース制御モジュールであることを特徴とする請求項１５記載のメモリ管理方法。
【請求項１８】
画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像形成装置に画像処理を実行させるための１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で前記画像処理ハードウェア及び前記画像処理アプリケーションの間に介在し、画像形成装置に前記画像処理アプリケーションから共通に利用される前記画像処理ハードウェアの制御を実行させるための複数のプログラムとを有する画像形成装置のメモリ管理方法であって、
前記オペレーティングシステムに含まれるカーネルを実行することにより、画像形成装置が、メモリ上に割り当てられたカーネルの仮想メモリ領域にデータを格納するデータ格納段階と、
前記カーネルを実行することにより、画像形成装置が、前記カーネルの仮想メモリ領域に格納されたデータの格納位置を前記プログラムに通知する格納位置通知段階と、
前記プログラムを実行することにより、画像形成装置が、前記カーネルの仮想メモリ領域と同一な物理メモリ領域に割り当てた前記プログラムの仮想メモリ領域からデータを取得するデータ取得段階と
を有することを特徴とするメモリ管理方法。
【請求項１９】
前記カーネルの仮想メモリ領域はカーネル内部のモジュールのためのものであり、前記プログラムの仮想メモリ領域は前記プログラム内部のモジュールのためのものであることを特徴とする請求項１８記載のメモリ管理方法。
【請求項２０】
前記格納位置通知段階では、前記カーネル内部のモジュールのための仮想メモリ領域の先頭からのオフセットとデータサイズとを利用して前記プログラム内部のモジュールにデータの格納位置を通知することを特徴とする請求項１９記載のメモリ管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像形成装置及びメモリ管理方法に係り、特に仮想記憶を利用する画像形成装置及びメモリ管理方法に関する。
【０００２】
【従来の技術】
近年、プリンタ，コピー，ファクシミリおよびスキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、融合機という）が知られるようになった。この融合機は、１つの筐体内に表示部，印刷部および撮像部などを設けると共に、プリンタ，コピー，ファクシミリおよびスキャナにそれぞれ対応する４種類のソフトウェアを設け、そのソフトウェアを切り替えることより、プリンタ，コピー，ファクシミリおよびスキャナとして動作させるものである。
【０００３】
このような従来の融合機は、プリンタ，コピー，ファクシミリおよびスキャナにそれぞれ対応するソフトウェアを実行することでプロセスが生成される。このように生成されるプロセスは、必要なメモリを別個に確保していた。
【０００４】
ところで、融合機が備えているプリンタ，コピー，ファクシミリおよびスキャナにそれぞれ対応するソフトウェアは、オペレーティングシステム（以下、ＯＳという）上で動作する場合、ＯＳによりメモリ管理がなされる。例えばマルチプロセスを実現するＯＳは、仮想記憶を用いて各プロセスごとに別の仮想メモリ領域を確保する。また、ＯＳは仮想記憶を用いてカーネルの仮想メモリ領域を確保する。通常、プロセスの仮想メモリ領域とカーネルの仮想メモリ領域とは、異なる物理メモリ領域がマッピングされている。
【０００５】
したがって、カーネルが管理している物理メモリ領域の内容をプロセスで利用する場合は、カーネルが管理している物理メモリ領域の内容をプロセスが管理している物理メモリ領域にコピーする必要がある。なお、カーネルが管理している物理メモリ領域の内容をプロセスで利用する例としては、ＵＳＢ（Universal Serial Bus）デバイスドライバ等の受信バッファの内容をプリンタ用のプロセスが利用する場合などがあった。
【０００６】
【発明が解決しようとする課題】
しかしながら、カーネルが管理している物理メモリ領域の内容をプロセスが管理している物理メモリ領域にコピーする場合、そのデータサイズに応じたオーバーヘッドが発生するという問題があった。
【０００７】
例えばプリンタ用のプロセスがＵＳＢデバイスドライバの受信バッファに格納されたデータをシステムコールで取り出す場合、ＵＳＢデバイスドライバが使用する仮想メモリ領域上の受信バッファの内容をプリンタ用のプロセスが使用する仮想メモリ領域上の受信バッファにコピーする必要がある。この結果、コピーするデータのデータサイズが大きい場合、融合機全体の処理に影響を与えるようなオーバーヘッドが発生するという問題があった。
【０００８】
本発明は、上記の点に鑑みなされたもので、カーネルが管理する物理メモリ領域の内容をプロセスで利用するときに発生するオーバーヘッドを軽減することが可能な画像形成装置及びメモリ管理方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
そこで、上記課題を解決するため、請求項１にかかる発明は、画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像形成装置に画像処理を実行させるための１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で前記画像処理ハードウェア及び前記画像処理アプリケーションの間に介在し、画像形成装置に前記画像処理アプリケーションから共通に利用される前記画像処理ハードウェアの制御を実行させるための複数のプログラムとを有する画像形成装置であって、メモリ上の同一な物理メモリ領域に、前記オペレーティングシステムに含まれるカーネルおよび前記プログラムの仮想メモリ領域を割り当てるメモリ管理手段を有することを特徴とする。
【００１０】
このような画像形成装置では、カーネルの仮想メモリ領域とプログラムの仮想メモリ領域とを同一な物理メモリ領域に割り当てることにより、カーネルとプログラムとの間で物理メモリ領域を共有できる。この結果、カーネルが管理している物理メモリ領域の内容をプログラムが管理している物理メモリ領域にコピーすることなく、カーネルが管理している物理メモリ領域の内容をプログラムで利用することができる。
【００１１】
したがって、カーネルが管理する物理メモリ領域の内容をプログラムで利用するときに必要だった物理メモリ領域上でのコピー動作がなくなり、このコピー動作により発生していたオーバーヘッドを軽減することが可能となる。
【００１２】
また、請求項２にかかる発明は、前記メモリ管理手段が、メモリ上の同一な物理メモリ領域に、カーネル内部のモジュールのための仮想メモリ領域および前記プログラム内部のモジュールのための仮想メモリ領域を割り当てることを特徴とする。
【００１３】
このような画像形成装置では、カーネル内部のモジュールのための仮想メモリ領域とプログラム内部のモジュールのための仮想メモリ領域とを同一な物理メモリ領域に割り当てることにより、カーネル内部のモジュールとプログラム内部のモジュールとの間で物理メモリ領域を共有できる。
【００１４】
また、請求項３にかかる発明は、前記メモリ管理手段が、起動時に、メモリ上の同一な物理メモリ領域に、カーネル内部のモジュールのための仮想メモリ領域および前記プログラム内部のモジュールのための仮想メモリ領域を割り当てることを特徴とする。
【００１５】
このような画像形成装置では、起動時に、カーネル内部のモジュールのための仮想メモリ領域とプログラム内部のモジュールのための仮想メモリ領域とを同一な物理メモリ領域に割り当てることができる。
【００１６】
また、請求項４にかかる発明は、前記カーネル内部のモジュールが、デバイス制御モジュールであり、前記プログラム内部のモジュールは、インターフェース制御モジュールであることを特徴とする。
【００１７】
このような画像形成装置では、デバイス制御モジュールが使用する仮想メモリ領域とインターフェース制御モジュールが使用する仮想メモリ領域とを同一な物理メモリ領域に割り当てることができる。
【００２０】
また、請求項５にかかる発明は、前記デバイス制御モジュールが、シリアルインターフェース用のデバイス制御モジュールであり、前記インターフェース制御モジュールは、シリアルインターフェース用のインターフェース制御モジュールであることを特徴とする。
【００２１】
このような画像形成装置では、シリアルインターフェース用のデバイス制御モジュールが使用する仮想メモリ領域と、シリアルインターフェース用のインターフェース制御モジュールが使用する仮想メモリ領域とを同一な物理メモリ領域に割り当てることができる。例えばシリアルインターフェース用のデバイス制御モジュールの一例としては、ＵＳＢデバイス制御モジュールがある。また、シリアルインターフェース用のインターフェース制御モジュールの一例としては、ＵＳＢインターフェース制御モジュールがある。
【００２２】
また、請求項６にかかる発明は、前記デバイス制御モジュールが、パラレルインターフェース用のデバイス制御モジュールであり、前記インターフェース制御モジュールは、パラレルインターフェース用のインターフェース制御モジュールであることを特徴とする。
【００２３】
このような画像形成装置では、パラレルインターフェース用のデバイス制御モジュールが使用する仮想メモリ領域と、パラレルインターフェース用のインターフェース制御モジュールが使用する仮想メモリ領域とを同一な物理メモリ領域に割り当てることができる。例えばパラレルインターフェース用のデバイス制御モジュールの一例としては、ＩＥＥＥ１２８４（セントロニクス）デバイス制御モジュールがある。また、パラレルインターフェース用のインターフェース制御モジュールの一例としては、ＩＥＥＥ１２８４（セントロニクス）インターフェース制御モジュールがある。
【００２４】
また、請求項７にかかる発明は、画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像形成装置に画像処理を実行させるための１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で前記画像処理ハードウェア及び前記画像処理アプリケーションの間に介在し、画像形成装置に前記画像処理アプリケーションから共通に利用される前記画像処理ハードウェアの制御を実行させるための複数のプログラムとを有する画像形成装置であって、メモリ上に割り当てられた前記オペレーティングシステムに含まれるカーネルの仮想メモリ領域と、前記カーネルの仮想メモリ領域と同一な物理メモリ領域に割り当てられた前記プログラムの仮想メモリ領域とを有することを特徴とする。
【００２５】
このような画像形成装置では、メモリ上の同一な物理メモリ領域に割り当てられたカーネルの仮想メモリとプログラムの仮想メモリとを有することにより、カーネルとプログラムとの間で物理メモリ領域を共有できる。この結果、カーネルが管理している物理メモリ領域の内容をプログラムが管理している物理メモリ領域にコピーすることなく、カーネルが管理している物理メモリ領域の内容をプログラムで利用することができる。
【００２６】
したがって、カーネルが管理する物理メモリ領域の内容をプログラムで利用するときに必要だった物理メモリ領域上でのコピー動作がなくなり、このコピー動作により発生していたオーバーヘッドを軽減することが可能となる。
【００２７】
また、請求項８にかかる発明は、前記カーネルの仮想メモリ領域はカーネル内部のモジュールのためのものであり、前記プログラムの仮想メモリ領域は前記プログラム内部のモジュールのためのものであることを特徴とする。
【００２８】
このような画像形成装置では、カーネル内部のモジュールのための仮想メモリ領域とプログラム内部のモジュールのための仮想メモリ領域とを同一な物理メモリ領域に割り当てることにより、カーネル内部のモジュールとプログラム内部のモジュールとの間で物理メモリ領域を共有できる。
【００２９】
また、請求項９にかかる発明は、前記カーネル内部のモジュールが、画像形成装置に、前記メモリ上に割り当てられた前記カーネルの仮想メモリ領域にデータを格納し、その格納位置を前記プログラム内部のモジュールに通知する処理を実行させるためのものであることを特徴とする。
【００３０】
このような画像形成装置では、カーネル内部のモジュールがデータの格納位置をプログラム内部のモジュールに通知することにより、プログラム内部のモジュールがその格納位置からデータを取得することができる。
【００３１】
また、請求項１０にかかる発明は、前記カーネル内部のモジュールが、画像形成装置に、前記メモリ上に割り当てられた仮想メモリ領域の先頭からのオフセットとデータサイズとを利用し、前記プログラム内部のモジュールにデータの格納位置を通知する処理を実行させるためのものであることを特徴とする。
【００３２】
このような画像形成装置では、カーネル内部のモジュールのための仮想メモリ領域の先頭からのオフセットとデータサイズとを利用することにより、カーネル内部のモジュールからプログラム内部のモジュールへデータの格納位置を通知することができる。
【００３３】
また、請求項１１にかかる発明は、前記プロセス内部のモジュールが、画像形成装置に、前記カーネルの仮想メモリ領域に格納されたデータを、前記プログラムの仮想メモリ領域から取得する処理を実行させるものであることを特徴とする。
【００３４】
このような画像形成装置では、カーネルの仮想メモリ領域に格納されたデータをプログラムの仮想メモリ領域から取得することにより、カーネルが管理する物理メモリ領域の内容をプログラムで利用するときに必要だった物理メモリ領域上でのコピー動作がなくなり、このコピー動作により発生していたオーバーヘッドを軽減することが可能となる。
【００３５】
また、請求項１２にかかる発明は、画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像形成装置に画像処理を実行させるための１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で前記画像処理ハードウェア及び前記画像処理アプリケーションの間に介在し、画像形成装置に前記画像処理アプリケーションから共通に利用される前記画像処理ハードウェアの制御を実行させるための複数のプログラムとを有する画像形成装置のメモリ管理方法であって、メモリ上に、前記オペレーティングシステムに含まれるカーネルの仮想メモリ領域を割り当てる第１の領域確保段階と、前記カーネルの仮想メモリ領域を割り当てた物理メモリ領域に、前記プログラムの仮想メモリ領域を割り当てる第２の領域確保段階とを有することを特徴とする。
【００３６】
このようなメモリ管理方法では、カーネルの仮想メモリ領域とプログラムの仮想メモリ領域とを同一な物理メモリ領域に割り当てることにより、カーネルとプログラムとの間で物理メモリ領域を共有できる。この結果、カーネルが管理している物理メモリ領域の内容をプログラムが管理している物理メモリ領域にコピーすることなく、カーネルが管理している物理メモリ領域の内容をプログラムで利用することができる。
【００３７】
したがって、カーネルが管理する物理メモリ領域の内容をプログラムで利用するときに必要だった物理メモリ領域上でのコピー動作がなくなり、このコピー動作により発生していたオーバーヘッドを軽減することが可能となる。
【００３８】
また、請求項１３にかかる発明は、前記第１の領域確保段階では、メモリ上の物理メモリ領域に、カーネル内部のモジュールのための仮想メモリ領域を割り当て、前記第２の領域確保段階では、カーネル内部のモジュールのための仮想メモリ領域を割り当てた前記メモリ上の物理メモリ領域に、前記プログラム内部のモジュールのための仮想メモリ領域を割り当てることを特徴とする。
【００３９】
このようなメモリ管理方法では、カーネル内部のモジュールのための仮想メモリ領域とプログラム内部のモジュールのための仮想メモリ領域とを同一な物理メモリ領域に割り当てることにより、カーネル内部のモジュールとプログラム内部のモジュールとの間で物理メモリ領域を共有できる。
【００４０】
また、請求項１４にかかる発明は、前記第１の領域確保段階では、前記画像形成装置の起動時、メモリ上の物理メモリ領域に、カーネル内部のモジュールのための仮想メモリ領域を割り当て、前記第２の領域確保段階では、カーネル内部のモジュールのための仮想メモリ領域を割り当てた前記メモリ上の物理メモリ領域に、前記プログラム内部のモジュールのための仮想メモリ領域を割り当てることを特徴とする。
【００４１】
このようなメモリ管理方法では、画像形成装置の起動時に、カーネル内部のモジュールのための仮想メモリ領域とプログラム内部のモジュールのための仮想メモリ領域とを同一な物理メモリ領域に割り当てることができる。
【００４２】
また、請求項１５にかかる発明は、前記カーネル内部のモジュールが、前記カーネル内部のモジュールは、デバイス制御モジュールであり、前記プログラム内部のモジュールは、インターフェース制御モジュールであることを特徴とする。
【００４３】
このようなメモリ管理方法では、デバイス制御モジュールが使用する仮想メモリ領域とインターフェース制御モジュールが使用する仮想メモリ領域とを同一な物理メモリ領域に割り当てることができる。
【００４６】
また、請求項１６にかかる発明は、前記デバイス制御モジュールが、シリアルインターフェース用のデバイス制御モジュールであり、前記インターフェース制御モジュールは、シリアルインターフェース用のインターフェース制御モジュールであることを特徴とする。
【００４７】
このようなメモリ管理方法では、シリアルインターフェース用のデバイス制御モジュールが使用する仮想メモリ領域と、シリアルインターフェース用のインターフェース制御モジュールが使用する仮想メモリ領域とを同一な物理メモリ領域に割り当てることができる。
【００４８】
また、請求項１７にかかる発明は、前記デバイス制御モジュールが、前記デバイス制御モジュールは、パラレルインターフェース用のデバイス制御モジュールであり、前記インターフェース制御モジュールは、パラレルインターフェース用のインターフェース制御モジュールであることを特徴とする。
【００４９】
このようなメモリ管理方法では、パラレルインターフェース用のデバイス制御モジュールが使用する仮想メモリ領域と、パラレルインターフェース用のインターフェース制御モジュールが使用する仮想メモリ領域とを同一な物理メモリ領域に割り当てることができる。
【００５０】
また、請求項１８にかかる発明は、画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像形成装置に画像処理を実行させるための１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で前記画像処理ハードウェア及び前記画像処理アプリケーションの間に介在し、画像形成装置に前記画像処理アプリケーションから共通に利用される前記画像処理ハードウェアの制御を実行させるための複数のプログラムとを有する画像形成装置のメモリ管理方法であって、前記オペレーティングシステムに含まれるカーネルを実行することにより、画像形成装置が、メモリ上に割り当てられたカーネルの仮想メモリ領域にデータを格納するデータ格納段階と、前記カーネルを実行することにより、画像形成装置が、前記カーネルの仮想メモリ領域に格納されたデータの格納位置を前記プログラムに通知する格納位置通知段階と、前記プログラムを実行することにより、画像形成装置が、前記カーネルの仮想メモリ領域と同一な物理メモリ領域に割り当てた前記プログラムの仮想メモリ領域からデータを取得するデータ取得段階とを有することを特徴とする。
【００５１】
このようなメモリ管理方法では、メモリ上の同一な物理メモリ領域に割り当てられたカーネルの仮想メモリとプログラムの仮想メモリとを有することにより、カーネルとプログラムとの間で物理メモリ領域を共有できる。この結果、カーネルが管理している物理メモリ領域の内容をプログラムが管理している物理メモリ領域にコピーすることなく、カーネルが管理している物理メモリ領域の内容をプログラムで利用することができる。
【００５２】
したがって、カーネルが管理する物理メモリ領域の内容をプログラムで利用するときに必要だった物理メモリ領域上でのコピー動作がなくなり、このコピー動作により発生していたオーバーヘッドを軽減することが可能となる。
【００５３】
また、請求項１９にかかる発明は、前記カーネルの仮想メモリ領域はカーネル内部のモジュールのためのものであり、前記プログラムの仮想メモリ領域は前記プログラム内部のモジュールのためのものであることを特徴とする。
【００５４】
このようなメモリ管理方法では、カーネル内部のモジュールのための仮想メモリ領域とプログラム内部のモジュールのための仮想メモリ領域とを同一な物理メモリ領域に割り当てることにより、カーネル内部のモジュールとプログラム内部のモジュールとの間で物理メモリ領域を共有できる。
【００５５】
また、請求項２０にかかる発明は、前記格納位置通知段階では、前記カーネル内部のモジュールのための仮想メモリ領域の先頭からのオフセットとデータサイズとを利用して前記プログラム内部のモジュールにデータの格納位置を通知することを特徴とする。
【００５６】
このようなメモリ管理方法では、カーネル内部のモジュールのための仮想メモリ領域の先頭からのオフセットとデータサイズとを利用することにより、カーネル内部のモジュールからプログラム内部のモジュールへデータの格納位置を通知することができる。
【００５７】
【発明の実施の形態】
次に、本発明の実施の形態について図面に基づいて説明する。
【００５８】
図１は、本発明による融合機の一実施例の構成図を示す。融合機１は、白黒ラインプリンタ１１と，カラーラインプリンタ１２と，スキャナやファクシミリなどのハードウェアリソース１３と，ソフトウェア群２０と，融合機起動部５０とを有するように構成される。また、ソフトウェア群２０はアプリケーション３０とプラットフォーム４０とを有するように構成される。
【００５９】
プラットフォーム４０は、アプリケーション３０からの処理要求を解釈してハードウェア資源の獲得要求を発生するコントロールサービスと、１つ以上のハードウェア資源の管理を行ってコントロールサービスからの獲得要求を調停するシステムリソースマネージャ（以下、ＳＲＭという）４３と、ＯＳ４１とを有するように構成されている。
【００６０】
コントロールサービスは、システムコントロールサービス（以下、ＳＣＳという）４２，エンジンコントロールサービス（以下、ＥＣＳという）４４，メモリコントロールサービス（以下、ＭＣＳという）４５，オペレーションパネルコントロールサービス（以下、ＯＣＳという）４６，ファックスコントロールサービス（以下、ＦＣＳという）４７，ネットワークコントロールサービス（以下、ＮＣＳという）４８など一つ以上のサービスモジュールを有するように構成されている。
【００６１】
なお、プラットフォーム４０は予め定義されている関数によりアプリケーション３０からの処理要求を受信可能とするアプリケーションプログラムインターフェース（以下、ＡＰＩという）を有するように構成されている。
【００６２】
ＯＳ４１は、ユニックス（ＵＮＩＸ（登録商標））などのオペレーティングシステムであって、プラットフォーム４０およびアプリケーション３０の各ソフトウェアをプロセスとして並列実行する。
【００６３】
ＳＲＭ４３のプロセスは、ＳＣＳ４２と共にシステムの制御およびリソースの管理を行うものである。例えばＳＲＭ４３のプロセスは、スキャナ部やプリンタ部などのエンジン，メモリ，ハードディスク装置（ＨＤＤ）ファイル，ホストＩ／Ｏ（セントロインターフェース，ネットワークインターフェース，ＩＥＥＥ１３９４インターフェース，ＲＳ２３２Ｃインターフェースなど）のハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する。
【００６４】
具体的に、ＳＲＭ４３は要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判定し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に通知する。また、ＳＲＭ４３は上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、例えばプリンタエンジンによる紙搬送と作像動作，メモリ確保，ファイル生成などの要求内容を直接実施している。
【００６５】
ＳＣＳ４２のプロセスは、アプリケーション管理，操作部制御，システム画面表示，ＬＥＤ表示，リソース管理，割り込みアプリケーション制御を行う。ＥＣＳ４４のプロセスは、白黒ラインプリンタ１１，カラーラインプリンタ１２，ハードウェアリソース１３のエンジンの制御を行う。
【００６６】
ＭＣＳ４５のプロセスは、画像メモリの取得および解放，ハードディスク装置（ＨＤＤ）の利用，画像データの圧縮および伸張などを行う。ＯＣＳ４６のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。
【００６７】
ＦＣＳ４７のプロセスは、システムコントローラの各アプリケーション層からＰＳＴＮまたはＩＳＤＮ網を利用したファクシミリ送受信，ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用，ファクシミリ読み取り，ファクシミリ受信印刷，融合送受信を行うためのアプリケーションを提供する。
【００６８】
ＮＣＳ４８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対し、共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【００６９】
また、アプリケーション３０は、プリンタ，コピー，ファクシミリ，スキャナなどの画像形成処理にかかるユーザサービスにそれぞれ固有の処理を行うものである。アプリケーション３０は、ページ記述言語（ＰＤＬ，ＰＣＬ）およびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ３１と，コピー用アプリケーションであるコピーアプリ３２と，ファクシミリ用アプリケーションであるファックスアプリ３３と，スキャナ用アプリケーションであるスキャナアプリ３４と，ネットワークファイル用アプリケーションであるネットファイルアプリ３５と，工程検査用アプリケーションである工程検査アプリ３６とを有している。
【００７０】
図２は、本発明による融合機の一実施例のハードウェア構成図を示す。図２の融合機１は、コントローラボード６０と，オペレーションパネル７０と，ファックスコントロールユニット（以下、ＦＣＵという）８０と，ＵＳＢデバイス９０と，ＩＥＥＥ１３９４デバイス１００と，エンジン部１１０とを有するように構成される。
【００７１】
オペレーションパネル７０は、コントローラボード６０のＡＳＩＣ６２に直接接続されている。また、ＦＣＵ８０，ＵＳＢデバイス９０，ＩＥＥＥ１３９４デバイス１００およびエンジン部１１０は、コントローラボード６０のＡＳＩＣ６２にＰＣＩバスなどで接続されている。
【００７２】
また、コントローラボード６０は、ＣＰＵ６１と，ＡＳＩＣ６２と，ＳＲＡＭ（Static RAM）６３と，ＳＤＲＡＭ（Synchronous DRAM）６４と，フラッシュメモリ６５と，ＨＤＤ６６とを有するように構成される。コントローラボード６０は、ＣＰＵ６１，ＳＲＡＭ６３，ＳＤＲＡＭ６４，フラッシュメモリ６５，ＨＤＤ６６などをＡＳＩＣ６２に接続するように構成されている。
【００７３】
ＣＰＵ６１は、融合機１の全体制御を行うものである。ＣＰＵ６１は、ＯＳ４１上でプラットフォーム４０を形成するＳＣＳ４２，ＳＲＭ４３，ＥＣＳ４４，ＭＣＳ４５，ＯＣＳ４６，ＦＣＳ４７およびＮＣＳ４８をそれぞれプロセスとして起動して実行させると共に、アプリケーション３０を形成するプリンタアプリ３１，コピーアプリ３２，ファックスアプリ３３，スキャナアプリ３４，ネットファイルアプリ３５および工程検査アプリ３６を起動して実行させる。
【００７４】
ＡＳＩＣ６２は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。ＳＲＡＭ６３およびＳＤＲＡＭ６４は、本発明におけるメモリを構成する。ＳＲＡＭ６３およびＳＤＲＡＭ６４の物理メモリ領域の一部には、カーネルやプロセスなどの仮想メモリ領域がマッピングされる。
【００７５】
フラッシュメモリ６５は、アプリケーション３０またはプラットフォーム４０を構成する各アプリやコントロールサービス，ＳＲＭ４３などの各プログラムが格納されている。ＨＤＤ６６は、画像データの蓄積，プログラムの蓄積，フォントデータの蓄積，フォームの蓄積を行うためのストレージである。また、オペレーションパネル７０は、オペレータからの入力操作を受け付けると共に、オペレータに向けた表示を行う操作部である。
【００７６】
図１の融合機起動部５０は、融合機１の電源投入時に最初に実行され、アプリケーション３０やプラットフォーム４０を起動するものである。図３は、融合機起動部の一例の構成図を示す。融合機起動部５０は、ＲＯＭモニタ５１と，プログラム起動部５２とを有する。
【００７７】
ＲＯＭモニタ５１は電源投入時に実行され、ハードウェアの初期化，コントローラボードの診断，ソフトウェアの初期化，ＯＳ４１の起動などを行う。プログラム起動部５２はＯＳ４１から呼び出されるものであり、ＳＲＡＭ６３またはＳＤＲＡＭ６４上にメモリ領域を確保する。そして、プログラム起動部５２は、コントロールサービスやアプリケーションのプログラムをフラッシュメモリ６５から読み出し、読み出した各プログラムをＳＲＡＭ６３またはＳＤＲＡＭ６４上に確保したメモリ領域に転送して起動するものである。
【００７８】
以下、本発明における融合機１のメモリ管理について説明する。ここでは、ＵＳＢデバイス９０から受信したデータをプリンタ用のプロセスが利用する場合の処理について説明するが、カーネルが管理している物理メモリ領域の内容をプロセスで利用する他の処理にも適用が可能である。
【００７９】
なお、ＵＳＢデバイス９０から受信したデータはカーネル内部のＵＳＢデバイスドライバが使用する仮想メモリ領域上の受信バッファに格納される。また、プリンタ用のプロセスが利用するデータはＮＣＳ内部のＵＳＢインターフェース制御モジュールが使用する仮想メモリ領域上の受信バッファに格納される。
【００８０】
そこで、ＵＳＢデバイスドライバが使用する仮想メモリ領域およびＵＳＢインターフェース制御モジュールが使用する仮想メモリ領域のメモリ管理について図４を参照しつつ説明する。
【００８１】
図４は、本発明による融合機が起動時に行う処理の一例のフローチャートを示す。ステップＳ１０では、融合機１の起動によりＯＳ４１が起動する。ステップＳ１０に続いてステップＳ１１に進み、ＯＳ４１はカーネルの仮想メモリ領域に物理メモリ領域をマッピングすると共に、カーネルの仮想メモリ領域上にＵＳＢデバイスドライバが使用する受信バッファを確保する。
【００８２】
ステップＳ１１に続いてステップＳ１２に進み、プログラム起動部５２はプリンタアプリ３１を起動する。また、ステップＳ１２に続いてステップＳ１３に進み、プログラム起動部５２はＮＣＳ４８の内部にＵＳＢインターフェース制御モジュールを起動する。
【００８３】
ステップＳ１３に続いてステップＳ１４に進み、ＵＳＢインターフェース制御モジュールはデバイス使用コマンドをＵＳＢデバイスドライバに送出する。そして、ステップＳ１４に続いてステップＳ１５に進み、ＵＳＢデバイスドライバはＵＳＢデバイス９０を使用可能状態とし、その旨をＵＳＢインターフェース制御モジュールに通知する。
【００８４】
ステップＳ１５に続いてステップＳ１６に進み、ＵＳＢインターフェース制御モジュールはデバイス情報取得コマンドをＵＳＢデバイスドライバに送出する。そして、ステップＳ１６に続いてステップＳ１７に進み、ＵＳＢデバイスドライバはＵＳＢデバイス９０のデバイス情報をＵＳＢインターフェース制御モジュールに通知する。
【００８５】
ステップＳ１７に続いてステップＳ１８に進み、ＵＳＢインターフェース制御モジュールは受信バッファのマッピング要求コマンドをＵＳＢデバイスドライバに送出する。そして、ステップＳ１８に続いてステップＳ１９に進み、ＵＳＢデバイスドライバはプリンタ用のプロセスの仮想メモリ領域に物理メモリ領域をマッピングすると共に、プリンタ用のプロセスの仮想メモリ領域上にＵＳＢインターフェース制御モジュールが使用する受信バッファを確保する。
【００８６】
このとき、ＵＳＢデバイスドライバはＵＳＢインターフェース制御モジュールが使用する受信バッファとＵＳＢデバイスドライバが使用する受信バッファとを同じ物理メモリ領域にマッピングする。ＵＳＢインターフェース制御モジュールが使用する受信バッファとＵＳＢデバイスドライバが使用する受信バッファとが同じ物理メモリ領域にマッピングされることにより、ＵＳＢインターフェース制御モジュールとＵＳＢデバイスドライバとは物理メモリ領域を共有することができる。
【００８７】
ここで、ＵＳＢインターフェース制御モジュールとＵＳＢデバイスドライバとで物理メモリ領域を共有している状態について図５を参照しつつ説明する。図５は、ＵＳＢインターフェース制御モジュールとＵＳＢデバイスドライバとで物理メモリ領域を共有している状態の一例の説明図を示す。
【００８８】
図５中、ステップＳ２１ではＵＳＢデバイス９０から受信したデータが、カーネル内部のＵＳＢデバイスドライバ（ＵＳＢデバイス制御モジュール）１２１が使用する仮想メモリ領域上の受信バッファ１２３に格納される。ステップＳ２２では、ＮＣＳ内部のＵＳＢインターフェース制御モジュール（ＵＳＢデーモン）１２０がＵＳＢデバイスドライバ１２１に対してＵＳＢデバイス９０から受信したデータを要求する。
【００８９】
ステップＳ２２に続いてステップＳ２３に進み、ＵＳＢデバイスドライバ１２１は受信したデータの格納位置を受信バッファ１２３の先頭からのオフセットとデータサイズとでＵＳＢインターフェース制御モジュール１２０に通知する。
【００９０】
なお、ＮＣＳ内部のＵＳＢインターフェース制御モジュール１２０が使用する仮想メモリ領域上の受信バッファ１２２は、カーネル内部のＵＳＢデバイスドライバ１２１が使用する仮想メモリ領域上の受信バッファ１２３と同じ物理メモリ領１２４にマッピングされている。つまり、ＵＳＢインターフェース制御モジュール１２０とＵＳＢデバイスドライバ１２１とは物理メモリ領域１２４を共有している。
【００９１】
この結果、ＵＳＢインターフェース制御モジュール１２０はＵＳＢデバイスドライバ１２１から受信バッファ１２３の先頭からのオフセットとデータサイズとを通知されることにより、物理メモリ領域１２４に格納されたデータを直接利用することが可能となる。
【００９２】
一方、ＵＳＢインターフェース制御モジュールとＵＳＢデバイスドライバとで物理メモリ領域を共有していない状態について図６を参照しつつ説明する。図６は、ＵＳＢインターフェース制御モジュールとＵＳＢデバイスドライバとで物理メモリ領域を共有していない状態の一例の説明図を示す。
【００９３】
図６中、ステップＳ３１ではＵＳＢデバイス９０から受信したデータが、カーネル内部のＵＳＢデバイスドライバ１２１が使用する仮想メモリ領域上の受信バッファ１２３に格納される。ステップＳ３２では、ＮＣＳ内部のＵＳＢインターフェース制御モジュール１２０がＵＳＢデバイスドライバ１２１に対してＵＳＢデバイス９０から受信したデータを要求する。
【００９４】
ステップＳ３２に続いてステップＳ３３に進み、ＵＳＢデバイスドライバ１２１は受信したデータの格納位置を物理メモリ領域１２４のアドレスとデータサイズとでＵＳＢインターフェース制御モジュール１２０に通知する。
【００９５】
なお、ＮＣＳ内部のＵＳＢインターフェース制御モジュール１２０が使用する仮想メモリ領域上の受信バッファ１２２は、カーネル内部のＵＳＢデバイスドライバが使用する仮想メモリ領域上の受信バッファ１２３と異なる物理メモリ領１２５にマッピングされている。つまり、ＵＳＢインターフェース制御モジュール１２０とＵＳＢデバイスドライバ１２１とは物理メモリ領域１２４を共有していない。
【００９６】
この結果、ＵＳＢインターフェース制御モジュール１２０がＵＳＢデバイス９０から受信したデータを利用するためには、受信したデータを物理メモリ領域１２４から物理メモリ領域１２５にコピーする必要があった。そこで、ステップＳ３３に続いてステップＳ３４に進み、ＯＳ４１はＵＳＢデバイス９０から受信したデータを物理メモリ領域１２４から物理メモリ領域１２５にコピーする。
【００９７】
このように、ＵＳＢインターフェース制御モジュール１２０とＵＳＢデバイスドライバ１２１とで物理メモリ領域を共有していない状態では、ＵＳＢインターフェース制御モジュール１２０がＵＳＢデバイス９０から受信したデータを利用するために、受信したデータを物理メモリ領域１２４から物理メモリ領域１２５にコピーする必要があり、オーバーヘッドが生じることとなる。
【００９８】
一方、ＵＳＢインターフェース制御モジュールとＵＳＢデバイスドライバとで物理メモリ領域を共有している状態では、ＵＳＢインターフェース制御モジュール１２０がＵＳＢデバイス９０から受信したデータを利用するために、受信したデータを物理メモリ領域１２４から物理メモリ領域１２５にコピーする必要がなく、オーバーヘッドが生じない。
【００９９】
次に、ＵＳＢデバイス９０から受信したデータをプリンタアプリ３１が利用する処理について図７を参照しつつ説明する。図７は、ＵＳＢデバイスから受信したデータをプリンタアプリが利用する処理の一例について説明する図を示す。
【０１００】
なお、ＵＳＢインターフェース制御モジュール１２０とＵＳＢデバイスドライバ１２１とは図５を用いて説明したように物理メモリ領域を共有しているものとする。
【０１０１】
ステップＳ４１では、データの受信に基づきＵＳＢデバイス９０がＵＳＢデバイスドライバ１２１に対してデータ受信割り込みを行う。ＵＳＢデバイスドライバ１２１はＵＳＢデバイス９０から受信したデータをＵＳＢデバイスドライバ１２１が使用する仮想メモリ領域上の受信バッファに格納する。
【０１０２】
ステップＳ４１に続いてステップＳ４２に進み、ＵＳＢデバイスドライバ１２１は受信したデータの格納位置を、ＵＳＢデバイスドライバ１２１が使用する仮想メモリ領域上の受信バッファの先頭からのオフセットとデータサイズとでＵＳＢインターフェース制御モジュール１２０に通知する。ＵＳＢインターフェース制御モジュール１２０はＵＳＢデバイスドライバ１２１と物理メモリ領域を共有しているため、ＵＳＢデバイス９０から受信したデータを直接利用できる。
【０１０３】
ステップＳ４２に続いてステップＳ４３に進み、ＵＳＢインターフェース制御モジュール１２０はＮＣＳ制御モジュール１３０に対してプリンタ用受信バッファ割り当ての要求を行う。ステップＳ４３に続いてステップＳ４４に進み、ＮＣＳ制御モジュール１３０はプリンタ用受信バッファ１３１の割り当てを行う。
【０１０４】
ステップＳ４４に続いてステップＳ４５に進み、ＮＣＳ制御モジュール１３０はＵＳＢインターフェース制御モジュール１２０に対してプリンタ用受信バッファ１３１を割り当てた旨の通知を行う。
【０１０５】
ステップＳ４６では、ＵＳＢデバイス９０から受信したデータがＵＳＢインターフェース制御モジュール１２０とＵＳＢデバイスドライバ１２１とが共有する物理メモリ領域からプリンタ用受信バッファ１３１にコピーされる。そして、ステップＳ４６に続いてステップＳ４７に進み、ＵＳＢインターフェース制御モジュール１２０はＵＳＢデバイスドライバ１２１に対してプリンタ用受信バッファ１３１にコピー済みの物理メモリ領域の開放許可を通知する。
【０１０６】
したがって、カーネル内部のモジュールとＮＣＳなどのサービスモジュールとで物理メモリ領域を共有することができ、物理メモリ上で余分なコピー動作を行う必要がなくなり、オーバーヘッドが生じなくなる。
【０１０７】
【発明の効果】
上述の如く、本発明によれば、カーネルの仮想メモリ領域とプログラムの仮想メモリ領域とを同一な物理メモリ領域に割り当てることにより、カーネルとプログラムとの間で物理メモリ領域を共有できる。
【０１０８】
この結果、カーネルが管理している物理メモリ領域の内容をプログラムが管理している物理メモリ領域にコピーすることなく、カーネルが管理している物理メモリ領域の内容をプログラムで利用することができる。
【０１０９】
したがって、カーネルが管理する物理メモリ領域の内容をプログラムで利用するときに必要だった物理メモリ領域上でのコピー動作がなくなり、このコピー動作により発生していたオーバーヘッドを軽減することが可能となる。
【０１１０】
【図面の簡単な説明】
【図１】本発明による融合機の一実施例の構成図である。
【図２】本発明による融合機の一実施例のハードウェア構成図である。
【図３】融合機起動部の一例の構成図である。
【図４】本発明による融合機が起動時に行う処理の一例のフローチャートである。
【図５】ＵＳＢインターフェース制御モジュールとＵＳＢデバイスドライバとで物理メモリ領域を共有している状態の一例の説明図である。
【図６】ＵＳＢインターフェース制御モジュールとＵＳＢデバイスドライバとで物理メモリ領域を共有していない状態の一例の説明図である。
【図７】ＵＳＢデバイスから受信したデータをプリンタアプリが利用する処理の一例について説明する図である。
【符号の説明】
１    融合機
１１    白黒ラインプリンタ
１２    カラーラインプリンタ
１３    ハードウェアリソース
２０    ソフトウェア群
３０    アプリケーション
４０    プラットフォーム
４１    オペレーティングシステム（ＯＳ）
４２    システムコントロールサービス（ＳＣＳ）
４３    システムリソースマネージャ（ＳＲＭ）
４４    エンジンコントロールサービス（ＥＣＳ）
４５    メモリコントロールサービス（ＭＣＳ）
４６    オペレーションパネルコントロールサービス（ＯＣＳ）
４７    ファックスコントロールサービス（ＦＣＳ）
４８    ネットワークコントロールサービス（ＮＣＳ）
５０    融合機起動部
５１    ＲＯＭモニタ
５２    プログラム起動部
６０    コントローラボード
６１    ＣＰＵ
６２    ＡＳＩＣ（Application Specific Integrated Circuit）
６３    ＳＲＡＭ（Static RAM）
６４    ＳＤＲＡＭ（Synchronous DRAM）
６５    フラッシュメモリ
６６    ハードディスク装置（ＨＤＤ）
７０    オペレーションパネル
８０    ファックスコントロールユニット（ＦＣＵ）
９０    ＵＳＢデバイス
１００    ＩＥＥＥ１３９４デバイス
１１０    エンジン部
１２０    ＵＳＢインターフェース制御モジュール
１２１    ＵＳＢデバイスドライバ
１２２，１２３    仮想メモリ領域上の受信バッファ
１２４，１２５    物理メモリ領域
１３０    ネットワークコントロールサービス制御モジュール
１３１    プリンタ用受信バッファ
【図１】
0004136397.tif 000002
【図２】
0004136397.tif 000003
【図３】
0004136397.tif 000004
【図４】
0004136397.tif 000005
【図５】
0004136397.tif 000006
【図６】
0004136397.tif 000007
【図７】
0004136397.tif 000008