(57)【特許請求の範囲】
【請求項１】
命令コードおよびデータを保持する第１の記憶部と、前記第１の記憶部に接続された中央処理装置と、再構成可能なロジック回路と、前記ロジック回路の構成情報を保持する再構成情報記憶部と、前記中央処理装置の指示のもとに前記ロジック回路および前記再構成情報記憶部を制御する制御手段と、前記ロジック回路が使用するデータを保持する第２の記憶部と、前記中央処理装置および前記ロジック回路で共有するデータを保持する第３の記憶部とを備え、
前記中央処理装置による前記第１および第３の記憶部を用いた処理と並行して、前記制御手段が前記再構成情報記憶部の内容に従って前記ロジック回路を構成する処理を行い、
前記ロジック回路の構成終了後に、前記中央処理装置に代わって前記ロジック回路が前記第２および第３の記憶部を用いて処理を行うことを特徴とするデータ処理装置。
【請求項２】
命令コードおよびデータを保持する第１の記憶部と、前記第１の記憶部に接続された中央処理装置と、再構成可能なロジック回路と、前記ロジック回路の構成情報を保持する再構成情報記憶部と、前記中央処理装置の指示のもとに前記ロジック回路および前記再構成情報記憶部を制御する制御手段と、前記ロジック回路が使用するデータを保持する第２の記憶部と、前記中央処理装置及び前記ロジック回路で共有するデータを保持する第３の記憶部とを備え、
前記中央処理装置が、所望の処理を前記中央処理装置と前記ロジック回路のどちらで処理した方が早く終了するかを予め動的に判定し、
前記ロジック回路で処理した方が早く終了すると判定した場合には、前記中央処理装置が前記ロジック回路での処理に要する所望のデータの準備処理を行うと共に、前記データの準備処理と並行して前記制御手段が前記再構成情報記憶部の内容に従って前記ロジック回路の構成を行い、
前記所望のデータの準備処理が終了した後に、前記ロジック回路が前記第２および第３の記憶部を用いて処理を行うことを特徴とするデータ処理装置。
【請求項３】
前記中央処理装置が、前記判定の際に、前記所望の処理の繰り返し実行回数を考慮して判定を行う、請求項２に記載のデータ処理装置。
【請求項４】
前記中央処理装置が、前記判定の際に、前記所望の処理を行うためにロジック回路に構成すべき回路の複雑度を考慮して判定を行う、請求項２または３に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は再構成可能なロジック回路を用いたデータ処理装置に関するものである。
【０００２】
【従来の技術】
データ処理装置の演算性能の向上を図るための一方法として、再構成可能なロジック回路の利用がある。
【０００３】
このような再構成可能ロジック回路を使った従来のデータ処理装置の一例として、特開平１０−２５４６９６号公報に示されている構成を、図４に示す。図４に示す従来のデータ処理装置は、その機能が固定的なファンクションユニット（Function Unit：以下、ＦＵと略称する）４０１と、これを制御する命令をデコードする命令デコーダ４０２の他に、処理を加速したい機能を実現するためのリコンフィギュラブルファンクションユニット（Reconfigurable Function Unit：以下、ＲＦＵと略称する）４０３と、これを制御するリコンフィギュラブル回路４０４とを備えている。そして、予め、ＲＦＵ４０３とこれを制御するリコンフィギュラブル回路４０４の内部構成を、加速したい処理を実現できるよう構成しておき、この機能を使用したい場合に制御線４０５を能動にする。
【０００４】
以上の構成により、命令キャッシュ４０６に格納された命令が命令デコーダ４０２およびリコンフィギュラブル回路４０４でデコードされ、制御信号４０７が出力される。そしてこの制御信号４０７による制御の下で、ＦＵ４０１、ＲＦＵ４０３、レジスタファイル４０８、およびデータ・キャッシュ４０９によって、演算が行われる。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記のような従来の構成では、再構成可能な機能を動的に変更できないため、加速したい機能が多数ある場合には、各機能に対応するＲＦＵ４０３を複数設けておく必要があり、回路増加を招く。これを防ぐために、リコンフィギュラブル回路４０４およびＲＦＵ４０３を動的に構成する方法が考えられる。しかし、単純な方法では構成に要する時間が陽に現れ、結果として処理性能の向上を図ることが出来ないという問題がある。
【０００６】
本発明は上記問題点に鑑み、回路の動的再構成に要する時間が処理性能に及ぼす影響を小さく抑えることにより、優れた処理性能を有するデータ処理装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明にかかる第１のデータ処理装置は、命令コードおよびデータを保持する第１の記憶部と、前記第１の記憶部に接続された中央処理装置と、再構成可能なロジック回路と、前記ロジック回路の構成情報を保持する再構成情報記憶部と、前記中央処理装置の指示のもとに前記ロジック回路および前記再構成情報記憶部を制御する制御手段と、前記ロジック回路が使用するデータを保持する第２の記憶部と、前記中央処理装置および前記ロジック回路で共有するデータを保持する第３の記憶部とを備え、前記中央処理装置による前記第１および第３の記憶部を用いた処理と並行して、前記制御手段が前記再構成情報記憶部の内容に従って前記ロジック回路を構成する処理を行い、前記ロジック回路の構成終了後に、前記中央処理装置に代わって前記ロジック回路が前記第２および第３の記憶部を用いて処理を行うことを特徴とする。
【０００８】
この構成によれば、前記ロジック回路の構成が終了するまで、これと並行して中央処理装置と前記第１および第３の記憶部で処理を続行することができる。これにより、中央処理装置と再構成可能なロジック回路の両方を用いることにより処理性能が向上し、しかも、前記制御手段が前記ロジック回路を構成する処理が、前記中央処理装置による処理と並行して行われるので、ロジック回路の構成に要する時間が全体の処理時間に遅延をもたらすことを抑制できる。
【０００９】
また、上記の目的を達成するために、本発明にかかる第２のデータ処理装置は、命令コードおよびデータを保持する第１の記憶部と、前記第１の記憶部に接続された中央処理装置と、再構成可能なロジック回路と、前記ロジック回路の構成情報を保持する再構成情報記憶部と、前記中央処理装置の指示のもとに前記ロジック回路および前記再構成情報記憶部を制御する制御手段と、前記ロジック回路が使用するデータを保持する第２の記憶部と、前記中央処理装置及び前記ロジック回路で共有するデータを保持する第３の記憶部とを備え、前記中央処理装置が、所望の処理を前記中央処理装置と前記ロジック回路のどちらで処理した方が早く終了するかを予め動的に判定し、前記ロジック回路で処理した方が早く終了すると判定した場合には、前記中央処理装置が前記ロジック回路での処理に要する所望のデータの準備処理を行うと共に、前記データの準備処理と並行して前記制御手段が前記再構成情報記憶部の内容に従って前記ロジック回路の構成を行い、前記所望のデータの準備処理が終了した後に、前記ロジック回路が前記第２および第３の記憶部を用いて処理を行うことを特徴とする。
【００１０】
この構成によれば、所望の処理を中央処理装置よりもロジック回路で処理した方が早く終了すると判定した場合には、中央処理装置でのデータ準備処理と並行して、制御手段がロジック回路の構成処理を行うことで、処理能力を向上させることができる。これにより、中央処理装置と再構成可能なロジック回路の両方を用いることにより処理性能が向上し、しかも、前記制御手段が前記ロジック回路を構成する処理が、前記中央処理装置による処理と並行して行われるので、ロジック回路の構成に要する時間が全体の処理時間に遅延をもたらすことを抑制できる。
【００１１】
【発明の実施の形態】
（実施の形態１）
以下、本発明にかかるデータ処理装置の一実施形態について、図面を参照しながら説明する。図１は、本実施形態のデータ処理装置の構成を示すブロック図である。図２は、図１のデータ処理装置の動作を示す説明図である。
【００１２】
図１に示すように、本実施形態のデータ処理装置は、中央処理装置（ＣＰＵ）１０１、再構成可能ロジックブロック１２０、第１のメモリ１０２、第２のメモリ１０８、第３のメモリ１０９を備えている。再構成可能ロジックブロック１２０は、再構成情報用メモリ１０４、再構成可能ロジック回路１０３、および制御部１０５を備えている。
【００１３】
第１のメモリ１０２は、ＣＰＵ１０１のプログラム及びデータを記憶する。再構成可能ロジック回路１０３は、ＦＰＧＡ（Field Programable Logic）に代表されるような、外部から与えられるデータに基づき内部構成が変更できる回路である。再構成情報用メモリ１０４は、再構成可能ロジック回路１０３の構成を決めるデータ（再構成情報）を保持する。再構成情報は、構成の種類毎に固有の識別番号が付与された状態で、再構成情報用メモリ１０４に記憶されている。制御部１０５は、ＣＰＵ１０１の指示に従い、再構成情報用メモリ１０４の再構成情報を用いて再構成可能ロジック回路１０３の構成を変更し、また構成の変更が終了したことをＣＰＵ１０１に伝える。第２のメモリ１０８は、再構成可能ロジック回路１０３が使用するデータを保持する。第３のメモリ１０９は、ＣＰＵ１０１および再構成可能ロジック回路１０３で共有されるデータを保持する。
【００１４】
信号線１１０は、ＣＰＵ１０１と、第１のメモリ１０２および第３のメモリ１０９のそれぞれとを接続する信号線である。信号線１１１は、再構成可能ロジック回路１０３と、第２のメモリ１０８および第３のメモリ１０９のそれぞれとを接続する。また、図１において、１０６は、制御部１０５に対し、再構成可能ロジック回路１０３の再構成を指示する制御信号であり、再構成情報用メモリ１０４にあるどの再構成情報を使用するかを示すために、前記の識別番号を含む。１０７は、制御信号１０６を受けて行った再構成可能ロジック回路１０３の構成変更が終了したことを示す状態信号である。
【００１５】
以上のように構成されたデータ処理装置の動作について、図１および図２を用いて説明する。
【００１６】
ＣＰＵ１０１は、その内部に保有するプログラムカウンタ（図示せず）に従い、第１のメモリ１０２に記憶されているプログラムに従って処理を進めるが、再構成可能ロジック回路１０３を使用することを指示する命令があると、制御信号１０６を能動にし、再構成に使用するデータの識別情報を制御部１０５に与え、再構成を指示する（図２のＳ２０１）。
【００１７】
これを受けて、再構成可能ロジックブロック１２０の制御部１０５は、前記識別情報に基づき再構成情報用メモリ１０４から再構成用データを取り出し、取り出した再構成用データにより再構成可能ロジック回路１０３を再構成する（Ｓ２０２）。またＣＰＵ１０１は、この構成と並行して、第１のメモリ１０２を用いて処理を進める（Ｓ２０３）。再構成可能ロジック回路１０３での構成が終了すると、制御部１０５は、状態信号１０７を用いてＣＰＵ１０１にその旨を伝える（Ｓ２０４）。
【００１８】
ＣＰＵ１０１は、状態信号１０７を受けて処理を中断し、第３のメモリ１０９に必要なデータを格納し、格納が終了すると、制御部１０５に対し制御信号１０６によりデータ処理を指示する（Ｓ２０５）。制御部１０５は、再構成可能ロジック回路１０３に対して、第２のメモリ１０８および第３のメモリ１０９を用いて処理を行うよう指示し、処理が行われる（Ｓ２０６）。
【００１９】
ＣＰＵ１０１は、以上の処理により、Ｓ２０３を再構成可能ロジック回路１０３に任せることが出来たので、再構成可能ロジック回路１０３の処理と並行して別の処理を実行する（Ｓ２０７）。
【００２０】
再構成可能ロジック回路１０３は、その処理が終了すると、その結果を第３のメモリ１０９に格納すると共に、処理が終了した旨を制御部１０５経由で状態信号１０７を通してＣＰＵ１０１に伝える（Ｓ２０８）。
【００２１】
ＣＰＵ１０１は、第３のメモリ１０９に格納してある処理完了データを用いて、次のデータ処理を行う（Ｓ２０９）。
【００２２】
以上のように、本実施形態のデータ処理装置では、制御部１０５が再構成情報用メモリ１０４の内容で再構成可能ロジック回路１０３を構成している間は、ＣＰＵ１０１で所望の処理を行い、再構成可能ロジック回路１０３の構成が終了した後は、ＣＰＵ１０１で行っていた処理の結果を第３のメモリ１０９に格納し、再構成可能ロジック回路１０３で処理を継続して行うことが出来る。これにより、処理能力の向上を図ると共に、再構成可能ロジック回路１０３の構成に要する時間が一般のデータ処理時間に与える影響を少なくすることが出来る。
【００２３】
（実施の形態２）
以下、本発明にかかるデータ処理装置の他の実施形態について、図面を参照しながら説明する。
【００２４】
本実施形態にかかるデータ処理装置の構成は実施の形態１で図１に示した構成と同じであり、その動作のみが異なる。以下、図１および図３を参照しながら、本実施形態にかかるデータ処理装置の動作について説明する。
【００２５】
ＣＰＵ１０１はその内部に保有するプログラムカウンタ（図示せず）に従って第１のメモリ１０２に記憶されているプログラムに従った処理を進めるが、その処理過程で、ＣＰＵ１０１で処理するか再構成可能ロジック回路１０３で処理するかの判断を、予め動的に行う（図３のＳ３０１）。
【００２６】
すなわち、以下のとおりに定義される時間ｔ１，ｔ２を計算し、ｔ１，ｔ２の大小関係を判定する。
【００２７】
0003723775.tif 000002
この場合、実現したい処理の繰り返し実行回数、再構成可能ロジック回路１０３で構成する回路の複雑度（複雑性が増せば構成に要する時間が長くなる）などが主なパラメータとなる。前記の繰り返し実行回数はＣＰＵ１０１による別のデータ処理により決められ動的に変化するので、Ｓ３０１の判断が必要となる。
【００２８】
ｔ１＞ｔ２の場合は、ＣＰＵ１０１及び第１のメモリ１０２で処理を行う（Ｓ３０３）。
【００２９】
ｔ１＜ｔ２の場合は、ＣＰＵ１０１は、以下の処理を行う。まず、制御部１０５に対して再構成に使用するデータの識別情報を与え、再構成可能ロジック回路１０３の再構成を指示する（Ｓ３０２）。次に、第１のメモリ１０２を用いたデータ処理を行うと共に、再構成可能ロジック回路１０３で処理させるデータの準備を行う（Ｓ３０４）。データ準備が終了すると、データを第３のメモリ１０９に格納すると共に、その旨を制御部１０５に伝える（Ｓ３０５）。
【００３０】
一方、再構成可能ロジックブロック１２０において、制御部１０５は、ＣＰＵ１０１によるＳ３０４の処理と並行して、再構成可能ロジック回路１０３の構成を行う（Ｓ３０６）。Ｓ３０５とＳ３０６が終了すると、再構成可能ロジック回路１０３は、第２のメモリ１０８および第３のメモリ１０９を用いたデータ処理を行う（Ｓ３０７）。一方、ＣＰＵ１０１は、再構成可能ロジックブロック１２０によるＳ３０７と並行して、他のデータ処理を行う（Ｓ３０８）。
【００３１】
再構成可能ロジック回路１０３でのＳ３０７の処理が終了すると、再構成可能ロジック回路１０３がその結果を第３のメモリ１０９に格納し、制御部１０５が状態信号１０７によりその旨をＣＰＵ１０１に伝える（Ｓ３０９）。これにより、ＣＰＵ１０１は、第３のメモリ１０９に格納されている処理結果を用いて、次のデータ処理を行う（Ｓ３１０）。
【００３２】
以上のように、本実施形態によれば、ＣＰＵ１０１または再構成可能ロジック回路１０３のどちらで処理すればトータルの処理時間が短くなるかを、ＣＰＵ１０１が予めかつ動的に判断し、再構成可能ロジック回路１０３で処理した方が処理時間が短くなると判断した場合には、ＣＰＵ１０１でのＳ３０４およびＳ３０５の処理と並行して、再構成可能ロジックブロック１０３を再構成する処理（Ｓ３０６）を行う。この処理手順によれば、処理能力の向上が図れると共に、Ｓ３０４およびＳ３０５の処理とＳ３０６の処理とが並行して実行されるので、再構成可能ロジック回路１０３の構成に要する時間が処理全体の所要時間に遅延をもたらすことを抑制できる。
【００３３】
なお、上述の各実施形態では、第２のメモリおよび第３のメモリのそれぞれとして独立したメモリデバイスを用いる構成を例示したが、第２のメモリと第３のメモリを、例えば一つのメモリチップ上に設ける等、物理的に一つのメモリデバイスで実現することも可能である。さらに、２ポートメモリ化を図ることにより、第１のメモリと、第２／第３のメモリとを、物理的に一つのメモリデバイスで実現することも可能である。
【００３４】
【発明の効果】
以上のように、本発明によれば、回路の動的再構成に要する時間が処理性能に及ぼす影響を小さく抑えることにより、優れた処理性能を有するデータ処理装置を提供することが可能となる。
【図面の簡単な説明】
【図１】  本発明の実施形態としてのデータ処理装置の概略構成を示すブロック図
【図２】  前記データ処理装置の動作の一例を示すフローチャート
【図３】  前記データ処理装置の動作の他の例を示すフローチャート
【図４】  従来のデータ処理装置の概略構成を示すブロック図
【符号の説明】
１０１  中央処理装置（ＣＰＵ）
１０２  第１のメモリ
１０３  再構成可能ロジック回路
１０４  再構成情報用メモリ
１０５  制御部
１０６  制御信号
１０７  状態信号
１０８  第２のメモリ
１０９  第３のメモリ
１１０  信号線
１１１  信号線
１２０  再構成可能ロジックブロック
【図１】
0003723775.tif 000003
【図２】
0003723775.tif 000004
【図３】
0003723775.tif 000005
【図４】
0003723775.tif 000006