(57)【特許請求の範囲】
【請求項１】
回路構成を動的に再構成可能な再構成可能回路と、
前記再構成可能回路を制御する制御手段と、
を備え、
前記制御手段は、
複数の第１処理回路と、前記複数の第１処理回路の各々にそれぞれ対応する複数の第１保持回路と、を前記再構成可能回路上に再構成する第１段階再構成制御と、
前記第１段階再構成制御により前記再構成可能回路上に再構成された前記複数の第１処理回路の各々に対してそれぞれ異なる入力データを入力して並列的に処理させ、前記複数の第１処理回路の各々から出力された処理結果データをそれぞれ対応する前記第１保持回路に入力して保持させることを、前記複数の第１保持回路のうちのいずれかに対して入力された前記処理結果データの量が当該第１保持回路の容量の上限に達するまで繰り返す第１段階処理制御と、
前記第１段階処理制御の後、前記複数の第１保持回路は残したまま、前記複数の第１処理回路に代えて複数の第２処理回路を前記再構成可能回路上に再構成する第２段階再構成制御と、
前記第２段階再構成制御により前記再構成可能回路上に再構成された前記複数の第２処理回路の各々に対し、それぞれ対応する第１保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第１保持回路に保持された前記処理結果データのすべてが前記複数の第２処理回路で処理された場合に、再び前記第１段階再構成制御に戻る第２段階処理制御と、
を繰り返し実行するデータ処理装置であって、
前記データ処理装置は、
前記第１段階処理制御において前記複数の第１保持回路の各々に対して入力された前記処理結果データの量に基づき、当該第１段階処理制御の後の前記第２段階処理制御の次に行われる前記第１段階再構成制御での前記複数の第１保持回路の各々の容量を割り当てる容量割当手段であって、前記第１段階処理制御において入力された前記処理結果データの量が多い第１保持回路ほど、より多い容量を割り当てることを特徴とする容量割当手段、を更に備え、
前記制御手段は、前記第２段階処理制御の後の前記第１段階再構成制御において、前記複数の第１保持回路の各々として、それぞれ、前記容量割当手段が割り当てた容量を持つ第１保持回路をそれぞれ再構成する、
ことを特徴とするデータ処理装置。
【請求項２】
回路構成を動的に再構成可能な再構成可能回路と、
前記再構成可能回路を制御する制御手段と、
を備え、
前記制御手段は、
複数の第１処理回路と、前記複数の第１処理回路の各々にそれぞれ対応する複数の第１保持回路と、を前記再構成可能回路上に再構成する第１段階再構成制御と、
前記第１段階再構成制御により前記再構成可能回路上に再構成された前記複数の第１処理回路の各々に対してそれぞれ異なる入力データを入力して並列的に処理させ、前記複数の第１処理回路の各々から出力された処理結果データをそれぞれ対応する前記第１保持回路に入力して保持させることを、前記複数の第１保持回路のうちのいずれかに対して入力された前記処理結果データの量が当該第１保持回路の容量の上限に達するまで繰り返す第１段階処理制御と、
ｋ＝２から（ｎ−１）まで（ｎは３以上の整数）の各ｋについて順に、
前記第（ｋ−１）段階処理制御の後、前記複数の第（ｋ−１）保持回路は残したまま、前記複数の第（ｋ−１）処理回路に代えて複数の第ｋ処理回路と、前記複数の第ｋ処理回路の各々にそれぞれ対応する複数の第ｋ保持回路と、を前記再構成可能回路上に再構成する第ｋ段階再構成制御と、
前記第ｋ段階再構成制御により前記再構成可能回路上に再構成された前記複数の第ｋ処理回路の各々に対し、それぞれ対応する第（ｋ−１）保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第ｋ処理回路の各々から出力された処理結果データをそれぞれ対応する前記第ｋ保持回路に入力して保持させ、前記複数の第（ｋ−１）保持回路に保持された前記処理結果データのすべてが前記複数の第ｋ処理回路で処理されると、第（ｋ＋１）段階再構成制御に進む第ｋ段階処理制御と、
を繰り返し実行する中間段階制御と、
第（ｎ−１）段階処理制御の後、前記複数の第（ｎ−１）保持回路は残したまま、前記複数の第（ｎ−１）処理回路に代えて複数の第ｎ処理回路を前記再構成可能回路上に再構成する第ｎ段階再構成制御と、
前記第ｎ段階再構成制御により前記再構成可能回路上に再構成された前記複数の第ｎ処理回路の各々に対し、それぞれ対応する第（ｎ−１）保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第（ｎ−１）保持回路に保持された前記処理結果データのすべてが前記複数の第ｎ処理回路で処理された場合に、再び前記第１段階再構成制御に戻る第ｎ段階処理制御と、
を繰り返し実行するデータ処理装置であって、
前記データ処理装置は、
前記第１段階処理制御において前記複数の第１保持回路の各々に対して入力された前記処理結果データの量に基づき、当該第１段階処理制御の後の前記第ｎ段階処理制御の次に行われる前記第１段階再構成制御での前記複数の第１保持回路の各々の容量を割り当てる容量割当手段であって、前記第１段階処理制御において入力された前記処理結果データの量が多い第１保持回路ほど、より多い容量を割り当てることを特徴とする容量割当手段、を更に備え、
前記制御手段は、前記第ｎ段階処理制御の後の前記第１段階再構成制御において、前記複数の第１保持回路の各々として、それぞれ、前記容量割当手段が割り当てた容量を持つ第１保持回路をそれぞれ再構成する、
ことを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関する。
【背景技術】
【０００２】
特許文献１には、画像データをバンド分割し、圧縮データが全て０の場合は、圧縮処理を省略し、終点符号のみをメモリに送る高速符号化方式が開示されている。
【０００３】
特許文献２には、画像データを周波数変換し、低周波領域を色変換することで、色変換と圧縮処理を同時に実行する装置が開示されている。
【０００４】
特許文献３に開示された装置では、符号化処理部が、入力された画像データを圧縮符号化する。符号記憶部は、この圧縮符号化後の符号とその符号化前の画像データとを関連付けて記憶する。画像判定処理部は、この記憶されている各画像データと入力画像データとの画像の同一性又は類似性を判定する。符号選択部は、この判定により両画像の同一性又は類似性がないと判定したときは入力画像データについて符号化処理部で符号化を行ない符号記憶部でその圧縮符号化後の符号とその符号化前の画像データとを関連付けて記憶し、画像の同一性又は類似性があると判定したときはその同一性又は類似性があると判定した符号記憶部で記憶されている画像データと関連付けられている符号を出力する。
【０００５】
特許文献４に開示された論理検証装置は、動的に再構成可能なＦＰＧＡと、複数のコンフィギュレーションデータを格納するコンフィギュレーションメモリと、複数のコンフィギュレーションデータを順次選択してＦＰＧＡに順次書き込む動作を複数のコンフィギュレーションデータの全てに対して実行するサイクルを複数回繰り返す第１のセレクト回路を含み、コンフィギュレーションデータによってＦＰＧＡ上に実現される論理は順次書き込む動作毎に入れ替えられる。また、この文献には、前記論理検証装置が、記憶装置と、該記憶装置と該ＦＰＧＡとの間の配線接続を自由に構成可能な配線用回路を更に含み、第１のサイクルで該ＦＰＧＡ上に実現される回路から出力される値を該配線用回路を介して該記憶装置に格納し、第２のサイクルで該ＦＰＧＡ上に実現される回路に対して該記憶装置に格納されている該値を該配線用回路を介して入力するように構成することも開示されている。また、前記記憶装置としてＦＩＦＯ(First In First Out)メモリを用いることも開示されている。
【０００６】
特許文献５には、論理回路装置は、複数の回路の各々に関する回路構成情報を記憶する回路構成情報メモリと、動作中に前記回路構成情報を用いて回路構成を再構成可能なプログラマブル論理回路と、前記各回路の処理に関する入力データ及び出力データを、前記各回路ごとに蓄積する処理データメモリと、前記処理データメモリへの前記入力又は出力データの少なくとも一方の蓄積量を前記各回路毎に監視し、これらの蓄積量がある条件を満たした場合に、前記プログラマブル論理回路の回路構成を変更する制御部とを備える。この文献には、処理データメモリとしてＦＩＦＯを用いることも開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２４５１６２号公報
【特許文献２】特開２００２−０７７６５７号公報
【特許文献３】特開２００５−０３９３１６号公報
【特許文献４】特開２００４−２００３１１号公報
【特許文献５】特開２００５−１２４１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、並列処理のための複数の同種回路を再構成可能回路上に一度に構成できない場合でも、その並列処理を可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、回路構成を動的に再構成可能な再構成可能回路と、前記再構成可能回路を制御する制御手段と、を備え、前記制御手段は、複数の第１処理回路と、前記複数の第１処理回路の各々にそれぞれ対応する複数の第１保持回路と、を前記再構成可能回路上に再構成する第１段階再構成制御と、前記第１段階再構成制御により前記再構成可能回路上に再構成された前記複数の第１処理回路の各々に対してそれぞれ異なる入力データを入力して並列的に処理させ、前記複数の第１処理回路の各々から出力された処理結果データをそれぞれ対応する前記第１保持回路に入力して保持させることを、前記複数の第１保持回路のうちのいずれかに対して入力された前記処理結果データの量が当該第１保持回路の容量の上限に達するまで繰り返す第１段階処理制御と、前記第１段階処理制御の後、前記複数の第１保持回路は残したまま、前記複数の第１処理回路に代えて複数の第２処理回路を前記再構成可能回路上に再構成する第２段階再構成制御と、前記第２段階再構成制御により前記再構成可能回路上に再構成された前記複数の第２処理回路の各々に対し、それぞれ対応する第１保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第１保持回路に保持された前記処理結果データのすべてが前記複数の第２処理回路で処理された場合に、再び前記第１段階再構成制御に戻る第２段階処理制御と、を繰り返し実行するデータ処理装置であって、前記データ処理装置は、前記第１段階処理制御において前記複数の第１保持回路の各々に対して入力された前記処理結果データの量に基づき、当該第１段階処理制御の後の前記第２段階処理制御の次に行われる前記第１段階再構成制御での前記複数の第１保持回路の各々の容量を割り当てる容量割当手段であって、前記第１段階処理制御において入力された前記処理結果データの量が多い第１保持回路ほど、より多い容量を割り当てることを特徴とする容量割当手段、を更に備え、前記制御手段は、前記第２段階処理制御の後の前記第１段階再構成制御において、前記複数の第１保持回路の各々として、それぞれ、前記容量割当手段が割り当てた容量を持つ第１保持回路をそれぞれ再構成する、ことを特徴とするデータ処理装置である。
【００１１】
請求項２に係る発明は、回路構成を動的に再構成可能な再構成可能回路と、前記再構成可能回路を制御する制御手段と、を備え、前記制御手段は、複数の第１処理回路と、前記複数の第１処理回路の各々にそれぞれ対応する複数の第１保持回路と、を前記再構成可能回路上に再構成する第１段階再構成制御と、前記第１段階再構成制御により前記再構成可能回路上に再構成された前記複数の第１処理回路の各々に対してそれぞれ異なる入力データを入力して並列的に処理させ、前記複数の第１処理回路の各々から出力された処理結果データをそれぞれ対応する前記第１保持回路に入力して保持させることを、前記複数の第１保持回路のうちのいずれかに対して入力された前記処理結果データの量が当該第１保持回路の容量の上限に達するまで繰り返す第１段階処理制御と、ｋ＝２から（ｎ−１）まで（ｎは３以上の整数）の各ｋについて順に、前記第（ｋ−１）段階処理制御の後、前記複数の第（ｋ−１）保持回路は残したまま、前記複数の第（ｋ−１）処理回路に代えて複数の第ｋ処理回路と、前記複数の第ｋ処理回路の各々にそれぞれ対応する複数の第ｋ保持回路と、を前記再構成可能回路上に再構成する第ｋ段階再構成制御と、前記第ｋ段階再構成制御により前記再構成可能回路上に再構成された前記複数の第ｋ処理回路の各々に対し、それぞれ対応する第（ｋ−１）保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第ｋ処理回路の各々から出力された処理結果データをそれぞれ対応する前記第ｋ保持回路に入力して保持させ、前記複数の第（ｋ−１）保持回路に保持された前記処理結果データのすべてが前記複数の第ｋ処理回路で処理されると、第（ｋ＋１）段階再構成制御に進む第ｋ段階処理制御と、を繰り返し実行する中間段階制御と、第（ｎ−１）段階処理制御の後、前記複数の第（ｎ−１）保持回路は残したまま、前記複数の第（ｎ−１）処理回路に代えて複数の第ｎ処理回路を前記再構成可能回路上に再構成する第ｎ段階再構成制御と、前記第ｎ段階再構成制御により前記再構成可能回路上に再構成された前記複数の第ｎ処理回路の各々に対し、それぞれ対応する第（ｎ−１）保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第（ｎ−１）保持回路に保持された前記処理結果データのすべてが前記複数の第ｎ処理回路で処理された場合に、再び前記第１段階再構成制御に戻る第ｎ段階処理制御と、を繰り返し実行するデータ処理装置であって、前記データ処理装置は、前記第１段階処理制御において前記複数の第１保持回路の各々に対して入力された前記処理結果データの量に基づき、当該第１段階処理制御の後の前記第ｎ段階処理制御の次に行われる前記第１段階再構成制御での前記複数の第１保持回路の各々の容量を割り当てる容量割当手段であって、前記第１段階処理制御において入力された前記処理結果データの量が多い第１保持回路ほど、より多い容量を割り当てることを特徴とする容量割当手段、を更に備え、前記制御手段は、前記第ｎ段階処理制御の後の前記第１段階再構成制御において、前記複数の第１保持回路の各々として、それぞれ、前記容量割当手段が割り当てた容量を持つ第１保持回路をそれぞれ再構成する、ことを特徴とするデータ処理装置である。
【発明の効果】
【００１２】
請求項１に係る発明によれば、並列処理のための複数の第１処理回路と複数の第２処理回路とを再構成可能回路上に同時に再構成できない場合でも、その並列処理を実現することができる。
【００１３】
更に、第１段階処理制御の実行期間中の複数の第１処理回路の各々のデータの出力量が均一でない場合に、再構成可能回路の再構成の発生頻度の上昇を抑制することができる。
【００１４】
請求項２に係る発明によれば、２以上のｋの各々について、並列処理のための複数の第（ｋ−１）処理回路と複数の第ｋ処理回路とを再構成可能回路上に同時に再構成できない場合でも、その並列処理を実現することができると共に、第１段階処理制御の実行期間中の複数の第１処理回路の各々のデータの出力量が均一でない場合に、再構成可能回路の再構成の発生頻度の上昇を抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態のデータ処理装置の一例を示す図である。
【図２】再構成可能回路部内に構成される第１のコンフィギュレーションＡを模式的に示す図である。
【図３】再構成可能回路部内に構成される第２のコンフィギュレーションＢを模式的に示す図である。
【図４】変形例のデータ処理装置を示す図である。
【図５】変形例における再構成制御部の処理手順の一例を示す図である。
【図６】ＦＩＦＯ容量判定部の処理手順の一例を示すフローチャートである。
【図７】ＦＩＦＯ容量判定部の処理手順の別の一例を示すフローチャートである。
【図８】第２の変形例における第１のコンフィギュレーションＡを模式的に示す図である。
【図９】第２の変形例における第２のコンフィギュレーションＢを模式的に示す図である。
【図１０】第２の変形例における第３のコンフィギュレーションＣを模式的に示す図である。
【発明を実施するための形態】
【００１６】
図１に例示するデータ処理装置は、再構成可能回路部１０、２系統のデータ入力部１２ａ及び１２ｂ、２系統のデータ出力部１４ａ及び１４ｂ、再構成制御部１６，コンフィギュレーションデータ記憶部１８及び次構成選択部２０を備える。このうち、再構成可能回路部１０は接続構成を動的に組み替え可能な回路要素群からなる回路であるが、これ以外の要素は機能的な観点での要素である。ハードウエアの観点では、このデータ処理装置は、例えば、上述の再構成可能回路部１０に加え、再構成可能回路部１０の再構成などの制御を行う汎用プロセッサと、ＲＡＭ（ランダム・アクセス・メモリ）等のメモリと、外部装置との間でのデータの入出力など入出力回路と、を備える。これらハードウエア要素のうちのいくつかが１つの集積回路上に集積されていてももちろんよい。
【００１７】
再構成可能回路部１０は、内部の論理回路構成を動的に（すなわち当該プロセッサが動作中に）再構成できる回路である。再構成可能回路部１０としては、例えば、特開２００９−３７６５号公報に紹介されているＤＮＡ（Digital Network Architecture）など、様々な既存の、又はこれから開発される回路を用いることができる。例えば、ＤＮＡは、多数の回路要素（ＰＥ：プロセッサエレメント）からなるアレイであり、それら回路要素間の接続構成をコンフィギュレーションデータに従って高速（例えば１クロックの間に）組み替え可能となっている。なお、その公報で紹介されたＤＡＰＤＮＡアーキテクチャをこの実施形態に採用した場合、再構成制御部１６及び次構成選択部２０はＤＡＰ（Digital Application Processor）と呼ばれる汎用プロセッサコアで、後述する各機能を表すプログラムを実行することにより実現される。この場合、再構成可能回路部１０と汎用プロセッサコアとは１つの動的再構成可能プロセッサ（ＤＲＰ：Dynamic Reconfigurable Processor）として提供される。もちろん、これはあくまで一例に過ぎず、他の再構成可能プロセッサアーキテクチャを用いてもよい。
【００１８】
データ入力部１２ａ及び１２ｂは、再構成可能回路部１０上に再構成された処理回路に対して入力データを供給する手段である。例えば、再構成可能回路部１０に接続されたメモリ上に確保された入力データ用のバッファ領域が、データ入力部１２ａ及び１２ｂの一例である。この場合、ホストシステム（例えばこのデータ処理装置の装着先のコンピュータのＣＰＵ）は、この実施形態のデータ処理装置にデータ処理を実行させる場合、処理対象である入力データをそれら各バッファ領域に転送し、再構成制御部１６に対してその入力データの処理を指示する。これに応じ、再構成制御部１６は、その入力データをデータ入力部１２ａ及び１２ｂから再構成可能回路部１０上に構成された各処理回路に供給する。また、別の例として、ホストシステムからこの実施形態のデータ処理装置に、ＤＭＡ（ダイレクトメモリアクセス）によりデータを転送してもよく、この場合データ入力部１２ａ及び１２ｂは、例えば、データ処理装置内のＤＭＡコントローラ（図示省略）により割り当てられるチャンネルに相当する。
【００１９】
データ出力部１４ａ及び１４ｂは、再構成可能回路部１０上に再構成された処理回路から出力されたデータをホストシステムに対して出力する手段である。データ出力部１４ａ及び１４ｂも、上述のデータ入力部１２ａ及び１２ｂと同様、再構成可能回路部１０に接続されたメモリ上に確保された出力バッファ、或いはＤＭＡコントローラから割り当てられた出力チャンネルなどがその具体例である。
【００２０】
以上に示したように、この実施形態では、データ入力部とデータ出力部をそれぞれ２系統ずつ（１２ａ，１２ｂ，１４ａ，１４ｂ）設けているが、これは、再構成可能回路部１０上に２系統の同種の回路を構成し、並列処理を実行するのに対応したものである（詳細は後述）。
【００２１】
再構成制御部１６は、再構成可能回路部１０内の回路要素の接続関係を制御することで、再構成可能回路部１０上にデータ処理のための回路を再構成する。また、再構成制御部１６は、再構成可能回路部１０上に再構成された回路に対してホストシステムからの指示に応じてデータ入力部１２ａ及び１２ｂ経由で入力データを供給したり、その回路からの出力データをデータ出力部１４ａ及び１４ｂ経由でホストシステムに返したりする制御を行う。
【００２２】
再構成可能回路部１０内の回路の再構成は、コンフィギュレーションデータ記憶部１８に記憶されたコンフィギュレーションデータに従って行われる。この例では、コンフィギュレーションデータ記憶部１８には、図２及び図３に模式的に示す回路構成をそれぞれ表すコンフィギュレーションデータＡ及びＢが記憶される。コンフィギュレーションデータ記憶部１８は、例えばデータ処理装置内のＲＡＭ又は不揮発性メモリなどの記憶装置上に構成される。コンフィギュレーションデータ記憶部１８には、ホストシステムからの制御により新たなコンフィギュレーションデータを追加したり、既存のコンフィギュレーションデータを削除したりすることができる。
【００２３】
次構成選択部２０は、再構成可能回路部１０上に次に再構成すべき回路構成のデータ（コンフィギュレーションデータ）を選択する手段である。コンフィギュレーションデータ記憶部１８に記憶されたコンフィギュレーションデータ群をどの順序で再構成可能回路部１０に適用するかを示す制御情報が、あらかじめホストシステムから次構成選択部２０に設定されている。次構成選択部２０は、この制御情報に従い、再構成可能回路部１０上に次に構成すべき回路構成を示すコンフィギュレーションデータを選択し、再構成制御部１６に渡す。再構成制御部１６は、再構成可能回路部１０上に現在構成されている回路構成での処理が終わると、次構成選択部２０から指示されたそのコンフィギュレーションデータを再構成可能回路部１０上に書き込むことで、再構成可能回路部１０を次の回路構成へと切り換える。
【００２４】
なお、上述したＤＡＰＤＮＡアーキテクチャのように、再構成可能回路部１０に複数のバンクを備えるコンフィギュレーションメモリを設け、各バンクにコンフィギュレーションデータをそれぞれ記憶させ、使用するバンクを順次切り替えることで回路の再構成を行う構成としてもよい。例えばコンフィギュレーションメモリのバンク数より多いコンフィギュレーションデータを用いる場合などには、各バンク内のコンフィギュレーションデータを、コンフィギュレーションデータ記憶部１８内のコンフィギュレーションデータにより順次書き替えていってもよい。
【００２５】
前述のように、この実施形態では、並列処理のために再構成可能回路部１０上に２系統の同種の回路を構成する。再構成する回路構成の例を、図２及び図３に例示する。図２及び図３の例は、処理対象のデータとして画像データを受け入れ、その画像データに対して圧縮符号化を施す回路構成の例である。すなわち、この例は、実施形態のデータ処理装置を、画像の圧縮符号化に適用する場合の一例である。また圧縮符号化の一例としてランレングス圧縮回路１０２ａ及び１０２ｂとハフマン符号化回路１１０ａ及び１１０ｂとの組合せを用いた例を説明する。
【００２６】
ここで、回路規模が有限な再構成可能回路部１０上には、ランレングス圧縮回路とハフマン符号化回路の両方を２つずつ同時には構成できないものとする。このような制約に対し、この実施形態では、コンフィギュレーションデータＡにより規定される第１段階の回路構成であるコンフィギュレーションＡ（図２参照）と、コンフィギュレーションデータＢにより規定される第２段階の回路構成であるコンフィギュレーションＢ（図３参照）と、を交互に再構成するという方策で対処する。以下、各回路構成について説明する。
【００２７】
図２に示すコンフィギュレーションＡは、ランレングス圧縮回路１０２ａ及び１０２ｂ、カウンタ１０４ａ及び１０４ｂ、通知回路１０６ａ及び１０６ｂ、ＦＩＦＯ（先入れ先出し方式の記憶回路）１０８ａ及び１０８ｂを備える。ランレングス圧縮回路１０２ａ、カウンタ１０４ａ、通知回路１０６ａ、ＦＩＦＯ１０８ａが、後述する図３の回路構成のＦＩＦＯ１０８ａ、ハフマン符号化部１１０ａ及び通知回路１１２ａとともに、２系統の処理回路のうちの第１の系統（「ａ系統」と呼ぶ）を構成する。ａ系統を構成する各回路要素を指し示す符号には、末尾に記号「ａ」を付加した。同様に、ｂ系統を構成する各回路要素の符号には、末尾に「ｂ」を付加した。
【００２８】
ランレングス圧縮回路１０２ａと１０２ｂには、対応するデータ入力部１２ａと１２ｂとから、処理対象の画像データのうちのそれぞれ異なる部分（各部分のことを処理単位と呼ぶこととする）がそれぞれ入力される。
【００２９】
画像データの処理単位は、例えば画像データが複数のページを含んだ文書画像データである場合におけるページであってもよい。この場合、例えばａ系統には奇数ページの画像のデータが入力され、ｂ系統には偶数ページの画像のデータが入力される。また、別の例として、１ページの画像の前半と後半をそれぞれ処理単位として、ａ系統とｂ系統にそれぞれ割り振ってもよい。この場合、ページごとに順に、ａ系統にはページの前半部の画像が入力され、ｂ系統にはそれと同時並列的に当該ページの後半部の画像が入力される。なお、以上に例示した処理単位はあくまで一例に過ぎず、この他の処理単位を用いることも考えられる。どのような処理単位を用いるかは、例えば実施形態のデータ処理装置の使用目的に応じて定めればよく、また複数の処理単位を選択可能としておき、ユーザや当該データ処理装置を搭載した画像処理装置の管理者が選択するようにしてもよい。
【００３０】
ランレングス圧縮回路１０２ａ及び１０２ｂは、それぞれ入力される処理単位の画像データに対し、先頭から順に公知のランレングス圧縮処理を行う。ランレングス圧縮回路１０２ａ及び１０２ｂから出力される圧縮結果のデータは、例えば、画素値（例えば色ごとの濃度（グレースケール）値）とその画素値が走査方向に連続する数であるラン長とのペアが並んだものである（もちろん、これ以外のランレングス形式であってもよい）。
【００３１】
ランレングス圧縮回路１０２ａ及び１０２ｂから出力された圧縮データは、ＦＩＦＯ１０８ａ及び１０８ｂにそれぞれ入力される。ＦＩＦＯ１０８ａ及び１０８ｂは、それぞれ自己のデータ容量の限界まで、入力されてくる圧縮データを先入れ先出し順に記憶する。ＦＩＦＯ１０８ａ及び１０８ｂのデータ容量は、例えば数ワードから数十ワード分などである。例えば、ランレングス情報を表す画素値とラン長とのペアが１ワード（１ワードは例えば２オクテット）のデータとなり、それがデータ容量までＦＩＦＯに保持される。
【００３２】
この例ではＦＩＦＯ１０８ａ及び１０８ｂのデータ容量は実質的に同じにする。例えば、再構成可能回路部１０が備える回路要素群のうち、コンフィギュレーションＡ及びＢでＦＩＦＯ１０８ａ及び１０８ｂ以外の回路を構成するのに必要となる回路要素を除いた残りの回路要素群を二等分して、ＦＩＦＯ１０８ａと１０８ｂとを構成すればよい。言い換えれば、コンフィギュレーションＡでのＦＩＦＯ１０８ａ及び１０８ｂ以外の回路（１０２ａ、ｂ〜１０６ａ、ｂ）と、コンフィギュレーションＢでのＦＩＦＯ１０８ａ及び１０８ｂ以外の回路（１１０ａ、ｂ〜１１２ａ、ｂ）とのうち、使用する回路要素（ＰＥ）が多い方での残りの回路要素群を二等分して各ＦＩＦＯに割り当てればよい。例えばこのような考え方からＦＩＦＯ１０８ａと１０８ｂのデータ容量を決め、そのデータ容量分の回路要素からなるＦＩＦＯ１０８ａ及び１０８ｂをコンフィギュレーションデータＡ（及びＢ）にて定義しておけばよい。なお、二等分というのは原理上のものであり、残りの回路要素の数が二等分できない場合は、ＦＩＦＯ１０８ａと１０８ｂの容量に多少の差ができてもよい。
【００３３】
ここで、ＦＩＦＯ１０８ａと１０８ｂは、例えば、再構成可能回路部１０内のＰＥ（プロセッサエレメント）を１つ用いて、又は複数組み合わせて、構成すればよい。また、再構成可能回路部１０がＰＥ以外に、外部とのデータ入出力のためのＦＩＦＯ群を有している場合には、それらＦＩＦＯを１つ、又は複数組み合わせて、ＦＩＦＯ１０８ａ及び１０８ｂを構成してもよい。また、再構成可能回路部１０内のＰＥとＦＩＦＯとを接続して、ＦＩＦＯ１０８ａ及び１０８ｂを構成してもよい。
【００３４】
カウンタ１０４ａ及び１０４ｂは、例えばランレングス圧縮回路１０２ａ及び１０２ｂとＦＩＦＯ１０８ａ及び１０８ｂとを結ぶ信号線上の信号を読み取ることにより、ランレングス圧縮回路１０２ａ及び１０２ｂからＦＩＦＯ１０８ａ及び１０８ｂにそれぞれ入力される圧縮データの数を計数する。この計数では、例えば、ランレングス圧縮回路１０２ａ及び１０２ｂから出力されたワード（又は画素値とラン長とのペア）の数を計数する。
【００３５】
ランレングス圧縮回路１０２ａ及び１０２ｂには互いに異なるデータが入力されるので、それら各回路１０２ａ及び１０２ｂが出力する圧縮結果のランレングスデータの量は一般に互いに異なる。したがって、ＦＩＦＯ１０８ａ及び１０８ｂが同じ容量であっても、一般的には、どちらか一方が先に満杯（すなわちＦＩＦＯに対してその容量分のデータが入力され保持された状態）となる。一つの例では、各系統の通知回路１０６ａ及び１０６ｂが、それぞれ対応するカウンタ１０４ａ及び１０４ｂの計数値を監視し、その計数値が当該系統のＦＩＦＯ１０８ａ又は１０８ｂのデータ容量に対応する値に達した場合に、対応するＦＩＦＯ１０８ａ又は１０８ｂが満杯となったことを示すＦＩＦＯ−ＦＵＬＬ信号を発するようにしてもよい。この信号を再構成制御部１６が受け取って、再構成可能回路部１０の再構成のトリガとする。
【００３６】
また、別の例として、データが満杯となったＦＩＦＯ（１０８ａ及び１０８ｂ）自身が、ＦＩＦＯ−ＦＵＬＬ信号を発するようにしてもよい（すなわち、ＦＩＦＯ１０８ａ及び１０８ｂとして、ＦＩＦＯ−ＦＵＬＬ信号を発する回路要素を含んだ回路を構成する）。この場合、カウンタ１０４ａ及び１０４ｂと通知回路１０６ａ及び１０６ｂはなくてもよい。
【００３７】
次に図３を参照して、コンフィギュレーションＢについて説明する。コンフィギュレーションＢには、ＦＩＦＯ１０８ａ及び１０８ｂ、ハフマン符号化回路１１０ａ及び１１０ｂ、通知回路１１２ａ及び１１２ｂが含まれる。
【００３８】
このうちＦＩＦＯ１０８ａ及び１０８ｂは、上述のコンフィギュレーションＡにも含まれているものである。すなわち、コンフィギュレーションＡに含まれているＦＩＦＯ１０８ａ及び１０８ｂは、再構成可能回路部１０がコンフィギュレーションＢへと再構成される際にも変更されずにそのまま残る。すなわち、コンフィギュレーションＡにおいて各ＦＩＦＯ１０８ａ及び１０８ｂに記憶されたランレングス圧縮結果のデータは、再構成後の再構成可能回路部１０（コンフィギュレーションＢ）中のＦＩＦＯ１０８ａ及び１０８ｂにそのまま残ることになる。
【００３９】
コンフィギュレーションＢでは、ＦＩＦＯ１０８ａ及び１０８ｂの出力がハフマン符号化回路１１０ａおよび１１０ｂにそれぞれ接続される。
【００４０】
各ハフマン符号化回路１１０ａ及び１１０ｂは、それぞれ対応するＦＩＦＯ１０８ａ及び１０８ｂから先入れ先出し順に出力されるランレングス圧縮結果のデータを、公知のハフマン符号化方式により符号化する。各ハフマン符号化回路１１０ａ及び１１０ｂから出力される符号化結果のデータが、データ出力部１４ａ及び１４ｂを介して出力され、ホストシステムに供給される。
【００４１】
通知回路１１２ａ及び１１２ｂは、それぞれ対応するハフマン符号化部１１０ａ及び１１０ｂに対してＦＩＦＯ１０８ａ及び１０８ｂから供給されるデータが無くなった（すなわちＦＩＦＯに保持された全データの符号化が完了した）ことを検知すると、その旨を示す完了信号を再構成制御部１６に通知する。再構成制御部１６は、通知回路１１２ａ及び１１２ｂの両方から完了信号を受け取った（すなわち両系統のＦＩＦＯ内のデータの符号化がすべて完了した）時点で、再構成可能回路部１０の回路構成を再びコンフィギュレーションＡに戻す。
【００４２】
次に、再構成制御部１６が図２及び図３に例示したコンフィギュレーションＡ及びＢを切り換えながら、データ処理を進めていく手順の例を説明する。
【００４３】
再構成制御部１６は、画像データの処理開始をホストシステムから指示された場合、まずコンフィギュレーションデータＡを用いて、再構成可能回路部１０の内部回路を第１段階であるコンフィギュレーションＡ（図２）へと構成する。そして、コンフィギュレーションＡの回路を起動し、各系統のデータ入力部１２ａ及び１２ｂを介してそれぞれ異なる処理単位の画像データをランレングス圧縮回路１０２ａ及び１０２ｂに入力する。これにより、入力された各処理単位の画像データが先頭からランレングスデータへと変換されていく。これにより、ＦＩＦＯ１０８ａ及び１０８ｂには、それぞれ対応する処理単位のランレングスデータが蓄積されていく。そして、ＦＩＦＯ１０８ａ及び１０８ｂの少なくとも一方が満杯になると、再構成制御部１６は、通知回路１０６ａ又は１０６ｂから（またはＦＩＦＯ１０８ａ又は１０８ｂから）ＦＩＦＯ−ＦＵＬＬ信号を受け取る。
【００４４】
ＦＩＦＯ−ＦＵＬＬ信号を受け取った再構成制御部１６は、コンフィギュレーションデータＢに従い、再構成可能回路部１０の内部回路を第２段階であるコンフィギュレーションＢ（図３）へと再構成する。このときの再構成では、ＦＩＦＯ１０８ａ及び１０８ｂの部分は変更されず、それ以外の回路が構成されていた部分が、ハフマン符号化回路１１０ａおよび１１０ｂと通知回路１１２ａ及び１１２ｂへと書き替えられる。すなわち、ここでの再構成は、再構成可能回路部１０全体の再構成ではなく、部分的な再構成である。
【００４５】
次に、再構成制御部１６は、そのコンフィギュレーションＢの回路を起動し、ＦＩＦＯ１０８ａ及び１０８ｂに保持されたデータが各ハフマン符号化回路１１０ａ及び１１０ｂに入力されるようにする。これにより、それらデータがそれぞれハフマン符号化され、その符号化結果のデータが順次、各系統のデータ出力部１４ａ及び１４ｂを介して外部（例えばホストシステムが管理するメモリ領域）に出力される。そして、各ＦＩＦＯ１０８ａ及び１０８ｂの両方が空になる（すなわちそれら各ＦＩＦＯに保持されたデータ全ての符号化が完了する）と、再構成制御部１６は、再び第１段階へと戻り、再構成可能回路部１０の内部回路をコンフィギュレーションＡへと再構成する。この再構成は、再構成可能回路部１０全体を再構成するものであってもよいし、ＦＩＦＯ１０８ａ及び１０８ｂを残してそれ以外の部分を再構成する部分再構成であってもよい。そして、再びそのコンフィギュレーションＡの回路を起動し、各系統にそれぞれ次の処理単位のデータを供給して処理させる。
【００４６】
再構成制御部１６は、以上のようにコンフィギュレーションＡとＢを交互に再構成して動作させることで、入力される画像データの圧縮符号化処理を進める。
【００４７】
次に、図４〜図７を参照して変形例を説明する。
【００４８】
上述の実施形態では、ａ，ｂ各系統のＦＩＦＯ１０８ａ，１０８ｂのデータ容量を実質的に同じにした。これに対し、この変形例では、ランレングス圧縮回路１０２ａ及び１０２ｂがそれぞれ出力する圧縮データのレート（出力速度、すなわち出力される圧縮データの単位時間あたりの量）に応じて、適応的にＦＩＦＯ１０８ａ及び１０８ｂのデータ容量を変える。すなわち、この変形例では、再構成可能回路部１０をコンフィギュレーションＡに再構成して動作させたときにランレングス圧縮回路１０２ａ及び１０２ｂがそれぞれ出力する圧縮データのレートを測定する。そして、測定したレート同士の比に応じて、次に再構成可能回路部１０をコンフィギュレーションＡに再構成するときのＦＩＦＯ１０８ａと１０８ｂのデータ容量をその比に応じたものに変える。
【００４９】
例えば、ページごと、或いはページ内の部分ごとの画像の性質の違いなどにより、ランレングス圧縮の効率が異なる場合がある。例えば、テキスト部分やグラフィックス部分はランレングス圧縮の効率がよいが、写真画像の部分はランレングス圧縮の効率が悪い。ａ，ｂ２つの系統のうち、より圧縮効率が悪い画像の部分を処理する系統は、もう一方の系統よりもＦＩＦＯが満杯になりやすい。このため、ＦＩＦＯ１０８ａと１０８ｂの容量を均等のままで固定しておくと、ａ，ｂ２つの系統のうち圧縮効率が悪い方の影響により、コンフィギュレーションの切り換えの頻度が高くなってしまう。そこで、この変形例では、圧縮効率の悪い系統のＦＩＦＯの容量をもう一方の系統よりも増やすことで、コンフィギュレーションの切り換え頻度の増大を抑制する。
【００５０】
図４は、この変形例のデータ処理装置の構成を示す図である。図４を図１と比較すると分かるように、この変形例では、次に再構成可能回路部１０をコンフィギュレーションＡに再構成するときのＦＩＦＯ１０８ａと１０８ｂのデータ容量を判定するＦＩＦＯ容量判定部２２を新たに設けている。
【００５１】
この変形例でも、再構成制御部１６は、図２及び図３にそれぞれ示したコンフィギュレーションＡ及びＢを交互に再構成する。ただし、コンフィギュレーションＡにおける通知回路１０６ａ及び１０６ｂの機能が、上記実施形態のものとは異なる。
【００５２】
この変形例では、通知回路１０６ａ及び１０６ｂは、ＦＩＦＯ１０８ａ又は１０８ｂの少なくとも一方が満杯になったときに、そのときカウンタ１０４ａ及び１０４ｂが保持している計数値を再構成制御部１６に対して通知する。
【００５３】
一つの例では、通知回路１０６ａ及び１０６ｂは、対応するカウンタ１０４ａ又は１０４ｂの計数値が、対応するＦＩＦＯ１０８ａ又は１０８ｂのデータ容量に対応する値（すなわち満杯を示す値）になったことを検知すると、その旨及び対応するＦＩＦＯの計数値をＦＩＦＯ容量判定部２２に通知すると共に、もう一方の通知回路１０６ａ又は１０６ｂにトリガ信号を送り、その時点での（当該もう一方の通知回路に）対応するカウンタ１０４ａ又は１０４ｂの計数値をＦＩＦＯ容量判定部２２に通知させる。また、別の例として、通知回路１０６ａ及び１０６ｂは、例えば、ＦＩＦＯ１０８ａ又は１０８ｂからＦＩＦＯ−ＦＵＬＬ信号を受けた再構成制御部１６からの要求に応じてその通知を行ってもよい。更に別の例として、通知回路１０６ａ及び１０６ｂがＦＩＦＯ１０８ａ又は１０８ｂからＦＩＦＯ−ＦＵＬＬ信号を受け取るように再構成可能回路部１０内の内部回路を構成し、そのＦＩＦＯ−ＦＵＬＬ信号に応じて通知回路１０６ａ及び１０６ｂが（再構成制御部１６からの要求が無くても）、対応するカウンタ１０４ａ及び１０４ｂの計数値をＦＩＦＯ容量判定部２２に通知するようにしてもよい。ＦＩＦＯ１０８ａ及び１０８ｂの一方が満杯になった時点での、各カウンタ１０４ａ及び１０４ｂの計数値は、今回のコンフィギュレーションＡの期間における、ランレングス圧縮回路１０２ａ及び１０２ｂのデータ出力のレートに対応する。
【００５４】
なお、ＦＩＦＯ１０８ａ又は１０８ｂのうち、満杯となっている方に対応する計数値は、それらＦＩＦＯのデータ容量に対応しており、そのＦＩＦＯを構成した再構成制御部１６と通信可能なＦＩＦＯ容量判定部２２にとっては既知である。したがって、満杯となっている方のＦＩＦＯに対応する計数値は、通知をしないようにしてもよい。
【００５５】
ＦＩＦＯ容量判定部２２は、これら各通知回路１０６ａ及び１０６ｂから通知された計数値の情報に基づき（満杯となったＦＩＦＯについては、計数値に代えて当該ＦＩＦＯの既知のデータ容量を用いてもよい）、次に再構成可能回路部１０をコンフィギュレーションＡに再構成するときの、ＦＩＦＯ１０８ａ及び１０８ｂのそれぞれのデータ容量を判定する。
【００５６】
ここで、再構成可能回路部１０が備える回路要素のうち、ＦＩＦＯ１０８ａ及び１０８ｂに割当可能なものの合計数は決まっている。この合計数は、ＦＩＦＯ１０８ａ及び１０８ｂの合計のデータ容量に対応する。ＦＩＦＯ容量判定部２２は、その合計数（すなわち合計のデータ容量）のうち、ＦＩＦＯ１０８ａ及び１０８ｂにそれぞれどれだけの数（データ容量）割り当てるのかを判定する。概略的には、ＦＩＦＯ容量判定部２２は、各ＦＩＦＯ１０８ａ及び１０８ｂのデータ容量の比が、対応する通知回路１０６ａ及び１０６ｂから通知された計数値（またはＦＩＦＯの既知のデータ容量）同士の比にできるだけ近くなるよう、各ＦＩＦＯ１０８ａ及び１０８ｂのデータ容量を決定する。
【００５７】
次に、図５を参照して、この変形例における再構成制御部１６の処理手順の一例を説明する。
【００５８】
この手順では、再構成制御部１６は、画像データに対する処理の開始をホストシステムから指示された場合、まずコンフィギュレーションデータＡを選択し、ＦＩＦＯ１０８ａ及び１０８ｂを同容量に設定する（Ｓ１０）。ここでは、例えばＦＩＦＯ１０８ａと１０８ｂとのデータ容量比を設定すると、再構成制御部１６が、そのデータ容量比に応じてコンフィギュレーションデータＡにてＦＩＦＯ１０８ａ及び１０８ｂに用いる回路要素の数を判定するようにすればよい。また、別の例として、コンフィギュレーションデータＡとして、ＦＩＦＯ１０８ａと１０８ｂとのデータ容量比が異なる亜種データを複数コンフィギュレーションデータ記憶部１８に登録しておき、再構成制御部１６が、それら亜種データの中から、設定された容量比に対応するものを選択するようにしてもよい。
【００５９】
次に、再構成可能回路部１０を、ＦＩＦＯ１０８ａと１０８ｂとが同容量との設定の下でコンフィギュレーションデータＡにしたがって再構成し、再構成された回路を起動する（Ｓ１２）。これにより、処理対象の画像データが、処理単位ごとに、順にデータ入力部１２ａ及び１２ｂを介してａ及びｂ系統のランレングス圧縮回路１０２ａ及び１０２ｂにそれぞれ入力され、圧縮される。
【００６０】
この後、再構成制御部１６は、ＦＩＦＯ１０８ａ及び１０８ｂのいずれかが満杯になったとの通知（ＦＩＦＯ−ＦＵＬＬ信号）を待つ（Ｓ１４）。そして、満杯の通知を受け取ると、次の構成としてコンフィギュレーションデータＢを選択し（Ｓ１６）、このデータに従い、再構成可能回路部１０のうちＦＩＦＯ１０８ａ及び１０８ｂの部分を除いた部分を再構成する。これにより、再構成可能回路部１０には図３のコンフィギュレーションが構成される。そして、このコンフィギュレーションを起動する（Ｓ１８）。これにより、ＦＩＦＯ１０８ａ及び１０８ｂに蓄積されたランレングス圧縮結果のデータが、それぞれ対応するハフマン符号化回路１１０ａ及び１１０ｂに供給され、処理される。これにより、ハフマン符号化回路１１０ａ及び１１０ｂからは、それぞれ対応する処理単位についての圧縮符号化結果のデータが出力され、そのデータが、対応するデータ出力部１４ａ及び１４ｂを介してホストシステムへ返される。
【００６１】
なお、ステップＳ１４でいずれかのＦＩＦＯ１０８ａ又は１０８ｂが満杯になったことが検知されると、ＦＩＦＯ容量判定部２２が、通知回路１０６ａ及び１０６ｂから通知されたカウンタ１０４ａ及び１０４ｂの計数値に基づき、次のコンフィギュレーションＡ（図２）でのＦＩＦＯ１０８ａ及び１０８ｂにそれぞれ割り当てるデータ容量（ＰＥ等の回路要素の個数）を判定する。この判定結果は、後のＳ２２で利用される。なお、この判定処理については、後で具体例を説明する。
【００６２】
また、再構成制御部１６は、ハフマン符号化回路１１０ａ及び１１０ｂの両方に対して供給されるデータが無くなった（すなわちＦＩＦＯ１０８ａ及び１０８ｂの両方が空になった）との通知を待つ（Ｓ２０）。そして、その通知を受けると、再構成制御部１６は、ＦＩＦＯ容量判定部２２から、先ほど判定された次のコンフィギュレーションＡでの各ＦＩＦＯ１０８ａ及び１０８ｂのデータ容量割当結果を取得する（Ｓ２２）。そして、次の構成としてコンフィギュレーションデータＡを選択するとともに、各ＦＩＦＯ１０８ａ及び１０８ｂのデータ容量をその割当結果に応じて設定する（Ｓ２４）。そして、ステップＳ１２に戻り、再構成可能回路部１０上に、ＦＩＦＯ１０８ａと１０８ｂとをその容量割当設定の下でコンフィギュレーションデータＡに従って再構成し、再構成された回路を起動する。
【００６３】
以下、ホストシステムから入力される処理対象のデータが無くなるまで、ステップＳ１２〜Ｓ２４の処理を繰り返す。
【００６４】
次に、図６を参照して、ＦＩＦＯ容量判定部２２の処理手順の一例を説明する。この例は、図６の下部に示すように、再構成可能回路部１０内に合計して４個のＦＩＦＯ要素（図中、「ＦＩＦＯ」と記載したブロックとして図示した）が確保できる場合の例である。ＦＩＦＯ要素はこれ以上分割不能であり、この要素を１つの単位として、ＦＩＦＯ１０８ａと１０８ｂとに割り振ることとなる。
図６の手順では、ステップＳ１４でいずれかのＦＩＦＯ１０８ａ又は１０８ｂが満杯になったことが検知されると、ＦＩＦＯ容量判定部２２は、通知回路１０６ａ及び１０６ｂから通知されたａ系統（カウンタ１０４ａ）及びｂ系統（カウンタ１０４ｂ）の計数値ＣＮＴａ及びＣＮＴｂをそれぞれ読み取り（Ｓ３０）、これらを比較する（Ｓ３２）。そして、ｂ系統の計数値ＣＮＴｂの方がａ系統の計数値ＣＮＴａよりも大きい場合（すなわちＳ３２の判定結果がＮｏの場合）、次に、以下の関係式が成り立つか否かを判定する（Ｓ３４）。
ＣＮＴｂ−ＣＮＴａ≧（１／２）＊ＣＮＴｂ
【００６５】
この関係式が成り立つのは、ｂ系統の計数値がａ系統の計数値の２倍以上である場合である。この場合（すなわちステップＳ３４の判定結果がＹｅｓの場合）、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ１０８ｂの容量をＦＩＦＯ１０８ａの容量よりも大きく、すなわちＦＩＦＯ要素４個のうち前者に３個、後者に１個を割り当てると判定する（Ｓ３８）。なお、この場合、ＦＩＦＯ１０８ｂは、あるＦＩＦＯ要素の出力を別のＦＩＦＯ要素の入力に接続するという形で３つの要素を連結することにより構成されることとなる。
【００６６】
ステップＳ３４の判定結果がＮｏの場合、ｂ系統の計数値は、ａ系統の計数値の２倍未満、かつ１倍以上である。この場合、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ１０８ｂとＦＩＦＯ１０８ａの容量を均等、すなわちＦＩＦＯ要素４個を前者と後者に２個ずつ割り当てると判定する（Ｓ４０）。
【００６７】
また、ステップＳ３２の判定結果がＹｅｓの場合、ＦＩＦＯ容量判定部２２は更に次の関係式が成り立つか否かを判定する（Ｓ３６）。
ＣＮＴａ−ＣＮＴｂ≧（１／２）＊ＣＮＴａ
【００６８】
この関係式が成り立つのは、ａ系統の計数値がｂ系統の計数値の２倍以上である場合である。この場合（すなわちステップＳ３６の判定結果がＹｅｓの場合）、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ１０８ａの容量をＦＩＦＯ１０８ｂの容量よりも大きく、すなわちＦＩＦＯ要素４個のうち前者に３個、後者に１個を割り当てると判定する（Ｓ４２）。
【００６９】
ステップＳ３６の判定結果がＮｏの場合、ａ系統の計数値は、ｂ系統の計数値の２倍未満、かつ１倍以上である。この場合、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ１０８ｂとＦＩＦＯ１０８ａの容量を均等、すなわちＦＩＦＯ要素４個を前者と後者に２個ずつ割り当てると判定する（Ｓ４０）。
【００７０】
このように、図６の例では、４単位のＦＩＦＯ要素を、ａ系統とｂ系統の計数値の比（すなわちランレングス圧縮データの生成レートの比）にできるだけ近い比で、ＦＩＦＯ１０８ａ及び１０８ｂに配分している。なお、図６に挙げた計数値の比とＦＩＦＯ要素の数の比の対応関係はあくまで一例に過ぎない。
【００７１】
次に、図７を参照して、再構成可能回路部１０内に６個のＦＩＦＯ要素が確保できる場合の例である。図７において、図６と同様の処理を行うステップには、同じ符号を付して詳細な説明は省略する。
【００７２】
この例では、ステップＳ３４の判定結果がＹｅｓの場合、ＦＩＦＯ要素６個のうち前者に５個、後者に１個を割り当てると判定する（Ｓ６０）。
【００７３】
また、ステップＳ３４の判定結果がＮｏの場合、ＦＩＦＯ容量判定部２２は更に次の関係式が成り立つか否かを判定する（Ｓ５０）。
ＣＮＴｂ−ＣＮＴａ≧（１／３）＊ＣＮＴｂ
【００７４】
この関係式が成り立つのは、ｂ系統の計数値がａ系統の計数値の３／２倍以上２倍未満である場合である。この場合（すなわちステップＳ５０の判定結果がＹｅｓの場合）、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ要素６個のうちＦＩＦＯ１０８ｂに４個、ＦＩＦＯ１０８ａに２個を割り当てると判定する（Ｓ６２）。
【００７５】
ステップＳ５０の判定結果がＮｏの場合、ｂ系統の計数値のａ系統の計数値の１倍以上３／２倍未満である。この場合、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ１０８ｂとＦＩＦＯ１０８ａの容量を均等、すなわちＦＩＦＯ要素６個を前者と後者に３個ずつ割り当てると判定する（Ｓ６４）。
【００７６】
またステップＳ３６の判定結果がＹｅｓの場合、ａ系統の計数値はｂ系統の計数値の２倍以上である。この場合、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ１０８ａに５個、ＦＩＦＯ１０８ｂに１個を割り当てると判定する（Ｓ６８）。
【００７７】
ステップＳ３６の判定結果がＮｏの場合、ＦＩＦＯ容量判定部２２は更に次の関係式が成り立つか否かを判定する（Ｓ５２）。
ＣＮＴａ−ＣＮＴｂ≧（１／３）＊ＣＮＴａ
【００７８】
この関係式が成り立つのは、ａ系統の計数値がｂ系統の計数値の３／２倍以上２倍未満である場合である。この場合、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ要素６個のうちＦＩＦＯ１０８ａに４個、ＦＩＦＯ１０８ｂに２個を割り当てると判定する（Ｓ６６）。
【００７９】
そして、ステップＳ５２の判定結果がＮｏの場合、ａ系統の計数値のｂ系統の計数値の１倍以上３／２倍未満である。この場合、ＦＩＦＯ容量判定部２２は、ＦＩＦＯ１０８ａとＦＩＦＯ１０８ｂの容量を均等、すなわちＦＩＦＯ要素６個を前者と後者に３個ずつ割り当てると判定する（Ｓ６４）。
【００８０】
このように、図７の例では、６単位のＦＩＦＯ要素を、ａ系統とｂ系統の計数値の比にできるだけ近い比で、ＦＩＦＯ１０８ａ及び１０８ｂに配分している。なお、図７に挙げた計数値の比とＦＩＦＯ要素の数の比の対応関係はあくまで一例に過ぎない。
【００８１】
以上の例では、Ｓ３２〜Ｓ３６、Ｓ５０〜Ｓ５２の比較処理により、ＦＩＦＯ１０８ａ及び１０８ｂに対する容量の振り分けを判定したが、これは一例に過ぎない。この代わりに、例えばａ系統とｂ系統の計数値の比の範囲ごとに、その範囲に対応するＦＩＦＯ１０８ａと１０８ｂの容量比（例えば各々に割り振るＦＩＦＯ要素の数の比）を表す対応関係の情報をデータ処理装置内の記憶装置に記憶しておくようにしてもよい。この場合、ＦＩＦＯ容量判定部２２は、その対応関係の情報を参照して、ＦＩＦＯ１０８ａと１０８ｂの容量比を判定する。
【００８２】
また、図６及び図７の例では、再構成可能回路部１０内に確保できるＦＩＦＯ要素の数が偶数であったが、奇数の場合でも、計数値の比とＦＩＦＯ要素の数の比の対応関係が変えるだけで、同様に取扱可能であることが理解されよう。
【００８３】
次に、図８〜図１０を参照して、データ処理装置の第２の変形例を説明する。図１〜図７に挙げた実施形態及び変形例は２つのコンフィギュレーションＡ及びＢを交互に再構成したのに対し、この第２の変形例では３つのコンフィギュレーションＡ，Ｂ及びＣ（それぞれ図８，９及び１０に示す）をこの順に巡回的に繰り返し再構成する。
【００８４】
この第２の変形例のデータ処理装置の全体構成は、上記実施形態及び変形例に示したもの（図１及び図４を参照）と同様でよい。実施形態及び変形例と変わるのは、再構成可能回路部１０に構成する各コンフィギュレーションＡ，Ｂ及びＣと、その再構成を制御する再構成制御部１６の制御内容である。
【００８５】
この変形例では、データ処理装置は、処理対象の入力データをまず第１段階処理回路（１２２ａ及び１２２ｂ：図８参照）で処理し、この処理結果を第２段階処理回路（１３０ａ及び１３０ｂ：図９参照）で処理し、更にこの処理結果を第３段階処理回路（１３４ａ及び１３４ｂ：図１０参照）で処理して最終的な処理結果を求める。
【００８６】
ここで、再構成可能回路部１０には、回路規模の限界から、並列処理のために必要な２つの第１段階処理回路１２２ａ及び１２２ｂと２つの第２段階処理回路１３０ａ及び１３０ｂとを同時に構成することはできず、また２つの第２段階処理回路１３０ａ及び１３０ｂと２つの第３段階処理回路１３４ａ及び１３４ｂを同時に構成することもできないとする。
【００８７】
このような制約を乗り越えるため、再構成可能回路部１０内にＦＩＦＯを構成して利用する。図８に示すコンフィギュレーションＡは、図２に例示したコンフィギュレーションＡと同様の構成であり、第１段階処理回路１２２ａ及び１２２ｂ、カウンタ１２４ａ及び１２４ｂ、通知回路１２６ａ及び１２６ｂ、第１段階ＦＩＦＯ１２８ａ及び１２８ｂを備える。
【００８８】
第１段階処理回路１２２ａ及び１２２ｂは、データ入力部１２ａ及び１２ｂからデータを受け取って、そのデータにあらかじめ定められた第１段階処理を実行する回路である。第１段階処理回路１２２ａ、１２２ｂの出力は、対応する第１段階ＦＩＦＯ１２８ａ、１２８ｂと、対応するカウンタ１２４ａ、１２４ｂとに、それぞれ接続される。第１段階ＦＩＦＯ１２８ａ、１２８ｂは、第１段階処理回路１２２ａ、１２２ｂから出力された処理結果のデータを記憶し、先入れ先出し方式で出力する。各カウンタ１２４ａ、１２４ｂの出力は、対応する通知回路１２６ａ、１２６ｂに接続される。
【００８９】
図８のコンフィギュレーションＡにおけるカウンタ１２４ａ及び１２４ｂ、通知回路１２６ａ及び１２６ｂ、並びに第１段階ＦＩＦＯ１２８ａ及び１２８ｂは、図１又は図４の例におけるカウンタ１０４ａ及び１０４ｂ、通知回路１０６ａ及び１０６ｂ、並びにＦＩＦＯ１０８ａ及び１０８ｂと同様の処理を行う。
【００９０】
図９に示すコンフィギュレーションＢは、図３に例示したコンフィギュレーションＢと同様の第１段階ＦＩＦＯ１２８ａ及び１２８ｂ、第２段階処理回路１３０ａ及び１３０ｂ、通知回路１３２ａ及び１３２ｂに加え、第２段階ＦＩＦＯ１３４ａ及び１３４ｂを有する。
【００９１】
第２段階処理回路１３０ａ及び１３０ｂは、第１段階ＦＩＦＯ１２８ａ及び１２８ｂのうち対応するものからそれぞれデータを受け取り、これに対してあらかじめ定められた処理を実行する。第２段階処理回路１３０ａ及び１３０ｂの処理結果は、第２段階ＦＩＦＯ１３４ａ及び１３４ｂにそれぞれ蓄積される。通知回路１３２ａ及び１３２ｂは、図３の例の通知回路１１２ａ及び１１２ｂと同様、対応する第２段階処理回路１３０ａ又は１３０ｂに供給されるデータが無くなると、再構成制御部１６に通知を行う。
【００９２】
図１０に示すコンフィギュレーションＣは、図３に示したコンフィギュレーションＢに似ている。コンフィギュレーションＣは、第２段階ＦＩＦＯ１３４ａ及び１３４ｂと、第３段階処理回路１３６ａ及び１３６ｂと、通知回路１３８ａ及び１３８ｂを備える。
【００９３】
第３段階処理回路１３６ａ及び１３６ｂは、第２段階ＦＩＦＯ１３４ａ及び１３４ｂのうち対応するものからそれぞれデータを受け取り、これに対してあらかじめ定められた処理を実行する。第３段階処理回路１３６ａ及び１３６ｂの処理結果は、対応するデータ出力部１４ａ又は１４ｂを介してホストシステムへと出力される。通知回路１３８ａ及び１３８ｂは、図３の例の通知回路１１２ａ及び１１２ｂと同様、対応する第３段階処理回路１３６ａ又は１３６ｂに供給されるデータが無くなると、再構成制御部１６に通知を行う。
【００９４】
この第２の変形例では、コンフィギュレーションＢに、第１段階ＦＩＦＯ１２８ａ及び１２８ｂと、第２段階ＦＩＦＯ１３４ａ及び１３４ｂという２種類のＦＩＦＯが構成される。このため、第１段階ＦＩＦＯ１２８ａ及び１２８ｂの容量は、第２段階ＦＩＦＯ１３４ａ及び１３４ｂに割り当てる容量を考慮して決めておく。
【００９５】
画像データの処理開始をホストシステムから指示された場合、再構成制御部１６は、まず再構成可能回路部１０をコンフィギュレーションＡへと再構成し、データ入力部１２ａ及び１２ｂに対してそれぞれ対応する処理単位の入力データを供給する。これにより、第１段階処理回路１２２ａ及び１２２ｂがそれら入力データを処理し、その処理結果が第１段階ＦＩＦＯ１２８ａ及び１２８ｂに蓄積される。
【００９６】
第１段階ＦＩＦＯ１２８ａ及び１２８ｂの少なくとも一方が満杯になると、再構成制御部１６は、再構成可能回路部１０を第１段階ＦＩＦＯ１２８ａ及び１２８ｂ以外の部分を部分再構成して、コンフィギュレーションＢの回路を構成する。そして、第２段階処理回路１３０ａ及び１３０ｂに、第１段階ＦＩＦＯ１２８ａ及び１２８ｂ内のデータをそれぞれ供給して処理させる。第２段階処理回路１３０ａ及び１３０ｂの処理結果は、それぞれ第２段階ＦＩＦＯ１３４ａ及び１３４ｂに蓄積される。
【００９７】
処理が進み、通知回路１３２ａ及び１３２ｂからの通知により第１段階ＦＩＦＯ１２８ａ及び１２８ｂの両方が空になったことが分かると、再構成制御部１６は、再構成可能回路部１０を第２段階ＦＩＦＯ１３４ａ及び１３４ｂ以外の部分を部分再構成して、コンフィギュレーションＣの回路を構成する。そして、第３段階処理回路１３６ａ及び１３５ｂに、第２段階ＦＩＦＯ１３４ａ及び１３４ｂ内のデータをそれぞれ供給して処理させる。第３段階処理回路１３６ａ及び１３６ｂの処理結果は、対応するデータ出力部１４ａ及び１４ｂを介してホストシステムへと出力される。
【００９８】
そして、処理が進み、通知回路１３８ａ及び１３８ｂからの通知により第２段階ＦＩＦＯ１３４ａ及び１３４ｂの両方が空になったことが分かると、再構成制御部１６は、再構成可能回路部１０をコンフィギュレーションＡへと再構成し、ホストシステムから供給される次の入力データを処理させる。以降の処理は、既に説明した通りである。
【００９９】
以上に説明した制御を、ホストシステムから供給される入力データが無くなるまで繰り返す。
【０１００】
この第２の変形例においても、図４〜図７の変形例と同様、コンフィギュレーションＡの回路を動作させた期間の第１段階処理回路１２２ａと１２２ｂとのデータ出力レートの比（言い換えればカウンタ１２４ａ及び１２４ｂの計数値の比）に応じて、次にコンフィギュレーションＡを再構成するときの第１段階ＦＩＦＯ１２８ａ及び１２８ｂそれぞれのデータ容量を調整してもよい。また、このような第１段階ＦＩＦＯ１２８ａ及び１２８ｂそれぞれのデータ容量の調整に合わせて、その次のコンフィギュレーションＢにおける第２段階ＦＩＦＯ１３４ａ及び１３４ｂのデータ容量を調整してもよい。
【０１０１】
図８〜図１０では、３段階のコンフィギュレーションを巡回的に繰り返す例を示したが、同様の考え方で４段階以上のコンフィギュレーションを繰り返す装置を構成することも可能である。
【０１０２】
一般化すると、ｎ段階（ｎは３以上の整数）のコンフィギュレーションを巡回的に繰り返すデータ処理装置では、第１段階と第ｎ段階（最終段階）のコンフィギュレーションは、それぞれ図８のコンフィギュレーションＡと図１０のコンフィギュレーションＣと同様のものとなる。それら両段階の中間であるｋ＝２〜（ｎ−１）までの各段階（第ｋ段階）のコンフィギュレーションは、第（ｋ−１）段階の処理結果を保持する２つの第（ｋ−１）ＦＩＦＯは残したまま、２つの第ｋ段階処理回路と、これら２つの回路の処理結果を蓄積する２つの第ｋ段階ＦＩＦＯとを含んだものとすればよい。そして、再構成制御部１６は、第ｋ段階のコンフィギュレーションでのデータ処理が完了したとき、すなわちそのコンフィギュレーション内の２つの第（ｋ−２）段階ＦＩＦＯがともに空になったとき、再構成可能回路部１０を、当該段階の処理結果を保持した２つの第ｋ段階ＦＩＦＯは残したまま、第（ｋ＋１）段階のコンフィギュレーションに再構成する。そして、第ｎ段階のコンフィギュレーションでの処理が完了した場合、第１段階のコンフィギュレーションに戻る。
【０１０３】
以上に示した例は、いずれも２系統の並列処理を行うものであったが、３系統以上の並列処理を行うシステムにも容易に拡張可能である。
【０１０４】
以上に例示した回路構成を用いたデータ処理装置は、例えばプリンタシステム、スキャナシステム、デジタル複写機、ファクシミリ装置、デジタル複合機（プリンタ、スキャナ、複写機等の機能を兼ね備えた装置。ファクシミリ機能や電子メール送受信機能などを更に備える場合もある）などといった画像処理装置に適用することが考えられる。
【符号の説明】
【０１０５】
１０  再構成可能回路部、１２ａ，１２ｂ  データ入力部、１４ａ，１４ｂ  データ出力部、１６  再構成制御部、１８  コンフィギュレーションデータ記憶部、２０  次構成選択部、２２  ＦＩＦＯ容量判定部、１０２ａ，１０２ｂ  ランレングス圧縮回路、１０４ａ，１０４ｂ  カウンタ、１０６ａ，１０６ｂ  通知回路、１０８ａ，１０８ｂ  ＦＩＦＯ、１１０ａ，１１０ｂ  ハフマン符号化回路、１１２ａ，１１２ｂ  通知回路。
【図１】
0005423419.tif 000002
【図２】
0005423419.tif 000003
【図３】
0005423419.tif 000004
【図４】
0005423419.tif 000005
【図５】
0005423419.tif 000006
【図６】
0005423419.tif 000007
【図７】
0005423419.tif 000008
【図８】
0005423419.tif 000009
【図９】
0005423419.tif 000010
【図１０】
0005423419.tif 000011