(57)【要約】【課題】パイプラインフラッシュのための待ち時間を削減するとともに、必要とする画像処理が増えてもレジスタ等の回路規模を増大させることがない装置を提供する。【解決手段】データ処理装置は、入力制御部１０、画像処理部（Ａ）１２、画像処理部（Ｂ）１４、コンフィグ記憶部１６、再構成制御部１８、画像処理部（Ｃ）２０、出力制御部２２を備え、さらに、カウント部５０，６０、フローストップ制御部５２，６２を備える。再構成制御部１８は、カウント部５０，６０でのカウント値がそれぞれ特定の値に達した場合にデータのフローを停止して画像処理部（Ｂ）１４を再構成して処理内容を変更する。【選択図】図１
2015230619.tif 000002
【特許請求の範囲】
【請求項１】
パイプラインを構成する複数の処理回路を再構成可能回路上に順に構成し、前記複数の処理回路の中の特定の処理回路を部分的に再構成して動作させる制御を行う再構成制御手段と、
前記特定の処理回路に入力されるデータ量をカウントする第１カウント手段と、
前記特定の処理回路から出力されるデータ量をカウントする第２カウント手段と、
を備え、
前記第１カウント手段のカウント値が第１値に達し、かつ、前記第２カウント手段のカ  ウント値が第２値に達した場合に、前記特定の処理回路へのデータ入力を停止して前記  特定の処理回路を部分的に再構成する、データ処理装置。
【請求項２】
処理単位のデータ量をＸとし、前記特定の処理回路のパイプライン段数をＬＢ、前記特定の処理回路の後段の処理回路のパイプライン段数をＬＣとして、
前記第１値はＸであり、
前記第２値はＸ−ＬＣ＋ＬＢ
である、請求項１に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置に関する。
【背景技術】
【０００２】
特許文献１には、パイプライン方式を用いた画像処理等においてもパイプラインフラッシュのための待ち時間を不要とする、画像処理装置における設定データ変更装置が記載されている。この装置では、画像処理内容を設定するための設定データを格納した設定データ格納手段と、設定データに基づき入力された画像データに対して画像処理を施す画像処理部を備え、設定データ格納手段は、複数の異なる設定データを格納した複数のレジスタによって多重構造をなし、必要とする画像処理に応じた設定データを格納したレジスタを指示する選択信号を出力する選択信号出力手段と、選択信号に基づき複数のレジスタを選択する選択手段を備えている。
【０００３】
ここで、パイプラインフラッシュとは、パイプライン方式では、画像データがパイプラインの中で処理を行っている最中にレジスタを更新すると画像データが破壊される不都合が生じるため、レジスタを更新する場合にはパイプライン内に存在する画像データがパイプラインを構成する全てのステージを通過するのを待つ必要があるところ、パイプライン内に画像データが存在しなくなることをいう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−３１９８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の異なる設定データを格納した複数のレジスタによって多重構造をなし、必要とする画像処理に応じた設定データを格納したレジスタを選択する構成では、パイプラインフラッシュのための待ち時間を抑制し得るものの、必要とする画像処理が増えればこれに応じて複数のレジスタの数も増大し、回路規模及びコストが肥大化する問題がある。
【０００６】
本発明の目的は、パイプラインフラッシュのための待ち時間を削減するとともに、必要とする画像処理が増えてもレジスタ等の回路規模を増大させることがない装置を提供することにある。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、パイプラインを構成する複数の処理回路を再構成可能回路上に順に構成し、前記複数の処理回路の中の特定の処理回路を部分的に再構成して動作させる制御を行う再構成制御手段と、前記特定の処理回路に入力されるデータ量をカウントする第１カウント手段と、前記特定の処理回路から出力されるデータ量をカウントする第２カウント手段とを備え、前記第１カウント手段のカウント値が第１値に達し、かつ、前記第２カウント手段のカウント値が第２値に達した場合に、前記特定の処理回路へのデータ入力を停止して前記特定の処理回路を部分的に再構成する、データ処理装置である。
【０００８】
請求項２に記載の発明は、処理単位のデータ量をＸとし、前記特定の処理回路のパイプライン段数をＬＢ、前記特定の処理回路の後段の処理回路のパイプライン段数をＬＣとして、
前記第１値はＸであり、
前記第２値はＸ−ＬＣ＋ＬＢ
である、請求項１に記載のデータ処理装置である。
【発明の効果】
【０００９】
請求項１に記載の発明によれば、パイプラインフラッシュのための待ち時間を削減し、かつ、回路規模を増大させることがない。
【００１０】
請求項２に記載の発明によれば、さらに、データを破壊することなく特定の処理回路を再構成できる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の構成ブロック図である。
【図２】実施形態の処理フローチャートである。
【図３】実施形態の模式的説明図（その１）である。
【図４】実施形態の模式的説明図（その２）である。
【図５】実施形態のタイミングチャートである。
【図６】参考例の構成図である。
【図７】参考例のタイミングチャートである。
【図８】参考例の構成図である。
【図９】参考例のタイミングチャートである。
【図１０】他の実施形態のモジュール構成図である。
【図１１】他の実施形態の構成ブロック図である。
【図１２】さらに他の実施形態の構成ブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づき本発明の実施形態について、印刷データを処理する場合を例にとり説明する。
【００１３】
図１は、本実施形態におけるデータ処理装置の構成ブロック図を示す。データ処理装置は、基本構成として入力制御部１０、画像処理部（Ａ）１２、画像処理部（Ｂ）１４、コンフィグレーション（以下、「コンフィグ」と略称する）記憶部１６、再構成制御部１８、画像処理部（Ｃ）２０、出力制御部２２を備える。また、データ処理装置は、これらに加えて、さらに、カウント部５０，６０、フローストップ制御部５２，６２を備える。
【００１４】
入力制御部１０は、外部から供給された印刷データを入力し、画像処理部（Ａ）１２に出力する。印刷データの一例は、ページ記述言語（ＰＤＬ）から変換された中間形式データである。中間形式データの一例は、画像を構成する要素である各オブジェクトを矩形に区切った集まりで表現する形式であるが、これに限定されるものではない。
【００１５】
画像処理部（Ａ）１２、画像処理部（Ｂ）１４、画像処理部（Ｃ）２０は、一連のパイプライン処理を実行する処理（機能）ブロックであり、内部の論理回路構成を再構成可能なＰＬＤ(Programmable Logic Device)やＦＰＧＡ(Field Programmable Gate Array)等の再構成可能回路（プログラマブル論理回路とも呼ばれる）で構成され、特に、内部の論理回路構成を高速に（１クロックサイクルで）再構成可能な動的再構成可能プロセッサ（ＤＲＰ：Dynamically Reconfigurable Processor）で構成される。印刷データは、ＤＲＰの内部にコンフィグデータに従って構成されたパイプラインをなす一連の処理回路である画像処理部（Ａ）１２、画像処理部（Ｂ）１４、画像処理部（Ｃ）２０によって順に処理される。
【００１６】
コンフィグ記憶部１６は、ＤＲＰに与えて再構成するための各種コンフィグデータを記憶する。図では、コンフィグ記憶部１６に記憶されるコンフィグデータとして、一連のパイプラインのうち画像処理部（Ｂ）１４を部分的に再構成するためのコンフィグデータＢ１、Ｂ２、Ｂ３が例示されており、このうちコンフィグデータＢ１が与えられて画像処理部（Ｂ）１４を構成している状態を示す。コンフィグデータの数に制限はなく、一般に、Ｂ１，Ｂ２，Ｂ３，・・・，Ｂｍを記憶し得る。画像処理部（Ａ）１２及び画像処理部（Ｃ）２０は、コンフィグデータが固定であって再構成されない。すなわち、画像処理部（Ａ）１２及び画像処理部（Ｃ）２０は、全ての処理において共通する共通処理部である。コンフィグ記憶部１６は、ＤＲＰ回路内部に存在する必要はなく、回路外部に存在してもよい。
【００１７】
再構成制御部１８は、コンフィグ記憶部１６に記憶されたコンフィグデータのうち、ＤＲＰにコンフィグデータを与えて論理回路構成を再構成する。再構成制御部１８は、フローストップ制御部５２，６２からのタイミング信号を用いて再構成するタイミングを制御する。
【００１８】
カウント部（第１カウント手段）５０及びフローストップ制御部５２は、画像処理部（Ａ）１２と画像処理部（Ｂ）１４の間に設けられる。カウント部５０は、画像処理部（Ａ）１２で処理されたデータ量、言い換えれば画像処理部（Ｂ）１４に入力されるデータ量をカウントし、カウントしたデータ量が所定のデータ量（第１値）に達した場合にカウントアップ信号をフローストップ制御部５２に出力する。すなわち、カウント部５０は、所定の１処理単位、例えば１ライン、あるいは１ブロック、あるいは１ページの入力データ量をＸとすると、カウント値ｎ１がＸに達した場合にカウントアップ信号を出力する。以下では、例示として、１ラインを所定の１処理単位とする。
【００１９】
フローストップ制御部５２は、ＦＩＦＯメモリ等のバッファメモリで構成され、カウント部５０からのカウントアップ信号が供給されない限り、画像処理部（Ａ）１２で処理されたデータを画像処理部（Ｂ）１４に出力するが、カウント部５０からのカウントアップ信号が供給されると、入力されたデータを画像処理部（Ｂ）１４に出力せずに保持する（フローストップ）。フローストップ制御部５２は、カウント部５０からのカウントアップ信号に応じてデータを出力せずに保持した場合、タイミング信号を再構成制御部１８に出力する。
【００２０】
カウント部(第２カウント手段)６０及びフローストップ制御部６２は、画像処理部（Ｃ）２０と出力制御部２２の間に設けられる。カウント部６０は、画像処理部（Ｃ）２０で処理されたデータ量、言い換えれば画像処理部（Ｂ）１４から出力されたデータ量をカウントし、カウント値ｎ２が所定のデータ量(第２値)に達した場合にカウントアップ信号をフローストップ制御部６２に出力する。具体的には、カウント部６０は、画像処理部（Ｂ）１４のパイプライン段数をＬＢ、画像処理部（Ｃ）２０のパイプライン段数をＬＣとして、カウントしたデータ量がＸ−ＬＣ＋ＬＢに達した場合にカウントアップ信号を出力する。
【００２１】
フローストップ制御部６２は、ＦＩＦＯメモリ等のバッファメモリで構成され、カウント部６０からのカウントアップ信号が供給されない限り、画像処理部（Ｃ）２０で処理されたデータを出力制御部２２に出力するが、カウント部６０からのカウントアップ信号が供給されると、入力されたデータを出力制御部２２に出力せずに保持する（フローストップ）。フローストップ制御部６２は、カウント部６０からのカウントアップ信号に応じてデータを出力せずに保持した場合、タイミング信号を再構成制御部１８に出力する。
【００２２】
再構成制御部１８は、フローストップ制御部５２，６２からのタイミング信号に応じて画像処理部（Ｂ）１４のコンフィグデータをコンフィグデータＢ１から他のコンフィグデータ、例えばコンフィグデータＢ２に更新してＤＲＰを再構成する。再構成制御部１８は、フローストップ制御部５２からのタイミング信号、及びフローストップ制御部６２からのタイミング信号がともに供給されることでコンフィグデータを更新する。フローストップ制御部５２からのタイミング信号は、カウント部５０のカウント値ｎ１が１処理単位のデータ量Ｘに達したタイミングで出力される。また、フローストップ制御部６２からのタイミング信号は、カウント部６０のカウント値ｎ２がＸ−ＬＣ＋ＬＢに達したタイミングで出力される。従って、再構成制御部１８は、
ｎ１＝Ｘ                  ・・・（１）
かつ、
ｎ２＝Ｘ−ＬＣ＋ＬＢ      ・・・（２）
の２つの条件が満たされた場合に、画像処理部（Ｂ）１４の処理内容をコンフィグデータＢ１からコンフィグデータＢ２に更新するといえる。
【００２３】
条件（１）は、１処理単位のデータ量Ｘが全て画像処理部（Ａ）１２で処理されたことを意味する。処理単位を１ラインとすると、１ラインを構成する全てのデータが画像処理部（Ａ）１２で処理されたことを意味する。
【００２４】
条件（２）は、１処理単位のデータ量Ｘが画像処理部（Ｂ）１４に残存していないことを意味する。処理単位を１ラインとすると、１ラインを構成する全てのデータが画像処理部（Ｂ）１４で処理されたことを意味する。但し、１ラインを構成する全てのデータが画像処理部（Ｃ）で処理されたことを意味するものではなく、一部が画像処理部（Ｃ）２０に残存していてもよい。
【００２５】
従って、条件（１）及び条件（２）を満たす場合にコンフィグデータをＢ１からＢ２に変更するということは、１処理単位のデータに対し、画像処理部（Ａ）１２での処理Ａが完了し、かつ、画像処理部（Ｂ）１４での処理が完了しているタイミングにおいて、画像処理部（Ｂ）１４の処理内容を変更することを意味する。画像処理部（Ｂ）１４での処理が完了していれば、画像処理部（Ｂ）１４のコンフィグデータを変更して再構成しても、データを破壊することはない。なお、条件（２）だけでなく条件（１）も併用して用いるのは、画像処理部（Ａ）１２，画像処理部（Ｂ）１４，画像処理部（Ｃ）２０は非同期で動作しており、仮にカウント部５０のカウント値を用いて画像処理部（Ａ）１２での処理を停止しないと、たとえ画像処理部（Ｃ）２０での処理を停止しても画像処理部（Ａ）１２で処理済みのデータを画像処理部（Ｂ）１４に出力してしまい、画像処理部（Ｂ）１４を再構成するとデータが破壊されてしまうからである。
【００２６】
ここで、条件（２）におけるＬＢは画像処理部（Ｂ）１４のパイプライン段数であり、コンフィグデータに応じて変化し得ることから、コンフィグデータＢｍを与えた場合の画像処理部（Ｂｍ）１４のパイプライン段数をＬＢｍとすると、条件（２）は、
ｎ２＝Ｘ−ＬＣ＋ＬＢｍ
と表現し得る。勿論、処理Ｂ１，Ｂ２，Ｂ３，・・・，Ｂｍのパイプライン段数が全て同一であれば、これらをＬＢとして共通化できる。
【００２７】
本実施形態では、必要とする画像処理が増えてもこれに応じてレジスタの数を増大させる必要がなく、単にカウント部（カウンタ）を２個、バッファメモリを２個追加するだけでよく、回路規模の肥大化が抑制される。具体的には、図１に示す構成は、ＣＰＵコア、ＤＲＰコア、内部バッファ、メモリコントローラ及び周辺回路を含むＣＰＵ・ＤＲＰ混載チップと外部メモリで構成し得る。画像処理部（Ａ）１２、画像処理部（Ｂ）１４、画像処理部（Ｃ）２０の各処理は、例えば中間形式データに対するフィルタ処理、ラスタライズ処理、カラーマッチング処理、データ圧縮処理等であるが、これらに限定されない。ＤＲＰコアは公知であり、簡単に説明すると、論理回路を構成するための複数の回路要素（ＰＥ：プロセッサエレメント）とこれらＰＥ間の接続を構成するための配線リソースを備え、ＰＥの設定やＰＥ間の接続を変更することで種々の構成の論理回路として動作する。コンフィグ記憶部１６に記憶された複数のコンフィグデータのうちのいずれかが有効（アクティブ）とされることで、そのコンフィグデータに従ってＰＥの設定やＰＥ間の配線の組み替えが行われ、所望の処理回路が構成される。
【００２８】
次に、本実施形態の処理をより詳細に説明する。
図２は、本実施形態の処理フローチャートを示す。まず、処理単位毎の識別番号Ｎを１に初期化し（Ｓ１０１）、１処理単位のデータ量ＸをＸ１、Ｘ２、・・・等と設定する（Ｓ１０２）。処理単位をライン毎とすると、識別番号Ｎはライン番号を意味し、Ｎ＝１は１ライン目、識別番号Ｎ＝２は２ライン目を意味する。Ｘ１は１ライン目のデータ量であり、Ｘ２は２ライン目のデータ量である。
【００２９】
次に、入力制御部１０は、１ライン目のデータを入力する。画像処理部（Ａ）１２は、入力されたデータに対して処理Ａを施す（Ｓ１０３）。
【００３０】
カウント部５０は、処理Ａが施されたデータを順次カウントしていく。すなわち、カウント値をｎ１として、ｎ１＝ｎ１＋１によりデータが通過する毎にカウント値ｎ１を１ずつインクリメントしていく（Ｓ１０４）。
【００３１】
カウント値ｎ１が未だ所定のデータ量Ｘ（＝Ｘ１）に達していない場合（Ｓ１０５でＮＯ）、識別番号Ｎを確認し（Ｓ１０６）、識別番号Ｎに応じた処理Ｂ１、Ｂ２、・・・Ｂｍを施す。すなわち、ライン毎に画像処理部（Ｂ）１４の部分を再構成し、１ライン目のデータに対して処理Ｂ１を施し、２ライン目のデータに対して処理Ｂ２を施し、ｍライン目のデータに対して処理Ｂｍを施す。Ｎ＝１の場合、コンフィグ記憶部１６に記憶されたコンフィグデータＢ１が画像処理部（Ｂ）１４に与えられ、画像処理部（Ｂ）１４で処理Ｂ１を施す。
【００３２】
処理Ｂ１を施した後、続いて画像処理部（Ｃ）２０で処理Ｃを施す（Ｓ１０８）。これにより、処理Ａ、処理Ｂ１、処理Ｃの一連のパイプライン処理が施される。
【００３３】
カウント部６０は、処理Ｃが施されたデータを順次カウントしていく。すなわち、カウント値をｎ２として、ｎ２＝ｎ２＋１により、データが通過する毎にｎ２を１ずつインクリメントしていく（Ｓ１０９）。
【００３４】
カウント値ｎ２が未だ所定のデータ量Ｘ−ＬＣ＋ＬＢ（＝Ｘ１−ＬＣ＋ＬＢ１）に達していない場合、Ｓ１０２〜Ｓ１０９の処理を繰り返し実行する。これにより、１ライン目のデータに対して順次処理Ａ，処理Ｂ１、処理Ｃが施されて出力される。
【００３５】
そして、カウント部５０のカウント値ｎ１が所定のデータ量Ｘ（＝Ｘ１）に達すると（Ｓ１０５でＹＥＳと判定）、カウント部５０は、カウントアップ信号をフローストップ制御部５２に出力する。フローストップ制御部５２は、画像処理部（Ａ）１２での処理Ａを停止し（Ｓ１１１）、画像処理部（Ｂ）１４へのデータ出力を停止する。また、タイミング信号を再構成制御部１８に出力する。再構成制御部１８は、このタイミング信号によって１ライン目を構成する全てのデータに対して処理Ａが施されたことを検知できる。
【００３６】
他方、カウント部６０でのカウント値ｎ２が所定のデータ量Ｘ−ＬＣ＋ＬＢ（＝Ｘ１−ＬＣ＋ＬＢ１）に達すると（Ｓ１１０でＹＥＳ）、カウント部６０は、カウントアップ信号をフローストップ制御部６２に出力する。フローストップ制御部６２は、画像処理部（Ｃ）２０での処理Ｃを停止するとともに画像処理部（Ｂ）１４での処理を停止する（Ｓ１１２）。また、タイミング信号を再構成制御部１８に出力する。再構成制御部１８は、このタイミング信号によって１ライン目を構成する全てのデータに対して処理Ｂ１が施されたことを検知できる。
【００３７】
再構成制御部１８は、フローストップ制御部５２からのタイミング信号、及びフローストップ制御部６２からのタイミング信号を用いて、条件（１）及び条件（２）が満たされているか否かを判定する（Ｓ１１３）。
【００３８】
両条件が満たされていない場合（Ｓ１１３でＮＯ）、再構成制御部１８は、画像処理部（Ｂ）１４のコンフィグデータを変更しない。他方、両条件が満たされている場合（Ｓ１１３でＹＥＳ）、再構成制御部１８は、画像処理部（Ｂ）１４のコンフィグデータを変更する（Ｓ１１４）。現在のコンフィグデータがＢ１であれば、これをＢ２に切り替える。これにより、画像処理部（Ｂ１）１４は、その処理内容が処理Ｂ１から処理Ｂ２に切り替わる。要するに、再構成制御部１８は、１ライン目のデータの全てが画像処理部（Ａ）１２での処理Ａを完了し、かつ、１ライン目のデータの全てが画像処理部（Ｂ）１４での処理Ｂ１を完了したタイミングで画像処理部（Ｂ）１４を再構成する。このとき、１ライン目のデータの全てが必ずしも出力制御部２２から出力されているわけではなく、その一部が未だ画像処理部（Ｃ）２０での処理Ｃを終えていないこともあり得る。
【００３９】
コンフィグデータを変更した後、再構成制御部１８は、カウント部５０のカウント値ｎ１、及びカウント部６０のカウント値ｎ２をそれぞれ０にリセットし、フローストップ制御部５２及びフローストップ制御部６２でのフローストップを解除する（Ｓ１１５）。
【００４０】
画像処理部（Ｂ）１４を再構成してフローストップを解除すると、再びＳ１０３以降の処理を繰り返す。但し、識別番号Ｎを１だけインクリメントしてＮ＝２とし、２ライン目のデータに対して処理を施す。すなわち、２ライン目のデータに対して画像処理部（Ａ）１２で処理Ａを施し、カウント部５０でデータをカウントする。また、２ライン目のデータに対して画像処理部（Ｂ）１４で処理Ｂ２を施し、カウント部６０でデータをカウントする。
【００４１】
カウント部５０のカウント値ｎ１が所定の値Ｘ（＝Ｘ２）に達すると、カウント部５０は、カウントアップ信号を出力する。フローストップ制御部５２は、これに応じて画像処理部（Ａ）１２の処理を停止する。カウント部６０のカウント値ｎ２が所定の値Ｘ−ＬＣ＋ＬＢ（＝Ｘ２−ＬＣ＋ＬＢ２）に達すると、カウント部６０は、カウントアップ信号を出力する。フローストップ制御部６２は、これに応じて画像処理部（Ｂ）１４及び画像処理部（Ｃ）２０の処理を停止する。
【００４２】
再構成制御部１８は、フローストップ制御部５２，６２からのタイミング信号により条件（１）及び条件（２）が満たされたか否かを判定し、両条件が満たされた場合に、画像処理部（Ｂ）１４に新たなコンフィグデータＢ３を供給して再構成する。コンフィグデータを変更した後、再構成制御部１８は、カウント部５０のカウント値ｎ１、及びカウント部６０のカウント値ｎ２をそれぞれ０にリセットし、フローストップ制御部５２及びフローストップ制御部６２でのフローストップを解除して３ライン目のデータに処理を施す。以下、同様にして、１ページを構成する全ラインのデータに処理を施し、処理済みデータを印刷機等に出力する。
【００４３】
図３及び図４は、本実施形態の処理を模式的に示す。例として、画像処理部（Ａ）１２が処理Ａ１、処理Ａ２、処理Ａ３の３つの機能段から構成され、画像処理部（Ｃ）２０が処理Ｃ１、処理Ｃ２、処理Ｃ３の３つの機能段から構成されるものとする。また、画像処理部（Ｂ）１４は、処理Ｂと処理Ｄが交互に再構成されるものとする（図１及び図２に即すれば、処理Ｂが処理Ｂ１に相当し、処理Ｄが処理Ｂ２に相当する）。
【００４４】
画像処理部（Ａ）１２、画像処理部（Ｂ）１４、画像処理部（Ｃ）２０のパイプライン段数が、それぞれＬＡ＝１５（ｃｌｋ）、ＬＢ（＝ＬＤ）＝２（ｃｌｋ）、ＬＣ＝１５（ｃｌｋ）であるとする。ここで、１５（ｃｌｋ）とは、１５クロック分で一連のパイプライン処理が完了することを意味する。
【００４５】
処理単位をライン毎とし、１ライン目を構成するデータを「１」、２ライン目を構成するデータを「２」とすると、図３に示すように、１ライン目を構成するデータ「１」が入力制御部１０から画像処理部（Ａ）１２に供給され、その後に２ライン目を構成するデータ「２」が供給される。
【００４６】
いま、１ライン分のデータ量をＸ＝１０００（ｃｌｋ）とすると、カウント部（図ではカウンタと略記する）５０は、カウント値ｎ１がＸ（＝１０００）に達した場合にカウントアップ信号を出力する。また、カウント部６０は、カウント値ｎ２がＸ−ＬＣ＋ＬＢ（＝１０００−１５＋２＝９８７）に達した場合にカウントアップ信号を出力する。
【００４７】
図４は、カウント値ｎ１がｎ１＝Ｘ（＝１０００）に達した場合を示す。カウント部５０は、カウントアップ信号をフローストップ制御部５２に出力し、画像処理部（Ａ）１２での処理をストップする。ｎ１＝Ｘ（＝１０００）に達した場合、１ライン目を構成する全てのデータ「１」が画像処理部（Ａ）１２を通過したことを意味し、２ライン目を構成するデータ「２」は、画像処理部（Ｂ）１４に供給されず保持される。カウント値ｎ２がｎ２＝Ｘ−ＬＣ＋ＬＢ（＝９８７）に達した場合には、１ライン目を構成するデータ「１」は全て画像処理部（Ｂ）１４を通過したことを意味するから、画像処理部（Ｂ）１４の処理を処理Ｂから処理Ｄに変更しても１ライン目のデータ「１」は破壊されない。また、２ライン目を構成するデータ「２」は画像処理部（Ｂ）１４の手前で保持されており、２ライン目のデータ「２」も破壊されない。カウント部５０，６０、フローストップ制御部５２，６２、及び再構成制御部１８の協働により、一連のパイプライン処理での部分的再構成が実現されていることが理解されよう。
【００４８】
なお、処理単位のデータ量Ｘによっては、カウント部６０の位置を調整する場合もあり得るが、これについては後述する。
【００４９】
図５は、本実施形態の出力タイミングチャートを示す。図において、横軸は時間ｔを示し、「１」、「２」、「３」、「４」、は、それぞれ１ライン目、２ライン目、３ライン目、４ライン目のデータを示す。また、図３及び図４と同様に、画像処理部（Ｂ）１４での処理をライン毎に処理Ｂと処理Ｄ間で交互に切り替えるものとする。すなわち、１ライン目のデータは処理Ｂ、２ライン目のデータは処理Ｄ、３ライン目のデータは処理Ｂ、４ライン目のデータは処理Ｄの如くである。
【００５０】
１ライン目のデータ「１」から画像処理部（Ａ）１２、画像処理部（Ｂ）１４、画像処理部（Ｃ）２０での処理を施し、全体のパイプライン段数Ｌに相当する時間経過後のｔ＝Ｌから処理済みデータ（１ライン目の先頭データ）を出力し始める。
【００５１】
カウント部５０のカウント値ｎ１がｎ１＝Ｘ（＝Ｘ１）に達し、かつ、カウント部６０のカウント値ｎ２がｎ２＝Ｘ−ＬＣ＋ＬＢに達すると、フローストップ制御部５２，６２が処理を停止するため、データは出力されなくなる。このとき、再構成制御部１８は、画像処理部（Ｂ）１４の処理を処理Ｂから処理Ｄに変更して再構成する。処理を処理Ｂから処理Ｄに変更して再構成するための時間をＬαとすると、このＬαの間データは出力されない。
【００５２】
再構成した後、再構成制御部１８は、フローストップ制御部５２，６２に対してフローストップ解除信号を出力し、パイプライン処理を再開する。これにより、１ライン目のデータ「１」の残りの部分、つまり画像処理部（Ｃ）２０に残存しているデータが出力し始める。１ライン目のデータ「１」が全て出力されると、続いて２ライン目のデータ「２」が出力し始める。１ライン目と２ライン目の境界に待ち時間は存在しない。
【００５３】
２ライン目のデータに対する処理が進み、カウント部５０のカウント値ｎ１がｎ１＝Ｘ（＝Ｘ２）に達し、かつ、カウント部６０のカウント値ｎ２がｎ２＝Ｘ−ＬＣ＋ＬＤ（処理Ｄに切り替わっているため、処理Ｂの段数ＬＢではなく処理Ｄの段数ＬＤを用いる）に達すると、フローストップ制御部５２，６２が処理を停止するため、データは出力されなくなる。このとき、再構成制御部１８は、画像処理部（Ｂ）１４の処理を処理Ｄから処理Ｂに再び変更して再構成する。処理を処理Ｄから処理Ｂに変更して再構成するための時間をＬαとすると、このＬαの間データは出力されない。処理を切り替えた後、再構成制御部１８は、フローストップ制御部５２，６２に対してフローストップ解除信号を出力し、パイプライン処理を再開する。これにより、２ライン目のデータ「２」の残りの部分、つまり画像処理部（Ｃ）２０に残存しているデータが出力し始める。２ライン目と３ライン目の境界にも待ち時間は存在しない。
【００５４】
図６及び図７は、参考としてＤＲＰを有しない従来のパイプライン処理及びそのタイミングチャートを示す。処理Ａ、処理Ｂ、処理Ｃを順次施して出力する。全体のパイプライン段数をＬとすると、処理（あるいは機能）を切り替える必要がない場合には、ｔ＝Ｌから１ライン目、２ライン目、３ライン目のデータが隙間なく出力される。但し、処理単位毎に処理を切り替える場合には、処理毎の回路リソースが必要となってしまう。ＤＲＰが要求される所以である。
【００５５】
図８及び図９は、参考としてＤＲＰを用いたパイプライン処理及びそのタイミングチャートを示す。処理Ａ、処理Ｂ、処理Ｃを順次施して処理するとともに、コンフィグデータを変更することで処理Ｂを処理Ｄに変更して再構成する。１ライン目のデータに処理Ｂを施し、２ライン目のデータに処理Ｄを施し、３ライン目のデータに処理Ｂを施す。全体のパイプライン段数をＬとすると、パイプラインフラッシュのための待ち時間Ｌ＋Ｌαが必要であり、各ラインの境界でＬ＋Ｌαの遅延が生じてしまう。図５に示す本実施形態のタイミングチャートと図９に示す参考例のタイミングチャートを比較すれば、本実施形態による待ち時間の削減効果は明らかである。
【００５６】
本実施形態では、図１に示すように、画像処理部（Ａ）１２、画像処理部（Ｂ）１４、画像処理部（Ｃ）２０でパイプライン処理を施してデータを出力しているが、これらのパイプライン処理を必要な数だけ直列に接続してもよい。
【００５７】
図１０は、一連のパイプライン処理を１つのモジュール１００とした例を示す。１つのモジュール１００は、処理（機能）Ｂ及び処理（機能）Ｃを備え、処理Ｂはコンフィグデータにより処理（機能）Ｄに再構成され得る。処理Ｃの後段にはカウント部（カウンタ）及びフローストップ制御部が設けられる。カウント部は、処理Ｃを施されたデータをカウントし、そのカウント値が所定値に達した場合にカウントアップ信号をフローストップ制御部に出力する。フローストップ制御部は、カウントアップ信号に応じて処理Ｂ（あるいは処理Ｄ）及び処理Ｃを停止するとともに、再構成制御部１８（図１参照）にタイミング信号を出力する。再構成制御部１８は、タイミング信号に応じて処理Ｂと処理Ｄを変更して再構成する。フローストップ制御部は、再構成した後に、処理Ｂ（あるいは処理Ｄ）及び処理Ｃを再開する。処理の停止／再開は、図中Ｓｔｏｐ／Ｇｏ信号として示される。モジュール１００におけるカウント部は、図１におけるカウント部５０，６０として機能する。
【００５８】
図１１は、３つのモジュール１００，２００，３００を直列に接続したデータ処理装置を示す。モジュール１００，２００、３００は同一構成で、処理Ｂ、処理Ｃ、カウント部、フローストップ制御部を備え、処理Ｂはコンフィグデータにより処理Ｄに再構成され得る。中間形式データはモジュール１００に入力され、モジュール１００の出力はモジュール２００の入力となり、モジュール２００の出力はモジュール３００の入力となる。各モジュール１００，２００，３００に共通にコンフィグ記憶部１６及び再構成制御部１８が設けられるが、図１では省略している。
【００５９】
モジュール１００では、入力されたデータに対して処理Ｂ及び処理Ｃを施す。カウント部では、処理Ｃを施されたデータをカウントする。モジュール１００のカウント部のカウント値ｎ１が処理単位のデータ量Ｘに達すると（ｎ１＝Ｘ）、カウントアップ信号をフローストップ制御部に出力する。フローストップ制御部は、カウントアップ信号に応じて処理Ｂ及び処理Ｃの処理をストップする。再構成制御部１８は、必要に応じてモジュール１００の処理Ｂを処理Ｄに変更して再構成する。モジュール１００の処理Ｂを変更しない場合、モジュール１００のカウント部は、実質的に図１におけるカウント部５０として機能する。
【００６０】
モジュール２００では、モジュール１００から出力されたデータに対して処理Ｂ及び処理Ｃを施す。カウント部では、処理Ｃを施されてモジュール３００に出力されるデータをカウントする。モジュール２００のカウント部のカウント値ｎ２が所定の値、すなわちｎ２＝ｎ１−ＬＣ＋ＬＢ＝Ｘ−ＬＣ＋ＬＢに達すると、カウントアップ信号をフローストップ制御部に出力する。フローストップ制御部は、カウントアップ信号に応じて処理Ｂ及び処理Ｃの処理をストップする。また、再構成制御部１８は、モジュール２００の処理Ｂを処理Ｄに切り替えて再構成する。モジュール２００のカウント部は、実質的に図１におけるカウント部６０として機能する。
【００６１】
モジュール３００では、モジュール２００から出力されたデータに対して処理Ｂ及び処理Ｃを施す。カウント部では、処理Ｃを施されて外部に出力されるデータをカウントする。モジュール３００のカウント部のカウント値ｎ３が所定の値、すなわちｎ３＝ｎ２−ＬＣ＋ＬＢ＝Ｘ−２ＬＣ＋２ＬＢに達すると、カウントアップ信号をフローストップ制御部に出力する。フローストップ制御部は、カウントアップ信号に応じて処理Ｂ及び処理Ｃの処理をストップする。また、再構成制御部１８は、モジュール３００の処理Ｂを処理Ｄに切り替えて再構成する。モジュール３００のカウント部は、実質的に図１におけるカウント部６０として機能する。
【００６２】
Ｍ個のモジュールが直列に接続され、各モジュールにおけるカウント部のカウントアップ値は、
ｎ１＝Ｘ
ｎ２＝ｎ１−ＬＣ＋ＬＢ＝Ｘ−ＬＣ＋ＬＢ
ｎ３＝ｎ２−ＬＣ＋ＬＢ＝Ｘ−２ＬＣ＋２ＬＢ
・・・
ｎｍ＝ｎｍ−１−ＬＣ＋ＬＢ＝Ｘ−（ｍ−１）ＬＣ＋（ｍ−１）ＬＢ
である。あるモジュールにおけるカウント部のカウントアップ値は、その前段のモジュールのカウントアップ値に応じて決定される点に留意されたい。
【００６３】
以上、本発明の実施形態について説明したが、本発明はこれに限定されず、種々の変更が可能である。
【００６４】
例えば、本実施形態では、図１におけるカウント部６０は、カウント値ｎ２がｎ２＝Ｘ−ＬＣ＋ＬＢに達した場合にカウントアップ信号をフローストップ制御部６２に出力してフローを停止し、画像処理部（Ｂ）１４を再構成しているが、仮に、処理単位のデータ量Ｘが小さく、Ｘ＜ＬＣである場合には、１ライン目を構成するデータ「１」のうち、その先頭データがカウント部６０でカウントされる前に画像処理部（Ｂ）１４の処理Ｂが施されることになる。従って、このような場合にはカウント部６０でのカウントは不要であり、カウント部６０を画像処理部（Ｂ）１４の後段であって画像処理部（Ｃ）２０の前段、すなわち画像処理部（Ｂ）１４と画像処理部（Ｃ）の間に配置して、画像処理部（Ｂ）１４から出力されたデータをカウントすればよい。画像処理部（Ｂ）１４から出力されたデータ量がＸに達した時点でカウントアップ信号を出力し、このタイミングで画像処理部（Ｂ）１４の処理を再構成する。このとき、再構成の条件は、    
ｎ１＝Ｘ                  
かつ、
ｎ２＝Ｘ
である。      
【００６５】
他方、Ｘ≧ＬＣである場合には、１ライン目を構成するデータ「１」の全てが画像処理部（Ｂ）１４で処理Ｂが施される前にその先頭のデータがカウント部６０でカウントされることになるので、図１のように画像処理部（Ｃ）２０の後段に配置することが望ましい。
【００６６】
従って、画像処理部（Ｃ）２０の前段及び後段にともにカウント部６０を配置し、処理単位のデータ量ＸとＬＣとの大小関係に応じて、いずれのカウント部６０でカウントするかを再構成制御部１８が制御する構成としてもよい。
【００６７】
図１２は、この場合の構成ブロック図を示す。カウント部（カウンタ）６０が、画像処理部（Ｃ）２０の前段及び後段に設けられ、それぞれ通過データをカウントする。この場合においても、カウント部５０は画像処理部（Ｂ）１４に入力されるデータをカウントする機能を有し、カウント部６０は画像処理部（Ｂ）１４から出力されるデータをカウントする機能を有することに変わりない。要約すると、次の通りである。
【００６８】
（ｉ）Ｘ＜ＬＣの場合
カウント部６０のうち、画像処理部（Ｃ）２０の前段のカウント値をｎ２として、
ｎ１＝Ｘ
かつ
ｎ２＝Ｘ
【００６９】
（ｉｉ）Ｘ≧ＬＣの場合
カウント部６０のうち、画像処理部（Ｃ）２０の後段のカウント値をｎ２として、
ｎ１＝Ｘ
かつ
ｎ２＝Ｘ−ＬＣ＋ＬＢ
【００７０】
また、本実施形態では、図１におけるカウント部５０がカウントアップ信号をフローストップ制御部５２に出力し、フローストップ制御部５２がタイミング信号を再構成制御部１８に出力する構成であるが、カウント部５０がカウントアップ信号をフローストップ制御部５２及び再構成制御部１８に出力し、再構成制御部１８は、このカウントアップ信号をタイミング信号として処理し、条件（１）が満たされているか否かを判定してもよい。カウント部６０についても同様である。
【００７１】
また、本実施形態では、処理単位としてライン毎を例示したが、ブロック毎、あるいはページ毎であってもよい。
【００７２】
また、本実施形態において、フローストップ制御部５２，６２にデータを書き込むためのライトイネーブル生成部を設け、ライトイネーブル生成部からライトイネーブル信号が出力される場合にデータを書き込む構成とし、カウント部５０，６０からのカウントアップ信号によりライトイネーブル生成部を制御することでフローの停止／再開を制御してもよい。
【００７３】
本実施形態では、図１に示すように、画像処理部（Ａ）１２、画像処理部（Ｂ）１４、画像処理部（Ｃ）２０の一連のパイプライン処理のうち、画像処理部（Ｂ）１４のみを部分的に再構成しているが、これは、ＤＲＰコア上に時系列的なパイプラインを構成する一連のコンフィグレーションを構成する際に、画像処理部（Ａ）１２及び画像処理部（Ｃ）２０のコンフィグデータを変更せずに、画像処理部（Ｂ）１４のコンフィグデータのみを変更することで実現し得る。
【符号の説明】
【００７４】
１０  入力制御部、１２  画像処理部（Ａ）、１４  画像処理部（Ｂ）、１６  コンフィグ記憶部、１８  再構成制御部、２０  画像処理部（Ｃ）、２２  出力制御部、５０，６０  カウント部、５２，６２  フローストップ制御部。
【図１】
2015230619.tif 000003
【図２】
2015230619.tif 000004
【図３】
2015230619.tif 000005
【図４】
2015230619.tif 000006
【図５】
2015230619.tif 000007
【図６】
2015230619.tif 000008
【図７】
2015230619.tif 000009
【図８】
2015230619.tif 000010
【図９】
2015230619.tif 000011
【図１０】
2015230619.tif 000012
【図１１】
2015230619.tif 000013
【図１２】
2015230619.tif 000014