(57)【要約】【課題】データ処理に要する時間に比べて再構成（コンフィグレーション）のための書き換え時間を十分に短くし得る再構成可能論理回路を提供する。【解決手段】再構成可能論理回路は、データ処理部１０と、コンフィグレーションコントロールビット保持部３０と、セレクタ部３１を備える。コンフィグレーションコントロールビット保持部３０は、処理毎の複数組のコンフィグレーションコントロールビットを保持する。セレクタ部３１は、セレクタ制御信号に応じていずれかの組のコンフィグレーションコントロールビットを選択してデータ処理部１０に供給し、データ処理部１０を再構成する。再構成可能論理回路は、ＦＰＧＡで構成され得る。【選択図】図１
2018033036.tif 000002
【特許請求の範囲】
【請求項１】
データ処理部と、
複数組のコンフィグレーションコントロールビットを記憶する記憶部と、
記憶部に記憶された複数組のコンフィグレーションコントロールビットのいずれかの組を選択的に切り替えてデータ処理部に供給してデータ処理部の処理内容を再構成するセレクタ部と、
を備える再構成可能論理回路。
【請求項２】
データ処理部、記憶部、及びセレクタ部はそれぞれ複数設けられる
請求項１に記載の再構成可能論理回路。
【請求項３】
セレクタ部での切り替えは、ソフトウェアで実行される
請求項１，２のいずれかに記載の再構成可能論理回路。
【請求項４】
セレクタ部での切り替えは、ハードウェアで実行される
請求項１，２のいずれかに記載の再構成可能論理回路。
【請求項５】
データ処理部は、データ処理の終了を検知する処理終了検知部を備え、
セレクタ部での切り替えは、処理終了検知部からの検知情報に応じて実行される
請求項４に記載の再構成可能論理回路。
【請求項６】
処理終了検知部からの検知情報を再構成情報として保持する再構成情報記憶部と、
再構成許可情報を保持する再構成許可情報記憶部と、
再構成情報記憶部に保持された情報と再構成許可情報記憶部に保持された情報とに応じてセレクタ制御信号を生成してセレクタ部に供給する再構成指示部と、
を備える請求項５に記載の再構成可能論理回路。
【請求項７】
記憶部は、少なくとも、データ処理部での第１の処理用のコンフィグレーションコントロールビットの組と、第２の処理用のコンフィグレーションコントロールビットの組を記憶し、
処理終了検知部は、データ処理部での第１の処理の終了を検知して第２の処理に切り替える設定値を再構成情報記憶部に格納し、
再構成許可情報記憶部は、第１の処理から第２の処理に切り替える設定値を保持し、
再構成指示部は、再構成情報記憶部に格納された設定値と、再構成許可情報記憶部に保持されている設定値が一致する場合に、セレクタ部にセレクタ制御信号を出力し、
セレクタ部は、セレクタ制御信号に応じてデータ処理部に第２の処理用のコンフィグレーションコントロールビットの組を供給する、
請求項６に記載の再構成可能論理回路。
【請求項８】
データ処理部、記憶部及びセレクタ部は、ＦＰＧＡで構成される
請求項１〜７のいずれかに記載の再構成可能論理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能論理回路に関する。  
【背景技術】
【０００２】
従来から、再構成可能（コンフィグラブル）な論理回路が知られている。
【０００３】
特許文献１には、論理回路の使用／未使用を設定することで再構成可能な電子回路が記載されている。
【０００４】
図１３は、特許文献１に記載された論理回路である。論理回路１０は、複数の論理ゲート２１〜２７を備えて構成される。Ｃ０、Ｃ１、Ｃ２、・・・Ｃ５のコンフィグレーションコントロールビットという、実質的にはメモリに相当するスイッチまたはトランジスタによって論理回路の使用／未使用を設定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第４８７０３０２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
論理回路の再構成は、外部からのクロック、制御信号、及びデータバスによりメモリに対してデータを書き込むことで行われ、論理回路の全面的な書き換えにはｍｓオーダの時間を要していた。
【０００７】
論理回路を書き換えないで運用する場合には、論理回路を備える装置の電源投入時に一度書き換えればそれでよいが、処理の内容をリアルタイムに書き換えながら運用する場合において、その処理単位に求められる処理時間がｍｓオーダよりも速いときには、書き換え時間が全体の処理に占める割合が多くなり、所望の性能を果たせなくなる。
【０００８】
図１４は、データ処理の時間と再構成（コンフィグレーション）のための書き換え時間との関係を模式的に示す。図１４（ａ）は所望の処理であり、処理Ａ及び処理Ｂにそれぞれ１０ｍｓを要し、処理Ａから処理Ｂに移行するための書き換え時間はこれらの処理時間に比べて十分に短く、例えば１ｍｓ以下であることが望ましい。他方、図１４（ｂ）は書き換え時間が例えば９０ｍｓの場合であり、処理Ａ及び処理Ｂに要する時間よりも書き換え時間の方が長く、全体の処理に占める書き換えの割合が著しく多くなっている。
【０００９】
なお、論理回路を全面的に書き換えるのではなく、部分的に書き換えることも考えられるが、書き換え時間はロジックの容量に比例し、比較的大きな機能ブロックの書き換えにはたとえ部分的な書き換えであったとしても相応の時間を要することとなるため、所望の処理の実現は困難である。
【００１０】
本発明の目的は、データ処理に要する時間に比べて再構成（コンフィグレーション）のための書き換え時間を十分に短くし得る再構成可能論理回路を提供することにある。  
【課題を解決するための手段】
【００１１】
請求項１に記載の発明は、データ処理部と、複数組のコンフィグレーションコントロールビットを記憶する記憶部と、記憶部に記憶された複数組のコンフィグレーションコントロールビットのいずれかの組を選択的に切り替えてデータ処理部に供給してデータ処理部の処理内容を再構成するセレクタ部とを備える再構成可能論理回路である。
【００１２】
請求項２に記載の発明は、データ処理部、記憶部、及びセレクタ部はそれぞれ複数設けられる請求項１に記載の再構成可能論理回路である。
【００１３】
請求項３に記載の発明は、セレクタ部での切り替えは、ソフトウェアで実行される請求項１，２のいずれかに記載の再構成可能論理回路である。
【００１４】
請求項４に記載の発明は、セレクタ部での切り替えは、ハードウェアで実行される請求項１，２のいずれかに記載の再構成可能論理回路である。
【００１５】
請求項５に記載の発明は、データ処理部は、データ処理の終了を検知する処理終了検知部を備え、セレクタ部での切り替えは、処理終了検知部からの検知情報に応じて実行される請求項４に記載の再構成可能論理回路である。
【００１６】
請求項６に記載の発明は、処理終了検知部からの検知情報を再構成情報として保持する再構成情報記憶部と、再構成許可情報を保持する再構成許可情報記憶部と、再構成情報記憶部に保持された情報と再構成許可情報記憶部に保持された情報とに応じてセレクタ制御信号を生成してセレクタ部に供給する再構成指示部とを備える請求項５に記載の再構成可能論理回路である。
【００１７】
請求項７に記載の発明は、記憶部は、少なくとも、データ処理部での第１の処理用のコンフィグレーションコントロールビットの組と、第２の処理用のコンフィグレーションコントロールビットの組を記憶し、処理終了検知部は、データ処理部での第１の処理の終了を検知して第２の処理に切り替える設定値を再構成情報記憶部に格納し、再構成許可情報記憶部は、第１の処理から第２の処理に切り替える設定値を保持し、再構成指示部は、再構成情報記憶部に格納された設定値と、再構成許可情報記憶部に保持されている設定値が一致する場合に、セレクタ部にセレクタ制御信号を出力し、セレクタ部は、セレクタ制御信号に応じてデータ処理部に第２の処理用のコンフィグレーションコントロールビットの組を供給する請求項６に記載の再構成可能論理回路である。
【００１８】
請求項８に記載の発明は、データ処理部、記憶部及びセレクタ部は、ＦＰＧＡ（Field-Programmable Gate Array）で構成される請求項１〜７のいずれかに記載の再構成可能論理回路である。
【発明の効果】
【００１９】
請求項１に記載の発明によれば、データ処理に要する時間に比べて再構成（コンフィグレーション）のための書き換え時間を十分に短くし得る。
【００２０】
請求項２に記載の発明によれば、さらに、複数の再構成可能論理回路の並列処理により処理を高速化できる。
【００２１】
請求項３に記載の発明によれば、さらに、ソフトウェア的に再構成することができる。
【００２２】
請求項４〜７に記載の発明によれば、さらに、ハードウェア的に再構成することができる。また、これにより書き換え時間をさらに短縮し得る。
【００２３】
請求項８に記載の発明によれば、さらに、ＦＰＧＡ（Field-Programmable Gate Array）を用いて再構成可能論理回路を構成できる。また、これにより入出力ピンの位置の変更も含めた再構成が可能となる。
【図面の簡単な説明】
【００２４】
【図１】第１実施形態の構成図である。
【図２】第１実施形態の処理時間と書き換え時間の関係を示す模式図である。
【図３】第２実施形態の構成図である。
【図４】第２実施形態の機能ブロック図である。
【図５】第２実施形態の回路記憶部の構成図である。
【図６】第２実施形態の再構成許可レジスタの設定値を示す説明図である。
【図７】第２実施形態のタイミングチャートである。
【図８】第２実施形態の処理フローチャートである。
【図９】第３実施形態のディザ処理説明図である。
【図１０】第３実施形態の再構成説明図である。
【図１１】第４実施形態のシステム構成図である。
【図１２】第４実施形態の処理説明図である。
【図１３】従来回路の構成図である。
【図１４】従来回路の処理時間と書き換え時間の関係を示す模式図である。
【発明を実施するための形態】
【００２５】
以下、図面に基づき本発明の実施形態について説明する。
【００２６】
＜第１実施形態＞
図１は、本実施形態における再構成可能論理回路の構成を示す。再構成可能論理回路は、データ処理部１０と、複数組のコンフィグレーションコントロールビットを保持する保持部３０と、セレクタ部３１を備える。
【００２７】
データ処理部１０は、図１３に示す論理回路１０と同一であり、複数の論理ゲートを備えた回路である。
【００２８】
コンフィグレーションコントロールビット保持部３０は、複数組のコンフィグレーションコントロールビットを保持するレジスタ等で構成され、図では処理Ａ用の保持部３０ａ、処理Ｂ用の保持部３０ｂ、・・・、処理Ｘ用の保持部３０ｘから構成される。各保持部３０ａ、３０ｂ、・・・３０ｘは、それぞれＣ０、Ｃ１、Ｃ２、Ｃ３，Ｃ４、Ｃ５の合計６ビットを１組としてＤ−ＦＦ（Ｄ型フリップフロップ）に保持してセレクタ部３１に出力する。すなわち、コンフィグレーションコントロールビット保持部３０は、処理Ａ用のコンフィグレーションコントロールビットの組、処理Ｂ用のコンフィグレーションコントロールビットの組、・・・処理Ｘ用のコンフィグレーションコントロールビットの組を保持する。保持するコンフィグレーションコントロールビットの組は２以上であれば任意であり、かつ、それぞれの組におけるコンフィグレーションコントロールビットの数も６ビットに限定されない。
【００２９】
セレクタ部３１は、コンフィグレーションコントロールビット保持部３０からの、処理Ａ用のコンフィグレーションコントロールビットの組、処理Ｂ用のコンフィグレーションコントロールビットの組、・・・、処理Ｘ用のコンフィグレーションコントロールビットの組を入力し、セレクタ制御信号に応じていずれかのコンフィグレーションコントロールビットの組を選択してデータ処理部１０に供給し、データ処理部１０を再構成する。
【００３０】
具体的には、データ処理部１０にて処理Ａを実行する場合、セレクタ部３１は、コンフィグレーションコントロールビット保持部３０ａに保持されているＣ０〜Ｃ５のコンフィグレーションコントロールビットの組をデータ処理部１０に供給する。例えば、
Ｃ０＝１
Ｃ１＝１
Ｃ２＝０
Ｃ３＝０
Ｃ４＝０
Ｃ５＝１
の組を出力してデータ処理部１０を構成する。次に、データ処理部１０を処理Ａから処理Ｂに再構成する場合、セレクタ部３１は、コンフィグレーションコントロールビット保持部３０ｂに保持されているＣ０〜Ｃ５のコンフィグレーションコントロールビットの組をデータ処理部１０に供給する。例えば、
Ｃ０＝０
Ｃ１＝０
Ｃ２＝１
Ｃ３＝１
Ｃ４＝１
Ｃ５＝０
の組を出力してデータ処理部１０を再構成する。
【００３１】
このように、コンフィグレーションコントロールビットを保持する保持部３０を複数個処理毎に備えておき、切替が必要な場合にセレクタ制御信号ないしトリガ信号により処理Ａから処理Ｂ、さらには処理Ｃと任意の処理に切り替えることで、再構成のための書き換え時間を短縮することができる。本実施形態では、書き換えに要する時間はセレクタ部３１での切替に要する時間に等しく、従って１ｍｓ以下での書き換えが可能である。
【００３２】
なお、処理の切替タイミングは、ソフトウェア的に処理すればよく、例えば、処理Ａの実行タイミングにおいて図示しないＣＰＵが処理プログラムに従い処理Ａ用のトリガ信号をセレクタ部３１に出力して処理Ａ用のコンフィグレーションコントロールビットの組を選択させてデータ処理部１０を構成し、処理Ａが完了したことをソフトウェア的に検知すると、ＣＰＵは処理プログラムに従い処理Ｂ用のトリガ信号をセレクタ部３１に出力して処理Ｂ用のコンフィグレーションコントロールビットの組を選択させてデータ処理部１０を再構成する。
【００３３】
＜第２実施形態＞
第１実施形態では、再構成のための書き換え時間を１ｍｓ以下、例えば９０μｓに短縮することが可能であるが、他方で、データ処理部１０でのデータ処理に要する時間が更に短くなり、例えば１０μｓ程度になると、相対的に書き換え時間の占める割合が多くなってしまう。
【００３４】
図２は、この場合の処理時間と書き換え時間の関係を模式的に示す。データ処理部１０でハードウェア的に処理Ａ及び処理Ｂを１０μｓで処理し、他方で、セレクタ部３１でソフトウェア的に切替制御して書き換える処理を９０μｓで処理する。すなわち、処理Ａを１０μｓで行い、９０μｓでデータ処理部１０を書き換え、処理Ｂを１０μｓで行い、９０μｓでデータ処理部１０を書き換え、処理Ｃを１０μｓ実行する等である。相対的に書き換え時間の方が長くなると、再構成のための書き換え時間を全体の中で隠蔽することができず、書き換え時間がオーバヘッドとなってシステム性能が低下する。
【００３５】
そこで、本実施形態では、第１実施形態よりもさらに書き換え時間を短縮する構成について説明する。
【００３６】
図３は、本実施形態における再構成可能論理回路の構成を示す。再構成可能論理回路としてのＦＰＧＡ（Field-Programmable Gate Array）は、データ処理部３２、及び再構成制御部３４を備える。
【００３７】
データ処理部３２は、入力制御部３２１、演算部３２２、出力制御部３２３、及び処理終了検知部３２４を備える。
【００３８】
入力制御部３２１は、外部メモリ３６に記憶されたデータを読み込んで演算部３２２に供給する。
【００３９】
演算部３２２は、再構成された内容でデータを処理し、出力制御部３２３に供給する。
【００４０】
出力制御部３２３は、演算結果を外部メモリ３６に書き込む。
【００４１】
処理終了検知部３２４は、演算部３２２及び出力制御部３２３の状態を監視し、処理が終了したことを検知してその情報を再構成制御部３４側に供給する。
【００４２】
再構成制御部３４は、再構成情報記憶部３４１、再構成許可情報記憶部３４２、再構成実施判定部３４３、再構成指示部３４４、及び回路記憶部３４５を備える。
【００４３】
再構成情報記憶部３４１は、処理終了検知部３２４からの処理終了検知情報を入力する。
【００４４】
再構成許可情報記憶部３４２は、予めデータ処理部３２の再構成を許可するための値を保持する。
【００４５】
再構成実施判定部３４３は、再構成情報記憶部３４１に記憶された情報、すなわち処理終了検知部３２４から供給された情報と、再構成許可情報記憶部３４２に記憶された値とを比較し、両者が一致するか否かを判定する。再構成実施判定部３４３は、両者が一致する場合に，再構成指示部３４４にその旨の信号を出力する。
【００４６】
再構成指示部３４４は、再構成実施判定部３４３からの信号に応じ、セレクタ信号を回路記憶部３４５に出力する。
【００４７】
回路記憶部３４５は、処理毎のコンフィグレーションコントロールビット保持部３０及びセレクタ部３１を備え、再構成指示部３４４からのセレクタ制御信号に応じていずれかのコンフィグレーションコントロールビットの組をデータ処理部１０の演算部３２２に供給し、演算部３２２の処理内容を処理Ａ／処理Ｂ／・・・処理Ｘ間で切り替える。
【００４８】
図４及び図５は、図３に示すＦＰＧＡの機能ブロック図を示し、特に再構成制御部３４の機能ブロック図を示す。一例として、処理Ａと処理Ｂで切り替える場合について説明する。
【００４９】
データ処理部３２の処理終了検知部３２４は、演算部３２２及び出力制御部３２３の状態を監視し、処理が終了したことを検知すると、回路の切り替え設定値を再構成情報記憶部３４１としての回路イベント保持レジスタ３４１に書き込む。
【００５０】
他方、再構成許可情報記憶部３４２としての再構成許可レジスタ３４２には、事前に回路の切り替え設定値を格納しておく。図６は、再構成許可レジスタ３４２に格納される設定値の一例を示す。設定値として、例えば１６進法で「０Ｘ００」、「０Ｘ０１」、「０Ｘ０２」の３つの値のいずれかがあり、それぞれ、
「０Ｘ００」→再構成しない
「０Ｘ０１」→処理Ａに再構成
「０Ｘ０２」→処理Ｂに再構成
を意味するものとする。
【００５１】
再び図３、図４、図５に戻り、回路イベント保持レジスタ３４１に処理終了検知部３２４から値が書き込まれると、再構成実施判定部３４３としてのレジスタ値比較器３４３は、回路イベント保持レジスタ３４１に格納された値と、再構成許可レジスタ３４２に格納された値とを比較し、両値が一致する場合に一致信号を再構成指示部３４４としてのセレクタ制御信号生成器３４４に出力する。例えば、再構成許可レジスタ３４２に「０Ｘ０２」が格納されており、回路イベント保持レジスタ３４１にもｎライン目の処理Ａが完了したことに基づいて「０Ｘ０２」が格納された場合、両値は一致するので一致信号を出力する。ｎライン目の処理が完了していない場合、回路イベント保持レジスタ３４１には「０Ｘ００」が格納されており、両値は一致しないので一致信号を出力しない。
【００５２】
セレクタ制御信号生成器３４４は、一致信号を入力すると、回路記憶部３４５のセレクタ部３１にセレクタ制御信号を出力する。回路記憶部３４５のセレクタ部３１には、処理Ａ用の保持部３０ａに保持されたコンフィグレーションコントロールビットの組、及び処理Ｂ用の保持部３０ｂに保持されたコンフィグレーションコントロールビットの組が供給され、セレクタ部３１は、セレクタ制御信号に応じて処理Ｂ用のコンフィグレーションコントロールビットの組をデータ処理部３２の演算部３２２に出力する。
【００５３】
図７は、切替時のタイミングチャートを示す。クロックに同期して、再構成許可レジスタ３４２に切り替え設定値を格納する。例えば、データ処理部３２にて、処理Ａ→処理Ｂ→処理Ａ→処理Ｂ→・・・と処理を切り替える場合、処理Ａ用回路の切り替え設定値を格納し、次に処理Ｂ用回路の切り替え設定値を格納する。ここで、「処理Ａ用回路の切り替え設定値」は、処理Ａ用の回路から切り替えるための設定値を意味し、具体的には「０Ｘ０２」である。また、「処理Ｂ用回路の切り替え設定値」は、処理Ｂ用の回路から切り替えるための設定値を意味し、具体的には「０Ｘ０１」である。
【００５４】
また、回路イベント保持レジスタ３４１には、処理終了検知部３２４からの値が格納される。処理終了検知部３２４は、データ処理部３２で処理が実行中には全て０（ａｌｌ０）の値、つまり「０Ｘ００」の値を出力して回路イベント保持レジスタ３４１に格納し、データ処理部３２で処理Ａが完了したときには「０Ｘ０２」の値を出力して回路イベント保持レジスタ３４１に格納し、データ処理部３２で処理Ｂが完了したときには「０Ｘ０１」の値を出力して回路イベント保持レジスタ３４１に格納する。
【００５５】
従って、データ処理部３２で処理Ａが完了したときには、回路イベント保持レジスタ３４１には「０Ｘ０２」が格納され、再構成許可レジスタ３４２にも「０Ｘ０２」が格納されているので、レジスタ値比較器３４３は両値が一致していると判定してセレクタ制御信号を出力する。このセレクタ制御信号により、回路記憶部３４５から処理Ｂ用のコンフィグレーションコントロールビットがデータ処理部３２に供給され、データ処理部３２（図ではフォアグラウンド回路と表される）の回路は、処理Ａ用の回路から処理Ｂ用の回路に切り替わる。また、これとともに、再構成許可レジスタ３４２には、処理Ｂ用回路の切り替え設定値、すなわち「０Ｘ０１」が格納される。
【００５６】
図８は、本実施形態の処理フローチャートを示す。なお、画像の各ライン毎に処理を再構成する場合を例にとり説明する。
【００５７】
再構成（コンフィグ）処理を開始すると（Ｓ１０１）、クロックに同期して回路切替設定値を再構成許可レジスタ３４２に格納する（Ｓ１０２）。例えば、処理Ａ用の回路切り替え設定値として「０Ｘ０２」を格納する。
【００５８】
次に、処理終了検知部３２４は、画像のｎライン目の処理が完了したか否かを判定する（Ｓ１０３）。ｎライン目の処理が完了していない場合は現在の処理内容をそのまま続行し、回路イベント保持レジスタ３４１には初期値、すなわち「０Ｘ００」が格納され続けるが、ｎライン目の処理が完了した場合、処理終了検知部３２４は、回路イベント保持レジスタ３４１に出力信号を格納する（Ｓ１０４）。ｎライン目の処理が処理Ａである場合、ｎライン目の処理が完了すると、処理終了検知部３２４は、回路イベント保持レジスタ３４１に処理Ａ用回路の切り替え設定値、すなわち「０Ｘ０２」を出力して格納する。
【００５９】
レジスタ値比較器３４３は、回路イベント保持レジスタ３４１に格納された値と、再構成許可レジスタ３４２に格納された値とを比較し（Ｓ１０５）、両値が一致して再構成が許可されたか否かを判定する（Ｓ１０６）。
【００６０】
両値が一致しない場合（Ｓ１０６でＮＯ）、再構成が許可されていないとして再構成は実行せず、Ｓ１１０の処理に移行する。
【００６１】
両値が一致する場合（Ｓ１０６でＹＥＳ）、セレクタ制御信号生成器３４４はセレクタ制御信号を出力し（Ｓ１０７）、処理Ｂ用のコンフィグレーションコントロールビットの組を演算部３２２に供給して再構成し、データ処理部３２を処理Ａ用の回路構成から処理Ｂの回路構成に切り替える（Ｓ１０８）。そして、回路イベント保持レジスタ３４１を初期化して「０Ｘ００」を格納し（Ｓ１０９）、再構成許可レジスタ３４２には処理Ｂ用の回路切り替え設定値、すなわち「０Ｘ０１」を格納する（Ｓ１１０）。
【００６２】
全ラインの処理が完了していない場合には、次の（ｎ＋１）ラインについて同様の処理を繰り返す（Ｓ１１１、Ｓ１１２）。以上のようにして、ライン毎に処理Ａと処理Ｂを交互に切り替えて再構成する。
【００６３】
＜第３実施形態＞
第２実施形態におけるハードウェアによる再構成は、例えば画像のディザ処理に適用することができる。本実施形態では、この適用例について説明する。
【００６４】
図９は、画像のディザ処理の一例を示す。画像４０の一部拡大図４２に対するディザマトリクス４４を示す。ディザ処理では、印刷時に濃度をリニアに確保するために多値階調の画像を面積階調に変換する。ディザ処理を実施するに際し、Ｍ×Ｎ画素のディザマトリクス（閾値マトリクス）を有し、各画素の値が閾値を超えたか否かにより２値ドットを形成するか否かを決定する。
【００６５】
通常の論理回路処理では、Ｍ×Ｎ画素のディザマトリクスを全てメモリに格納し、１画素ずつ入力多値データとディザマトリクスの閾値とを比較処理する。しかし、対象画素以外のディザマトリクスは対象画素を含むラインでしか使用しないため、結果として無駄なメモリ容量を確保することになる。
【００６６】
そこで、Ｎライン等、ある程度まとまったライン単位にディザマトリクスデータを書き換えながら処理し、使用する論理回路のメモリ容量を低減し、さらにその分並列化のためにメモリリソースを割り当てることで高速化を図ることができる。
【００６７】
具体的には、例えばディザマトリクス４４が２５６×２５６のブロックから構成される６４Ｋｗｏｒｄのサイズであるとすると、６４Ｋバイトのメモリを用いて、画素座標（ｘ、ｙ）毎に閾値（閾値係数）Ｃを出力すべきところ、奇数ライン用のコンフィグレーション＃１及び偶数ライン用のコンフィグレーション＃２の２つの論理回路を交互に切り替えて再構成する構成とし、コンフィグレーション＃１では８Ｋバイトのメモリを用いて奇数ラインの画素座標（ｘ、ｙ）毎に閾値（閾値係数）Ｃを出力し、コンフィグレーション＃２でも８Ｋバイトのメモリを用いて偶数ラインの画素座標（ｘ，ｙ＋１）毎に閾値（閾値係数）Ｃを出力し、それぞれの画素値を閾値（閾値係数）と比較する構成とすることで、メモリ容量を低減できる。
【００６８】
図１０は、この場合の再構成を模式的に示す。奇数ライン用の閾値回路４６及び偶数ライン用の閾値回路４８があり、これらがライン毎に動的に再構成される。閾値回路４６には、ディザマトリクスとしての８Ｋバイトの閾値係数テーブルが合計８個設けられ、それぞれ画素座標（ｘ、ｙ）、（ｘ＋１，ｙ）、・・・（ｘ＋７，ｙ）に対応して閾値係数Ｃ１，Ｃ２，・・・Ｃ８を出力する。また、閾値回路４８には、ディザマトリクスとしての８Ｋバイトの閾値係数テーブルが合計８個設けられ、それぞれ画素座標（ｘ、ｙ＋１）、（ｘ＋１，ｙ＋１）、・・・（ｘ＋７，ｙ＋１）に対応して閾値係数Ｃ１，Ｃ２，・・・Ｃ８を出力する。奇数ラインにおいて閾値回路４６に切り替えて奇数ラインの画素座標（ｘ、ｙ）、（ｘ＋１，ｙ）、・・・（ｘ＋７，ｙ）に対応して閾値係数Ｃ１，Ｃ２，・・・Ｃ８を出力すると、次に、偶数ラインにおいて閾値回路４８に再構成して偶数ラインの画素座標（ｘ、ｙ＋１）、（ｘ＋１，ｙ＋１）、・・・（ｘ＋７，ｙ＋１）に対応して閾値係数Ｃ１，Ｃ２，・・・Ｃ８を出力する。
【００６９】
この構成によれば、メモリ容量を８Ｋバイトに低減できるとともに再構成することで、回路コストと並列処理性能を両立させることができる。なお、このようにライン毎に再構成を行う場合には、再構成回数が１０３〜１０４回になるが、第２実施形態のようにハードウェア的に再構成を行って１回当たりの再構成時間を短縮することで性能低下を抑制し得る。
【００７０】
＜第４実施形態＞
図１１は、本実施形態のシステム構成を示す。システムは、ホストＣＰＵ５０、ＤＤＲ（Double Data Rate）メモリ５２、ＣＰＵ  Ｂｕｓ−ＰＣＩブリッジ５４、ＰＣＩスイッチ５６、及び複数のＦＰＧＡとＤＤＲメモリからなる論理回路５８ａ、５８ｂ、・・・、５８ｘを備える。論理回路５８ａは、ＦＰＧＡＮｏ．１とＤＤＲメモリから構成され、ＤＤＲメモリにはＦＰＧＡＮｏ．１を再構成するための複数組のコンフィグレーションコントロールビットが格納される。ある組は、ＦＰＧＡＮｏ．１を色変換処理回路として構成するためのコンフィグレーションコントロールビットであり、別の組は、ＦＰＧＡＮｏ．１をキャリブレーション回路として構成するためのコントロールビットであり、さらに別の組は、ＦＰＧＡＮｏ．１をフィルタ処理回路として構成するためのコンフィグレーションコントロールビットである。同様に、論理回路５８ｂは、ＦＰＧＡＮｏ．２とＤＤＲメモリから構成され、ＤＤＲメモリにはＦＰＧＡＮｏ．２を再構成するための複数組のコンフィグレーションコントロールビットが格納される。
【００７１】
ホストＣＰＵ５０は、論理回路５８ａ、５８ｂ、・・・、５８ｘの動作を制御し、これらの論理回路５８ａ、５８ｂ、・・・、６５８ｘのＦＰＧＡの回路構成を切り替えるとともに、これらの論理回路５８ａ、５８ｂ、・・・、５８ｘを並列動作させて並列処理させる。
【００７２】
図１２は、論理回路５８ａ、５８ｂ、・・・、５８ｘを並列動作させる場合の一例を示す。図において、論理回路５８ａの処理をＮＯ．１、論理回路５８ｂの処理をＮＯ．２等と示す。
【００７３】
論理回路５８ａ（ＮＯ．１）は、
色変換処理→キャリブレーション（ＣＡＬ）処理→網点処理
と順次再構成されて時分割処理される。また、これと同期して論理回路５８ｂ（ＮＯ．２）は、
色変換処理→キャリブレーション（ＣＡＬ）処理→網点処理
と順次再構成されて時分割処理される。さらに、論理回路５８ｘ（Ｎｏ．Ｘ）は、
フィルタ処理→キャリブレーション（ＣＡＬ）処理→圧縮処理
と順次再構成されて時分割処理される。従って、あるタイングでは色変換処理とフィルタ処理が並列処理され、別のタイミングではキャリブレーション処理が並列処理され、さらに別のタイミングでは網点処理と圧縮処理が並列処理される。なお、印刷画像処理では、色変換処理、フィルタ処理、キャリブレーション処理、網点スクリーン処理、圧縮処理等があるが、再構成する処理はこれらに限定されない。
【００７４】
このように、複数の再構成可能論理回路を設け、各再構成可能論理回路においてコンフィグレーションコントロールビットの組を切り替えて再構成することで時分割処理するとともに、これら複数の再構成可能論理回路で並列処理することで、データを高速に処理することが可能である。印刷画像処理では、印刷機の速度に応じて回路数を増やすことで、遅滞なく画像処理を実行することができる。
【００７５】
以上、本発明の実施形態について説明したが、本発明はこれらに限定されず種々の変形が可能である。
【００７６】
例えば、上記の各実施形態では、基本的に再構成可能論理回路としてＦＰＧＡを前提として説明したが、再構成可能論理回路としてＤＲＰ（Dynamically Reconfigurable Processor）を用いることもできる。ＤＲＰは、回路動作中に超高速（ｎｓオーダ）で書き換えできるプロセッサ技術である。但し、ＤＲＰの場合、書き換えができる、コンフィグレーション可能なものは論理ブロックのみであり、ＣＰＵ、ＰＣＩ−ｅｐｒｅｓｓＩＦ、ＤＤＲメモリＩＦ、ＤＭＡ（Direct Memory Access）コントローラは変更できず、従って入出力（ＩＯ）ピンの位置に自由度はない。これに対し、ＦＰＧＡは、論理ブロックと多種の入出力（ＩＯ）ポートで成り立っており、ＩＯとしてＰＣＩにも、ＤＤＲを接続しても、または外部に光デバイスを接続しても使用することができ、入出力ピンの位置にも自由度がある。例えば、ＰＣＩＩＦを複数持たせてＰＣＩスイッチデバイスのように使用することも可能であり、内部にＣＰＵを構成する／構成しないという選択も可能である。
【００７７】
具体的には、ある処理では、
・ＣＰＵ
・処理Ａを行う演算部
・ＤＤＲＩＦ
・ＰＣＩＩＦ
・光ＩＦ
として構成し、次の処理では、演算部、ＤＤＲＩＦ及び光ＩＦの部分を再構成し、
・ＣＰＵ
・処理Ｂを行う演算部
・ＰＣＩＩＦ
・ＰＣＩＩＦ
・ＰＣＩＩＦ
と再構成する等である。従って、ＦＰＧＡを前提として再構成可能論理回路を構成することにより、入出力ピンの位置の変更も含めた再構成が可能となる利点がある。
【００７８】
あるいは、ＤＲＰでは入出力ピンの位置が固定されており、ＦＰＧＡでは入出力ピンの位置も自由度があることを考慮し、入出力ピンの位置を変更する必要がない再構成ではＤＲＰを用い、入出力ピンの位置変更も含めて再構成する場合にはＦＰＧＡを用いてもよい。複数の再構成可能論理回路を設ける場合において、ＤＲＰとＦＰＧＡを混在させてもよい。
【００７９】
また、近年、ＦＰＧＡの中でも、ＤＲＰと同様にＣＰＵや周辺デバイスＩＦを固定的エリアに確保したＳｏＣと呼ばれるＦＰＧＡも提案されているが、本発明はこのようなＳｏＣを用いることもできる。
【００８０】
さらに、第１実施形態ではソフトウェア的に再構成し、第２、第３実施形態ではハードウェア的に再構成しているが、両者の中間、すなわちソフトウェアとハードウェアの協働により再構成してもよい。「ソフトウェアで切り替えを実行する」とした場合、全てソフトウェアで切り替える形態の他に、主としてソフトウェアで切り替える形態も含まれる。また、「ハードウェアで切り替えを実行する」とした場合、全てハードウェアで切り替える形態の他に、主としてハードウェアで切り替える形態も含まれる。データ処理時間に応じ、データ処理時間との相対的な関係においてハードウェアあるいはソフトウェアの比率を最適化して書き換え時間を調整してもよい。また、複数の再構成可能論理回路を設ける場合において、ある特定群の再構成可能論理回路についてはハードウェア的に再構成し、別の再構成可能論理回路についてはソフトウェア的に再構成する等、再構成可能論理回路に応じてソフトウェア的に再構成するかハードウェア的に再構成するかを使い分ける構成としてもよい。
【符号の説明】
【００８１】
１０  データ処理部、３０  コンフィグレーションコントロールビット保持部、３１  セレクタ部、３２  データ処理部、３４  再構成制御部、３６  外部メモリ、３２１  入力制御部、３２２  演算部、３２３  出力制御部、３２４  処理終了検知部、３４１  再構成情報記憶部（回路イベント保持レジスタ）、３４２  再構成許可情報記憶部（再構成許可レジスタ）、３４３  再構成実施判定部（レジスタ値比較器）、３４４  再構成指示部（セレクタ制御信号生成器）、３４５  回路記憶部。
【図１】
2018033036.tif 000003
【図２】
2018033036.tif 000004
【図３】
2018033036.tif 000005
【図４】
2018033036.tif 000006
【図５】
2018033036.tif 000007
【図６】
2018033036.tif 000008
【図７】
2018033036.tif 000009
【図８】
2018033036.tif 000010
【図９】
2018033036.tif 000011
【図１０】
2018033036.tif 000012
【図１１】
2018033036.tif 000013
【図１２】
2018033036.tif 000014
【図１３】
2018033036.tif 000015
【図１４】
2018033036.tif 000016