(57)【要約】【課題】  取り扱うデータの種類やサイズ等の予測を不要とするとともに、共有メモリの利用効率の向上を図ることができ、かつ、設定された緊急度に応じた処理を可能とする。【解決手段】  管理用の共有メモリを予め用意しておき、他の領域は予約領域（用途やサイズが固定されていない領域）としておく。並行処理によりＨＴＴＰセッション１のデータの転送が必要になった場合に、画像形成装置１の通信処理部１２から印刷処理部１３に対し、共有メモリ生成要求が発行され、共有メモリ管理用バッファに置かれる。印刷処理部１３は、ＨＴＴＰセッション１用の共有メモリを動的に確保し、通信処理部１２に対し、共有メモリ生成完了応答を発行する。その後、通信処理部１２から印刷処理部１３へ、生成された共有メモリを使用してデータ通信が行われる。【選択図】  図２
2006018415.tif 000002
【特許請求の範囲】
【請求項１】
共有メモリを使用してデータ転送を行う共有メモリ転送制御装置であって、
予め用意される共有メモリ管理用アドレスと、
予め用意される共有メモリ管理用バッファと、
共有メモリとして使用可能な領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域とを有し、
さらに、前記共有メモリ管理用バッファを使用して、データ転送用の共有メモリの新設を要求する送信側と、
この送信側から前記新設要求を受けるごとに、前記予約領域に、前記データ転送用の共有メモリを新設する受信側とを有し、
前記送信側及び／又は前記受信側が、新設された前記データ転送用の共有メモリを使用して、データ転送を行う
ことを特徴とする共有メモリ転送制御装置。
【請求項２】
共有メモリを使用してデータ転送を行う共有メモリ転送制御装置であって、
予め用意される共有メモリ管理用アドレスと、
予め用意される共有メモリ管理用バッファと、
共有メモリとして使用可能な領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域とを有し、
さらに、前記共有メモリ管理用バッファを使用して、前記予約領域に、前記データ転送用の共有メモリを新設する送信側と、
新設された前記データ転送用の共有メモリを認識する受信側とを有し、
前記送信側及び／又は前記受信側が、前記新設された前記データ転送用の共有メモリを使用して、データ転送を行う
ことを特徴とする共有メモリ転送制御装置。
【請求項３】
前記データ転送用の共有メモリが不要となったとき、前記送信側が、前記受信側に対し、前記データ転送用の共有メモリの削除を要求し、
前記受信側が、前記データ転送用の共有メモリを削除する
ことを特徴とする請求項１又は２記載の共有メモリ転送制御装置。
【請求項４】
共有メモリを使用して送信側から受信側へのデータ転送を行う共有メモリ転送制御装置を備えた画像形成装置であって、
当該共有メモリ転送制御装置が、前記請求項１〜３のいずれかに記載の共有メモリ転送制御装置からなる
ことを特徴とする画像形成装置。
【請求項５】
前記送信側が、通信処理部を有し、前記受信側が、印刷処理部を有した
ことを特徴とする請求項４記載の画像形成装置。
【請求項６】
共有メモリを使用してデータ転送を行う共有メモリ転送制御方法であって、
共有メモリ管理用アドレスと共有メモリ管理用バッファとを予め用意するとともに、共有メモリとして使用される領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域を用意する準備処理と、
送信側又は受信側が、前記共有メモリ管理用バッファを使用して、前記予約領域に、前記データ転送用の共有メモリを新設する共有メモリ新設処理と、
前記送信側及び／又は前記受信側が、前記データ転送用の共有メモリを使用して、データ転送を行うデータ転送処理とを有した
ことを特徴とする共有メモリ転送制御方法。
【請求項７】
共有メモリを使用してデータ転送を行う処理を共有メモリ転送制御装置に実行させる共有メモリ転送制御プログラムであって、
共有メモリ管理用アドレスと共有メモリ管理用バッファとを予め用意するとともに、共有メモリとして使用される領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域を用意する準備処理と、
送信側又は受信側が、前記共有メモリ管理用バッファを使用して、前記予約領域に、前記データ転送用の共有メモリを新設する共有メモリ新設処理と、
前記送信側及び／又は前記受信側が、前記データ転送用の共有メモリを使用して、データ転送を行うデータ転送処理と
を共有メモリ転送制御装置に実行させる
ことを特徴とする共有メモリ転送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有メモリを使用してデータ転送を行う共有メモリ転送制御装置、画像形成装置、共有メモリ転送制御方法及び共有メモリ転送制御プログラムに関し、特に、並行処理によりデータ転送を行う場合に共有メモリを動的に変化させる共有メモリ転送制御装置、画像形成装置、共有メモリ転送制御方法及び共有メモリ転送制御プログラムに関する。
【背景技術】
【０００２】
近年、インターネットの普及及び通信プロトコルの多様化にともなって、ネットワークプリンタと呼ばれる画像形成装置は、市場要求として多種多様なインターフェイスからの印刷要求に応じる必要が生じてきた。
そこで、従来の画像形成装置においては、新しいインターフェイスが追加される毎にその対応が行われてきた。例えば、プリンタのコントローラボードに、新しいインターフェイスのオプション基板をサポートすることが行われてきた。また、新規にアプリケーションを開発して実装する場合には、複数のインターフェイスに対応するような開発が行われてきた。
【０００３】
このようにオプション基板のサポートやアプリケーションの新規開発などが行われた場合、コントローラボードとオプション基板との間、あるいは、各プロセス間においては、共有メモリを使用した通信が行われる（例えば、特許文献１、２参照。）。
共有メモリとは、例えば、各プロセス間で共有して使用されるメモリをいう。
【０００４】
また、画像形成装置においては、共有メモリを使用した通信において、並行処理を必要とする場合がある。
並行処理とは、同時に複数の処理を並行して行う（あるいは、並行して行っているように見せかける）ことをいい、代表的なものとして、例えばマルチタスクによる処理などが挙げられる。
【０００５】
ここで、共有メモリを使用したデータ転送であって、並行処理が必要な場合の動作手順を、図５を参照して説明する。
例えば、同図に示すように、画像処理装置１００において、通信処理部１２０と印刷処理部１３０との間の通信が、共有メモリ１１０を使用して行われているものとする。また、通信されるデータには、印刷データ、制御データ、ＨＴＴＰデータなどがあるものとする。
【０００６】
共有メモリ１００においては、それら転送されるデータの種類（共有メモリ１００の使用用途）、並行処理で通信されるデータの必要数、それらデータの各サイズを予測して、各データごとに、予めバッファ領域が決められている（固定されている）。これは、共有メモリを使用する二つのプロセス（ＣＰＵ）の間の通信では、どこに、どういうデータが置かれたか、ということがお互いの間で決まっていないと、通信することができないからである。
具体的には、印刷データ用、制御データ用、ＨＴＴＰデータ用のアドレス及びバッファが、通信が行われる前に予め用意されている。
【０００７】
ここで、例えば、通信処理部１２０が印刷処理部１３０へ印刷データを転送する場合、通信処理部１２０は、その印刷データを印刷データ用バッファに書き込み、さらに、その印刷データの書き込み位置やデータサイズを印刷データ用のライトポインタ（書込アドレス）に書き込む。
印刷処理部１３０は、印刷データ用のライトポインタを参照し、印刷データ用バッファから印刷データを読み出し、さらに、その印刷データを読み出した位置やデータサイズを印刷データ用のリードポインタ（読出アドレス）に書き込む。
これにより、通信処理部１２０と印刷処理部１３０との間で通信を、共有メモリ１１０を使用して行うことができる。
【特許文献１】特開２００４−００１４２５号公報
【特許文献２】特開２００３−０６７３１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の共有メモリを使用したデータ転送技術においては、次のような問題があった。
例えば、共有メモリのバッファ領域は、並行処理を必要とするデータの数（必要データ数）、各データの種類（領域の使用用途）、各データのサイズ等に応じて予め固定で割り当てられていた。つまり、共有メモリを使用して並行処理での通信を行う場合、その通信を行う前に、必要データ数などを予測しておき、かつ、この予測した各値に応じて各領域を予め固定で割り当てておかなければならなかった。しかも、印刷データについては、大きいバッファを必要とするだろうという予想も必要になっていた。
【０００９】
また、割り当てられた領域の中には、実際にはあまり使用されない領域も存在していた。このような領域は、予め決められた用途以外の用途には使用されないことから、無駄なものとなっていた。しかも、その領域は固定されているため、容易に変更することができなかった。
このように、領域を固定で割り当てたことが、却って、共有メモリの使用効率を低下させる原因となっていた。
【００１０】
さらに、例えば、固定で割り当てた領域に１００のデータ量が書き込めるものとした場合、先に６０のデータが書き込まれると、次の５０のデータが書き込めなくなるという問題があった。この場合、その５０のデータは、６０のデータが読み出されない限り書き込めない。したがって、このような状況は、処理遅延の原因となるとともに、大きなデータを転送しようとするときの弊害ともなっていた。
【００１１】
また、同じ種類のデータを取り扱う場合でも、その中で複数のデータを並行処理することが必要になる場合がある。例えば、ＨＴＴＰにおけるマルチセッションなどが考えられる。
この場合、基本的にＦＩＦＯ順で読み出されるため、緊急度が高いデータが後から入力されても、受信側において処理される順番は変わらなくなってしまうという問題があった。
【００１２】
具体的には、例えば、図６に示すように、先に転送されたデータが受信側（印刷処理部１３０）の都合（受信バッファフル状態や印刷エラーなど）により処理されなくなったとき、後から転送しようとしたデータ（例えば、緊急度の高いデータやエラーの影響を受けないデータ（停止原因に依存しないデータ））は、受信側の処理停止の原因が解消されない限り転送されなかった。このため、ユーザが緊急度を高く設定したとしても、その緊急度に応じた処理がなされない結果となっていた。
【００１３】
本発明は、上記の事情にかんがみなされたものであり、取り扱うデータの種類やサイズ等の予測を不要とするとともに、共有メモリの利用効率の向上を図ることができ、かつ、設定された緊急度に応じた処理を可能とする共有メモリ転送制御装置、画像形成装置、共有メモリ転送制御方法及び共有メモリ転送制御プログラムの提供を目的とする。
【課題を解決するための手段】
【００１４】
この目的を達成するため、本発明の共有メモリ転送制御装置は、共有メモリを使用してデータ転送を行う共有メモリ転送制御装置であって、予め用意される共有メモリ管理用アドレスと、予め用意される共有メモリ管理用バッファと、共有メモリとして使用可能な領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域とを有し、さらに、共有メモリ管理用バッファを使用して、データ転送用の共有メモリの新設を要求する送信側と、この送信側から新設要求を受けるごとに、予約領域に、データ転送用の共有メモリを新設する受信側とを有し、送信側及び／又は受信側が、新設されたデータ転送用の共有メモリを使用して、データ転送を行う構成としてある。
【００１５】
共有メモリ転送制御装置をこのような構成とすると、送信側は、データを転送しようとする場合に、そのデータ用の共有メモリの新設要求を受信側へ送信し、受信側は、その要求に応じてデータ用の共有メモリを新設することができる。つまり、送信側から受信側へデータを転送する際に、逐次、そのデータ用の共有メモリを増設していくことができる。すなわち、共有メモリを動的に変化させることができる。このことから、必要データ数やサイズ等に応じてバッファ領域を予め固定で割り当てておく必要がなくなり、したがって、それら必要データ数等の予測が不要となる。
【００１６】
さらに、通信を必要とするデータが発生するごとにそのデータ用の共有メモリが新設されるため、無駄な共有メモリの確保が回避され、共有メモリの利用効率の向上を図ることができる。
しかも、異なる緊急度のデータが転送される場合、緊急度２のデータによりバッファフルになったとしても、緊急度３のデータ（緊急度２より緊急度が高いデータ）については、通信可能である。このため、設定された緊急度に応じた処理が可能となる。
【００１７】
また、本発明の共有メモリ転送制御装置は、共有メモリを使用してデータ転送を行う共有メモリ転送制御装置であって、予め用意される共有メモリ管理用アドレスと、予め用意される共有メモリ管理用バッファと、共有メモリとして使用可能な領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域とを有し、さらに、共有メモリ管理用バッファを使用して、予約領域に、データ転送用の共有メモリを新設する送信側と、新設されたデータ転送用の共有メモリを認識する受信側とを有し、送信側及び／又は受信側が、新設されたデータ転送用の共有メモリを使用して、データ転送を行う構成としてある。
【００１８】
共有メモリ転送制御装置をこのような構成とすれば、送信側がメモリを管理している場合にも、予約領域にデータ転送用の共有メモリを動的に確保・新設して、その共有メモリを使用した通信を行うことができる。
そのため、この場合においても、取り扱うデータの種類やサイズ等の予測を不要とするとともに、共有メモリの利用効率の向上を図ることができ、かつ、設定された緊急度に応じた処理を行うことができる。
【００１９】
また、本発明の共有メモリ転送制御装置は、データ転送用の共有メモリが不要となったとき、送信側が、受信側に対し、データ転送用の共有メモリの削除を要求し、受信側が、データ転送用の共有メモリを削除する構成としてある。
【００２０】
共有メモリ転送制御装置をこのような構成とすれば、データ転送用の共有メモリのうち不要となったものを消去することができる。
これにより、共有メモリの効率的な使用をさらに図ることができる。
【００２１】
また、本発明の画像形成装置は、共有メモリを使用して送信側から受信側へのデータ転送を行う共有メモリ転送制御装置を備えた画像形成装置であって、当該共有メモリ転送制御装置が、上記の共有メモリ転送制御装置からなる構成としてある。
【００２２】
画像形成装置をこのような構成とすると、送信側から受信側へのデータ転送を共有メモリを使用して行う場合であって並行処理を必要とするときに、その共有メモリを動的に変化させることができる。このため、通信されるデータの種類やサイズ等を予測してバッファ領域を予め固定して割り当てる必要がなくなる。
このことから、共有メモリとして使用可能な領域（予約領域）の効率的な使用が可能となるとともに、緊急度の高いデータが後から入ってきた場合にも、その緊急度に応じた処理を行うことができる。
【００２３】
また、本発明の画像形成装置は、送信側が、通信処理部を有し、受信側が、印刷処理部を有した構成としてある。
画像形成装置をこのような構成とすると、通信処理部と印刷処理部との間のデータ転送を共有メモリを使用して行う場合であって並行処理を必要とするときにも、その共有メモリを動的に変化させることができる。このため、この場合にも、予約領域の効率的な使用などが可能となる。
【００２４】
また、本発明の共有メモリ転送制御方法は、共有メモリを使用してデータ転送を行う共有メモリ転送制御方法であって、共有メモリ管理用アドレスと共有メモリ管理用バッファとを予め用意するとともに、共有メモリとして使用される領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域を用意する準備処理と、送信側又は受信側が、共有メモリ管理用バッファを使用して、予約領域に、データ転送用の共有メモリを新設する共有メモリ新設処理と、送信側及び／又は受信側が、データ転送用の共有メモリを使用して、データ転送を行うデータ転送処理とを有した方法としてある。
【００２５】
共有メモリ転送制御方法をこのような方法とすれば、共有メモリを動的に確保できるため、予約領域の効率的な使用を図ることができる。
さらに、バッファ領域を予め固定で割り当てておく必要がないことから、並行処理を必要とするデータの数やデータサイズ等の予測が不要となる。
しかも、緊急度の高いデータについては、緊急度の低いデータの後に入力された場合でも、その緊急度に応じた処理を行うことができる。
【００２６】
また、本発明の共有メモリ転送制御プログラムは、共有メモリを使用してデータ転送を行う処理を共有メモリ転送制御装置に実行させる共有メモリ転送制御プログラムであって、共有メモリ管理用アドレスと共有メモリ管理用バッファとを予め用意するとともに、共有メモリとして使用される領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域を用意する準備処理と、送信側又は受信側が、共有メモリ管理用バッファを使用して、予約領域に、データ転送用の共有メモリを新設する共有メモリ新設処理と、送信側及び／又は受信側が、データ転送用の共有メモリを使用して、データ転送を行うデータ転送処理とを共有メモリ転送制御装置に実行させる構成としてある。
【００２７】
このような構成を有する共有メモリ転送制御プログラムを共有メモリ転送制御装置に実行させることで、共有メモリを動的に変化させることができ、これにより、共有メモリの効率的な使用が可能となる。
しかも、並行処理を必要とするデータの数やデータサイズ等を予測しなくてもよくなる。また、設定された緊急度に応じたデータ処理を実現できる。
【発明の効果】
【００２８】
本発明によれば、データ転送用の共有メモリを動的に確保又は消去することができるため、並行処理が必要な場合に転送されるデータの種類やサイズなどを予測しておく必要がなくなる。
しかも、必要なときに、その目的に対して必要な分だけ割り当てるため、共有メモリを効率的に使用できる。
さらに、緊急度の低いデータによりバッファフルになった場合でも、後から入ってきた緊急度の高いデータを処理できる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明に係る共有メモリ転送制御装置、画像形成装置、共有メモリ転送制御方法及び共有メモリ転送制御プログラムの好ましい実施形態について、図面を参照して説明する。
【００３０】
まず、本発明の共有メモリ転送制御装置及び画像形成装置の実施形態について、図１を参照して説明する。
同図は、本実施形態の共有メモリ転送制御装置を有する画像形成装置の構成を示すブロック図である。
【００３１】
同図に示すように、画像形成装置１は、共有メモリ１１を使用して通信処理部１２と印刷処理部１３と間でデータ転送を行う共有メモリ転送管理装置１０を備えている。
共有メモリ１１は、通信処理部１２と印刷処理部１３とにより共有されるメモリである。
【００３２】
この共有メモリ１１には、図２（ａ）、（ｂ）に示すように、予め管理用の共有メモリ（共有メモリ管理用）が用意されている。
共有メモリ管理用は、読出アドレス（ライトポインタ）、書込アドレス（リードポインタ）、送信バッファ、受信バッファを有している。
この共有メモリ管理用には、例えば、チャネルのオープン用のコマンド、共有メモリの生成要求、共有メモリの削除要求、新設された共有メモリに関するデータ（例えば、新設された共有メモリの位置やサイズなど）が書き込まれる。このように、共有メモリ管理用は、実データではなくメッセージ（命令）が書き込まれるため、共有メモリ１１全体と比較して非常に小さいサイズでよい。
【００３３】
共有メモリ管理用以外の領域は、予約領域である。
予約領域は、共有メモリが新設される前は、用途が未定な領域（用途及びサイズが固定されていない領域）である。通信処理部１２又は印刷処理部１３によりデータ転送用の共有メモリが新設されると、この新設された共有メモリを使用して、その用途に応じたデータが書き込まれ、さらに読み出される。
また、設けられた共有メモリは、通信処理部１２又は印刷処理部１３により削除することができる。
このように、予約領域においては、共有メモリが、通信処理部１２又は印刷処理部１３により新設されたり削除されたりすることで動的に変化する。
【００３４】
この予約領域には、通信可能な全データ量の上限を設けることができる。例えば、（メイン）ボード対（オプション）ボードのハードウエアの場合には物理的に上限が決まってくる。また、プロセスの通信の場合にも、上限を決めておくことができる。
【００３５】
なお、図２（ｂ）は、予約領域に、印刷データ、制御データ用、ＨＴＴＰセッション１、ＨＴＴＰセッション２の各共有メモリが設けられた状態を示している。このように、各共有メモリは、読出アドレス（ライトポインタ）、書込アドレス（リードポインタ）、送信バッファ、受信バッファを有しており、その用途やサイズが決められている。
【００３６】
例えば、通信処理部１２がＨＴＴＰセッション１のデータを印刷処理部１３へ転送しようとする場合、そのデータは、ＨＴＴＰセッション１の共有メモリの送信バッファに書き込まれ、その書き込まれた位置及びサイズがＨＴＴＰセッション１の共有メモリの書込アドレスに書き込まれる。そして、印刷処理部１３は、そのＨＴＴＰセッション１の共有メモリの書込アドレスに書き込まれた位置やサイズをもとに、その送信バッファに書き込まれたデータを読み出す。
【００３７】
通信処理部（送信側）１２は、例えば、ネットワーク（図示せず）を介して接続された一又は二以上の情報処理装置（パーソナルコンピュータなど、図示せず）から印刷データなどを受信する。そして、通信処理部１２は、受信した印刷データを印刷処理部１３に転送する場合などにおいて、共有メモリ１１を使用する。
印刷処理部（受信側）１３は、共有メモリ１１から読み出したデータにもとづき印刷処理を行う部分であって、例えば、コントローラなどで構成することができる。
【００３８】
これら通信処理部１２と印刷処理部１３との一方又は双方は、メモリを管理することができる。そのメモリを管理する側は、メモリの予約領域にデータ転送用の共有メモリを新設（生成、確保）することができる。
また、受信側がメモリを管理している場合、送信側は、データ転送が必要になった場合であってそのための共有メモリが設けられていないときには、受信側に対して、データ転送用の共有メモリの新設要求を送ることができる。これにより、受信側では、予約領域にデータ転送用の共有メモリを新設する。
【００３９】
さらに、メモリの管理側は、設けられた共有メモリを削除することができる。
また、受信側がメモリを管理している場合、送信側は、データ転送が必要でなくなった場合には、受信側に対して、そのデータ転送用の共有メモリの削除要求を送ることができる。これにより、受信側では、予約領域からデータ転送用の共有メモリを削除する。
【００４０】
なお、本実施形態においては、共有メモリ１１を使用した通信の一実施形態として通信処理部１２と印刷処理部１３との間の通信を挙げたが、それら通信処理部１２と印刷処理部１３との間の通信に限るものではなく、例えば、メインボードとオプションボードとの間の通信や、一つのＣＰＵのＯＳ上での複数のプロセス間の通信にも適用可能である。
【００４１】
次に、共有メモリ転送制御装置における動作（共有メモリ転送制御方法）について、図３を参照して説明する。
同図は、通信処理部と印刷処理部との間のデータの流れを示す動作手順図である。
なお、共有メモリ１１には、共有メモリ管理用のアドレス及びバッファが予め用意されている。また、共有メモリとして使用される領域であってデータの用途及び／又はサイズが当該領域上固定されていない予約領域が用意されている（準備処理）。
【００４２】
ＨＴＴＰセッション１のデータを通信するにあたり、そのＨＴＴＰセッション１の共有メモリの生成が行われる（ステップ１０〜ステップ１２）
ここで、通信処理部１２から印刷処理部１３に対し、共有メモリ管理用バッファを使用して、ＨＴＴＰセッション１用の新規の共有メモリの生成要求が発行される（ステップ１０）。この発行された共有メモリ生成要求は、共有メモリ管理用バッファに置かれる。
その共有メモリ生成要求に対し、印刷処理部１３において、共有メモリの動的確保が可能か否か（予約領域に空きがあるか否か）が判断され、可能なときには、ＨＴＴＰセッション１用の共有メモリが確保される（共有メモリ新設処理、ステップ１１）。
【００４３】
共有メモリが確保されると、印刷処理部１３から通信処理部１２に対し、共有メモリ管理バッファを使用して、そのアドレス（又は、オフセットなど、生成した共有メモリの場所を示すもの）を付加した共有メモリ生成完了応答が発行される（ステップ１２）。この共有メモリ生成完了応答は、共有メモリ管理用バッファに置かれる。
これにより、生成（新設）された共有メモリの場所を、その生成を要求した通信処理部１２において知ることができ、印刷処理部１３との間で、実際のデータ転送を行うことができる。
【００４４】
次いで、通信処理部１２と印刷処理部１３との間で、ＨＴＴＰのセッション１に関するリクエストとレスポンスの交換処理が行われる（ＨＴＴＰセッション１の共有メモリの使用、データ転送処理、ステップ１３〜ステップ１８）。
ここで、印刷処理部１３の内部でエラーが発生したとする。エラーが発生したことで、通信処理部１２からＨＴＴＰセッション１のリクエストがあったとしても、そのＨＴＴＰセッション１に対する印刷処理部１３での共有メモリからの読み込み処理は行われない状態になる（ステップ１３〜ステップ１８）。
印刷処理部１３での読み込みが行われないため、共有メモリ１１には、読み込みが行われていないデータが停滞し、共有メモリ１１がフル状態になる（ステップ１８）。
【００４５】
続いて、ＨＴＴＰセッション２に対する通信が必要になったとする。これにより、ＨＴＴＰセッション２の共有メモリの生成が行われる（ステップ１９〜ステップ２１）。
ここで、その必要になったタイミングで、印刷処理部１３に対し、新たにＨＴＴＰセッション２用の共有メモリの生成要求が発行される（ステップ１９）。この共有メモリ生成要求は、共有メモリ管理用バッファに置かれる。
その共有メモリ生成要求に対し、印刷処理部１３において、共有メモリの動的確保が可能か否か（予約領域に空きがあるか否か）が判断され、可能なときには、ＨＴＴＰセッション２用の共有メモリが確保される（ステップ２０）。
【００４６】
このとき、印刷処理部１３は、通信処理部１２に対し、共有メモリ管理バッファを使用して、そのアドレス（又は、オフセットなど、生成した共有メモリの場所を示すもの）を付加した共有メモリ生成完了応答を発行する（ステップ２１）。この共有メモリ生成完了応答は、共有メモリ管理用バッファに置かれる。
これにより、新設された共有メモリの場所を、要求した通信処理部１２において知ることができ、印刷処理部１３との間で、実際のデータ転送を行うことができる。
【００４７】
なお、従来においては、この状態（印刷処理部１３でエラーが発生した状態）になると、ＨＴＴＰセッション２用の共有メモリを予め用意しておかない限りＨＴＴＰセッション２のデータは、通信できなかった。
これに対し、本実施形態においては、共有メモリを動的に変化させることができるため、ＨＴＴＰセッション２のデータの通信が可能である。
【００４８】
次いで、通信処理部１２と印刷処理部１３との間で、ＨＴＴＰのセッション２に関するリクエストとレスポンスの交換処理が行われる（ＨＴＴＰセッション２の共有メモリの使用、データ転送処理、ステップ２２〜ステップ２３）。
例えば、通信処理部１２において、ＨＴＴＰセッション２用共有メモリを使用して、リクエストが送られると、印刷処理部１３において、そのリクエストが受け取られる（ステップ２２）。そして、印刷処理部１３において、通信処理部１２に対し、ＨＴＴＰセッション２用共有メモリを使用して、レスポンスが返される（ステップ２３）。このような印刷処理部１３の応答処理（通信処理部１２と印刷処理部１３との間における、ＨＴＴＰのセッション２に関するリクエストとレスポンスの交換処理）は、ＨＴＴＰセッション１の影響を受けずに行うことができる。
【００４９】
ＨＴＴＰセッション２の通信の後、ＨＴＴＰのセッション２のデータの通信が不要となったため、ＨＴＴＰセッション２の共有メモリの削除が行われるものとする（ステップ２４〜ステップ２６）。
ＨＴＴＰセッション２用共有メモリの削除が必要なときは、ＨＴＴＰセッション２用共有メモリ削除要求が、通信処理部１２で発行され、共有メモリ管理用バッファを使用して、印刷処理１３に通知される（ステップ２４）。
その通知を受けた印刷処理部１３において、ＨＴＴＰセッション２用共有メモリが削除される（ステップ２５）。
そして、削除が完了すると、この完了したことを示す共有メモリ削除完了応答が発行され、通信処理部１２に伝えられる（ステップ２６）。
【００５０】
このように、共有メモリを使用してデータ転送を行う場合であって並行処理を必要とするときは、そのデータ転送が必要となったときにそのデータ用の共有メモリを生成することにより、データ転送が可能となる。
例えば、図４（ａ）〜（ｄ）に示すように、共有メモリ管理用を予め用意しておき（同図（ａ））、印刷データ用、制御データ用、ＨＴＴＰセッション１用、ＨＴＴＰセッション２用の各共有メモリを順次増設していくことができる（同図（ｂ）、（ｃ））。
【００５１】
また、データ転送が不要となったときは、そのデータ用の共有メモリを削除することができる。これにより、共有メモリの動的を変化させることができる。
例えば、ＨＴＴＰセッション２のデータの通信が終了したために、同図（ｃ）に示すＨＴＴＰセッション２用の共有メモリが不要となったときは、そのＨＴＴＰセッション２用の共有メモリを消去することができる（同図（ｄ））。
【００５２】
なお、図３においては、通信処理部１２から印刷処理部１３に対して共有メモリ生成要求が送信され、印刷処理部１３において共有メモリを動的に確保する手順を示したが、共有メモリの生成にあたっては、この手順に限るものではなく、例えば、メモリを管理する通信処理部１２がデータ転送用の共有メモリを生成・新設し、印刷処理部１３がその生成された共有メモリを認識し、通信処理部１２と印刷処理部１３との間で通信を行うような手順とすることもできる。
【００５３】
次に、共有メモリ転送制御プログラムについて説明する。
上記の実施形態におけるコンピュータ（共有メモリ転送制御装置、画像処理装置）の共有メモリ転送制御機能（共有メモリを使用してデータ転送を制御する機能）は、画像処理装置の記憶部（ＲＯＭ等、図示せず）に記憶された共有メモリ転送制御プログラムにより実現される。
【００５４】
共有メモリ転送制御プログラムは、コンピュータに読み込まれることにより、コンピュータの各構成要素に指令を送り、所定の処理、たとえば、通信処理部の共有メモリ生成要求発行処理、リクエスト処理、共有メモリ削除要求発行処理、印刷処理部の共有メモリ動的確保処理、共有メモリ生成完了応答処理、リクエストに対する応答処理（レスポンス）、共有メモリ削除処理などを行わせる。
これによって、共有メモリ転送制御機能は、ソフトウエアである共有メモリ転送制御プログラムとハードウエア資源であるコンピュータとが協働した共有メモリ転送制御装置や画像処理装置の有する構成各部により実現される。
【００５５】
なお、共有メモリ転送制御機能を実現するための共有メモリ転送制御プログラムは、コンピュータのＲＯＭやハードディスクに記憶される他、コンピュータ読み取り可能な記録媒体、たとえば、外部記憶装置及び可搬記録媒体等に格納することができる。
外部記憶装置とは、ＣＤ−ＲＯＭ等の記憶媒体を内蔵し、共有メモリ転送制御装置に外部接続されるメモリ増設装置をいう。一方、可搬記録媒体とは、記録媒体駆動装置（ドライブ装置）に装着でき、かつ、持ち運び可能な記録媒体であって、たとえば、フレキシブルディスク，メモリカード，光磁気ディスク等をいう。
【００５６】
そして、記録媒体に記録されたプログラムは、コンピュータのＲＡＭにロードされて、ＣＰＵにより実行される。この実行により、上述した本実施形態の共有メモリ転送制御装置の機能が実現される。
さらに、コンピュータで共有メモリ転送制御プログラムをロードする場合、他のコンピュータで保有された共有メモリ転送制御プログラムを、通信回線を利用して自己の有するＲＡＭや外部記憶装置にダウンロードすることもできる。このダウンロードされた共有メモリ転送制御プログラムも、ＣＰＵにより実行され、本実施形態の共有メモリ転送制御装置の共有メモリ転送制御機能を実現する。
【００５７】
以上、本発明の共有メモリ転送制御装置、画像形成装置、共有メモリ転送制御方法及び共有メモリ転送制御プログラムの好ましい実施形態について説明したが、本発明に係る共有メモリ転送制御装置、画像形成装置、共有メモリ転送制御方法及び共有メモリ転送制御プログラムは上述した実施形態にのみ限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上記実施形態においては、画像形成装置における通信処理部と印刷処理部との間の通信について述べたが、それら通信処理部と印刷処理部との間の通信に限るものではなく、例えば、タスク／プロセス間の通信においても、また、外部ボードとメイン基板との通信においても用いることができる。
【産業上の利用可能性】
【００５８】
本発明は、共有メモリを使用してデータ転送を行う際の共有メモリの確保に関する発明であるため、共有メモリを使用したデータ転送を行う装置に利用可能である。
【図面の簡単な説明】
【００５９】
【図１】本発明の画像処理装置に備えられた共有メモリ転送制御装置の構成を示すブロック図である。
【図２】共有メモリにおけるバッファフルの例を示す概念図である。
【図３】本発明の共有メモリ転送制御装置の動作を示すラダー図である。
【図４】共有メモリの生成及び削除が行われる様子を示す概念図である。
【図５】従来の共有メモリにおいて予め領域が固定されて割り振られた様子を示す概念図である。
【図６】従来の共有メモリにおけるバッファフルの例を示す概念図である。
【符号の説明】
【００６０】
１  画像処理装置
１０  共有メモリ転送制御装置
１１  共有メモリ
１２  通信処理部
１３  印刷処理部
【図１】
2006018415.tif 000003
【図２】
2006018415.tif 000004
【図３】
2006018415.tif 000005
【図４】
2006018415.tif 000006
【図５】
2006018415.tif 000007
【図６】
2006018415.tif 000008