(57)【特許請求の範囲】
【請求項１】
複数の小回路を有し、書き込まれた回路情報に基づいて前記複数の小回路から選択された前記小回路を用いて回路を再構成可能な再構成可能回路と、
第１及び第２の圧縮回路にそれぞれ対応する第１及び第２の回路情報を記憶する記憶手段と、
入力されるデータ列に応じて前記第１又は第２の回路情報を前記再構成可能回路に書き込むことにより、前記再構成可能回路を前記第１又は第２の圧縮回路に再構成する制御手段とを備え、
前記第１の圧縮回路は、前記入力されるデータ列についてランレングス圧縮を行う回路であり、
前記第２の圧縮回路は、前記入力されるデータ列を複数のデータ列に並列化して入力し、前記複数のデータ列についてそれぞれラン判定を行うことによりランレングス圧縮を行う回路であり、
前記制御手段は、前記入力されるデータ列のラン長に応じて前記第１又は第２の回路情報を前記再構成可能回路に書き込む再構成可能演算装置。
【請求項２】
前記第１及び第２の圧縮回路は、前記入力されるデータ列を第１及び第２のチャンネルにそれぞれ入力してランレングス圧縮を行うように構成され、
前記制御手段は、前記入力されるデータ列の前記ラン長及び使用可能な前記小回路の空き状況に応じて前記第２の圧縮回路の前記第１及び第２のチャンネルに入力するデータ列を並列化する並列数を決定し、これに対応する前記第２の回路情報を前記再構成可能回路に書き込む請求項１に記載の再構成可能演算装置。
【請求項３】
複数の小回路を有し、書き込まれた回路情報に基づいて前記複数の小回路から選択された前記小回路を用いて回路を再構成可能な再構成可能回路と、第１及び第２の圧縮回路にそれぞれ対応する第１及び第２の回路情報を記憶する記憶手段とを備えたコンピュータを、
入力されるデータ列に応じて前記第１又は第２の回路情報を前記再構成可能回路に書き込むことにより、前記再構成可能回路様を前記第１又は第２の圧縮回路に再構成する制御手段として機能させるためのプログラムであって、
前記第１の圧縮回路は、前記入力されるデータ列についてランレングス圧縮を行う回路であり、
前記第２の圧縮回路は、前記入力されるデータ列を複数のデータ列に並列化して入力し、前記複数のデータ列についてそれぞれラン判定を行うことによりランレングス圧縮を行う回路であり、
前記制御手段は、前記入力されるデータ列のラン長に応じて前記第１又は第２の回路情報を前記再構成可能回路に書き込むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能演算装置、データ圧縮装置及びプログラムに関する。
【背景技術】
【０００２】
ランレングス圧縮は、シンプルなアルゴリズムであるが、画像データとの相性が良いことから、画像データの圧縮方法として一般に用いられている。ランレングス圧縮は、連続する同一の値の部分（ラン）の長さ（ランレングス）の情報に置き換える方式をいう。
【０００３】
ランレングス圧縮を行う従来のデータ圧縮装置として、例えば特許文献１に開示されているものがある。
【０００４】
このデータ圧縮装置は、画像データ列を入力し、各色についての画素が連続するランの長さを出力するものであって、ｍビットの画像データ列を入力し画素が変化する画素変化点を出力する変化点検出回路と、変化点検出回路の出力を入力し、ｍビットの画像データ列を最大ｎ個のランに分解するラン分解回路とを備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２６１６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、常に並列処理する構成と比べて回路規模を増大させずにデータを圧縮することができる再構成可能演算装置、データ圧縮装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
［１］複数の小回路を有し、書き込まれた回路情報に基づいて前記複数の小回路から選択された前記小回路を用いて回路を再構成可能な再構成可能回路と、第１及び第２の圧縮回路にそれぞれ対応する第１及び第２の回路情報を記憶する記憶手段と、入力されるデータ列に応じて前記第１又は第２の回路情報を前記再構成可能回路に書き込むことにより、前記再構成可能回路を前記第１又は第２の圧縮回路に再構成する制御手段とを備え、前記第１の圧縮回路は、前記入力されるデータ列についてランレングス圧縮を行う回路であり、前記第２の圧縮回路は、前記入力されるデータ列を複数のデータ列に並列化して入力し、前記複数のデータ列についてそれぞれラン判定を行うことによりランレングス圧縮を行う回路であり、前記制御手段は、前記入力されるデータ列のラン長に応じて前記第１又は第２の回路情報を前記再構成可能回路に書き込む再構成可能演算装置。
【０００９】
［２］前記第１及び第２の圧縮回路は、前記入力されるデータ列を第１及び第２のチャンネルにそれぞれ入力してランレングス圧縮を行うように構成され、前記制御手段は、前記入力されるデータ列の前記ラン長及び使用可能な前記小回路の空き状況に応じて前記第２の圧縮回路の前記第１及び第２のチャンネルに入力するデータ列を並列化する並列数を決定し、これに対応する前記第２の回路情報を前記再構成可能回路に書き込む前記［１］に記載の再構成可能演算装置。
【００１０】
［３］複数の小回路を有し、書き込まれた回路情報に基づいて前記複数の小回路から選択された前記小回路を用いて回路を再構成可能な再構成可能回路と、第１及び第２の圧縮回路にそれぞれ対応する第１及び第２の回路情報を記憶する記憶手段とを備えたコンピュータを、入力されるデータ列に応じて前記第１又は第２の回路情報を前記再構成可能回路に書き込むことにより、前記再構成可能回路様を前記第１又は第２の圧縮回路に再構成する制御手段として機能させるためのプログラムであって、前記第１の圧縮回路は、前記入力されるデータ列についてランレングス圧縮を行う回路であり、前記第２の圧縮回路は、前記入力されるデータ列を複数のデータ列に並列化して入力し、前記複数のデータ列についてそれぞれラン判定を行うことによりランレングス圧縮を行う回路であり、前記制御手段は、前記入力されるデータ列のラン長に応じて前記第１又は第２の回路情報を前記再構成可能回路に書き込むプログラム。
【発明の効果】
【００１１】
請求項１、３に記載の発明によれば、常に並列処理する構成と比べて回路規模を増大させずに簡易にデータを圧縮することができる。
請求項２に記載の発明によれば、小回路を有効利用することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態に係るデータ圧縮装置の概略の構成を示す正面図である。
【図２】再構成可能演算装置の構成の一例を示すブロック図である。
【図３】通常回路の構成の一例を示すブロック図である。
【図４】高速回路の構成の一例を示すブロック図である。
【図５】再構成可能演算装置の全体の動作の一例を示すフローチャートである。
【図６】判断プログラムの動作の一例を示すフローチャートである。
【図７】圧縮動作の具体的例を示し、（ａ）は入力データの一例を示す図、（ｂ）は動作回路を示す図、（ｃ）は出力データの一例を示す図、（ｄ）は通常回路を模式的に表した図、（ｅ）は高速回路を模式的に表した図である。
【図８Ａ】本発明の第２の実施の形態に係る再構成可能回路の再構成後の回路の一例を示す図である。
【図８Ｂ】本発明の第２の実施の形態に係る再構成可能回路の再構成後の回路の一例を示す図である。
【図９】第２の実施の形態の動作の一例を示すフローチャートである。
【図１０】第２の実施の形態の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係るデータ圧縮装置の構成の一例を示すブロック図である。
【００１４】
このデータ圧縮装置１は、データ圧縮装置１の各部を制御するＣＰＵ２を有し、ＣＰＵ２に、バス３を介して再構成可能演算装置１０、メモリ４、ＤＭＡＣ（Direct Memory Access Controller）５及びアービタ６をそれぞれ接続して構成されている。
【００１５】
データ圧縮装置１は、例えば画像読取部で読み取った画像データを圧縮して画像処理部に出力するというように画像形成装置内でデータを転送する場合や、ＰＣ（パーソナルコンピュータ）とプリンタ、複写機、スキャンとプリント等の複数の機能を有する複合機、ファクシミリ等の画像形成装置との間のように装置間でデータを圧縮して転送する場合に適用することができる。なお、データ圧縮装置１の適用例はこれらに限られない。
【００１６】
メモリ４は、圧縮前のデータ、及び圧縮前のデータを本実施の形態の方法によって圧縮したデータを記憶する。
【００１７】
ＤＭＡＣ５は、ＣＰＵ２による処理を介することなく、直接メモリ４と再構成可能演算装置１０との間でデータのＤＭＡ転送を制御する。
【００１８】
アービタ６は、ＤＭＡＣ５等がデータ転送を行うときのバス３の使用権（アビトレーション）を調停する調停手段として機能する。
【００１９】
図２は、再構成可能演算装置１０の構成の一例を示すブロック図である。再構成可能演算装置１０は、判断プログラム１１０及びリコンフィグ制御プログラム１１１に基づいて再構成可能演算装置１０の各部を制御する制御部１１と、回路が再構成可能な再構成可能回路１２と、回路情報を記憶する記憶手段としてのコンフィグデータ格納部１３とを備える。
【００２０】
（再構成可能回路）
再構成可能回路１２は、動的再構成可能プロセッサＤＲＰ（Dynamically Reconfigurable Processor）とも呼ばれているものである。再構成可能回路１２は、算術論理演算部（ＡＬＵ）、ランダムアクセスメモリ（ＲＡＭ）等の複数の小回路を有し、書き込まれた回路情報に基づいて複数の小回路から選択された小回路を用いて回路を再構成可能なものである。
【００２１】
（コンフィグデータ格納部）
コンフィグデータ格納部１３は、再構成可能回路１２を通常回路に再構成するための第１のコンフィグデータ１３０と、再構成可能回路１２を高速回路に再構成するための第２のコンフィグデータ１３１とが格納されている。なお、通常回路及び高速回路以外の他の回路に再構成するためのコンフィグデータをさらに格納してもよい。第１のコンフィグデータ１３０は、第１の回路情報の一例であり、第２のコンフィグデータ１３１は、第２の回路情報の一例である。また、通常回路は、第１の圧縮回路の一例であり、高速回路は、第２の圧縮回路の一例である。
【００２２】
（制御部）
制御部１１は、判断プログラム１１０及びリコンフィグ制御プログラム１１１に基づいて処理を行うものである。制御部１１は、再構成可能回路１２から得られたステータス情報を判断プログラム１１０により判断し、その結果である判断情報をリコンフィグ制御プログラム１１１に出力する。また、制御部１１は、判断プログラム１１０が出力した判断情報に基づいてリコンフィグ制御プログラム１１１により再構成可能回路１２に対してリコンフィグ制御を行い、コンフィグデータ格納部１３に対してコンフィグ制御を行うように構成されている。
【００２３】
判断プログラム１１０は、再構成可能回路１２からのステータス情報を監視し、ステータス情報に含まれるラン長が閾値（例えば４）以上になったときは、高速回路を選択し、ラン長が閾値未満になったときは、通常回路を選択し、選択した回路の情報をリコンフィグ制御プログラム１１１に通知するように構成されている。
【００２４】
リコンフィグ制御プログラム１１１は、判断プログラム１１０から通常回路を選択したことが通知されたときは、コンフィグデータ格納部１３から第１のコンフィグデータ１３０を再構成可能回路１２へロードさせ、再構成可能回路１２を通常回路１２ａに再構成させる。また、リコンフィグ制御プログラム１１１は、判断プログラム１１０から高速回路を選択したことが通知されたときは、コンフィグデータ格納部１３から第２のコンフィグデータ１３１を再構成可能回路１２へロードさせ、再構成可能回路１２を高速回路１２ｂに再構成させる。
【００２５】
（通常回路）
図３は、通常回路の構成の一例を示すブロック図である。第１のコンフィグデータ１３０を再構成可能回路１２にロードすることで、再構成可能回路１２は、図３に示すように、通常回路１２ａに再構成される。
【００２６】
通常回路１２ａは、入力されるデータ列についてランレングス圧縮を行う回路であり、判定部１２０ａと、ラン長カウンタ１２１ａと、ラン長制御部１２２ａと、データ制御部１２３と、ＦＩＦＯ１２４ａと、マージ部１２５と、リコンフィグ割り込み判定部１２６とを備える。
【００２７】
判定部１２０ａは、例えばメモリ４からＤＭＡＣ５によって転送されるデータが入力される。また、判定部１２０ａは、入力されるデータの値と同じ値のデータが連続する部分（ラン）が存在するか否かを判定する。入力されるデータは、例えば画像データであり、白黒の２値又は多値、複数種類（例えば赤、緑、青）の色毎の多値である。なお、入力されるデータは、画像データに限られない。
【００２８】
ラン長カウンタ１２１ａは、判定部１２０ａによって判定されたランをカウントしてランの長さ（ラン長Ｌｎ）を出力する。
【００２９】
ラン長制御部１２２ａは、ラン長カウンタ１２１ａから出力されたラン長を１画素ずつＦＩＦＯ２４ａに出力する。また、ラン長制御部１２２aは、ラン長及び現在の再構成可能回路１２が通常回路１２ａなのか高速回路１２ｂなのかを示す回路の情報を含むステータス情報を生成して判断プログラム１１０に出力する。
【００３０】
データ制御部１２３は、入力されたデータを１画素ずつＦＩＦＯ１２４に出力する。
【００３１】
ＦＩＦＯ１２４ａは、データ制御部１２３からのデータとラン長制御部１２２ａからのラン長をバッファリングし、マージ部１２５の処理に要する時間だけ遅延してマージ部１２５に出力する。
【００３２】
マージ部１２５は、ランとデータとを結合して出力データを生成する。出力データは、例えばＤＭＡＣ５によってメモリ４に転送される。
【００３３】
リコンフィグ割り込み判定部１２６は、ＣＰＵ２等から終了割り込みが発生すると、終了割り込み信号Ｓｉを制御部１１に出力する。
【００３４】
（高速回路）
図４は、高速回路の構成の一例を示すブロック図である。第２のコンフィグデータ１３１を再構成可能回路１２にロードすることで、再構成可能回路１２は、図４に示すように、高速回路１２ｂに再構成される。
【００３５】
高速回路１２ｂは、入力されるデータ列を複数（本実施の形態では４つ）のデータ列に並列化して入力し、複数（４つ）のデータ列についてそれぞれラン判定を行うことによりランレングス圧縮を行う回路であり、判定部１２０ｂと、ラン長カウンタ１２１ｂと、ラン長制御部１２２ｂと、ＦＩＦＯ１２４ｂと、リコンフィグ割り込み判定部１２６とを備える。この高速回路１２ｂは、通常回路１２ａで用いられていたデータ制御部１２３及びマージ部１２５を用いずに構成されている。
【００３６】
判定部１２０ｂは、複数（本実施の形態では４つ）に並列化されたデータ列をそれぞれ１画素ずつ入力し、入力したデータの値と同じ値のデータが連続する部分（ラン）が存在するか否かを判定する。判定部１２０ｂの並列数は判断プログラム１１０で用いる閾値（４）に対応する。
【００３７】
ラン長カウンタ１２１ｂは、判定部１２０ｂで並列して判定されたランをそれぞれカウントして合計のラン長を出力する。
【００３８】
ラン長制御部１２２ｂは、ランが途切れて(例えばラン長が４未満のとき)、リコンフィグが発生したとき、その直前のランが連続していたデータを保持するように構成されており、ラン長カウンタ１２１ｂは、出力されたラン長と保持していたデータとを結合して出力する。
【００３９】
ＦＩＦＯ１２４ｂは、ラン長制御部１２２ｂから出力されるラン長とデータとを結合したデータを順次出力データとして出力する。
【００４０】
（再構成可能演算装置の動作）
図５は、再構成可能演算装置１０の全体の動作の一例を示すフローチャートである。リコンフィグ制御プログラム１１１は、コンフィグデータ格納部１３から第１のコンフィグデータ１３０を再構成可能回路１２へロードする（Ｓ１）。再構成可能回路１２は、第１のコンフィグデータがロードされることにより、通常回路１２ａに再構成される。
【００４１】
リコンフィグ制御プログラム１１１は、再構成可能回路１２、すなわち通常回路１２ａに処理を開始させる（Ｓ２）。
【００４２】
リコンフィグ割り込み判定部１２６は、終了割り込みがあるか否かを判定し（Ｓ３）
、終了割り込みがあると判定すると（Ｓ３：Ｙｅｓ）、終了割り込み信号Ｓｉを制御部１１に出力する。
【００４３】
リコンフィグ制御プログラム１１１は、リコンンフィグ割り込み判定部１２６からの終了割り込み信号Ｓｉに基づいて再構成可能回路１２による処理を停止させる（Ｓ４）。
【００４４】
上記ステップＳ３において、終了割り込みがないとリコンフィグ割り込み判定部１２６が判定した場合は（Ｓ３：Ｎｏ）、判断プログラム１１０は、リコンフィグ割り込み判定部１２６から終了割り込み信号Ｓｉが出力されないため、再構成可能回路１２からのステータス情報に基づいてリコンフィグを行うか否かを判断する（Ｓ６）。リコンフィグを行うと判断したとき（Ｓ６：Ｙｅｓ）、判断プログラム１１０は、選択した高速回路の情報をリコンフィグ制御プログラム１１１に通知する（Ｓ７）。
【００４５】
リコンフィグ制御プログラム１１１は、再構成可能回路１２による処理を停止させ（Ｓ８）、選択された高速回路用の第２のコンフィグデータ１３１をコンフィグデータ格納部１３から再構成可能回路１２へロードさせる（Ｓ９）。再構成可能回路１２は高速回路１２ｂに再構成される。リコンフィグ制御プログラム１１１は、再構成可能回路１２による処理を再開させる（Ｓ１０）。
【００４６】
図６は、判断プログラム１１０の動作の一例を示すフローチャートである。同図は、図５のステップＳ５、Ｓ６、Ｓ７の詳細を示すものである。
【００４７】
判断プログラム１１０は、再構成可能回路１２からステータス情報を取得し（Ｓ２１）、ステータス情報から現在の回路が通常回路１２ａであるか、高速回路１２ｂであるかを判断する（Ｓ２２）。判断プログラム１１０が通常回路１２ａと判断したときは（Ｓ２２）、ラン長Ｌｎが閾値Ｔｈ（例えば、４）以上であるか否かを判断する（Ｓ２３）。ラン長Ｌｎが閾値Ｔｈ以上のときは（Ｓ２３：Ｙｅｓ）、判断プログラム１１０は、高速回路１２ｂを選択し、高速回路１２ｂを選択したことをリコンフィグ制御プログラム１１１に通知する（Ｓ２４）。ラン長Ｌｎが閾値Ｔｈ未満であれば（Ｓ２３：Ｎｏ）、判断プログラム１１０は、リコンンフィグ無しを選択する（Ｓ２５）。
【００４８】
上記ステップＳ２２において、判断プログラム１１０は、高速回路１２ｂと判断したときは（Ｓ２２）、一般にランレングス圧縮には、圧縮できる最大のラン長が決まっており、ラン長Ｌｎが最大のラン長であるか否かを判断し（Ｓ２６）、ラン長Ｌｎが最大でなければ（Ｓ２６１：Ｎｏ）、ランが継続しているか否かを判断し（Ｓ２７）、ランが継続していなければ（Ｓ２７：Ｎｏ）、ラン長Ｌｎが閾値Ｔｈ以上であるか否かを判断し（Ｓ２８）、ラン長Ｌｎが閾値Ｔｈ未満であれば（Ｓ２８：Ｎｏ）、通常回路１２ａを選択し、通常回路１２ａを選択したことをリコンフィグ制御プログラム１１１に通知する（Ｓ２９）。
【００４９】
上記ステップＳ２６において、ラン長が最大になっている場合（Ｓ２６：Ｙｅｓ）、上記ステップＳ２７において、ランが継続している場合（Ｓ２７：Ｙｅｓ）、又は上記ステップＳ２８において、ラン長Ｌｎが閾値Ｔｈ以上である場合（Ｓ２８：Ｙｅｓ）、リコンフィグ無しを選択する（Ｓ３０）。
【００５０】
図７は、圧縮動作の具体的例を示し、（ａ）は入力データの一例を示す図、（ｂ）は入力データを圧縮する回路を示す図、（ｃ）は出力データの一例を示す図、（ｄ）は通常回路を模式的に表した図、（ｅ）は高速回路を模式的に表した図である。
【００５１】
入力データが、図７（ａ）に示すように、ＡＡＢＣＣまではラン長が閾値（４）未満であるため、再構成可能回路１２は通常回路１２ａに再構成され、入力データが処理される。通常回路１２ａは、図７（ｄ）に示すように、入力データを１画素（ｐｘ）毎にランの有無を判定して圧縮し、出力データ「２ＡＢ２Ｃ」を出力する。
【００５２】
次の入力データ「ＤＤＤＤＤ・・・ＤＤＤＤＤ」については、ラン長が閾値（４）以上であるので、再構成可能回路１２は高速回路１２ｂに再構成され、入力データが処理される。高速回路１２ｂは、図７（ｅ）に示すように、入力データの並列処理を行って出力データ「２５６Ｄ  ２５６Ｄ  １２０Ｄ」を出力する。
【００５３】
次の入力データ「Ａ」については、ラン長が閾値（４）未満であるため、再構成可能回路１２は通常回路１２ａに再構成され、入力データが処理される。通常回路１２ａは、入力データ「Ａ」をそのまま出力データ「Ａ」として出力する。
【００５４】
次の入力データ「ＢＢＢＢＢ・・・ＢＢＢＢＢ」については、ラン長が閾値（４）以上であるので、再構成可能回路１２は高速回路１２ｂに再構成され、入力データが処理される。高速回路１２ｂは、図７（ｅ）に示すように、入力データの並列処理を行って出力データ「２５６Ｂ  ２５６Ｂ  ２００Ｂ」を出力する。
【００５５】
次の入力データ「ＣＣＣＤ」については、ラン長が閾値（４）未満であるため、再構成可能回路１２は通常回路１２ａに再構成され、入力データが処理される。通常回路１２ａは、図７（ｄ）に示すように、入力データ「ＣＣＣＤ」を圧縮し、出力データ「３ＣＤ」を出力する。
【００５６】
［第２の実施の形態］
図８Ａ、図８Ｂは、本発明の第２の実施の形態に係る再構成可能回路の再構成後の回路の一例を模式的に示す図である。なお、図８では、ラン長カウンタ、データ制御部、ラン長制御部及びコンフィグ割り込み判定部の図示を省略している。
【００５７】
第１の実施の形態では、入力データをチャンネル１（ｃｈ１）で入力する場合について説明したが、第２の実施の形態は、入力データをチャンネル１（ｃｈ１）とチャンネル２（ｃｈ２）で入力するようにしたものである。コンフィグデータ格納部１３には、後述する図８（ａ）〜（ｆ）に示す回路を再構成するためのコンフィグデータが格納されている。
【００５８】
本実施の形態の通常回路１２ａは、図８（ａ）に示すように、チャンネル１として入力データＸ１を処理する判定部１２０ａ１、ＦＩＦＯ１２４ａ１及びマージ部１２５ａ１と、チャンネル２として入力データＸ２を処理する判定部１２０ａ２、ＦＩＦＯ１２４ａ２及びマージ部１２５ａ２とを有する。
【００５９】
４×１並列用の高速回路１２ｂ１は、図８（ｂ）に示すように、チャンネル１として４列の入力データＸ１を処理する判定部１２０ｂ１及びＦＩＦＯ１２４ｂ１と、チャンネル２として１列の入力データＸ２を処理する判定部１２０ｂ２、ＦＩＦＯ１２４ｂ２及びマージ部１２５ｂ２とを有する。
【００６０】
８×１並列用の高速回路１２ｂ２は、図８（ｃ）に示すように、チャンネル１として８列の入力データＸ１を処理する判定部１２０ｂ１及びＦＩＦＯ１２４ｂ１と、チャンネル２として１列の入力データＸ２を処理する判定部１２０ｂ２、ＦＩＦＯ１２４ｂ２及びマージ部１２５ｂ２とを有する。
【００６１】
１×４並列用の高速回路１２ｂ１は、図８（ｄ）に示すように、チャンネル１として１列の入力データＸ１を処理する判定部１２０ｂ１、ＦＩＦＯ１２４ｂ１及びマージ部１２５ｂ１と、チャンネル２として４列の入力データＸ２を処理する判定部１２０ｂ２及びＦＩＦＯ１２４ｂ２とを有する。
【００６２】
４×４並列用の高速回路１２ｂ１は、図８（ｅ）に示すように、チャンネル１として４列の入力データＸ１を処理する判定部１２０ｂ１及びＦＩＦＯ１２４ｂ１と、チャンネル２として４列の入力データＸ２を処理する判定部１２０ｂ２及びＦＩＦＯ１２４ｂ２とを有する。
【００６３】
１×８並列用の高速回路１２ｂ２は、図８（ｆ）に示すように、チャンネル１として１列の入力データＸ１を処理する判定部１２０ｂ１、ＦＩＦＯ１２４ｂ１及びマージ部１２５ｂ１と、チャンネル２として８列の入力データＸ２を処理する判定部１２０ｂ２及びＦＩＦＯ１２４ｂ２とを有する。
【００６４】
図９、図１０は、第２の実施の形態の動作の一例を示すフローチャートである。
【００６５】
チャンネル（ｃｈ）１のステータス情報を取得し（Ｓ４１）、ｃｈ１について判断処理を行い（Ｓ４２）、チャンネル（ｃｈ）２のステータス情報を取得し（Ｓ４３）、ｃｈ２について判断処理を行う（Ｓ４４）。
【００６６】
現在のコンフィグが判断されて並列数が現状と同じか否かを判断する（Ｓ４５）。並列数が現状と同じ場合は（Ｓ４５：Ｙｅｓ）、リコンフィグ無しを選択する（Ｓ４６）、並列数が異なる場合は（Ｓ４５：Ｎｏ）、判断されたコンフィグをリコンフィグ制御プログラム１１１に通知する（Ｓ４７）。
【００６７】
上記ステップＳ４２、Ｓ４４では、図１０に示すように行われる。次に、判断処理について、図１０を参照して説明する。
【００６８】
ランが途切れたか否かを判断し（Ｓ５１）、ランが途切れていない場合（Ｓ５１：Ｎｏ）、チャンネルｘの並列数を判断する（Ｓ５２）。
【００６９】
チャンネルｘの並列数が１の場合、ラン長Ｌｎが閾値Ｔｈ（４）以上であり、かつ、リソースに空きがあるか否かを判断し（Ｓ５３）、ラン長Ｌｎが閾値Ｔｈ以上であり、かつ、リソースに空きがある場合は（Ｓ５３：Ｙｅｓ）、並列数ａを４とし（Ｓ５４）、ラン長Ｌｎが閾値Ｔｈ未満、又はラン長Ｌｎが閾値Ｔｈ以上でもリソースに空きが無い場合は（Ｓ５３：Ｎｏ）、並列数ａを１とする（Ｓ５５）。
【００７０】
チャンネルｘの並列数が４の場合、ラン長Ｌｎが閾値Ｔｈ×２以上であり、かつ、リソースに空きがあるか否かを判断し（Ｓ５６）、ラン長Ｌｎが閾値Ｔｈ×２以上であり、かつ、リソースに空きがある場合は（Ｓ５６：Ｙｅｓ）、並列数ａを８とし（Ｓ５７）、ラン長Ｌｎが閾値Ｔｈ×２未満、又はラン長Ｌｎが閾値Ｔｈ×２以上でもリソースに空きが無い場合は（Ｓ５６：Ｎｏ）、並列数ａを１とする（Ｓ５８）。
【００７１】
チャンネルｘの並列数が８の場合、ラン長Ｌｎが閾値Ｔｈ×２以上であり、かつ、リソースに空きがあるか否かを判断し（Ｓ５９）、ラン長Ｌｎが閾値Ｔｈ×２以上であり、かつ、リソースに空きがある場合は（Ｓ５９：Ｙｅｓ）、並列数ａを８とし（Ｓ６０）、ラン長Ｌｎが閾値Ｔｈ×２未満、又はラン長Ｌｎが閾値Ｔｈ×２以上でもリソースに空きが無い場合は（Ｓ５９：Ｎｏ）、並列数ａを１とする（Ｓ６１）。
【００７２】
なお、第２の実施の形態では、チャンネル数を２としたが、３以上でもよい。
【００７３】
［他の実施の形態］
なお、本発明は、上記実施の形態に限定されず、発明の要旨を逸脱しない範囲で種々に変形が可能である。例えば、上記実施の形態で用いたプログラムをＣＤ−ＲＯＭ等の記録媒体に記憶して提供することもできる。また、上記実施の形態の各手段の全て又は一部をＡＳＩＣ等のハードウエアによって実現してもよい。また、上記実施の形態で説明した上記ステップの入替え、削除、追加等は可能である。
【符号の説明】
【００７４】
１…データ圧縮装置、２…ＣＰＵ、３…バス、４…メモリ、５…ＤＭＡＣ、６…アービタ、１０…再構成可能演算装置、１１…制御部、１２…再構成可能回路、１２ａ…通常回路、１２ｂ、１２ｂ１〜１２ｂ５…高速回路、１３…コンフィグデータ格納部、１１０…判断プログラム、１１１…リコンフィグ制御プログラム、１２０ａ、１２０ａ１、１２０ａ２、１２０ｂ、１２０ｂ１、１２０ｂ２…判定部、１２１ａ、１２１ｂ…ラン長カウンタ、１２２ａ、１２２ｂ…ラン長制御部、１２３…データ制御部、１２４ａ、１２４ａ１、１２４ａ２、１２４ｂ１、１２４ｂ２…ＦＩＦＯ、１２５、１２５ａ１、１２５ａ２、１２５ｂ１、１２５ｂ２…マージ部、１２６…リコンフィグ割り込み判定部、１３０…第１のコンフィグデータ、１３１…第２のコンフィグデータ
【図１】
0005636816.tif 000002
【図２】
0005636816.tif 000003
【図３】
0005636816.tif 000004
【図４】
0005636816.tif 000005
【図５】
0005636816.tif 000006
【図６】
0005636816.tif 000007
【図７】
0005636816.tif 000008
【図８Ａ】
0005636816.tif 000009
【図８Ｂ】
0005636816.tif 000010
【図９】
0005636816.tif 000011
【図１０】
0005636816.tif 000012