(57)【要約】【課題】データ処理において選択的に利用される回路構成の一部を非利用時に構成しておく投機的な実装を実現する。【解決手段】データ処理部１０は再構成可能回路１２を備え、再構成制御部２０は再構成可能回路１２内の再構成を制御する。データ処理部１０によるデータ処理において選択的に利用される複数回路の各回路は投機部分と選択部分で構成される。再構成制御部２０は各回路の非利用時にその回路の投機部分を再構成可能回路１２内に再構成しておく投機的な実装を行い、各回路の利用時にその回路の選択部分を再構成可能回路１２内に再構成する。【選択図】図１
2018049311.tif 000002
【特許請求の範囲】
【請求項１】
データ処理において選択的に利用される回路構成の一部を当該回路構成の非利用時に再構成可能回路内に構成しておき、非利用時に構成されない当該回路構成の残り部分を当該回路構成の利用時に前記再構成可能回路内に構成するデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、
前記再構成可能回路を備えるデータ処理部と、
前記再構成可能回路内の再構成を制御する制御部と、
を有し、
前記データ処理部によるデータ処理において選択的に利用される複数回路の各回路が投機部分と選択部分で構成され、
前記制御部は、前記各回路の非利用時に当該各回路の投機部分を前記再構成可能回路内に構成しておき、当該各回路の利用時に当該各回路の選択部分を前記再構成可能回路内に構成する、
ことを特徴とするデータ処理装置。
【請求項３】
請求項２に記載のデータ処理装置において、
前記複数回路の中でデータ処理における利用頻度が高い回路ほど利用頻度が低い回路よりも投機部分の回路規模が大きい、
ことを特徴とするデータ処理装置。
【請求項４】
請求項２または３に記載のデータ処理装置において、
前記制御部は、前記データ処理部によるデータ処理の実行結果から得られる前記複数回路の各回路ごとの利用頻度に基づいて、前記複数回路の中で利用頻度が高い回路ほど利用頻度が低い回路よりも投機部分の回路規模を大きくする、
ことを特徴とするデータ処理装置。
【請求項５】
再構成可能回路を制御するコンピュータに、
データ処理において選択的に利用される回路構成の一部を当該回路構成の非利用時に再構成可能回路内に構成しておき、非利用時に構成されない当該回路構成の残り部分を当該回路構成の利用時に前記再構成可能回路内に構成する機能、
を実現させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置およびプログラムに関する。
【背景技術】
【０００２】
内部に備える回路構成を動的に再構成できる再構成可能回路（動的再構成回路）が知られており、再構成可能回路を利用した各種装置が提案されている。再構成可能回路を利用することにより、データ処理の回路を選択的に切り替えるように再構成可能回路内に再構成し、その再構成可能回路で選択的なデータ処理を実現することができる。例えば、特許文献１には、再構成可能回路内を全面的に再構成する全面的再構成処理と、再構成可能回路内を部分的に再構成する部分的再構成処理が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５９３５３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、データ処理において選択的に利用される回路構成の一部を非利用時に構成しておく投機的な実装を実現することにある。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、データ処理において選択的に利用される回路構成の一部を当該回路構成の非利用時に再構成可能回路内に構成しておき、非利用時に構成されない当該回路構成の残り部分を当該回路構成の利用時に前記再構成可能回路内に構成するデータ処理装置である。
【０００６】
請求項２に係る発明は、請求項１に記載のデータ処理装置において、前記再構成可能回路を備えるデータ処理部と、前記再構成可能回路内の再構成を制御する制御部と、を有し、前記データ処理部によるデータ処理において選択的に利用される複数回路の各回路が投機部分と選択部分で構成され、前記制御部は、前記各回路の非利用時に当該各回路の投機部分を前記再構成可能回路内に構成しておき、当該各回路の利用時に当該各回路の選択部分を前記再構成可能回路内に構成することを特徴とするデータ処理装置である。
【０００７】
請求項３に係る発明は、請求項２に記載のデータ処理装置において、前記複数回路の中でデータ処理における利用頻度が高い回路ほど利用頻度が低い回路よりも投機部分の回路規模が大きいことを特徴とするデータ処理装置である。
【０００８】
請求項４に係る発明は、請求項２または３に記載のデータ処理装置において、前記制御部は、前記データ処理部によるデータ処理の実行結果から得られる前記複数回路の各回路ごとの利用頻度に基づいて、前記複数回路の中で利用頻度が高い回路ほど利用頻度が低い回路よりも投機部分の回路規模を大きくすることを特徴とするデータ処理装置である。
【０００９】
請求項５に係る発明は、再構成可能回路を制御するコンピュータに、データ処理において選択的に利用される回路構成の一部を当該回路構成の非利用時に再構成可能回路内に構成しておき、非利用時に構成されない当該回路構成の残り部分を当該回路構成の利用時に前記再構成可能回路内に構成する機能を実現させることを特徴とするプログラムである。
【発明の効果】
【００１０】
請求項１に係る発明により、データ処理において選択的に利用される回路構成の一部を非利用時に構成しておく投機的な実装が実現される。
【００１１】
請求項２に係る発明により、データ処理において選択的に利用される各回路の非利用時における投機的な実装と利用時における選択的な構成が実現される。
【００１２】
請求項３に係る発明により、データ処理における利用頻度が高い回路を優先した投機的な実装が実現される。
【００１３】
請求項４に係る発明により、データ処理の実行結果から得られる各回路の利用頻度を踏まえた投機的な実装が実現される。
【００１４】
請求項５に係る発明により、データ処理において選択的に利用される回路構成の一部を非利用時に構成しておく投機的な実装がコンピュータにより実現される。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施において好適なデータ処理装置の具体例を示す図である。
【図２】再構成処理の具体例を説明するための図である。
【図３】投機的な実装による部分再構成を説明するための図である。
【図４】投機部分の回路規模の優先的な変更の具体例を示す図である。
【図５】投機的な実装によるデータ処理の具体例を示す図である。
【図６】ラン判定回路の投機部分に関する回路規模の変更例を示す図である。
【図７】投機的な実装によるラン圧縮処理の具体例を示す図である。
【図８】図１のデータ処理装置による処理の具体例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
図１は、本発明の実施において好適なデータ処理装置の具体例を示す図である。図１のデータ処理装置１００は、データ処理部１０と再構成制御部２０とＤＲＡＭ３０を備えている。
【００１７】
データ処理部１０は、再構成可能回路１２と再構成メモリ１４を備えており、処理対象となるデータに対してデータ処理を実行する。データ処理部１０は、例えば再構成可能回路１２と再構成メモリ１４を備えたＤＲＰ（Dynamic Reconfigurable Processor：動的再構成可能プロセッサ）などのデバイスにより実現することができる。なお、回路を再構成する機能を備えた他のデバイス（ＤＲＰ以外のデバイス）によりデータ処理部１０が実現されてもよい。
【００１８】
再構成可能回路１２は、その内部の論理回路構成を動的に、すなわち当該回路の動作中に再構成が可能な回路であり、例えば多数の回路要素（ＰＥ：プロセッサエレメント）を内部に備えている。そして、それら回路要素間の接続構成が再構成データ（コンフィギュレーションデータ）に従って比較的高速に再構成可能（組み替え可能）となっており、再構成された回路構成によりデータ処理が実行される。なお、再構成には、再構成可能回路１２内に既に構成されている回路が別の回路に変更される場合と、再構成可能回路１２内において回路が構成されていない部分に新たな回路が構成される場合が含まれる。
【００１９】
再構成可能回路１２内の回路構成は、再構成メモリ１４に記憶された再構成データに基づいて再構成（リコンフィギュレーション）される。再構成メモリ１４には、１つ以上の回路構成に対応した再構成データが記憶可能である。
【００２０】
また、図１のデータ処理装置において利用される多数の再構成データは、ＤＲＡＭ３０に記憶されており、ＤＲＡＭ３０に記憶された再構成データが、必要に応じて再構成メモリ１４にロード（移し入れ）され、再構成可能回路１２内の回路の再構成に利用される。再構成可能回路１２内の再構成処理や再構成データのロード処理は再構成制御部２０によって制御される。
【００２１】
再構成制御部２０は、図１のデータ処理装置１００内の再構成に係る処理を制御する。再構成制御部２０は、例えば演算機能を実現するＣＰＵ等のハードウェアとその動作を規定するソフトウェア（制御プログラム等）によって構成され、ハードウェアとソフトウェアとの協働により実現することができる。再構成制御部２０の機能は、例えばＤＲＰ内において実現されてもよいし、コンピュータ等により実現されてもよい。
【００２２】
再構成制御部２０の機能をコンピュータにより実現する場合には、後に詳述する再構成制御部２０の制御機能に対応したプログラム（制御プログラム）が、例えば、ディスクやメモリなどのコンピュータが読み取り可能な記憶媒体に記憶され、その記憶媒体を介してコンピュータに提供される。もちろん、インターネット等の電気通信回線を介して当該プログラムがコンピュータに提供されてもよい。そして、コンピュータが備えるＣＰＵやメモリ等のハードウェア資源と、提供された当該プログラム（ソフトウェア）との協働により、再構成制御部２０の機能が実現される。
【００２３】
図１のデータ処理装置１００によって処理されるデータの好適な具体例には画像データが含まれる。例えばコンピュータなどの外部の装置から、図１のデータ処理装置１００に画像データが提供される。画像データなどの入力データはＤＲＡＭ３０に記憶され、データバス等を介して、再構成可能回路１２内のロードバッファに入力される。そして、再構成可能回路１２においてデータ処理された画像データなどの出力データがストアバッファから出力されてＤＲＡＭ３０に記憶される。
【００２４】
なお、図１のデータ処理装置１００が、画像読み取り機能（スキャン機能）等を備えた画像処理装置内に組み込まれ、その画像読み取り機能により紙などの媒体から得られた画像データが入力データとしてデータ処理部１０に入力されてもよい。さらに、データ処理部１０による処理後の画像データに対応した画像が紙などに印刷されてもよいし、処理後の画像データが外部の装置に提供されてもよい。
【００２５】
このように、図１のデータ処理装置１００により画像処理装置が実現されてもよい。その画像処理装置の好適な具体例には、複写機、印刷機、ファクシミリ（ＦＡＸ）などが含まれる。さらに、複写機、印刷機、ファクシミリのうちのいずれか複数の機能を兼ね備えた複合機も画像処理装置の好適な具体例である。
【００２６】
なお、画像データは、図１のデータ処理装置１００において処理が可能な好適な具体例の一つに過ぎず、データ処理装置１００が画像データ以外のデータを処理してもよい。例えば、図１のデータ処理装置１００が、情報処理装置、情報処理端末、オーディオ・ビジュアル機器やその他の家電機器、医療機器、車両等に搭載され、様々なデータ処理や制御等に利用されてもよい。
【００２７】
図１のデータ処理装置１００の全体構成は以上のとおりである。次に、データ処理装置１００により実現される処理や機能の具体例について説明する。なお、図１に示した構成（符号を付した各部）については、以下の説明において図１の符号を利用する。
【００２８】
図２は、再構成処理の具体例を説明するための図である。図２には、再構成の対象となる対象回路の回路規模が大きい場合の具体例Ａ１と、再構成の対象となる対象回路の回路規模が小さい場合の具体例Ａ２が図示されている。
【００２９】
対象回路の回路規模が大きい具体例Ａ１において、対象回路はパイプライン段数３のデータ処理を実行する。つまり、複数の入力データの各々（各入力データ）が対象回路内で３段階のパイプライン処理を施されて各出力データとして出力される。
【００３０】
データフィル時間は、対象回路に最初の入力データが入力してから対象回路内の全パイプラインにデータが行き届くまでの時間（パイプライン構築時間）である。例えば、１段のパイプライン処理に１ｃｌｋ（クロック）を要するのであれば、パイプライン段数３である対象回路のデータフィル時間は３ｃｌｋとなる。
【００３１】
データフラッシュ時間は、対象回路に入力された最後の入力データが対象回路内の全パイプラインで処理されて出力される（掃ける）までの時間（データ退避時間）である。例えば、１段のパイプライン処理に１ｃｌｋ（クロック）を要するのであれば、パイプライン段数３である対象回路のデータフラッシュ時間は３ｃｌｋとなる。
【００３２】
したがって、データ処理の実行中に具体例Ａ１の対象回路を再構成する場合には、再構成の度に、データフィル時間３ｃｌｋとデータフラッシュ時間３ｃｌｋの合計６ｃｌｋが必要になる。
【００３３】
一方、対象回路の回路規模が小さい具体例Ａ２では、再構成の対象となる対象回路の前段に、再構成されない常駐回路が設けられている。具体例Ａ２において、常駐回路はパイプライン段数２のデータ処理を実行し、その後直ちに対象回路がパイプライン段数１のデータ処理を実行する。つまり、具体例Ａ２では、常駐回路と対象回路により３段階のパイプライン処理が実行される。
【００３４】
具体例Ａ２では、対象回路はパイプライン段数１である。そのため、例えば１段のパイプライン処理に１ｃｌｋ（クロック）を要するのであれば、パイプライン段数１である対象回路のデータフィル時間は１ｃｌｋとなり、データフラッシュ時間も１ｃｌｋとなる。したがって、データ処理の実行中に具体例Ａ２の対象回路を再構成する場合には、再構成の度に、データフィル時間１ｃｌｋとデータフラッシュ時間１ｃｌｋの合計２ｃｌｋが必要になる。
【００３５】
図２（Ｂ）には、対象回路の回路規模が大きい場合（具体例Ａ１）と小さい場合（具体例Ａ２）のそれぞれについて、再構成を繰り返した場合におけるデータ処理時間の具体例が図示されている。
【００３６】
対象回路規模が大きい場合（具体例Ａ１）と小さい場合（具体例Ａ２）において、全データ処理のパイプライン段数は同じ（３段階のパイプライン処理）であるため、パイプライン処理の時間（高速版処理と通常版処理の合計時間）は互いに等しい。また、同一の再構成可能回路であれば、１回の再構成処理に要する時間（リコンフィグ時間）は、対象回路規模に関わらす同じ（例えば１ｃｌｋ）になる。これに対し、データフィル時間とデータフラッシュ時間は、対象回路の回路規模が大きいほど長くなる。
【００３７】
例えば、画像処理等で一般的に利用されるデータ処理（画像処理）では、パイプライン段数が数十段〜数百段になる場合がある。したがって、再構成に要するオーバーヘッド（データフィル時間とデータフラッシュ時間とリコンフィグ時間）の大部分を、数十ｃｌｋ〜数百ｃｌｋのデータフィル時間とデータフラッシュ時間が占めることになる。そして、再構成を繰り返す度にオーバーヘッドが必要となるため、オーバーヘッドの時間、特にオーバーヘッドの大部分を占めるデータフィル時間とデータフラッシュ時間は、できる限り短縮できることが望ましい。
【００３８】
そこで、図１のデータ処理装置１００は、以下に説明する投機的な実装による部分再構成を実現する。
【００３９】
図３は、投機的な実装による部分再構成を説明するための図である。図３には、処理１回路と処理２回路と処理３回路の順に実行されるデータ処理の具体例が図示されている。例えば、処理１回路と処理２回路と処理３回路が再構成可能回路１２内に再構成され、ロードバッファから入力される入力データが処理１回路と処理２回路と処理３回路の順にデータ処理され、処理後の出力データがストアバッファから出力される。
【００４０】
図３の具体例において、処理１回路と処理３回路は、例えばデータ処理の開始前に再構成されてデータ処理の実行中に変更されない常駐回路である。これに対し、処理２回路としては、処理２Ａ回路と処理２Ｂ回路と処理２Ｃ回路のいずれか１つの処理回路がデータ処理において選択的に利用される。
【００４１】
図３（１）には、比較例として、通常の部分再構成の具体例が図示されている。通常の部分再構成では、データ処理において選択的に利用される各回路がその回路の利用時に再構成可能回路１２内に再構成される。
【００４２】
例えば、処理２Ａ回路の利用時には、処理２Ａ回路が再構成されて処理２Ａ回路によりデータ処理が実行される。処理２Ａ回路を再構成する際に既に処理２Ｂ回路または処理２Ｃ回路が実装されている（再構成済みである）場合には、例えば、実装されている回路に代えて（既に再構成されている回路が消去されて）処理２Ａ回路が再構成される。
【００４３】
また、処理２Ｂ回路の利用時には、処理２Ｂ回路が再構成されて処理２Ｂ回路によりデータ処理が実行される。処理２Ｂ回路を再構成する際に既に処理２Ａ回路または処理２Ｃ回路が実装されている（再構成済みである）場合には、例えば、実装されている回路に代えて（既に再構成されている回路が消去されて）処理２Ｂ回路が再構成される。
【００４４】
また、処理２Ｃ回路の利用時には、処理２Ｃ回路が再構成されて処理２Ｃ回路によりデータ処理が実行される。処理２Ｃ回路を再構成する際に既に処理２Ａ回路または処理２Ｂ回路が実装されている（再構成済みである）場合には、例えば、実装されている回路に代えて（既に再構成されている回路が消去されて）処理２Ｃ回路が再構成される。
【００４５】
これに対し、図３（２）には、投機的な実装による部分再構成の具体例が図示されている。図３（２）では、データ処理において選択的に利用される回路構成の一部をその回路構成の非利用時に再構成可能回路１２内に再構成しておく投機的な実装が行われ、非利用時に再構成されないその回路構成の残り部分がその回路構成の利用時に再構成可能回路１２内に再構成される。
【００４６】
図３（２）の具体例では、データ処理において選択的に利用される複数回路の各回路が投機部分と選択部分で構成される。つまり、処理２Ａ回路が投機部分の処理２Ａ１回路と選択部分の処理２Ａ２回路で構成され、処理２Ｂ回路が投機部分の処理２Ｂ１回路と選択部分の処理２Ｂ２回路で構成され、処理２Ｃ回路が投機部分の処理２Ｃ１回路と選択部分の処理２Ｃ２回路で構成される。
【００４７】
再構成制御部２０は、各回路の非利用時にその回路の投機部分を再構成可能回路１２内に再構成しておき、その回路の利用時にその各回路の選択部分を再構成可能回路１２内に再構成する。
【００４８】
例えば、投機部分である処理２Ａ１回路と処理２Ｂ１回路と処理２Ｃ１回路が、データ処理の開始前に予め再構成可能回路１２内に再構成される。つまり、例えばデータ処理の開始前に投機的な実装が行われる。そして、データ処理の実行中に、選択部分である処理２Ａ２回路と処理２Ｂ２回路と処理２Ｃ２回路のいずれか１つの回路が再構成可能回路１２内に選択的に再構成される。
【００４９】
例えば、処理２Ａ回路の利用時に処理２Ａ２回路が再構成され、投機部分の処理２Ａ１回路と選択部分の処理２Ａ２回路を組み合わせた処理２Ａ回路によりデータ処理が実行される。処理２Ａ２回路の再構成の際に既に処理２Ｂ２回路または処理２Ｃ２回路が実装されている（再構成済みである）場合には、例えば、実装されている回路に代えて（既に再構成されている選択部分の回路が消去されて）処理２Ａ２回路が再構成される。
【００５０】
また、処理２Ｂ回路の利用時に処理２Ｂ２回路が再構成され、投機部分の処理２Ｂ１回路と選択部分の処理２Ｂ２回路を組み合わせた処理２Ｂ回路によりデータ処理が実行される。処理２Ｂ２回路の再構成の際に既に処理２Ａ２回路または処理２Ｃ２回路が実装されている（再構成済みである）場合には、例えば、実装されている回路に代えて（既に再構成されている選択部分の回路が消去されて）処理２Ｂ２回路が再構成される。
【００５１】
また、処理２Ｃ回路の利用時に処理２Ｃ２回路が再構成され、投機部分の処理２Ｃ１回路と選択部分の処理２Ｃ２回路を組み合わせた処理２Ｃ回路によりデータ処理が実行される。処理２Ｃ２回路の再構成の際に既に処理２Ａ２回路または処理２Ｂ２回路が実装されている（再構成済みである）場合には、例えば、実装されている回路に代えて（既に再構成されている選択部分の回路が消去されて）処理２Ｃ２回路が再構成される。
【００５２】
図３（２）に示す投機的な実装による部分再構成では、選択的に再構成される回路が選択部分のみであるため、図３（１）に示す通常の部分再構成に比べて、再構成の対象となる対象回路の回路規模が小さい。図２を利用して説明したように、再構成の対象となる対象回路の回路規模が小さいほど、再構成のオーバーヘッド（特にデータフィル時間とデータフラッシュ時間）が短縮される。したがって、投機的な実装による部分再構成を行うことにより、通常の部分再構成よりも、再構成のオーバーヘッドが短縮される。
【００５３】
また、投機的な実装による部分再構成において再構成のオーバーヘッドを短縮するためには、選択部分の回路規模が小さくなるように、投機部分の回路規模を大きくすることが望ましい。但し、再構成可能回路１２内に一度に構成可能な回路規模は有限である。したがって、有限な再構成可能回路１２内の回路規模を有効に利用して投機部分の回路を構成することが望ましい。
【００５４】
そこで、図１のデータ処理装置１００は、選択的に利用される複数回路の中でデータ処理における利用頻度が高い回路ほど利用頻度が低い回路より投機部分の回路規模が大きくなるように、選択的に利用される複数回路の中で投機部分の回路規模の割合を調整する。例えば、図３（２）に示す具体例では、投機部分である処理２Ａ１回路と処理２Ｂ１回路と処理２Ｃ１回路の回路規模の割合が均等である。例えば、これら投機部分の合計の回路規模を維持しつつ回路規模の割合が変更される。
【００５５】
図４は、投機部分の回路規模の優先的な変更の具体例を示す図である。図４には、図３（２）の投機部分である処理２Ａ１回路と処理２Ｂ１回路と処理２Ｃ１回路の回路規模の具体例が図示されている。
【００５６】
図４（Ａ）は、処理２Ａ回路を優先した変更の具体例を示している。図４（Ａ）に示す具体例では、処理２Ｂ１回路と処理２Ｃ１回路よりも、処理２Ａ１回路の回路規模が大きい。その結果、投機部分が均等の場合（図３（２））よりも、処理２Ａ回路の選択部分である処理２Ａ２回路の回路規模が小さくなる。
【００５７】
例えば、データ処理において、処理２Ｂ回路と処理２Ｃ回路よりも、処理２Ａ回路の利用頻度が高い場合に処理２Ａ回路を優先した変更が適用される。例えば、処理２Ａ回路を頻繁に利用するデータ処理において図４（Ａ）の具体例が適用される。これにより、投機部分が均等の場合（図３（２））よりも、処理２Ａ回路に係る再構成のオーバーヘッドが短縮され、データ処理全体の処理時間が短縮される。
【００５８】
図４（Ｂ）は、処理２Ｂ回路を優先した変更の具体例を示している。図４（Ｂ）に示す具体例では、処理２Ａ１回路と処理２Ｃ１回路よりも、処理２Ｂ１回路の回路規模が大きい。例えば、処理２Ａ回路と処理２Ｃ回路よりも、処理２Ｂ回路の利用頻度が高いデータ処理において図４（Ｂ）の具体例が適用される。これにより、投機部分が均等の場合（図３（２））よりも、処理２Ｂ回路に係る再構成のオーバーヘッドが短縮され、データ処理全体の処理時間が短縮される。
【００５９】
図４（Ｃ）は、処理２Ｃ回路を優先した変更の具体例を示している。図４（Ｃ）に示す具体例では、処理２Ａ１回路と処理２Ｂ１回路よりも、処理２Ｃ１回路の回路規模が大きい。例えば、処理２Ａ回路と処理２Ｂ回路よりも、処理２Ｃ回路の利用頻度が高いデータ処理において図４（Ｃ）の具体例が適用される。これにより、投機部分が均等の場合（図３（２））よりも、処理２Ｃ回路に係る再構成のオーバーヘッドが短縮され、データ処理全体の処理時間が短縮される。
【００６０】
図５は、投機的な実装によるデータ処理の具体例を示す図である。図５には、再構成可能回路１２内に再構成されるラン圧縮処理の回路構成が図示されている。ラン圧縮前の入力データはロードバッファから得られる。データフロー制御回路は、ロードバッファから得られる複数の入力データを次々に後段のラン判定回路へ出力する。
【００６１】
ラン判定回路は、複数の入力データ内において同一データが連続するランを判定する。また、例えばラン判定回路において、複数の入力データに含まれる同一データ値の連続数（Ｃｎｔ）が計数される。ラン生成回路は、データ値とそのデータ値のラン長（連続数）で構成されるラン圧縮後の出力データを生成する。ラン圧縮後の出力データはストアバッファに送られる。
【００６２】
図５に示す具体例において、データフロー制御回路とラン生成回路は、例えばラン圧縮処理の開始前に再構成されてラン圧縮処理の実行中に変更されない常駐回路である。これに対し、ラン判定回路としては、２並列判定回路と４並列判定回路と８並列判定回路のいずれか１つの判定回路がラン圧縮処理において選択的に利用される。
【００６３】
２並列判定回路は、連続する２つの入力データを並列処理する回路であり、同一データ値が連続するラン継続時でもデータ値の不連続時でもラン判定が可能である。例えば１つの入力データが１Ｂｙｔｅ（バイト）であれば、２並列判定回路のラン継続時の処理性能は２Ｂｙｔｅ／ｃｌｋ（クロック）であり、不連続時の処理性能も２Ｂｙｔｅ／ｃｌｋである。
【００６４】
４並列判定回路は、連続する４つの入力データを並列処理する回路であり、同一データ値が連続するラン継続時に高速処理が可能であり、不連続時には低速処理となる。例えば１つの入力データが１Ｂｙｔｅであれば、４並列判定回路のラン継続時の処理性能は４Ｂｙｔｅ／ｃｌｋであり、不連続時の処理性能は１Ｂｙｔｅ／ｃｌｋである。
【００６５】
８並列判定回路は、連続する８つの入力データを並列処理する回路であり、同一データ値が連続するラン継続時に非常に高速であるものの不連続時には処理不能となる。例えば１つの入力データが１Ｂｙｔｅであれば、８並列判定回路のラン継続時の処理性能は８Ｂｙｔｅ／ｃｌｋであり、ラン不連続時には処理不能となる。
【００６６】
図５の具体例では、ラン判定において選択的に利用される各判定回路が投機部分と選択部分で構成される。つまり、２並列判定回路と４並列判定回路と８並列判定回路の各判定回路が投機部分と選択部分で構成される。そして、例えばラン圧縮処理の開始前に各判定回路の投機部分が再構成され、つまり投機的に実装され、ラン圧縮処理の実行中に各判定回路の選択部分が選択的に再構成される。
【００６７】
また、図５に示すラン圧縮処理の具体例において、図１の再構成制御部２０は、選択的に利用される各判定回路の中でデータ処理における利用頻度が高い判定回路ほど利用頻度が低い判定回路より投機部分の回路規模が大きくなるように、投機部分の回路規模の割合を調整する。例えば、図５に示す具体例では、２並列判定回路と４並列判定回路と８並列判定回路の投機部分の回路規模の割合が均等である。例えば、これら投機部分の合計の回路規模を維持しつつ回路規模の割合が変更される。
【００６８】
図６は、ラン判定回路の投機部分に関する回路規模の変更例を示す図である。図６（Ａ）は、２並列判定回路を優先した変更の具体例を示している。図６（Ａ）に示す具体例では、他の２つの判定回路よりも、２並列判定回路の投機部分の回路規模が大きく、選択部分の回路規模が小さい。例えば、他の２つの判定回路よりも２並列判定回路の利用頻度が高いラン圧縮処理において図６（Ａ）の具体例が適用される。これにより、投機部分が均等の場合（図５）よりも、２並列判定回路に係る再構成のオーバーヘッドが短縮され、ラン圧縮処理全体の処理時間が短縮される。
【００６９】
図６（Ｂ）は、４並列判定回路を優先した変更の具体例を示している。図６（Ｂ）に示す具体例では、他の２つの判定回路よりも、４並列判定回路の投機部分の回路規模が大きく、選択部分の回路規模が小さい。例えば、他の２つの判定回路よりも４並列判定回路の利用頻度が高いラン圧縮処理において図６（Ｂ）の具体例が適用される。これにより、投機部分が均等の場合（図５）よりも、４並列判定回路に係る再構成のオーバーヘッドが短縮され、ラン圧縮処理全体の処理時間が短縮される。
【００７０】
図６（Ｃ）は、８並列判定回路を優先した変更の具体例を示している。図６（Ｃ）に示す具体例では、他の２つの判定回路よりも、８並列判定回路の投機部分の回路規模が大きく、選択部分の回路規模が小さい。例えば、他の２つの判定回路よりも８並列判定回路の利用頻度が高いラン圧縮処理において図６（Ｃ）の具体例が適用される。これにより、投機部分が均等の場合（図５）よりも、８並列判定回路に係る再構成のオーバーヘッドが短縮され、ラン圧縮処理全体の処理時間が短縮される。
【００７１】
図７は、投機的な実装によるラン圧縮処理の具体例を示す図である。つまり、図５と図６を利用して説明した回路構成によるラン圧縮処理の具体例が図７に示されている。
【００７２】
再構成制御部２０は、複数の入力データに含まれる同一データ値の連続数（Ｃｎｔ）に応じて、ラン判定回路の選択部分の再構成を判断する。例えば、連続数（Ｃｎｔ）が８未満の場合には、ラン判定回路として２並列判定回路が選択され、再構成制御部２０は、２並列判定回路の選択部分を再構成可能回路１２内に再構成する。
【００７３】
また、例えば、連続数（Ｃｎｔ）が８以上３２未満の場合には、ラン判定回路として４並列判定回路が選択され、再構成制御部２０は、４並列判定回路の選択部分を再構成可能回路１２内に再構成する。そして、例えば、連続数（Ｃｎｔ）が３２以上の場合には、ラン判定回路として８並列判定回路が選択され、再構成制御部２０は、８並列判定回路の選択部分を再構成可能回路１２内に再構成する。
【００７４】
例えば、図７に示すように、入力データが先頭から順にラン判定回路に入力される。図７の具体例では、最初に２並列判定回路が利用されてラン圧縮処理が開始される。そして２並列判定回路を利用してラン圧縮処理が継続され、入力データの連続数（Ｃｎｔ）が８に達すると、２並列判定回路から４並列判定回路に選択部分の再構成が行われ、４並列判定回路が利用される。
【００７５】
さらに、４並列判定回路を利用したラン圧縮処理が継続され、入力データの連続数（Ｃｎｔ）が３２に達すると、４並列判定回路から８並列判定回路に選択部分の再構成が行われ、８並列判定回路が利用される。そして、８並列判定回路を利用したラン圧縮処理が継続され、入力データの連続性が途切れると連続数（Ｃｎｔ）が０「ゼロ」に初期化され、８並列判定回路から２並列判定回路に選択部分の再構成が行われ、２並列判定回路が利用される。
【００７６】
なお、連続数（Ｃｎｔ）は、例えばラン判定回路において計数されることが望ましいものの、ラン判定回路の前段または後段に連続数（Ｃｎｔ）を計数するカウント回路が設けられてもよい。
【００７７】
再構成制御部２０は、ラン圧縮処理の実行結果から得られる２並列判定回路と４並列判定回路と８並列判定回路の各判定回路ごとの利用頻度に基づいて、これらの判定回路の中で利用頻度が高い回路ほど利用頻度が低い回路よりも投機部分の回路規模を大きくする。
【００７８】
例えば、２並列判定回路の利用頻度が高いラン圧縮処理において図６（Ａ）の具体例が適用され、４並列判定回路の利用頻度が高いラン圧縮処理において図６（Ｂ）の具体例が適用され、８並列判定回路の利用頻度が高いラン圧縮処理において図６（Ｃ）の具体例が適用される。
【００７９】
なお、利用頻度は定期的に再評価されることが望ましい。再構成制御部２０は、ラン圧縮処理の実行中に、２並列判定回路と４並列判定回路と８並列判定回路の各判定回路ごとの利用頻度（回数）を計数する。そして、例えば、ラン圧縮処理中にＮクロック（Ｎは自然数であり例えば１０００程度）ごとに各判定回路ごとの利用頻度が再評価され、投機部分の回路規模が変更される。
【００８０】
図８は図１のデータ処理装置１００による処理の具体例を示すフローチャートである。図８には、図５から図７を利用して説明した投機的な実装によるラン圧縮処理の具体例に対応したフローチャートが図示されている。図８（０）は、全体処理のフローチャートである。全体処理では、まず、図８（１）に示す投機的実装の初期回路の選択処理が実行され、続いて図８（２）に示すデータ処理が実行される。
【００８１】
図８（１）に示す投機的実装の初期回路の選択処理では、まず、利用頻度（処理頻度）に関する情報（利用頻度情報）があるか否かが確認される（Ｓ１０１）。例えば、過去に実行されたデータ処理（ラン圧縮処理）で得られた利用頻度情報があれば、その利用頻度の情報に従った再構成制御部２０の制御により、利用頻度の高い判定回路を優先した投機的な実装が行われる（Ｓ１０２）。例えば図６（Ａ）〜（Ｃ）のいずれかの具体例が適用される。
【００８２】
これに対し、利用頻度情報が無ければ、再構成制御部２０の制御により、汎用の投機的実装が行われる（Ｓ１０３）。汎用の投機的実装として、例えば図６（Ａ）〜（Ｃ）のうちの予め定められた一つが適用されてもよいし、投機部分を均等とする図５の具体例が適用されてもよい。
【００８３】
こうして、投機的実装の初期回路の選択処理が実行され、再構成可能回路１２内に投機部分が再構成されてから、つまり投機的な実装が行われてから、図８（２）に示すデータ処理が実行される。
【００８４】
図８（２）に示すデータ処理では、まず、入力データの番号ｉ（自然数）と入力データの連続数Ｃｎｔ（自然数）が０に初期化され（Ｓ２０１）、ラン圧縮処理回路（図５）が番号ｉの入力データを取得する（Ｓ２０２）。そして、番号ｉの入力データが番号ｉ−１の前回の入力データと一致しているか否かが確認され（Ｓ２０３）、一致していれば入力データの連続数Ｃｎｔが１だけカウントアップされ（Ｓ２０４）、不一致であれば入力データの連続数Ｃｎｔが０に初期化される（Ｓ２０５）。
【００８５】
続いて、番号ｉが再評価の基準値Ｎに達したか否かが確認される（Ｓ２０６）。番号ｉが再評価の基準値Ｎに達していれば、利用頻度の再評価による投機的な実装（Ｓ２０７）の後に再構成判定が行われる（Ｓ２０８）。番号ｉが再評価の基準値Ｎに達していなければ、現状の投機的な実装を維持したまま再構成判定が行われる（Ｓ２０８）。
【００８６】
Ｓ２０６における基準値Ｎは例えば１０００であり、入力データ数が１０００に達すると利用頻度（処理頻度）が再評価され、利用頻度の高い判定回路を優先した投機的な実装が行われる。なお、利用頻度の再評価は、例えば前回の再評価から入力データ数が１０００に達する度に行われることが望ましい。
【００８７】
再構成判定（Ｓ２０８）において、再構成制御部２０は、入力データの連続数Ｃｎｔに応じて、ラン判定回路の選択部分の再構成を判断する。例えば、図７を利用して説明したように、連続数Ｃｎｔが８未満の場合には２並列判定回路が選択され、連続数Ｃｎｔが８以上３２未満の場合には４並列判定回路が選択され、連続数Ｃｎｔが３２以上の場合には８並列判定回路が選択される。
【００８８】
こうして、選択部分が再構成されたラン圧縮処理回路（図５）によりラン圧縮処理が実行され（Ｓ２０９）、全入力データのラン圧縮処理が終了していなければ（Ｓ２１０）、入力データの番号ｉが１だけカウントアップされ、Ｓ２０２からＳ２０９までの処理が実行される。番号ｉのカウントアップとＳ２０２からＳ２０９までの処理が繰り返され、全入力データのラン圧縮処理が終了すると（Ｓ２１０）、図８（２）のデータ処理が終了して図８（０）の全体処理も終了する。
【００８９】
以上、本発明の好適な実施形態を説明したが、上述した実施形態は、あらゆる点で単なる例示にすぎず、本発明の範囲を限定するものではない。本発明は、その本質を逸脱しない範囲で各種の変形形態を包含する。
【符号の説明】
【００９０】
１０  データ処理部、１２  再構成可能回路、１４  再構成メモリ、２０  再構成制御部、３０  ＤＲＡＭ、１００  データ処理装置。
【図１】
2018049311.tif 000003
【図２】
2018049311.tif 000004
【図３】
2018049311.tif 000005
【図４】
2018049311.tif 000006
【図５】
2018049311.tif 000007
【図６】
2018049311.tif 000008
【図７】
2018049311.tif 000009
【図８】
2018049311.tif 000010