(57)【要約】【課題】ＰＣＩバスを介して複数のＰＣＩボードにＤＭＡ転送する場合にＣＰＵの負荷を軽減することができるデータ処理装置を提供する。【解決手段】バスマスタ機能を有するマスタデータ取得手段は、転送開始指示手段から転送開始指示データ転送開始指示が与えられた時にメモリからＰＣＩ規格で定められたＰＣＩバスを介してＤＭＡ転送により転送された転送データから自身に割り当てられた割り当てデータを取得し、少なくとも１つのスレーブデータ取得手段は、マスタデータ取得手段によりＤＭＡ転送が開始された転送データから自身に割り当てられた割り当てデータ取得する。【選択図】図４
2007310657.tif 000002
【特許請求の範囲】
【請求項１】
データ転送開始指示が与えられた時にメモリからＰＣＩ規格で定められたＰＣＩバスを介してＤＭＡ転送により転送された転送データから自身に割り当てられた割り当てデータを取得すると共に、バスマスタ機能を有するマスタデータ取得手段と、
前記マスタデータ取得手段に前記データ転送開始指示を与える転送開始指示手段と、
前記ＰＣＩバスに接続されると共に、前記マスタデータ取得手段によりＤＭＡ転送が開始された転送データから自身に割り当てられた割り当てデータを取得する少なくとも１つのスレーブデータ取得手段と、
を有するデータ処理装置。
【請求項２】
前記転送データには、該転送データのサイズを示すヘッダ情報が先頭に付与されており、
前記マスタデータ取得手段は、前記ヘッダ情報が転送された後に、予め設定された前記スレーブデータ取得手段の個数と前記転送データのサイズとから定まるサイズのデータを前記割り当てデータとして取得する請求項１に記載のデータ処理装置。
【請求項３】
前記スレーブデータ取得手段は、自身に割り当てられた割り当てデータを識別して取得するためのデータ取得情報を有し、転送データの転送開始から、前記転送データのサイズ及び前記データ取得情報により定まるサイズのデータが転送された後に、前記転送データのサイズ及び前記スレーブデータ取得手段の個数に１を加えた値により定まるサイズのデータを前記割り当てデータとして取得する請求項２に記載のデータ処理装置。
【請求項４】
前記マスタデータ取得手段は、前記転送データのサイズを用いて転送データの転送が終了したかどうか判断し、データ転送が終了したと判断すると、データ転送が終了したことを示す転送終了情報を出力する請求項２または請求項３に記載のデータ処理装置。
【請求項５】
前記割り当てデータのサイズは、前記転送データのサイズを前記個数に１を加えた値で除算した商により定まるサイズである請求項２から請求項４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記転送データは、前記割り当てデータ同士の境界を示す境界情報を前記割り当てデータの境界に更に含み、
前記マスタデータ取得手段及び前記スレーブデータ取得手段は、複数の割り当てデータのうち、当該マスタデータ取得手段及び当該スレーブデータ取得手段に割り当てられた割り当てデータを識別して取得するためのデータ取得情報を有し、該データ取得情報により定まると共に取得する割り当てデータの先頭を示す境界情報の検出された後に割り当てデータの取得を開始し、前記データ取得情報により定まると共に取得する割り当てデータの最後を示す境界情報を検出するまで割り当てデータを取得する請求項１に記載のデータ処理装置。
【請求項７】
前記転送データは、該転送データの最後を示す終了情報を前記転送データの最後に更に含み、
前記マスタデータ取得手段は、前記終了情報を検出すると、前記転送データの転送が終了したことを示す転送終了情報を出力する請求項６に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、特に複数のＰＣＩボードを有するデータ処理装置に関する。
【背景技術】
【０００２】
カラー画像のデータとして、ＣＭＹＫの各色に対応したデータにより構成されるものがある。このような画像データを処理する場合、ＣＭＹＫの各色に対応する４つの画像処理用のＰＣＩボードを用いている。４つのＰＣＩボードには、例えばメモリに記録されている画像データがＰＣＩバスを介してＤＭＡ（Direct Memory Access）転送されるようになっている。
【０００３】
ＤＭＡ転送をする場合、ＣＰＵは、各画像処理ボード毎に転送元アドレス、転送先アドレス、転送サイズ、及びＤＭＡスタートなどのレジスタ設定を行う必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＤＭＡ転送は、本来ＣＰＵの負荷を軽減する技術であるが、上述したような複数のＰＣＩボードを備えた構成の場合、上記設定によりＣＰＵの負荷は大きいものとなる。
【０００５】
本発明は上記問題点に鑑み、ＰＣＩバスを介して複数のＰＣＩボードにＤＭＡ転送する場合にＣＰＵの負荷を軽減することができるデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために請求項１の発明は、データ転送開始指示が与えられた時にメモリからＰＣＩ規格で定められたＰＣＩバスを介してＤＭＡ転送により転送された転送データから自身に割り当てられた割り当てデータを取得すると共に、バスマスタ機能を有するマスタデータ取得手段と、前記マスタデータ取得手段に前記データ転送開始指示を与える転送開始指示手段と、前記ＰＣＩバスに接続されると共に、前記マスタデータ取得手段によりＤＭＡ転送が開始された転送データから自身に割り当てられた割り当てデータを取得する少なくとも１つのスレーブデータ取得手段と、を有する。
【０００７】
ここで、請求項１に記載の発明では、バスマスタ機能を有するマスタデータ取得手段は、転送開始指示手段から転送開始指示データ転送開始指示が与えられた時にメモリからＰＣＩ規格で定められたＰＣＩバスを介してＤＭＡ転送により転送された転送データから自身に割り当てられた割り当てデータを取得し、少なくとも１つのスレーブデータ取得手段は、マスタデータ取得手段によりＤＭＡ転送が開始された転送データから自身に割り当てられた割り当てデータ取得するため、転送開始指示手段はマスタデータ取得手段にのみ転送開始指示を与えればよいので、ＰＣＩバスを介して複数のＰＣＩボードにＤＭＡ転送する場合にＣＰＵの負荷を軽減することができる。
【０００８】
また、請求項２の発明は、前記転送データには、該転送データのサイズを示すヘッダ情報が先頭に付与されており、前記ヘッダ情報が転送された後に、予め設定された前記スレーブデータ取得手段の個数と前記転送データのサイズとから定まるサイズのデータを前記割り当てデータとして取得する。
【０００９】
ここで、請求項２の発明によれば、マスタデータ取得手段は、転送データのサイズとスレーブデータ取得手段が設けられた個数により、割り当てデータを取得することができる。
【００１０】
また、請求項３の発明は、前記スレーブデータ取得手段は、自身に割り当てられた割り当てデータを識別して取得するためのデータ取得情報を有し、転送データの転送開始から、前記転送データのサイズ及び前記データ取得情報により定まるサイズのデータが転送された後に、前記転送データのサイズ及び前記スレーブデータ取得手段の個数に１を加えた値により定まるサイズのデータを前記割り当てデータとして取得する。
【００１１】
ここで請求項３の発明によれば、スレーブデータ取得手段は、データ取得情報により、割り当てデータを取得することができる。
【００１２】
請求項４の発明は、前記マスタデータ取得手段は、前記転送データのサイズを用いて転送データの転送が終了したかどうか判断し、データ転送が終了したと判断すると、データ転送が終了したことを示す転送終了情報を出力する。
【００１３】
ここで請求項４の発明によれば、マスタデータ取得手段が出力する転送終了情報によって転送が終了したことを認識できる。
【００１４】
請求項５の発明は、前記割り当てデータのサイズは、前記転送データのサイズを前記個数に１を加えた値で除算した商により定まるサイズである。
【００１５】
ここで請求項５の発明によれば、割り当てデータのサイズとして転送データのサイズを個数に１を加えた値で除算することにより求まるサイズとしても良い。
【００１６】
請求項６の発明は、前記転送データは、前記割り当てデータ同士の境界を示す境界情報を前記割り当てデータの境界に更に含み、前記マスタデータ取得手段及び前記スレーブデータ取得手段は、複数の割り当てデータのうち、当該マスタデータ取得手段及び当該スレーブデータ取得手段に割り当てられた割り当てデータを識別して取得するためのデータ取得情報を有し、該データ取得情報により定まると共に取得する割り当てデータの先頭を示す境界情報の検出された後に割り当てデータの取得を開始し、前記データ取得情報により定まると共に取得する割り当てデータの最後を示す境界情報を検出するまで割り当てデータを取得する。
【００１７】
ここで請求項６の発明によれば、マスタデータ取得手段及び前記スレーブデータ取得手段は、転送データに含まれる境界情報とデータ取得情報により、割り当てデータを取得することができる。
【００１８】
請求項７の発明は、前記転送データは、該転送データの最後を示す終了情報を前記転送データの最後に更に含み、前記マスタデータ取得手段は、前記終了情報を検出すると、前記転送データの転送が終了したことを示す転送終了情報を出力する。
【００１９】
ここで請求項７の発明によれば、マスタデータ取得手段が出力する転送終了情報によって転送が終了したことを認識できる。
【発明の効果】
【００２０】
本発明によれば、ＰＣＩバスを介して複数のＰＣＩボードにＤＭＡ転送する場合にＣＰＵの負荷を軽減することができるという効果が得られる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【００２２】
図１は、本実施の形態に係るデータ処理装置の構成を示す図である。このデータ処理装置は、ホストＣＰＵ１０と、システムメモリ１２と、ＰＣＩボード１４、１６ａ、１６ｂ、１６ｃと、それらを接続するＰＣＩバス１８とで構成されている。
【００２３】
ＰＣＩボード１４、１６ａ、１６ｂ、１６ｃは、システムメモリ１２に記憶されているＣＭＹＫの各データをＰＣＩバス１８を介して取得し、取得したデータを処理するボードであり、例えば処理したデータを画像形成エンジンに転送するインタフェースボードである。
【００２４】
また、ＰＣＩボード１４とそれ以外のＰＣＩボード１６ａ、１６ｂ、１６ｃはバスマスタＤＭＡ機能を有するかどうかの違いがあり、本実施の形態ではＰＣＩボード１４のみがバスマスタＤＭＡ機能（バスマスタ機能）を有するものとする。
【００２５】
なお、図１は、ＣＭＹＫに対応させるために４つのＰＣＩボードを用いた構成例を示しているが、バスマスタＤＭＡ機能を有するＰＣＩボードが１つの場合、バスマスタＤＭＡ機能を有しないＰＣＩボードの個数は１つ以上であれば良い。
【００２６】
ＰＣＩボード１４とそれ以外のＰＣＩボード１６ａ、１６ｂ、１６ｃの構成の違いを、具体的に図２を用いて説明する。図２には、ＰＣＩボード１４と、ＰＣＩボード１６ａの構成が示されている。ＰＣＩボード１６ｂ、１６ｃの構成は、ＰＣＩボード１６ａの構成と同じものなので省略している。
【００２７】
ＰＣＩボード１４と、ＰＣＩボード１６ａは、ＦＰＧＡ（Field Programmable Gate Array）１４ａ、１６ｄと、画像データを処理する画像処理部１４ｂ、１６ｅで構成される点は共通している。しかし、上述したようにＦＰＧＡ１４ａがバスマスタＤＭＡ機能を有する点が異なる。
【００２８】
ＰＣＩボード１４のＦＰＧＡ１４ａは、バスマスタＤＭＡ機能、及びＰＣＩインタフェース機能を有する。一方、ＰＣＩボード１６ａのＦＰＧＡ１６ｄは、ＰＣＩインタフェース機能を有するが、図に示されるようにバスマスタＤＭＡ機能は有しない。
【００２９】
ＰＣＩボード１４に対し、ホストＣＰＵ１０は、ＤＭＡ転送に必要な設定を行うことでデータ転送開始指示を与える。データ転送開始指示が与えられたＰＣＩボード１４は、ＤＭＡ転送により転送データの転送を行い、転送データの転送が終了すると、転送が終了したことを示す割り込み信号をホストＣＰＵ１０に出力する。このように、ＰＣＩボード１４に転送開始指示を与え、ＰＣＩボード１４から割り込み信号が入力されるため、ホストＣＰＵ１０は、ＰＣＩボード１６ａ、１６ｂ、１６ｃに設定を行なう必要はない。従って、ホストＣＰＵ１０の負荷を軽減することができる。
【００３０】
また、バスマスタＤＭＡ機能を有しないＰＣＩボード１６ａ、１６ｂ、１６ｃに搭載されるＦＰＧＡのゲート数は、ＰＣＩボード１４のＦＰＧＡ１４ａのゲート数より小さくできる。これにより、ＦＰＧＡの製造に係るコストを削減することができる。なお、図２では、各ＰＣＩボード１４、１６ａがそれぞれ有するＦＰＧＡ１４ａ、１６ｄと、画像処理部１４ｂ、１６ｅとが独立したブロックとなっているが、ＦＰＧＡに画像処理部の機能を組み込むことで、各ＰＣＩボードを１つのＦＰＧＡで構成することも可能である。
【００３１】
次に、ＰＣＩバスを転送される転送データのデータ構造について、図３を用いて説明する。本実施の形態では、２種類のデータ構造２０、２２が存在する。
【００３２】
データ構造２０は、転送データのサイズを示すヘッダが付与されたデータ１からデータ４からなる構造となっている。データ構造２０の場合の転送データとは、ヘッダと、データ１からデータ４までのデータを示す。また、データ１からデータ４までの４つのデータは、各ＰＣＩボードに割り当てられたデータである。本実施の形態では、データ１はＰＣＩボード１４、データ２はＰＣＩボード１６ａ、データ３はＰＣＩボード１６ｂ、データ４はＰＣＩボード１６ｃにそれぞれ割り当てられた割り当てデータとする。
【００３３】
このデータ構造２０の場合、ＰＣＩボード１６ａ、１６ｂ、１６ｃには例えばディップスイッチによって、それぞれ（１、４）、（２、４）、（３、４）といった割り当てデータを識別して取得するためのデータ取得情報が予め設定される。なお、データ取得情報の「４」は、データ処理装置に設けられたスレーブの個数３に１を加えた値である。
【００３４】
このデータ取得情報と、ヘッダに示されるサイズとから定まるサイズの割り当てデータを、ＰＣＩボード１６ａ、１６ｂ、１６ｃは取得する。
【００３５】
また、ＰＣＩボード１４は、ＰＣＩボード１６ａ、１６ｂ、１６ｃが設けられている個数である「３」がセットされる。ＰＣＩボード１４は、この個数と転送データのサイズとから定まるサイズの割り当てデータを取得する
データ構造２２は、割り当てデータ同士の境界を示す境界情報であるマークを有する構造となっている。このデータ構造２２において、転送データは、データ構造２２が示す構造を有するデータとする。
【００３６】
この転送データは、その先頭に先頭であることを示すマーク１を有し、データ４の後には終了マークを有する。このうち、先頭のマーク１を設けるかどうかは任意である。これは、ＰＣＩボード１４の場合は、転送が開始されたデータの先頭からデータを取得すれば良いためである。
【００３７】
マークは、マーク同士が重複しないものであれば良い。従って例えば、マーク１は0x01、マーク２は0x02、マーク３は0x03、マーク４は0x04、終了マークは0xffとしても良い。
【００３８】
この場合、データ取得情報として、ＰＣＩボード１６には、0x01、0x02、及び0xffが設定される。ＰＣＩボード１６ａには、0x02と0x03が設定される。ＰＣＩボード１６ｂには、0x03と0x04が設定される。ＰＣＩボード１６ｃには、0x04と0xffが設定される。ここで設定される値は、後述する図６、７のフローチャートで説明される処理で用いられる。
【００３９】
各ＰＣＩボードは、取得するデータの先頭を示す境界情報の検出された後にデータの取得を開始し、データ取得情報により定まると共に取得するデータの最後を示す境界情報を検出するまでデータを取得する。例えばＰＣＩボード１６ａは、境界情報0x02を検出するとデータの取得を開始し、境界情報0x03を検出するまでデータを取得する。
【００４０】
以下、上述した２つのデータ構造を用いた場合のＰＣＩボードでの処理を説明する。図４と図５は、データ構造２０を用いた場合の処理を示すもので、図４はバスマスタＤＭＡ機能を有するＰＣＩボード１４の処理を示し、図５は、ＰＣＩボード１６ａ、１６ｂ、１６ｃの処理を示している。
【００４１】
図４のフローチャートを説明する。ステップＳ１０１で、ホストＣＰＵからシステムメモリ上の転送元アドレスがセットされる。その後、ステップＳ１０２で、ＤＭＡスタートビットを検出すると、転送しているデータを取得していく。ステップＳ１０３で、ヘッダ情報を取得したかどうかを判断し、ヘッダ情報を取得すると、ステップＳ１０４で転送データのサイズＬを取得する。
【００４２】
ステップＳ１０５で、割り当てデータの取得を開始し、ステップＳ１０６で、１／４Ｌ分のデータを取得したかどうか判断し、１／４Ｌ分のデータを取得すると、ステップＳ１０７で、割り当てデータの取得を終了するが、データの転送は続けられる。ここで、分母の「４」は、データ処理装置に設けられたＰＣＩボード１６ａ、１６ｂ、１６ｃの個数である３に１を加えた値である。１／４Ｌは、この「４」で転送データのサイズＬを除算した商により定まる。従って割り当てデータのサイズは１／４Ｌである。
【００４３】
ステップＳ１０８で、転送データの転送が終了したか判断し、転送が終了した場合、ステップＳ１０９で、ホストＣＰＵに転送終了割り込み信号を出力する。
【００４４】
次に、スレーブＮの処理を、図５のフローチャートを用いて説明する。ここで、スレーブＮとは、Ｎ番目のスレーブを意味し、本実施の形態では、１番目のスレーブはＰＣＩボード１６ａであり、２番目のスレーブはＰＣＩボード１６ｂであり、３番目のスレーブはＰＣＩボード１６ｃである。
【００４５】
これらのＰＣＩボードは、上述したようにそれぞれ設定された（１、４）、（２、４）、（３、４）というデータ取得情報を有する。
【００４６】
ＰＣＩバスのバスサイクルを監視しているＰＣＩボード１６ａ、１６ｂ、１６ｃは、ステップＳ２０１で、ヘッダ情報を取得したかどうかを判断し、ヘッダ情報を取得すると、ステップＳ２０２で転送データのサイズＬを取得する。その後、ステップＳ２０３で、先頭からＮ／４Ｌ分のデータ転送が終了したかどうかを判断し、Ｎ／４Ｌ分のデータ転送が終了すると、ステップＳ２０４で割り当てデータの取得を開始する。ここでのＮ／４Ｌがデータ取得情報により定まるサイズである。
【００４７】
ステップＳ２０５で、１／４Ｌ分のデータを取得したかどうか判断し、１／４Ｌ分のデータを取得すると、ステップＳ２０６で、割り当てデータの取得を終了する。
【００４８】
以上のようにスレーブＮは、転送データの転送開始から、転送データのサイズＬ及びデータ取得情報（Ｎ、４）により定まるサイズ（Ｎ／４Ｌ）のデータが転送された後に、転送データのサイズＬ及び前記スレーブデータ取得手段の個数３に１を加えた値４により定まるサイズ（１／４Ｌ）のデータを割り当てデータとして取得する
次に、データ構造２２を用いた場合の処理について説明する。図６はバスマスタＤＭＡ機能を有するＰＣＩボード１４の処理を示し、図７は、ＰＣＩボード１６ａ、１６ｂ、１６ｃの処理を示している。以下の説明において、各ＰＣＩボードは、上述したデータ取得情報（0x01、0x02、0x03、0x04、0xff）を設定されているものとする。
【００４９】
図７のフローチャートを説明する。ステップＳ３０１で、ホストＣＰＵからシステムメモリ上の転送元アドレスがセットされる。その後、ステップＳ３０２で、ＤＭＡスタートビットを検出すると、転送しているデータを取得していく。ステップＳ３０３で、マーク１（0x01）を検出したかどうかを判断し、マーク１を検出すると、ステップＳ３０４で割り当てデータの取得を開始する。
【００５０】
その後、ステップＳ３０５で、マーク２（0x02）を検出したかどうか判断し、マーク２を検出すると、ステップＳ３０６で、割り当てデータの取得を終了するが、データの転送は続けられる。
【００５１】
ステップＳ３０７で、終了マーク（0xff）を検出したか判断し、終了マークを検出すると、ステップＳ３０８で、ホストＣＰＵに転送終了割り込みを通知する。
【００５２】
次に、スレーブＮの処理を、図７のフローチャートを用いて説明する。スレーブＮの定義は図５と同様である。また、マーク（２）は0x02であり、マーク（３）は0x03であり、マーク（４）は0x04であり、マーク（５）と終了マークは、0xffである。
【００５３】
ステップＳ４０１で、マーク（Ｎ＋１）を検出したかどうかを判断し、マーク（Ｎ＋１）を検出すると、ステップＳ４０２で割り当てデータの取得を開始する。その後、ステップＳ４０３で、マーク（Ｎ＋２）または終了マークを検出したかどうかを判断し、マーク（Ｎ＋２）または終了マークを検出すると、ステップＳ４０４で、割り当てデータの取得を終了する。
【００５４】
以上説明したフローチャートに示されるように、ホストＣＰＵは、バスマスタＤＭＡ機能を有するＰＣＩボード１４のみにＤＭＡ転送に関する設定を行えばよいので、ＣＰＵの負荷を軽減することができる。
【図面の簡単な説明】
【００５５】
【図１】本実施の形態に係るデータ処理装置の構成を示す図である。
【図２】ＰＣＩボードの構成を示す図である。
【図３】データ構造を示す図である。
【図４】マスタ処理を示すフローチャートである（その１）。
【図５】スレーブ処理を示すフローチャートである（その１）。
【図６】マスタ処理を示すフローチャートである（その２）。
【図７】スレーブ処理を示すフローチャートである（その２）。
【符号の説明】
【００５６】
１０  ホストＣＰＵ
１２  システムメモリ
１４  ＰＣＩボード（マスタ）
１４ａ、１６ｄ  ＦＰＧＡ
１４ｂ、１６ｅ  画像処理部
１６ａ、１６ｂ、１６ｃ  ＰＣＩボード（スレーブ）
１８  バス
２０、２２  データ構造
【図１】
2007310657.tif 000003
【図２】
2007310657.tif 000004
【図３】
2007310657.tif 000005
【図４】
2007310657.tif 000006
【図５】
2007310657.tif 000007
【図６】
2007310657.tif 000008
【図７】
2007310657.tif 000009