(57)【要約】【課題】複数のバスマスタからのデータ転送を行う場合に、転送動作の効率の低下を抑制する情報処理装置を提供する。【解決手段】複数のバスマスタそれぞれに対し、それぞれ異なる転送用アドレスを割り当て、前記複数のバスマスタそれぞれから送信されるそれぞれのデータを、前記複数のバスマスタそれぞれに対して割り当てられた前記転送用アドレスを介して第２の集積回路チップに対して転送する。【選択図】図３
2020194230.tif 000002
【特許請求の範囲】
【請求項１】
第１の集積回路チップと第２の集積回路チップとを含む情報処理装置であって、
前記第１の集積回路チップは、
複数のバスマスタと、
前記複数のバスマスタそれぞれに対し、それぞれ異なる転送用アドレスを割り当てる割当て手段と、
前記複数のバスマスタそれぞれから送信されるそれぞれのデータを、前記複数のバスマスタそれぞれに対して前記割当て手段により割り当てられた前記転送用アドレスを介して前記第２の集積回路チップに対して転送する転送手段と、を備え、
前記複数のバスマスタのうち第１のバスマスタに対して第１の転送用アドレスが割り当てられ、前記複数のバスマスタのうち第２のバスマスタに対して第２の転送用アドレスが割り当てられた場合、前記第１のバスマスタから送信されるデータが、前記第１の転送用アドレスを介して前記第２の集積回路チップに対して転送され、前記第２のバスマスタから送信されるデータが、前記第２の転送用アドレスを介して前記第２の集積回路チップに対して転送される、
ことを特徴とする情報処理装置。
【請求項２】
前記複数のバスマスタと前記割当て手段は、前記第１の集積回路チップ内のバスに接続され、
前記複数のバスマスタは、前記第２の集積回路チップに対してデータを転送する場合、前記バスのメモリマップにおける所定の領域にアクセスし、
前記割当て手段は、前記所定の領域へのアクセスがあった場合、前記複数のバスマスタそれぞれについて定められた変換方法により前記所定の領域内のアドレスを変換し、該変換したアドレスを前記転送用アドレスとして割り当てる、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数のバスマスタそれぞれについて定められた変換方法は、前記複数のバスマスタそれぞれについて定められた設定値とのＯＲ演算であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１の集積回路チップは、前記設定値を記憶する記憶手段、をさらに備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２の集積回路チップ内のメモリマップにおいて、前記複数のバスマスタそれぞれについて、前記割当て手段により割り当てられた前記転送用アドレスと対応する所定の領域が割り当てられており、
前記第２の集積回路チップは、
前記転送手段により転送されたデータをメモリに格納する格納手段と、
前記転送用アドレスと対応する所定の領域へのアクセスがあると、該所定の領域内のアドレスを、前記メモリに割り当てられたアドレスに変換する変換手段と、を備え、
前記格納手段は、前記転送手段により転送されたデータを前記変換手段により変換されたアドレスに対して転送することにより、該データを前記メモリに格納する、
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記変換手段は、前記複数のバスマスタそれぞれについて、前記転送用アドレスと対応する所定の領域内のアドレスを前記メモリに割り当てられたアドレスに置き換えることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記第２の集積回路チップは、前記置き換え先のアドレスを記憶する記憶手段、をさらに備えることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記複数のバスマスタそれぞれは、画像データに対してバンド領域ごとに画像処理を実行する画像処理手段であることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記画像処理は、色空間変換であることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記転送手段により転送された前記データは、前記画像処理が実行されたデータであることを特徴とする請求項８又は９に記載の情報処理装置。
【請求項１１】
前記転送手段により転送された前記データに基づいて印刷を行う印刷手段、をさらに備えることを特徴とする請求項８乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記複数のバスマスタは、前記画像データのうち前記バンド領域と直交する方向に分割された、互いに異なる分割領域を処理対象とすることを特徴とする請求項８乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記第１の集積回路チップは、前記複数のバスマスタそれぞれの前記分割領域への割り当てを変更する変更手段、をさらに備え、
前記変更手段は、処理対象の前記分割領域に対する処理が終了したバスマスタを、該処理対象でなく且つ他のバスマスタによる処理が行われていない領域に割り当てる、
ことを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記複数のバスマスタは、互いに異なる色成分を処理対象とすることを特徴とする請求項８乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記複数のバスマスタに含まれるそれぞれのバスマスタが有するそれぞれの識別情報に基づいて、前記複数のバスマスタそれぞれに対し、それぞれ異なる転送用アドレスが割り当てられることを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
複数のバスマスタを含む第１の集積回路チップと第２の集積回路チップとを含む情報処理装置において実行されるデータ転送方法であって、
前記複数のバスマスタそれぞれに対し、それぞれ異なる転送用アドレスを割り当てる割当て工程と、
前記複数のバスマスタそれぞれから送信されるそれぞれのデータを、前記複数のバスマスタそれぞれに対して前記割当て工程において割り当てられた前記転送用アドレスを介して前記第２の集積回路チップに対して転送する転送工程と、を有し、
前記複数のバスマスタのうち第１のバスマスタに対して第１の転送用アドレスが割り当てられ、前記複数のバスマスタのうち第２のバスマスタに対して第２の転送用アドレスが割り当てられた場合、前記第１のバスマスタから送信されるデータが、前記第１の転送用アドレスを介して前記第２の集積回路チップに対して転送され、前記第２のバスマスタから送信されるデータが、前記第２の転送用アドレスを介して前記第２の集積回路チップに対して転送される、
ことを特徴とするデータ転送方法。
【請求項１７】
複数のバスマスタを含む第１の集積回路チップと第２の集積回路チップとを含む情報処理装置のコンピュータを、
前記複数のバスマスタそれぞれに対し、それぞれ異なる転送用アドレスを割り当てる割当て手段、
前記複数のバスマスタそれぞれから送信されるそれぞれのデータを、前記複数のバスマスタそれぞれに対して前記割当て手段により割り当てられた前記転送用アドレスを介して前記第２の集積回路チップに対して転送する転送手段、
として機能させ、
前記複数のバスマスタのうち第１のバスマスタに対して第１の転送用アドレスが割り当てられ、前記複数のバスマスタのうち第２のバスマスタに対して第２の転送用アドレスが割り当てられた場合、前記第１のバスマスタから送信されるデータが、前記第１の転送用アドレスを介して前記第２の集積回路チップに対して転送され、前記第２のバスマスタから送信されるデータが、前記第２の転送用アドレスを介して前記第２の集積回路チップに対して転送される、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路チップ間でのデータ転送を行う情報処理装置、データ転送方法およびプログラムに関する。
【背景技術】
【０００２】
従来より、メモリ空間の一部の領域を他のチップのメモリ空間に割り当ててアクセスするシステムに関し、アドレス変換を行うシステムが知られている（特許文献１）。特許文献１では、隣接チップの所望のアドレスにアクセスするための技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３３７９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、アドレス変換設定を行いながら隣接チップにデータ転送するバスマスタがチップ内基幹バスに複数存在する構成が記載されている。隣接チップへデータ転送を行うためのメモリ空間を上記複数のバスマスタで共有して並列動作する場合、他のバスマスタの処理の終了を待機しなければならない。その結果、転送動作の効率が低下してしまう。
【０００５】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、複数のバスマスタからのデータ転送を行う場合に、転送動作の効率の低下を抑制する情報処理装置、データ転送方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係る情報処理装置は、第１の集積回路チップと第２の集積回路チップとを含む情報処理装置であって、前記第１の集積回路チップは、複数のバスマスタと、前記複数のバスマスタそれぞれに対し、それぞれ異なる転送用アドレスを割り当てる割当て手段と、前記複数のバスマスタそれぞれから送信されるそれぞれのデータを、前記複数のバスマスタそれぞれに対して前記割当て手段により割り当てられた前記転送用アドレスを介して前記第２の集積回路チップに対して転送する転送手段と、を備え、前記複数のバスマスタのうち第１のバスマスタに対して第１の転送用アドレスが割り当てられ、前記複数のバスマスタのうち第２のバスマスタに対して第２の転送用アドレスが割り当てられた場合、前記第１のバスマスタから送信されるデータが、前記第１の転送用アドレスを介して前記第２の集積回路チップに対して転送され、前記第２のバスマスタから送信されるデータが、前記第２の転送用アドレスを介して前記第２の集積回路チップに対して転送されることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、複数のバスマスタからのデータ転送を行う場合に、転送動作の効率の低下を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】画像処理装置の構成を示すブロック図。
【図２】画像処理部の画像データの処理を説明するための図。
【図３】アドレス変換を行うための構成を示す図。
【図４】メモリマップを示す図。
【図５】１ページ分の画像データを示す図。
【図６】有効画素数の分布を示す図。
【図７】各画像処理部の処理の進行を説明するための図。
【図８】１ページ分の画像データを示す図。
【図９】各画像処理部の処理の進行を説明するための図。
【図１０】１ページ分の画像データを示す図。
【図１１】有効画素数の分布を示す図。
【図１２】各画像処理部の処理の進行を説明するための図。
【図１３】ＣＰＵが実行する処理を示すフローチャート。
【図１４】アドレス割り当て部、ＰＣＩｅ転送部が実行する処理を示すフローチャート。
【図１５】ＣＰＵが実行する処理を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１０】
［第１実施形態］
図１は、本実施形態における、情報処理装置１００の構成の一例を示すブロック図である。情報処理装置１００は、複数の集積回路チップ間においてデータ転送が行われる装置として説明する。つまり、そのデータの処理目的によっては、種々の装置が用いられ、例えば、本実施形態では、用紙等の記録媒体への記録を行う印刷部を有する画像処理装置１００として説明する。例えば、画像処理装置１００として、印刷部の他に、原稿画像を光学的に読み取る読取部などを含む多機能型周辺装置（ＭＦＰ：ＭｕｌｔｉＦｕｎｃｔｉｏｎａｌ  Ｐｅｒｉｐｈｅｒａｌ）が用いられても良い。また例えば、画像処理装置１００として、パーソナルコンピュータ（ＰＣ）やスマートフォン、タブレット端末、デジタルカメラ等、印刷部を有しない他の装置が用いられても良い。図１に示すように、画像処理装置１００は、外部のホストＰＣ１０１とネットワーク１０２を介して相互に通信可能である。ネットワーク１０２は、有線媒体や無線媒体で構成され、若しくはアクセスポイント等、他の装置を含む構成でも良い。また、画像処理装置１００とホストＰＣ１０１とがダイレクト接続されていても良い。また、ホストＰＣ１０１の代わりに、携帯型端末であっても良い。
【００１１】
図１は、画像処理装置１００のメインコントローラ周辺の構成を示している。第１の集積回路チップ１１０は、画像処理装置１００のメインコントローラとして機能するチップであり、画像処理装置１００を統括的に制御する。また、第１の集積回路チップ１１０は、ホスト通信部１１２を有し、ホストＰＣ１０１との通信制御や、ホストＰＣ１０１から送信される画像データの処理を行う。
【００１２】
第１の集積回路チップ１１０には、ＲＯＭ１４０とＲＡＭ１３０が接続されている。ＲＯＭ１４０は、読出し可能なメモリであり、例えば、第１の集積回路チップ１１０の制御プログラムを記憶する。ＲＡＭ１３０は、読出し／書込み可能なメモリであり、例えば、ＣＰＵ１１１がＲＯＭ１４０に記憶されている制御プログラムをＲＡＭ１３０に読み出して実行することにより、本実施形態の動作が実現される。
【００１３】
第２の集積回路チップ１５０は、画像処理装置１００のサブコントローラとして機能するチップであり、例えば、メインコントローラである第１の集積回路チップ１１０からの制御により、印刷部１７０へのデータ伝送を行う。
【００１４】
第２の集積回路チップ１５０には、ＲＡＭ１６０と印刷部１７０とが接続されている。印刷部１７０は、例えばインクジェット記録方式による記録媒体への記録が可能な構成を有しており、印刷部１７０が処理可能な形式のデータをインタフェース１８０を介して受信し、印刷を行う。第１の集積回路チップ１１０と第２の集積回路チップ１５０は、ＰＣＩ−Ｅｘｐｒｅｓｓ（以下、ＰＣＩｅバス）１９０により相互に接続されている。
【００１５】
第１の集積回路チップ１１０の内部構成を説明する。第１の集積回路チップ１１０は、ＣＰＵ１１１、ホスト通信部１１２、ＲＡＭコントローラ１１３、ＲＯＭコントローラ１１４を含む。それらのブロックは、チップ内基幹バス１２０に接続されている。ＣＰＵ１１１は、チップ内基幹バス１２０を介して、第１の集積回路チップ１１０内のデータ伝送、外部のチップとの間のデータ伝送を制御する。ＲＡＭコントローラ１１３は、ＲＡＭ１３０との間のデータ伝送を制御し、ＲＯＭコントローラ１１４は、ＲＯＭ１４０との間のデータ伝送を制御する。
【００１６】
また、第１の画像処理部１１５、第２の画像処理部１１６、第３の画像処理部１１７がチップ内基幹バス１２０に接続されている。第１〜第３の画像処理部１１５〜１１７は、印刷対象の画像データを印刷部１７０で処理可能なデータに変換するための画像処理をバンド単位で実行する。ここで、画像処理とは、例えば色空間変換であり、ＲＧＢから印刷部１７０で用いられるＣＭＹＫへの色空間変換が行われる。また、第１〜第３の画像処理部１１５〜１１７はそれぞれ、記録領域のうち異なる列分割領域を担当する。列分割領域とは、バンド領域に直交する方向での分割領域であり、図２において後述する。
【００１７】
また、ＰＣＩｅ転送部１１９は、ＰＣＩｅバス１９０を介して、他のチップ（図１では、第２の集積回路チップ１５０）との間のデータ転送を行う。アドレス割り当て部１１８は、チップ内基幹バス１２０に接続されており、ＰＣＩｅ転送部１１９とチップ内基幹バス１２０との間に位置する。本実施形態では、ＣＰＵ１１１、第１〜第３の画像処理部１１５〜１１７、アドレス割り当て部１１８は、例えばＡＸＩインターコネクトによって割り当てられるバスマスタとして動作する。アドレス割り当て部１１８は、バスマスタのマスタＩＤ（識別情報）に応じてアドレス割り当てを行い、その割当て後のアドレスをＰＣＩｅ転送部１１９に送信する。アドレス割り当ての方法については後述する。
【００１８】
第２の集積回路チップ１５０の内部構成を説明する。第２の集積回路チップ１５０は、ＰＣＩｅ転送部１５１、ＲＡＭコントローラ１５２、印刷制御部１５３を含む。それらのブロックは、チップ内基幹バス１５４に接続されている。
【００１９】
ＰＣＩｅ転送部１５１は、ＰＣＩｅバス１９０を介して、他のチップ（図１では、第１の集積回路チップ１１０）との間のデータ転送を行う。ＰＣＩｅ転送部１５１は、ＰＣＩｅバス１９０を介して受信したアドレスに対してアドレス変換を行い、チップ内基幹バス１５４にトランザクションを発生させる。アドレス変換の方法については後述する。ＲＡＭコントローラ１５２は、ＲＡＭ１６０との間のデータ伝送を制御し、印刷制御部１５３は、印刷部１７０との間のデータ伝送を制御する。
【００２０】
図１に示すシステムにおけるデータ転送の全体の流れを説明する。まず、画像処理装置１００は、ホスト通信部１１２を介して、ホストＰＣ１０１から印刷ジョブおよび画像データを受信する。第１〜第３の画像処理部１１５〜１１７は、受信した画像データに対してバンド単位で画像処理を実行する。第１〜第３の画像処理部１１５〜１１７は、画像処理を実行すると、第２の集積回路チップ１５０を介してＲＡＭ１６０へ画像処理後のデータを転送して格納する。この転送は、バンド単位で行われることになる。ＲＡＭ１６０へ転送されたデータは、印刷部１７０へ転送され、インク滴の吐出等により記録媒体への記録が行われる。上記では、画像データは、ホストＰＣ１０１から送信されるとして説明したが、画像処理装置１００がＭＦＰである場合には、内部の読取部（不図示）により原稿画像が読み取られることで取得されても良い。また例えば、画像データは、画像処理装置１００に取り付けられた外部メモリ（USBメモリや、SDカード等）から取得されても良い。
【００２１】
図２は、第１〜第３の画像処理部１１５〜１１７の画像データの処理を説明するための図である。画像データ２００は、ホストＰＣ１０１から送信された１ページ分の画像データを示している。第１〜第３の画像処理部１１５〜１１７は、画像データ２００をバンド単位で処理する。バンド領域は、図２の水平方向の点線で区切られた領域であり、バンド終了位置２４１、２４２、２４３、２４４、２４５、２４６、２４７で区切られている。
【００２２】
また、図２に示すように、画像データ２００は、垂直方向に、第１の列分割領域２１０、第２の列分割領域２２０、第３の列分割領域２３０に分割されている。第１の列分割領域２１０は、第１の画像処理部１１５の処理対象であり、第２の列分割領域２２０は、第２の画像処理部１１６の処理対象であり、第３の列分割領域２３０は、第３の画像処理部１１７の処理対象である。
【００２３】
第１〜第３の画像処理部１１５〜１１７のそれぞれは、バンド終了位置２４１〜２４７まで処理が進行すると、ＣＰＵ１１１に対して１バンド処理終了割込みを発行する。そして、ＣＰＵ１１１は、１バンド処理終了割込みを受信すると、ＰＣＩｅ転送部１５１のアドレス変換設定を変更する。その後、第１〜第３の画像処理部１１５〜１１７のそれぞれは、後続するバンドのデータ転送を行う。
【００２４】
図３は、アドレス変換を行うための構成を示す図である。図３は、アドレス割り当て部１１８、ＰＣＩｅ転送部１１９、１５１を示している。アドレス割り当て部１１８は、基幹バス通信部３１０、マスタ判別部３２０、送信用アドレス変換部３３０、レジスタ３４０を含む。基幹バス通信部３１０は、チップ内基幹バス１２０に接続されている。
【００２５】
レジスタ３４０は、送信用アドレスに対するアドレスマスクレジスタ３４１と割り当てアドレスレジスタ３４２を記憶するレジスタである。アドレスマスクレジスタ３４１と割り当てアドレスレジスタ３４２は複数用意されており、例えば、第２の集積回路チップ１５０にアクセスする第１の集積回路チップ１１０内のバスマスタ数分用意される。本実施形態では、バスマスタは、ＣＰＵ１１１、第１〜第３の画像処理部１１５〜１１７であるので、アドレスマスクレジスタ３４１と割り当てアドレスレジスタ３４２は、それぞれ４つ分用意される。
【００２６】
マスタ判別部３２０は、基幹バス通信部３１０を介して送信されるマスタＩＤから、送信アドレスに対してどのアドレスマスクレジスタ３４１と割り当てアドレスレジスタ３４２を使用するかを選択する。即ち、マスタＩＤに基づいて、上記の４つ分のレジスタから１つが選択される。
【００２７】
送信用アドレス変換部３３０は、マスタ判別部３２０により選択されたアドレスマスクレジスタ３４１の設定に基づいて、送信用アドレスの特定ビットをマスクする。そして、送信用アドレス変換部３３０は、マスクされた送信用アドレスに対して、マスタ判別部３２０により選択された割り当てレジスタ３４２の設定値をＯＲ演算することにより、送信用アドレスを変換する。送信用アドレス変換部３３０は、変換後の送信用アドレスをＰＣＩｅ転送部１１９に送信する。このように、本実施形態では、マスクとＯＲ演算による変換方法がバスマスタ分定められており、設定値は、各バスマスタについて固有に定められている。
【００２８】
ＰＣＩｅ転送部１１９は、ＰＣＩｅ送受信部３５０を含む。ＰＣＩｅ送受信部３５０は、送信用アドレス変換部３３０から変換後の送信用アドレス、基幹バス通信部３１０からデータを受信すると、ＰＣＩｅバス１９０を介して、第２の集積回路チップ１５０のＰＣＩｅ転送部１５１にアドレスおよびデータを転送する。
【００２９】
ＰＣＩｅ転送部１５１は、基幹バス通信部３６０、受信用アドレス変換部３７０、レジスタ３８０、ＰＣＩｅ送受信部３９０を含む。基幹バス通信部３６０は、チップ内基幹バス１５４に接続されている。
【００３０】
レジスタ３８０は、受信用アドレスに対する変換開始アドレスレジスタ３８１と、変換終了アドレスレジスタ３８２と、変換アドレスレジスタ３８３とを記憶するレジスタである。ＰＣＩｅ送受信部３９０は、ＰＣＩｅバス１９０を介して、ＰＣＩｅ送受信部３５０から変換後の送信用アドレス及びデータを受信する。
【００３１】
受信用アドレス変換部３７０は、ＰＣＩｅ送受信部３９０から受信した変換後の送信用アドレスが変換開始アドレスレジスタ３８１に記憶されているアドレスと、変換終了アドレスレジスタ３８２に記憶されているアドレスとで定められる範囲内であれば、予め定められたｂｉｔ数分、変換アドレスレジスタ３８３に記憶されているアドレスと置き換えを行う。
【００３２】
例えば、変換開始アドレスレジスタ３８１が０ｘＣ０００＿００００、変換終了アドレスレジスタ３８２が０ｘＣＦＦＦ＿ＦＦＦＦ、変換アドレスレジスタ３８３が０ｘＢ０００＿００００とする。さらに、上位４ｂｉｔ分の置き換えを行うと予め定められているのとする。そのようなケースにおいて、受信用アドレス変換部３７０が０ｘＣ１００＿００００のアドレスを受信すると、上記アドレスの置き換えにより、０ｘＢ１０００＿００００のアドレスに変換する。
【００３３】
受信用アドレス変換部３７０により変換されたアドレスは、基幹バス通信部３６０に送信される。基幹バス通信部３６０は、受信用アドレス変換部３７０からアドレスを受信すると、チップ内基幹バス１５４に対してトランザクションを発生させる。このように、本実施形態では、アドレス範囲と置換えによる変換方法がバスマスタ分定められており、それらの値は、各バスマスタについて固有に定められている。
【００３４】
図４は、メモリマッピングの一例と、第１の集積回路チップ１１０の各画像処理部が第２の集積回路チップ１５０へ画像データを転送する際のアクセス経路を説明するための図である。
【００３５】
メモリマップ４１０は、第１の集積回路チップ１１０内のメモリマップを示している。基幹バスメモリマップ４２０は、ＣＰＵ１１１と第１〜第３画像処理部１１５〜１１７から見た、チップ内基幹バス１２０のメモリマップである。ＰＣＩｅ転送部メモリマップ４３０は、ＰＣＩｅ転送部１１９のメモリマップである。
【００３６】
基幹バスメモリマップ４２０のメモリ領域４２１「０ｘ９０００＿００００〜０ｘ９ＦＦＦ＿ＦＦＦＦ」へ画像処理部がアクセスすると、アドレス割り当て部１１８は、上述したように、ＰＣＩｅ転送部１１９のメモリマップ４３０への転送用アドレスの割り当てを行う。例えば、第１の画像処理部１１５がメモリ領域４２１「０ｘ９０００＿００００〜０ｘ９ＦＦＦ＿ＦＦＦＦ」へアクセスを行うと、前述したアドレス割り当て方法によってＰＣＩｅ転送部メモリマップ４３０のメモリ領域「０ｘＣ０００＿００００〜０ｘＣＦＦＦ＿ＦＦＦＦ」への割り当てが行われる。第２の画像処理部１１６と、第３の画像処理部１１７と、ＣＰＵ１１１についても同様の手順で転送用アドレスの割り当てが行われる。その結果、第１の集積回路チップ１１０内のバスマスタ毎に、ＰＣＩｅ転送部１１９に送信されるアドレスは異なったものになる。このように本実施形態では、バスマスタ毎に、ＣＩｅ転送部メモリマップ４３０内の利用する領域（転送用アドレス）が異なるように制御される。ＣＩｅ転送部メモリマップ４３０内の同じ領域を複数のバスマスタが用いる形態では、当該複数のバスマスタのうち一方がアドレス変換を行いたくとも、もう一方がデータの転送が完了していない場合、当該アドレス変換が行えない。本実施形態では、複数のバスマスタがそれぞれ異なる領域を用いるため、複数のバスマスタそれぞれが任意のタイミングでアドレス変換を実行することができる。なお、本実施形態では、第１の集積回路チップ１１０内のバスマスタの全てが、それぞれ異なる転送用アドレスに割り当てられるものとしたが、この形態に限定されない。第１の集積回路チップ１１０内のバスマスタのうち少なくとも一部（２以上のバスマスタ）が、それぞれ異なる転送用アドレスに割り当てられれば良い。
【００３７】
メモリマップ４５０は、第２の集積回路チップ１５０内のメモリマップを示している。ＰＣＩｅ転送部メモリマップ４６０は、ＰＣＩｅ転送部１５１内のメモリマップであり、ＰＣＩｅ転送部１１９のアクセス先アドレスを含む。基幹バスメモリマップ４７０は、ＰＣＩｅ転送部１５１から見た、チップ内基幹バス１５４のメモリマップである。
【００３８】
ＰＣＩｅ転送部１５１がＰＣＩｅバス１９０を介してＰＣＩｅ転送部１１９からアクセスを受け付けると、受信用アドレス変換部３７０は、上述したように、アドレス変換を行う。例えば、受信用アドレス変換部３７０のレジスタ設定について、変換開始アドレスレジスタ３８１の設定値が０ｘＣ０００＿００００であり、変換終了アドレスレジスタ３８２の設定値が０ｘＣＦＦＦ＿ＦＦＦＦであり、変換アドレスレジスタ３８３の設定値が０ｘ５０００＿００００であるとする。その場合、第１の画像処理部１１５のアクセス領域「０ｘＣ０００＿００００〜０ｘＣＦＦＦ＿ＦＦＦＦ」にアクセスが発生すると、受信用アドレス変換部３７０によるアドレス変換（上記の置き換え）が行われる。その結果、第１の画像処理部１１５のアクセス先は、基幹バスメモリマップ４７０のメモリ領域「０ｘ５０００＿００００〜０ｘ５ＦＦＦ＿ＦＦＦＦ」へのアクセスに変換されることになる。
【００３９】
本実施形態では、基幹バスメモリマップ４７０の「０ｘ５０００＿００００〜０ｘ５ＦＦＦ＿ＦＦＦＦ」は、第２の集積回路チップ１５０内のＲＡＭ１６０のメモリ領域４７１へ割り当てられている。そのため、第１の画像処理部１１５からＲＡＭ領域４７１に対してアクセスを発生させたことになる。ＣＰＵ１１１、第２の画像処理部１１６、第３の画像処理部１１７からのアクセスについても、同様の方法でＲＡＭ１６０のメモリ領域４７１に対してアクセスを発生させるためのアドレス変換が行われる。
【００４０】
第１〜第３の画像処理部１１５〜１１７のそれぞれは、１バンド分の処理が終わると、ＣＰＵ１１１に対して１バンド処理終了割り込みを発生させる。ＣＰＵ１１１は、画像処理部からの１バンド処理終了割り込みを受けると、画像処理部が、ＲＡＭ１６０のメモリ領域４７１のうち、後続するバンド用のメモリ領域に書き込みを行えるように、１バンド処理が終了した画像処理部のアクセス領域に設定されているアドレス変換設定を変更する。ＣＰＵ１１１からのアドレス変換設定の変更は、例えば、前述した第１の画像処理部１１５の基幹バスメモリマップ４７０へのアクセスと同様に、ＣＰＵ１１１が、基幹バスメモリマップ４７０のメモリ領域「０ｘＢＦＦＦ＿ＦＦＦＦ〜０ｘＢ０００＿００００」（レジスタ領域）にアクセスして、変換アドレスレジスタ３８３の内容を書き換えることで行われる。
【００４１】
以下、画像データの一例としての図５を参照しながら、本実施形態の動作を説明する。図５は、１ページ分の画像データを示す図である。図５には、空白でない画像５９０と空白領域とが示されている。第１の列分割領域５１０は第１の画像処理部１１５の処理対象であり、第２の列分割領域５２０は第２の画像処理部１１６の処理対象であり、第３の列分割領域５３０は第３の画像処理部１１７の処理対象である。また、第１〜第３の画像処理部１１５〜１１７のそれぞれは、第１のバンド領域５５０、第２のバンド領域５６０、第３のバンド領域５７０のそれぞれについて処理を終了すると、ＣＰＵ１１１への割込みを発行する。割込みが発行されると、上述の手順で後続するバンドについて、ＲＡＭ１６０のメモリ領域４７１へデータを格納するよう、アドレス変換設定の切り替えが行われる。上記の処理の繰り返しにより、１ページ分の画像データ全体が処理される。
【００４２】
図６（ａ）は、図５に示す１ページ分の画像データについて、第１のバンド領域５５０において空白でない画素（以降、有効画素と呼ぶ）の数の分布を列分割領域ごとに示す図である。本実施形態では、第１〜第３画像処理部１１５〜１１７は、ＲＧＢデータからＣＭＹＫ２値データへの変換を行っているが、画素ごとに付与された属性情報やラインスキップなどのコマンド情報を用い、空白画素を検知して高速化を図っている。図５に示すように、紙面における第１のバンド領域５５０について、第１の列分割領域５１０、第２の列分割領域５２０、第３の列分割領域５３０それぞれの有効画素数は、互いに異なる。図５に示されるように、第１のバンド領域５５０では、第３の列分割領域５３０は、第２の列分割領域５２０よりも画像５９０の有効画素を多く含む。一方、第１の列分割領域５１０は、画像５９０の有効画素を含んでいない。従って、第１の列分割領域５１０、第２の列分割領域５２０、第３の列分割領域５３０の画像５９０の有効画素数の分布は、図６（ａ）に示すようになる。
【００４３】
また、第２のバンド領域５６０では、第２の列分割領域５２０は、第１及び第３の列分割領域５１０及び５３０よりも画像５９０の有効画素を多く含む。従って、第１の列分割領域５１０、第２の列分割領域５２０、第３の列分割領域５３０の画像５９０の有効画素数の分布は、図６（ｂ）に示すようになる。
【００４４】
また、第３のバンド領域５７０では、第１の列分割領域５１０は、第２の列分割領域５２０よりも画像５９０の有効画素を多く含む。一方、第３の列分割領域５３０は、画像５９０の有効画素を含んでいない。従って、第１の列分割領域５１０、第２の列分割領域５２０、第３の列分割領域５３０の画像５９０の有効画素数の分布は、図６（ｃ）に示すようになる。
【００４５】
図７は、第２の集積回路チップ１５０に第１〜第３の画像処理部１１５〜１１７がアクセスする際に、アドレス変換設定を共有していない場合の、各画像処理部の処理時間の違いを説明するための図である。ここで、アドレス変換設定を共有していないとは、前述のようにアドレス割り当て部１１８がアドレス割り当てを行うことで、各バスマスタで個別のアクセス経路とするということを意味している。
【００４６】
図７で、横軸は時間を表す。縦軸には、第１〜第３の画像処理部１１５〜１１７が処理対象とする第１の列分割領域５１０、第２の列分割領域５２０、第３の列分割領域５３０が記載されている。図７は、第１〜第３の画像処理部１１５〜１１７が、図５に示す画像データに対する画像処理を時間Ｔａで開始することを示している。なお、後述するように、実際には、各画像処理部が図７に示すバンド領域の処理を開始する時間には差が生じるが、図面上、省略している。
【００４７】
第１の画像処理部１１５は、第１のバンド領域５５０の第１の列分割領域５１０には画像５９０の有効画素が存在しないのでラインスキップを行い、時間Ｔａの直後には、ＣＰＵ１１１に１バンド処理終了割込みを発行する。そして、アドレス変換設定の変更が行われると、第１の画像処理部１１５は、第２のバンド領域５６０の処理を開始する。第１の画像処理部１１５による第２のバンド領域５６０の処理は、時間Ｔｂまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第１の画像処理部１１５は、第３のバンド領域５７０の処理を開始する。第１の画像処理部１１５による第３のバンド領域５７０の処理は、時間Ｔｄまで行われる。そして、第１の画像処理部１１５は、図５の画像データに対する画像処理を終了する。図５、図６（ｂ）、図６（ｃ）に示すような有効画素数の違いに応じて、「時間Ｔａ〜Ｔｂ  ＜  時間Ｔｂ〜Ｔｄ」の関係となる。
【００４８】
第２の画像処理部１１６は、第１のバンド領域５５０の第２の列分割領域５２０の処理を開始する。第２の画像処理部１１６による第１のバンド領域５５０の処理は、時間Ｔｂまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第２の画像処理部１１６は、第２のバンド領域５６０の処理を開始する。第２の画像処理部１１６による第２のバンド領域５６０の処理は、時間Ｔｅまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第２の画像処理部１１６は、第３のバンド領域５７０の処理を開始する。第２の画像処理部１１６による第３のバンド領域５７０の処理は、時間Ｔｆまで行われる。そして、第２の画像処理部１１６は、図５の画像データに対する画像処理を終了する。図５、図６（ａ）〜（ｃ）に示すような有効画素数の違いに応じて、「時間Ｔａ〜Ｔｂ  ≒  時間Ｔｅ〜Ｔｆ  ＜  時間Ｔｂ〜Ｔｅ」の関係となる。
【００４９】
第３の画像処理部１１７は、第１のバンド領域５５０の第３の列分割領域５３０の処理を開始する。第３の画像処理部１１７による第１のバンド領域５５０の処理は、時間Ｔｃまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第３の画像処理部１１７は、第２のバンド領域５６０の処理を開始する。第３の画像処理部１１７による第２のバンド領域５６０の処理は、時間Ｔｄまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第３の画像処理部１１７は、第３のバンド領域５７０の処理を開始する。第３の画像処理部１１７は、第３のバンド領域５７０には画像５９０の有効画素が存在しないのでラインスキップを行い、時間Ｔｄの直後には、ＣＰＵ１１１に１バンド処理終了割込みを発行する。そして、第３の画像処理部１１７は、図５の画像データに対する画像処理を終了する。図５、図６（ａ）、図６（ｂ）に示すような有効画素数の違いに応じて、「時間Ｔａ〜Ｔｃ  ＞  時間Ｔｃ〜Ｔｄ」の関係となる。
【００５０】
このように、第１〜第３の画像処理部１１５〜１１７のそれぞれは、各処理が終了次第、後続するバンド領域を処理することになる。従って、全てのバンド領域を処理する際にかかる時間は、第１の列分割領域５１０、第２の列分割領域５２０、第３の列分割領域５３０のうち最も有効画素数が大きい列分割領域を処理する画像処理部が、全バンド領域を処理する時間と等しくなる。図７の例でいえば、最も有効画素数が多い第２の列分割領域５２０が全バンド領域を処理する時間と等しくなる。その結果、集積回路チップ内の基幹バスに、他のチップに同時にアクセスするバスマスタが複数存在する場合においても、互いのアクセス終了を待機しなくて済む。
【００５１】
本実施形態では、集積回路チップを２つとして説明しているが、３つ以上の集積回路チップが直列に接続された構成でも良い。その場合、各チップ間において、本実施形態の動作を適用可能である。また、本実施形態では、集積回路チップ間のインタフェースをＰＣＩｅとしているが、集積回路チップ間でデータを送受信可能であり、メモリ上からの画像データの読み取りや画像データの書き込みが可能であれば、他のインタフェースが用いられても良い。また、本実施形態では、画像処理装置として説明を行ったが、２以上の集積回路チップが接続される他の用途の電子機器でも、本実施形態の動作は適用され得る。
【００５２】
図１３は、本実施形態の構成において、ＣＰＵ１１１が実行する処理を示すフローチャートである。以下、図１３の処理は、第１の画像処理部１１５について行われるとして説明するが、第２の画像処理部１１６、第３の画像処理部１１７についても同様に行われる。また、本実施形態では、第１〜第３の画像処理部１１５〜１１７について、図１３の処理が並列に実行される。
【００５３】
Ｓ１０１において、ＣＰＵ１１１は、第１の画像処理部１１５に対して画像処理の開始を命令する。例えば、ＣＰＵ１１１は、第１の画像処理部１１５に対して、第１バンド領域５５０の第１の列分割領域５１０の画像データの画像処理の開始を命令する。
【００５４】
Ｓ１０２において、ＣＰＵ１１１は、第１の画像処理部１１５から１バンド処理終了割込みを受信したか否かを判定する。ここで、受信していないと判定した場合には、Ｓ１０２の処理を繰り返す。１バンド処理終了割込みを受信したと判定された場合には、Ｓ１０３に進む。なお、１バンド処理終了割込みは、バンド領域内に画像の有効画素が存在する場合のみならず、有効画素が存在しない場合にも受信する。
【００５５】
Ｓ１０３において、ＣＰＵ１１１は、第１の画像処理部１１５が全てのバンド領域の処理を終了したか否かを判定する。全てのバンド領域の処理を終了していないと判定された場合には、Ｓ１０４に進み、全てのバンド領域の処理を終了したと判定された場合には、図１３の処理を終了する。例えば、図５の場合、第１のバンド領域５５０、第２のバンド領域５６０、第３のバンド領域５７０の処理が終了したと判定された場合には、全てのバンド領域の処理を終了したと判定し、図１３の処理を終了する。
【００５６】
Ｓ１０４において、ＣＰＵ１１１は、アドレス変換設定の変更を行う。例えば、Ｓ１０２で第１のバンド領域５５０の１バンド処理終了割込みを受信したと判定された場合には、基幹バスメモリマップ４７０内の第２のバンド領域５６０のメモリ領域へのアクセスが可能となるように、基幹バスメモリマップ４７０内のレジスタ領域内の変換アドレスレジスタ３８３の値を書き換える。Ｓ１０４の後、Ｓ１０１からの処理を繰り返す。
【００５７】
図１４（ａ）は、本実施形態の構成において、アドレス割り当て部１１８が実行する処理を示すフローチャートである。以下、第１の画像処理部１１５から転送対象のデータを受け付けたケースを例として説明するが、第２の画像処理部１１６、第３の画像処理部１１７についても同様である。
【００５８】
Ｓ２０１において、アドレス割り当て部１１８は、基幹バス通信部３１０により、第１の画像処理部１１５から転送対象のデータとアドレスを受信する。転送対象のデータとは、例えば、画像処理された第１のバンド領域５５０の第１の列分割領域５１０分のデータである。このときにアドレス割り当て部１１８は、バスマスタのマスタＩＤも受信する。マスタＩＤは、例えば、データの所定の位置に付加されるようにしても良い。基幹バス通信部３１０は、受信したデータをＰＣＩｅ送受信部３５０に送信し、受信したアドレスをマスタ判別部３２０に送信する。
【００５９】
Ｓ２０２において、アドレス割り当て部１１８は、マスタ判別部３２０により、マスタＩＤを識別し、Ｓ２０３において、対応するアドレスマスクレジスタ３４１及び割り当てアドレスレジスタ３４２を選択する。
【００６０】
Ｓ２０４において、アドレス割り当て部１１８は、送信用アドレス変換部３３０により、Ｓ２０４で選択されたアドレスマスクレジスタ３４１及び割り当てアドレスレジスタ３４２に基づいて、Ｓ２０１で受信したアドレスを変換する。この変換については、既に述べたとおりである。
【００６１】
Ｓ２０５において、アドレス割り当て部１１８は、ＰＣＩｅ転送部１１９のＰＣＩｅ送受信部３５０に、Ｓ２０４で変換されたアドレスを送信する。その後、図１４（ａ）の処理を終了する。
【００６２】
図１４（ｂ）は、本実施形態の構成において、ＰＣＩｅ転送部１５１が実行する処理を示すフローチャートである。以下、第１の画像処理部１１５を例として説明するが、第２の画像処理部１１６、第３の画像処理部１１７についても同様である。
【００６３】
Ｓ３０１において、ＰＣＩｅ転送部１５１は、ＰＣＩｅ送受信部３９０により、ＰＣＩｅバス１９０を介してデータとアドレスを受信する。ここで、データは、例えば、画像処理された第１のバンド領域５５０の第１の列分割領域５１０分のデータである。ＰＣＩｅ送受信部３９０は、受信したデータを基幹バス通信部３６０に送信し、受信したアドレスを受信用アドレス変換部３７０に送信する。
【００６４】
Ｓ３０２において、ＰＣＩｅ転送部１５１は、受信用アドレス変換部３７０により、ＰＣＩｅメモリマップ４６０の所定のメモリ領域へのアクセスであるか否かを判定する。ここで、所定のメモリ領域へのアクセスでないと判定された場合には、図１４（ｂ）の処理を終了する。その場合、受信したアドレスを基幹バス通信部３６０に引き渡す。一方、所定のメモリ領域へのアクセスであると判定された場合には、Ｓ３０２に進む。例えば、Ｓ３０１で受信したアドレスが、図４の変換開始アドレスレジスタ３８１の設定値と、変換終了アドレスレジスタ３８２の設定値とで規定される範囲内であれば、所定のメモリ領域へのアクセスであると判定する。
【００６５】
Ｓ３０３において、ＰＣＩｅ転送部１５１は、受信用アドレス変換部３７０により、所定のメモリ領域に対応する変換アドレスレジスタ３８３に基づいて、Ｓ３０１で受信したアドレスを変換する。この変換については、既に述べたとおりである。
【００６６】
Ｓ３０４において、ＰＣＩｅ転送部１５１は、基幹バス通信部３６０により、ＰＣＩｅ送受信部３９０から受信したデータを、受信用アドレス変換部３７０により変換されたアドレス先に転送する。その後、図１４（ｂ）の処理を終了する。
【００６７】
［第２実施形態］
以下、第２実施形態について、第１実施形態と異なる点について説明する。第１実施形態では、各画像処理部が予め割り当てられている１つの列分割領域を処理すると説明した。本実施形態では、画像処理部が予め割り当てられている列分割領域に対する処理を終了すると、他の画像処理部の処理対象の列分割領域の処理が終了していない場合に、その列分割領域の処理を代替する。
【００６８】
図８は、本実施形態における、１ページ分の画像データを示す図である。図８における第１のバンド領域８５０、第２のバンド領域８６０、第３のバンド領域８７０は、図５の第１のバンド領域５５０、第２のバンド領域５６０、第３のバンド領域５７０に対応し、図５における説明と同様である。また、図８における第１の列分割領域８１０、第２の列分割領域８２０、第３の列分割領域８３０は、図５の第１の列分割領域５１０、第２の列分割領域５２０、第３の列分割領域５３０に対応し、図５における説明と同様である。
【００６９】
図８には、空白でない画像８９０と空白領域とが示されている。図５と異なり、図８では、第１の列分割領域８１０にのみ有効画素が存在し、第２の列分割領域８２０、第３の列分割領域８３０は、空白領域であり、有効画素を含まない。
【００７０】
図９は、第２の集積回路チップ１５０に第１〜第３の画像処理部１１５〜１１７がアクセスする際に、アドレス変換設定を共有していない場合の、各画像処理部の処理時間の違いを説明するための図である。ここで、アドレス変換設定を共有していないとは、前述のようにアドレス割り当て部１１８がアドレス割り当てを行うことで、各バスマスタで個別のアクセス経路とするということを意味している。
【００７１】
図９で、横軸は時間を表す。縦軸には、第１〜第３の画像処理部１１５〜１１７が記載されている。図９は、第１〜第３の画像処理部１１５〜１１７が、図８に示す画像データに対する画像処理を時間Ｔａで開始することを示している。なお、後述するように、実際には、各画像処理部が図９に示すバンド領域の処理を開始する時間には差が生じるが、図面上、省略している。
【００７２】
第１の画像処理部１１５は、第１のバンド領域８５０の第１の列分割領域８１０の処理を開始する。第１の画像処理部１１５による第１のバンド領域８５０の処理は、時間Ｔｂまで行われる。
【００７３】
一方、第２の画像処理部１１６は、第１のバンド領域８５０の第２の列分割領域８２０には画像８９０の有効画素が存在しないのでラインスキップを行い、時間Ｔａの直後には、ＣＰＵ１１１に１バンド処理終了割込みを発行する。そして、アドレス変換設定の変更が行われると、第２の画像処理部１１６は、第２のバンド領域８６０の処理を開始する。第２の画像処理部１１６は、第２のバンド領域８６０の第２の列分割領域８２０には画像８９０の有効画素が存在しないのでラインスキップを行い、ＣＰＵ１１１に１バンド処理終了割込みを発行する。そして、アドレス変換設定の変更が行われると、第２の画像処理部１１６は、第３のバンド領域８７０の処理を開始する。第２の画像処理部１１６は、第３のバンド領域８７０の第２の列分割領域８２０には画像８９０の有効画素が存在しないのでラインスキップを行い、ＣＰＵ１１１に１バンド処理終了割込みを発行する。この時点、即ち、時間Ｔａの後すぐに（若しくは、若干の所定時間内）、第２の画像処理部１１６は、第２の列分割領域８２０に対する画像処理を終了することになる。
【００７４】
また、第３の画像処理部１１７は、第１のバンド領域８５０の第３の列分割領域８３０には画像８９０の有効画素が存在しないのでラインスキップを行い、時間Ｔａの直後には、ＣＰＵ１１１に１バンド処理終了割込みを発行する。そして、アドレス変換設定の変更が行われると、第３の画像処理部１１６は、第２のバンド領域８６０の処理を開始する。第３の画像処理部１１６は、第２のバンド領域８６０の第３の列分割領域８３０には画像８９０の有効画素が存在しないのでラインスキップを行い、ＣＰＵ１１１に１バンド処理終了割込みを発行する。そして、アドレス変換設定の変更が行われると、第３の画像処理部１１７は、第３のバンド領域８７０の処理を開始する。第３の画像処理部１１７は、第３のバンド領域８７０の第３の列分割領域８３０には画像８９０の有効画素が存在しないのでラインスキップを行い、ＣＰＵ１１１に１バンド処理終了割込みを発行する。この時点、即ち、時間Ｔａの後すぐに（若しくは、若干の所定時間内）、第３の画像処理部１１７は、第３の列分割領域８３０に対する画像処理を終了することになる。
【００７５】
即ち、第２の画像処理部１１６と第３の画像処理部１１７が画像処理を終了した時点では、第１の画像処理部１１５は、第１のバンド領域８５０の処理をまだ終了していない。そこで、本実施形態では、第２の画像処理部１１６と第３の画像処理部１１７が画像処理を終了した時点で、第１の画像処理部１１５が第１のバンド領域８５０の処理をまだ終了していないことを条件として、第２の画像処理部１１６及び第３の画像処理部１１７を第１の画像処理部１１５の処理対象の列分割領域に割り当てる。例えば、第２の画像処理部１１６が第１の列分割領域８１０の第２のバンド領域８６０に割り当てられ、第３の画像処理部１１７が第１の列分割領域８１０の第３のバンド領域８７０に割り当てられる。
【００７６】
その結果、図９に示すように、時間Ｔｂにおいて、図８の画像データの処理を完了させることができる。なお、実際には、第２の画像処理部１１６と第３の画像処理部１１７のラインスキップの処理分、時間Ｔｂより遅く処理が終了することになるが、図９では、その差分については省略している。
【００７７】
図１５は、本実施形態の構成において、ＣＰＵ１１１が実行する処理を示すフローチャートである。
【００７８】
Ｓ４０１において、ＣＰＵ１１１は、複数の画像処理部に対して画像処理の開始を命令する。例えば、ＣＰＵ１１１は、第１の画像処理部１１５に対して、第１のバンド領域８５０の第１の列分割領域８１０の画像データの画像処理の開始を命令し、第２の画像処理部１１６に対して、第１のバンド領域８５０の第２の列分割領域８２０の画像データの画像処理の開始を命令し、第３の画像処理部１１７に対して、第１のバンド領域８５０の第３の列分割領域８３０の画像データの画像処理の開始を命令する。
【００７９】
Ｓ４０２において、ＣＰＵ１１１は、所定時間の経過を待機する。これは、上述したように、第２の画像処理部１１６、第３の画像処理部１１７のラインスキップの処理分の時間を考慮するためである。
【００８０】
Ｓ４０３において、ＣＰＵ１１１は、処理対象の列分割領域に対する処理を終了している画像処理部があるか否かを判定する。例えば、上述の例のように、時間Ｔａの直後に、第２の画像処理部１１６と第３の画像処理部１１７が画像処理を終了しているのであれば、処理対象の列分割領域に対する処理を終了している画像処理部があると判定し、Ｓ４０４に進む。一方、処理対象の列分割領域に対する処理を終了している画像処理部がないと判定された場合には、図１５の処理を終了する。
【００８１】
Ｓ４０４において、ＣＰＵ１１１は、処理対象の列分割領域に対する処理を終了している画像処理部の割り当てを行う。例えば、上述の例では、ＣＰＵ１１１は、第２の画像処理部１１６を、第１の列分割領域８１０の第２のバンド領域８６０に割り当て、第３の画像処理部１１７を、第１の列分割領域８１０の第３のバンド領域８７０に割り当てる。割り当て方については、予め定めておくようにしても良い。
【００８２】
Ｓ４０５において、ＣＰＵ１１１は、割り当てた画像処理部に対して、画像処理の開始を命令する。その後、図１５の処理を終了する。
【００８３】
［第３実施形態］
以下、第３実施形態について、第１及び第２実施形態と異なる点について説明する。第１実施形態では、各画像処理部が予め割り当てられている１つの列分割領域を処理すると説明した。本実施形態では、各画像処理部が、列分割領域ではなく、画像データに含まれる色成分毎に処理を行う。
【００８４】
図１０は、本実施形態における、１ページ分の画像データを示す図である。図１０における第１のバンド領域１０５０、第２のバンド領域１０６０、第３のバンド領域１０７０は、図５の第１のバンド領域５５０、第２のバンド領域５６０、第３のバンド領域５７０に対応し、図５における説明と同じである。
【００８５】
図１０には、空白でない画像１０９０と空白領域とが示されている。図５と異なり、図１０では、画像１０９０は、上端から下端に向かうにつれて色成分の分布が変化している。また、本実施形態では、列分割領域ではなく、色成分ごとに各画像処理部の処理対象が定められている。例えば、第１の画像処理部１１５は、Ｒ成分のデータを処理対象とし、第２の画像処理部１１６は、Ｇ成分のデータを処理対象とし、第３の画像処理部１１７は、Ｂ成分のデータを処理対象とする。各画像処理部が１バンド領域の処理が終了すると、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われることは、第１実施形態と同様である。
【００８６】
図１１は、図１０に示す１ページ分の画像データについて、第１のバンド領域１０５０において空白でない画素（有効画素）の数を色成分ごとに示す図である。例えば、本実施形態では、ＲＧＢの各色成分の画素数の分布を表している。第１〜第３画像処理部１１５〜１１７は、ＲＧＢデータからＣＭＹＫ２値データへの変換を行っているが、画素ごとに付与された属性情報やラインスキップなどのコマンド情報を用いて、空白画素を検知して高速化を図っている。
【００８７】
また、各バンド領域において、ＲＧＢそれぞれの有効画素数は異なる。図１１（ａ）は、第１のバンド領域１０５０における色成分ごとの有効画素数の分布を示す図である。図１１（ａ）に示すように、第１のバンド領域１０５０においては、Ｒ成分の有効画素は含まれておらず、Ｇ成分の有効画素とＢ成分の有効画素が含まれている。なお、「Ｇ成分の有効画素数  ＜  Ｂ成分の有効画素数」の関係がある。
【００８８】
図１１（ｂ）は、第２のバンド領域１０６０における色成分ごとの有効画素数の分布を示す図である。図１１（ｂ）に示すように、第２のバンド領域１０６０においては、ＲＧＢ各色成分の有効画素が含まれている。なお、「Ｒ成分の有効画素数  ≒  Ｂ成分の有効画素数  ＜  Ｇ成分の有効画素数」の関係がある。
【００８９】
図１１（ｃ）は、第３のバンド領域１０７０における色成分ごとの有効画素数の分布を示す図である。図１１（ｃ）に示すように、第３のバンド領域１０７０においては、Ｂ成分の有効画素は含まれておらず、Ｒ成分の有効画素とＧ成分の有効画素が含まれている。なお、「Ｒ成分の有効画素数  ＞  Ｇ成分の有効画素数」の関係がある。
【００９０】
図１２は、第２の集積回路チップ１５０に第１〜第３の画像処理部１１５〜１１７がアクセスする際に、アドレス変換設定を共有していない場合の、各画像処理部の処理時間の違いを説明するための図である。ここで、アドレス変換設定を共有していないとは、前述のようにアドレス割り当て部１１８がアドレス割り当てを行うことで、各バスマスタで個別のアクセス経路とするということを意味している。
【００９１】
図１２で、横軸は時間を表す。縦軸には、第１〜第３の画像処理部１１５〜１１７が記載されている。図１２は、第１〜第３の画像処理部１１５〜１１７が、図１０に示す画像データに対する画像処理を時間Ｔａで開始することを示している。なお、後述するように、実際には、各画像処理部が図１２に示すバンド領域の処理を開始する時間には差が生じるが、図面上、省略している。
【００９２】
第１の画像処理部１１５は、第１のバンド領域１０５０にはＲ成分の有効画素が存在しないのでラインスキップを行い、時間Ｔａの直後には、ＣＰＵ１１１に１バンド処理終了割込みを発行する。そして、アドレスの変更が行われると、第１の画像処理部１１５は、第２のバンド領域１０６０の処理を開始する。第１の画像処理部１１５による第２のバンド領域１０６０の処理は、時間Ｔｂまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第１の画像処理部１１５は、第３のバンド領域１０７０の処理を開始する。第１の画像処理部１１５による第３のバンド領域１０７０の処理は、時間Ｔｄまで行われる。そして、第１の画像処理部１１５は、図１０の画像データに対する画像処理を終了する。図１１（ｂ）、図１１（ｃ）に示すようなＲ成分の有効画素数の違いに応じて、「時間Ｔａ〜Ｔｂ  ＜  時間Ｔｂ〜Ｔｄ」の関係となる。
【００９３】
第２の画像処理部１１６は、第１のバンド領域１０６０の処理を開始する。第２の画像処理部１１６による第１のバンド領域１０６０の処理は、時間Ｔｂまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第２の画像処理部１１６は、第２のバンド領域１０６０の処理を開始する。第２の画像処理部１１６による第２のバンド領域１０６０の処理は、時間Ｔｅまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第２の画像処理部１１６は、第３のバンド領域１０７０の処理を開始する。第２の画像処理部１１６による第３のバンド領域１０７０の処理は、時間Ｔｆまで行われる。そして、第２の画像処理部１１６は、図１０の画像データに対する画像処理を終了する。図１１（ａ）〜（ｃ）に示すような有効画素数の違いに応じて、「時間Ｔａ〜Ｔｂ  ≒  時間Ｔｅ〜Ｔｆ  ＜  時間Ｔｂ〜Ｔｅ」の関係となる。
【００９４】
第３の画像処理部１１７は、第１のバンド領域１０５０の処理を開始する。第３の画像処理部１１７による第１のバンド領域１０５０の処理は、時間Ｔｃまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第３の画像処理部１１７は、第２のバンド領域１０６０の処理を開始する。第３の画像処理部１１７による第２のバンド領域１０６０の処理は、時間Ｔｄまで行われる。その後、ＣＰＵ１１１に１バンド処理終了割込みを発行し、アドレス変換設定の変更が行われると、第３の画像処理部１１７は、第３のバンド領域１０７０の処理を開始する。第３の画像処理部１１７は、第３のバンド領域１０７０にはＢ成分の有効画素が存在しないのでラインスキップを行い、時間Ｔｄの直後には、ＣＰＵ１１１に１バンド処理終了割込みを発行する。そして、第３の画像処理部１１７は、図１０の画像データに対する画像処理を終了する。図１１（ａ）、図１１（ｂ）に示すような有効画素数の違いに応じて、「時間Ｔａ〜Ｔｃ  ＞  時間Ｔｃ〜Ｔｄ」の関係となる。
【００９５】
このように、第１〜第３の画像処理部１１５〜１１７のそれぞれは、各処理が終了次第、後続するバンド領域を処理することになる。従って、全てのバンド領域を処理する際にかかる時間は、ＲＧＢ各色成分のうち、最も有効画素数が多い色成分の画素を処理する画像処理部が、全バンド領域を処理する時間と等しくなる。図１２の例でいえば、Ｇ成分の有効画素を処理する第２の画像処理部１１６が全バンド領域を処理する時間と等しくなる。その結果、集積回路チップ内の基幹バスに、他のチップに同時にアクセスするバスマスタが複数存在する場合においても、互いのアクセス終了を待機しなくて済む。
【００９６】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９７】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【００９８】
１００  画像処理装置：  １０１  ＰＣ：  １１０  第１の集積回路チップ：  １１１  ＣＰＵ：  １１５  第１の画像処理部：  １１６  第２の画像処理部：  １１７  第３の画像処理部：  １１８  アドレス割り当て部：  １１９、１５１  ＰＣＩｅ転送部：  １５０  第２の集積回路チップ：  １６０  ＲＡＭ
【図１】
2020194230.tif 000003
【図２】
2020194230.tif 000004
【図３】
2020194230.tif 000005
【図４】
2020194230.tif 000006
【図５】
2020194230.tif 000007
【図６】
2020194230.tif 000008
【図７】
2020194230.tif 000009
【図８】
2020194230.tif 000010
【図９】
2020194230.tif 000011
【図１０】
2020194230.tif 000012
【図１１】
2020194230.tif 000013
【図１２】
2020194230.tif 000014
【図１３】
2020194230.tif 000015
【図１４】
2020194230.tif 000016
【図１５】
2020194230.tif 000017