(57)【要約】【課題】データ転送用に特別な回路を専用に用意することなく、データの通信部分が処理性能全体のボトルネックとならないようにすることができるとともに、メモリに記録するのと同程度の回路間の設計の独立性を確保することができるプログラマブル論理デバイスを提供する。【解決手段】処理回路部において論理回路Ａと論理回路Ｂとを続けて実行する際に（Ｓ１〜Ｓ５）、処理回路部が論理回路Ａの実行終了後に（Ｓ６のＹｅｓ）、回路情報入力制御部の制御によって論理回路Ａと論理回路Ｂのどちらでも利用するデータの転送を行うためのデータ転送用論理回路である論理回路Ｔに切り替え（Ｓ７）、処理回路部が論理回路Ｔによるデータ転送の実行を終了した後（Ｓ８のＹｅｓ）、回路情報入力制御部の制御によって論理回路Ｂに切り替える（Ｓ９〜Ｓ１０）。【選択図】        図１１
2007329760.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路情報を選択的に与えることで複数の論理回路を実現可能な処理回路部と、
前記論理回路を実現する回路情報が設定される回路情報設定メモリと、
前記処理回路部に信号線を介して接続されており、前記回路情報設定メモリに設定されている前記回路情報に応じて前記処理回路部における前記論理回路の切り替えの制御を行なう回路情報入力制御部と、
を備え、
前記回路情報入力制御部は、前記処理回路部が第１の論理回路の実行中に第２の論理回路への変更要求を受けた場合、前記処理回路部が第１の論理回路の実行終了後に、前記第１の論理回路と前記第２の論理回路のどちらでも利用するデータの転送を行うためのデータ転送用論理回路に切り替え、前記処理回路部が前記データ転送用論理回路によるデータ転送の実行を終了した後、前記第２の論理回路に切り替える、
ことを特徴とするプログラマブル論理デバイス。
【請求項２】
前記処理回路部は、前記回路情報設定メモリとは別に、前記データ転送用論理回路で利用可能な一もしくは複数の前記論理回路を実現する前記回路情報が予め入力されているメモリを有している、
ことを特徴とする請求項１記載のプログラマブル論理デバイス。
【請求項３】
前記処理回路部は、ロジックブロックおよびスイッチブロックに冗長に複数個のメモリを持たせることで、前記データ転送用論理回路を実行中に、前記第２の論理回路を実現する前記回路情報の入力を可能とする、
ことを特徴とする請求項１記載のプログラマブル論理デバイス。
【請求項４】
前記データ転送用論理回路を実現する回路情報は、通信経路を実現する回路情報のみから構成されている、
ことを特徴とする請求項３記載のプログラマブル論理デバイス。
【請求項５】
前記処理回路部と前記回路情報入力制御部とを接続する信号線は、前記処理回路部のデータ転送に用いるブロックにのみ接続されている第１の信号線と前記処理回路部のデータ転送以外に用いるブロックにのみ接続されている第２の信号線とで構成されているとともに、前記回路情報設定メモリを複数有しており、
前記回路情報入力制御部は、前記データ転送用論理回路の前記データ転送に用いるブロックの回路情報を一の前記回路情報設定メモリから読み出し、前記第１の信号線を介して前記処理回路部内部の前記データ転送に用いるブロックに対して書き込むことにより前記データ転送用論理回路の回路情報を転送するとともに、前記第２の論理回路の前記データ転送以外に用いるブロックの回路情報を他の前記回路情報設定メモリから読み出し、前記第２の信号線を介して前記処理回路部内部の前記データ転送以外に用いるブロックに対して書き込むことにより前記第２の論理回路の回路情報を転送する、
ことを特徴とする請求項１記載のプログラマブル論理デバイス。
【請求項６】
前記データ転送に用いるブロックは前記処理回路部のスイッチブロックであり、前記データ転送以外に用いるブロックは前記処理回路部のロジックブロックである、
ことを特徴とする請求項５記載のプログラマブル論理デバイス。
【請求項７】
複数の回路情報を選択的に与えることで複数の論理回路を実現可能な処理回路部に信号線を介して接続され、回路情報設定メモリに設定されている前記回路情報に応じて前記処理回路部における前記各論理回路の切り替えの制御を行なう回路情報入力制御装置であって、
前記処理回路部が第１の論理回路の実行中に第２の論理回路への変更要求を受けた場合、前記処理回路部が第１の論理回路の実行終了後に、前記第１の論理回路と前記第２の論理回路のどちらでも利用するデータの転送を行うためのデータ転送用論理回路に切り替え、前記処理回路部が前記データ転送用論理回路によるデータ転送の実行を終了した後、前記第２の論理回路に切り替える、
ことを特徴とする回路情報入力制御装置。
【請求項８】
請求項１ないし６のいずれか一記載のプログラマブル論理デバイスと、
このプログラマブル論理デバイスを制御するための制御装置と、
前記プログラマブル論理デバイスの処理回路部における各論理回路にかかる回路情報を保存する記憶装置と、
を備えることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的にプログラムを変更可能なプログラマブル論理デバイス、回路情報入力制御装置および半導体装置に関する。
【背景技術】
【０００２】
動的にプログラムを変更可能なプログラマブル論理デバイスにおいてそれぞれのプログラム間でデータの受け渡しを行なう方法としては、特許文献１に記載の技術がある。この特許文献１に記載の技術によれば、プログラマブル論理デバイスの外部の共有メモリを介してデータの転送を行なうようにしている。より詳細には、１つめの論理回路で出力したデータを、外部の共有メモリへ一度保存して、２つめの論理回路を実行する際に、共有メモリから読み込むことで転送を実現する、というものである。すなわち、外部メモリとのデータの通信が入出力部分に集中することにより、通信部分がシステム全体の性能の支配的な要素となる。
【０００３】
上述のように共有メモリを介してデータを転送する手法は、転送データを一度必ずメモリに記録することで回路設計の自由度は高くなるため、それぞれ論理回路で独立した設計が可能であり、論理回路ごとの最適化が容易だが、メモリアクセス速度が律速する。
【０００４】
また、特許文献２や非特許文献１によれば、内部データをプログラマブル論理デバイスの内部データを転送する方法として、２つの論理回路で転送するデータの配置を同じメモリ素子に割り当てている。このように２つの論理回路に対して同じ記憶装置を割り当てる場合においては、論理回路の変更を行なうことでデータの転送が可能である。
【０００５】
【特許文献１】特開２００１−２０２２３６号公報
【特許文献２】特許第３６７４５１５号公報
【非特許文献１】平成１７年８月２５日、株式会社オーム社発行  末吉敏則・天野英晴編「リコンフィギャラブルシステム」ｐ１８９〜ｐ２０８  「第７章  ＮＥＣエレクトロニクス社  ＤＲＰ」
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２や非特許文献１に記載の技術によれば、２つの論理回路でメモリの割り当てが物理的に制限されることから、通信性能の向上を目的とした論理回路の回路動作速度や回路規模などの最適化や、一度設計した回路を部品として別の用途に対して流用する再利用性の向上が困難である。
【０００７】
本発明は、上記に鑑みてなされたものであって、データ転送用に特別な回路を専用に用意することなく、データの通信部分が処理性能全体のボトルネックとならないようにすることができるとともに、メモリに記録するのと同程度の回路間の設計の独立性を確保することができるプログラマブル論理デバイス、回路情報入力制御装置および半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明のプログラマブル論理デバイスは、複数の回路情報を選択的に与えることで複数の論理回路を実現可能な処理回路部と、前記論理回路を実現する回路情報が設定される回路情報設定メモリと、前記処理回路部に信号線を介して接続されており、前記回路情報設定メモリに設定されている前記回路情報に応じて前記処理回路部における前記論理回路の切り替えの制御を行なう回路情報入力制御部と、を備え、前記回路情報入力制御部は、前記処理回路部が第１の論理回路の実行中に第２の論理回路への変更要求を受けた場合、前記処理回路部が第１の論理回路の実行終了後に、前記第１の論理回路と前記第２の論理回路のどちらでも利用するデータの転送を行うためのデータ転送用論理回路に切り替え、前記処理回路部が前記データ転送用論理回路によるデータ転送の実行を終了した後、前記第２の論理回路に切り替える。
【０００９】
また、本発明の回路情報入力制御装置は、複数の回路情報を選択的に与えることで複数の論理回路を実現可能な処理回路部に信号線を介して接続され、回路情報設定メモリに設定されている前記回路情報に応じて前記処理回路部における前記各論理回路の切り替えの制御を行なう回路情報入力制御装置であって、前記処理回路部が第１の論理回路の実行中に第２の論理回路への変更要求を受けた場合、前記処理回路部が第１の論理回路の実行終了後に、前記第１の論理回路と前記第２の論理回路のどちらでも利用するデータの転送を行うためのデータ転送用論理回路に切り替え、前記処理回路部が前記データ転送用論理回路によるデータ転送の実行を終了した後、前記第２の論理回路に切り替える。
【００１０】
また、本発明の半導体装置は、請求項１ないし６のいずれか一記載のプログラマブル論理デバイスと、このプログラマブル論理デバイスを制御するための制御装置と、前記プログラマブル論理デバイスの処理回路部における各論理回路にかかる回路情報を保存する記憶装置と、を備える。
【発明の効果】
【００１１】
本発明によれば、データ転送用に特別な回路を専用に用意することなく、データの通信部分が処理性能全体のボトルネックとならないようにすることができるとともに、メモリに記録するのと同程度の回路間の設計の独立性を確保することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、この発明にかかるプログラマブル論理デバイス、回路情報入力制御装置および半導体装置の最良な実施の形態を詳細に説明する。
【００１３】
［第１の実施の形態］
本発明の第１の実施の形態を図１ないし図１５に基づいて説明する。
【００１４】
［プログラマブル論理デバイスの構成］
図１は、本発明の第１の実施の形態にかかるプログラマブル論理デバイス５０を備える半導体装置１００を示すブロック図である。図１に示すように、半導体装置１００は、動的にプログラムを変更可能なプログラマブル論理デバイス５０を備えている。このプログラマブル論理デバイス５０には、プログラマブル論理デバイス５０を制御するための制御装置であるホストプロセッサ１０と、複数の回路情報や処理に用いるデータなどが保存された記憶装置であるメインメモリ２０とが接続されている。なお、メインメモリ２０に保存される論理回路の回路情報はユーザが予め用意するものであり、各論理回路にはユーザにより一意に定まる識別子が割り当てられている。
【００１５】
プログラマブル論理デバイス５０は、図１に示すように、処理回路部５１と回路情報入力制御部（回路情報入力制御装置）５２とを回路情報入力信号線５３により接続して構成されている。
【００１６】
まず、プログラマブル論理デバイス５０を構成する処理回路部５１について説明する。図２は、処理回路部５１の構成を例示的に示す回路図である。図２に示すように、処理回路部５１は、ルックアップテーブルなどのロジックブロック（ＬＢ）５１Ｌと、データパスを構成するためのスイッチブロック（ＳＢ）５１Ｓと、論理回路内部の処理で利用するデータを保存するためのメモリ（ＭＥＭ）５１Ｍとから構成されている。また、ロジックブロック（ＬＢ）５１Ｌと、スイッチブロック（ＳＢ）５１Ｓと、メモリ（ＭＥＭ）５１Ｍとは、回路情報入力信号線５３により接続されている。なお、図２中、無表記の四角形もスイッチブロック（ＳＢ）５１Ｓと基本的には同じ構造のものである。ただし、図２中、ＳＢと表記されているものとは、入出力のポート数の点で異なるものである。
【００１７】
図３は、ロジックブロック５１Ｌの構成を例示的に示す模式図である。図３に示すように、ロジックブロック５１Ｌは、真理値表の内容を保存するメモリ５１ＬＭと、入力信号をセレクタ信号としてメモリ５１ＬＭの内容を出力するセレクタ５１ＬＳとから構成されており、任意の論理を実現する。
【００１８】
なお、図３に示すロジックブロック５１Ｌの構成は一例であり、ロジックブロック５１Ｌは、算術演算や論理演算を行うことが出来、処理を定義する情報を保存するメモリを持つ演算装置であれば、形態を特定しない。例えば、プロセッサや命令メモリを持つＡＬＵ（Arithmetic and Logic Unit）でも良い。また、任意の論理が処理できなくとも良い。
【００１９】
図４は、スイッチブロック５１Ｓの構成を例示的に示す模式図である。図４に示すように、スイッチブロック５１Ｓは、格子状に配置したスイッチ５１ＳＳと、スイッチ５１ＳＳのＯＮ／ＯＦＦを制御するためのメモリ５１ＳＭとから構成されている。
【００２０】
なお、図４に示すスイッチブロック５１Ｓの構成は一例であり、スイッチブロック５１Ｓは、経路の情報を保存するメモリと、同時に複数組に対して通信する手段があれば良い。
【００２１】
すなわち、プログラマブル論理デバイス５０の処理回路部５１においては、上述したようなロジックブロック５１Ｌのメモリ５１ＬＭおよびスイッチブロック５１Ｓのメモリ５１ＳＭに対し、外部からの回路情報入力信号線５３を介して回路情報を表現したデータを入力することで、ユーザの定義した論理回路を実現する。
【００２２】
次に、回路情報入力制御部５２について説明する。回路情報入力制御部５２は、処理回路部５１の実行する論理回路の切り替えの制御を行なうものである。ここで、図５は回路情報入力制御部５２の構成を示すブロック図である。図５に示すように、回路情報入力制御部５２は、現在実行中の論理回路の識別子を保存するメモリ５２Ｍａと、次に実行する論理回路の識別子を保存するメモリ５２Ｍｂと、メモリ５２Ｍａとメモリ５２Ｍｂに保存された識別子から転送用の論理回路の識別子を得るためのテーブル５２Ｔと、論理回路の回路情報が設定される回路情報設定メモリであるコンフィギュレーションメモリ５４と、回路情報入力制御部５２の状態遷移を制御するコントローラ５２Ｐとから構成されている。
【００２３】
回路情報入力制御部５２は、上述した構成により、ホストプロセッサ１０から送信される制御命令や変更する論理回路の識別子等の信号に従い、メインメモリ２０からコンフィギュレーションメモリ５４への論理回路の回路情報の転送と、メインメモリ２０からテーブル５２Ｔへのテーブル情報の転送といった初期化処理を行なう。また、回路情報入力制御部５２は、コンフィギュレーションメモリ５４から処理回路部５１への論理回路の回路情報の転送と、処理回路部５１の実行する論理回路の切り替えの制御といった論理回路変更処理も行なう。
【００２４】
なお、論理回路変更の際には、回路情報入力信号線５３を介して、ロジックブロック５１Ｌのメモリ５１ＬＭおよびスイッチブロック５１Ｓのメモリ５１ＳＭへとコンフィギュレーションメモリ５４から出力する回路情報を書き込む。
【００２５】
［プログラマブル論理デバイスでの処理］
次に、プログラマブル論理デバイス５０での処理の一例として、以下のようなプログラムを処理する場合について説明する。
for （ int ｉ＝ ０  ；  ｉ＜１０００  ；  ｉ++ ）｛
//  論理回路Ａで処理
ｚ  ＝  ｘ  ＋  ｙ；
ａ  ＝  IN  ＋  ｂ；
ｂ  ＝  IN  >>  ｚ；
｝
for （ int ｉ＝ ０  ；  ｉ＜１０００  ；  ｉ++ ）｛
//  論理回路Ｂで処理
OUT  ＝  ａ  ＋  ｂ；
ｃ  ＝  IN  <<  ａ；
ｄ  ＝  IN  ＋  ｃ；
｝
【００２６】
上記のプログラムをプログラマブル論理デバイス５０の処理回路部５１で実行する場合においては、例えば、論理回路Ａについては図６に示す論理回路で処理し、論理回路Ｂについては図７に示す論理回路で処理する。図６に示した論理回路Ａと図７に示した論理回路Ｂとでは、上記プログラム中の変数ａ，ｂが、物理的に異なるメモリ５１Ｍにそれぞれ割り当ててある。
【００２７】
本実施の形態のプログラマブル論理デバイス５０においては、このような場合に効率的に処理を行なうことを目的として、図８に示すように、第１の論理回路である論理回路Ａと第２の論理回路である論理回路Ｂの間に第３の論理回路であるデータ転送用の論理回路Ｔを実行するようにしたものである。
【００２８】
図９は、論理回路Ｔを示す回路図である。図９に示すように、論理回路Ｔは、論理回路Ａと論理回路Ｂのどちらでも利用するデータの転送を行なう。ここでは、論理回路Ｔは、変数ａ，ｂのみ転送をしており、ｘ，ｙ，ｚの転送は行なわない。また、転送のみを行なうため、ロジックブロック５１Ｌは利用せずとも論理回路を実現できる点が特徴である。
【００２９】
図１０は、上記プログラムを実行した場合のタイムチャートである。図１０に示すように、論理回路Ａと論理回路Ｂはそれぞれ１０００サイクル実行するが、論理回路Ｔは変数ａ，ｂの転送のみを行なうため１サイクルで処理が完了する。
【００３０】
［回路情報入力制御部による論理回路の変更方法］
回路情報入力制御部５２は、現在実行中の論理回路Ａから論理回路Ｂへの論理回路変更では、まず、現在処理を行なっている論理回路Ａと、ホストプロセッサ１０に要求された論理回路Ｂとの間でデータ転送を行なう論理回路Ｔの回路情報を処理回路部５１へと書き込み、論理回路Ｔを実行する。続いて、論理回路Ｂの回路情報を処理回路部５１へと書き込み、論理回路Ｔの処理が終了した後、論理回路Ｂを実行する。論理回路Ｔの終了の識別は、処理サイクル数を外部から指定しても良いし、処理終了を伝える制御信号を設けても良い。
【００３１】
図１１は、プログラマブル論理デバイス５０における論理回路変更処理の流れを示すフローチャートである。以下では、図１１のフローチャートの流れに従い、論理回路変更の手順を示す。なお、ホストプロセッサ１０から論理回路変更が要求される論理回路の回路情報は予めコンフィギュレーションメモリ５４に保存されているものとする。つまり、論理回路変更要求を行なう前に、予め回路情報をコンフィギュレーションメモリ５４へと書き込んでおく。
【００３２】
図１１に示すように、プログラマブル論理デバイス５０の回路情報入力制御部５２は、ホストプロセッサ１０から送信されたプログラマブル論理デバイス５０の論理回路変更のＲＥＱ信号を受信すると、論理回路の変更が可能な状態ならば、ＡＣＫ信号をホストプロセッサ１０へ送信し、論理回路変更を開始する（ステップＳ１）。論理回路の変更が不可能な状態ならば、変更可能な状態になるまで待機する。ホストプロセッサ１０は、回路情報入力制御部５２からのＡＣＫ信号を受信したら、変更後の論理回路の識別子Ｂを回路情報入力制御部５２へと送信する。
【００３３】
回路情報入力制御部５２は、変更後の論理回路の識別子Ｂを受信すると（ステップＳ２）、現在実行中の論理回路の識別子Ａと変更後の論理回路の識別子Ｂを入力として、回路情報入力制御部５２内のテーブル５２Ｔを引くことで、データ転送用の論理回路の識別子Ｔを得る（ステップＳ３）。ただし、リセット直後などにより、現在実行中の論理回路が存在しない場合は、データ転送用の論理回路は必要ない。
【００３４】
図１２は、テーブル５２Ｔの構造を示す模式図である。図１２に示すように、テーブル５２Ｔは、現在実行中の論理回路の識別子と、変更後の論理回路の識別子と、データ転送用の論理回路の識別子とを対応付けた構造になっている。
【００３５】
回路情報入力制御部５２は、データ転送用の論理回路の識別子Ｔを獲得したら、コンフィギュレーションメモリ５４から、論理回路Ｔの回路情報を読み出し、回路情報入力信号線５３を介して処理回路部５１内部のロジックブロック５１Ｌやスイッチブロック５１Ｓに対して書き込むことにより、論理回路Ｔの回路情報を転送する（ステップＳ４）。
【００３６】
続いて、回路情報入力制御部５２は、コンフィギュレーションメモリ５４から、論理回路Ｂの回路情報を読み出し、回路情報入力信号線５３を介して処理回路部５１内部のロジックブロック５１Ｌやスイッチブロック５１Ｓに対して書き込むことにより、論理回路Ｂの回路情報を転送する（ステップＳ５）。
【００３７】
次いで、現在実行中の論理回路Ａの処理が終了した場合には（ステップＳ６のＹｅｓ）、論理回路Ｔの処理の実行を開始する（ステップＳ７）。
【００３８】
論理回路Ｔの処理が終了すると（ステップＳ８のＹｅｓ）、論理回路Ｂの回路情報の転送が完了したか否かを判断する（ステップＳ９）。
【００３９】
論理回路Ｂの回路情報の転送が完了したと判断すると（ステップＳ９のＹｅｓ）、論理回路Ｂの処理の実行を開始し（ステップＳ１０）、ホストプロセッサ１０へ、ＡＣＫ信号を送信する。
【００４０】
ホストプロセッサ１０がＡＣＫ信号を受信すると、プログラマブル論理デバイス５０の論理回路変更は完了する（ステップＳ１１）。
【００４１】
このように本実施の形態によれば、処理回路部５１において第１の論理回路（論理回路Ａ）と第２の論理回路（論理回路Ｂ）とを続けて実行する際に、処理回路部５１が第１の論理回路（論理回路Ａ）の実行終了後に、回路情報入力制御部５２の制御によって第１の論理回路（論理回路Ａ）と第２の論理回路（論理回路Ｂ）のどちらでも利用するデータの転送を行うためのデータ転送用論理回路（論理回路Ｔ）に切り替え、処理回路部５１がデータ転送用論理回路（論理回路Ｔ）によるデータ転送の実行を終了した後、回路情報入力制御部５２の制御によって第２の論理回路（論理回路Ｂ）に切り替えることにより、データ転送用に特別な回路を専用に用意することなく、データの通信部分が処理性能全体のボトルネックとならないようにすることができるとともに、メモリに記録するのと同程度の回路間の設計の独立性を確保することができる。
【００４２】
ここで、プログラマブル論理デバイス５０の第１の変形例について説明する。図１３は、第１の変形例のプログラマブル論理デバイス５０のロジックブロック５１Ｌを示す模式図である。図１３に示すように、ロジックブロック５１Ｌの第１の変形例は、図３で示した構成に加えて、回路情報入力信号線５３上にセレクタ６１とメモリ６２とを備えている。
【００４３】
セレクタ６１は、メモリ５１ＬＭへ入力する回路情報を、回路情報入力信号線５３上を送信される情報と、メモリ６２に保存されている情報とから選択する。メモリ６２には、データ転送用の論理回路を実行する際に利用する回路情報が予め入力されている。メモリ６２は、ＲＯＭを用いて製造時に回路情報を入力しても良いし、ＲＡＭを用いてデバイスの起動時に回路情報を入力しても良い。
【００４４】
加えて、セレクタ６１の制御信号を回路情報入力信号線６３に接続することで、スイッチブロック５１Ｓのみに回路情報を入力する場合に比べ、全ての動作を決定するプログラミングを行なうよりも少ない回路情報でロジックブロック５１Ｌをデータ転送用の論理回路で利用することが可能である。より詳細には、１つのロジックブロック５１Ｌの全ての情報よりも、セレクタ６１のセレクタ信号を指定する情報の方が少ないデータサイズで回路情報を表現することができるためである。図１３では、メモリ５１ＬＭ内全てのメモリセルに対して回路情報を直接入力する場合には１６ビット必要となるが、メモリ６２に予め格納された回路情報を入力するためには信号線６３上のレジスタにセレクタ６１の制御用のデータを１ビット入力すれば良くなる為、回路情報を削減することができる。
【００４５】
このようにデータ転送用の論理回路を実現する回路情報が予め入力されているメモリ６２を有していることにより、データ転送用の論理回路の回路情報を、メインメモリ２０に保存するプログラマブル論理デバイス５０全体の回路情報から削減することができるので、回路情報入力に要する時間を削減することができる。
【００４６】
次に、プログラマブル論理デバイス５０の第２の変形例について説明する。図１４は、第２の変形例のプログラマブル論理デバイス５０のロジックブロック５１Ｌを示す模式図である。図１４に示すように、ロジックブロック５１Ｌの第２の変形例は、メモリ５１ＬＭの他に、メモリ５１ＬＭ’を有しており、一方のメモリ５１ＬＭに保存された回路情報の論理回路を実行中に、他方のメモリ５１ＬＭ’に対して回路情報の入力が可能な構造をとる。
【００４７】
また、図１５は第２の変形例のプログラマブル論理デバイス５０のスイッチブロック５１Ｓを示す模式図である。図１５に示すように、スイッチブロック５１Ｓの変形例は、図１４に示したロジックブロック５１Ｌの変形例と同様に、メモリ５１ＳＭの他に、メモリ５１ＳＭ’を有していて、それぞれ異なる通信経路を有しており、一方のメモリ５１ＳＭに保存された回路情報の論理回路を実行中に、他方のメモリ５１ＳＭ’に対して回路情報の入力が可能な構造をとる。
【００４８】
このような、ロジックブロック５１Ｌ、スイッチブロック５１Ｓを持つ処理回路部５１の場合、ある論理回路を実行中に次に実行する論理回路の情報を入力しても実行中の回路動作に影響を与えない。
【００４９】
これにより、処理回路部５１は、ロジックブロック５１Ｌおよびスイッチブロック５１Ｓに冗長に複数（ここでは、２組）のメモリを持たせることで、データ転送用論理回路（論理回路Ｔ）を実行中に、第２の論理回路（論理回路Ｂ）を実現する回路情報の入力を可能とすることにより、回路情報入力に要する時間を削減することができる。
【００５０】
また、データ転送用論理回路（論理回路Ｔ）を実現する回路情報は、通信経路を実現する回路情報のみから構成されていることにより、回路情報入力に要する時間を更に削減することができる。
【００５１】
［第２の実施の形態］
次に、本発明の第２の実施の形態を図１６ないし図１９に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００５２】
［プログラマブル論理デバイスの構成］
図１６は、本発明の第２の実施の形態にかかるプログラマブル論理デバイス１５０を備える半導体装置２００を示すブロック図である。図１６に示すように、本実施の形態の半導体装置２００は、動的にプログラムを変更可能なプログラマブル論理デバイス１５０を備えている。このプログラマブル論理デバイス１５０には、プログラマブル論理デバイス１５０を制御するためのホストプロセッサ１０と、複数の回路情報や処理に用いるデータなどが保存されたメインメモリ２０とが接続されている。
【００５３】
プログラマブル論理デバイス１５０は、図１６に示すように、処理回路部１５１と回路情報入力制御部１５２とを、２種類の回路情報入力信号線１５３Ａ，１５３Ｂにより接続して構成されている。
【００５４】
まず、プログラマブル論理デバイス１５０を構成する処理回路部１５１について説明する。図１７は、処理回路部１５１の構成を例示的に示す回路図である。図１７に示すように、処理回路部１５１は、第１の実施の形態の処理回路部５１と同じく、ロジックブロック（ＬＢ）５１Ｌと、スイッチブロック（ＳＢ）５１Ｓと、メモリ（ＭＥＭ）５１Ｍとから構成されている。ただし、第１の実施の形態の処理回路部５１に対しては１種類の回路情報入力信号線５３が接続されていたのに対し、処理回路部１５１にはデータ転送以外に用いるブロックであるロジックブロック５１Ｌにのみ接続されている回路情報入力信号線１５３Ａと、データ転送に用いるブロックであるスイッチブロック５１Ｓにのみ接続されている回路情報入力信号線１５３Ｂとの２種類を持つという点が異なる。この構造により、処理回路部１５１のハードウェア資源を殆ど増加することなく、スイッチブロック５１Ｓとロジックブロック５１Ｌとを独立に制御することが可能となる。
【００５５】
回路情報入力制御部１５２は、処理回路部１５１の実行する論理回路の切り替えの制御を行なうものである。図１８は、回路情報入力制御部１５２の構成を示すブロック図である。図１８に示すように、回路情報入力制御部１５２は、現在実行中の論理回路の識別子を保存するメモリ５２Ｍａと、次に実行する論理回路の識別子を保存するメモリ５２Ｍｂと、メモリ５２Ｍａとメモリ５２Ｍｂに保存された識別子から転送用の論理回路の識別子を得るためのテーブル５２Ｔと、論理回路のロジックブロック５１Ｌに関する回路情報を保存するコンフィギュレーションメモリ１５４Ｌと、論理回路のスイッチブロック５１Ｓに関する回路情報を保存するコンフィギュレーションメモリ１５４Ｓと、回路情報入力制御部５２の状態遷移を制御するコントローラ５２Ｐとから構成されている。
【００５６】
回路情報入力制御部１５２は、上述した構成により、ホストプロセッサ１０から送信される制御命令や変更する論理回路の識別子等の信号に従い、メインメモリ２０からコンフィギュレーションメモリ１５４Ｌやコンフィギュレーションメモリ１５４Ｓへの論理回路の回路情報の転送と、メインメモリ２０からテーブル５２Ｔへのテーブル情報の転送といった初期化処理を行なう。また、回路情報入力制御部１５２は、コンフィギュレーションメモリ１５４Ｌやコンフィギュレーションメモリ１５４Ｓから処理回路部１５１への論理回路の回路情報の転送と、処理回路部１５１の実行する論理回路の切り替えの制御といった論理回路変更処理も行なう。
【００５７】
なお、コンフィギュレーションメモリ１５４Ｌの出力は回路情報入力信号線１５３Ａに、コンフィギュレーションメモリ１５４Ｓの出力は回路情報入力信号線１５３Ｂに、それぞれ接続されている。
【００５８】
［論理回路の変更手順］
回路情報入力制御部１５２は、現在実行中の論理回路Ａから論理回路Ｂへの論理回路変更では、まず、現在処理を行なっている論理回路Ａと、ホストプロセッサ１０に要求された論理回路Ｂとの間でデータ転送を行なう論理回路Ｔの回路情報を処理回路部１５１へと書き込み、論理回路Ｔを実行する。続いて、論理回路Ｂの回路情報を処理回路部１５１へと書き込み、論理回路Ｔの処理が終了した後、論理回路Ｂを実行する。
【００５９】
図１９は、プログラマブル論理デバイス１５０における論理回路変更処理の流れを示すフローチャートである。以下では、図１９のフローチャートの流れに従い、論理回路変更の手順を示す。ただし、第１の実施の形態と同様に、ホストプロセッサ１０から論理回路変更が要求される論理回路の回路情報は予めコンフィギュレーションメモリ１５４Ｌやコンフィギュレーションメモリ１５４Ｓに保存されているものとする。
【００６０】
図１９に示すように、プログラマブル論理デバイス１５０の回路情報入力制御部１５２は、ホストプロセッサ１０から送信されたプログラマブル論理デバイス５０の論理回路変更のＲＥＱ信号を受信すると、論理回路の変更が可能な状態ならば、ＡＣＫ信号をホストプロセッサ１０へ送信し、論理回路変更を開始する（ステップＳ１）。論理回路の変更が不可能な状態ならば、変更可能な状態になるまで待機する。ホストプロセッサ１０は、回路情報入力制御部１５２からのＡＣＫ信号を受信したら、変更後の論理回路の識別子Ｂを回路情報入力制御部１５２へと送信する。
【００６１】
回路情報入力制御部１５２は、変更後の論理回路の識別子Ｂを受信すると（ステップＳ２）、現在実行中の論理回路の識別子Ａと変更後の論理回路の識別子Ｂを入力として、回路情報入力制御部１５２内のテーブル５２Ｔを引くことで、データ転送用の論理回路の識別子Ｔを得る（ステップＳ３）。ただし、リセット直後などにより、現在実行中の論理回路が存在しない場合は、データ転送用の論理回路は必要ない。
【００６２】
回路情報入力制御部１５２は、データ転送用の論理回路の識別子Ｔを獲得したら、コンフィギュレーションメモリ１５４Ｓから、論理回路Ｔのスイッチブロック５１Ｓの回路情報を読み出し、回路情報入力信号線１５３Ｂを介して処理回路部１５１内部のスイッチブロック５１Ｓに対して書き込むことにより、論理回路Ｔの回路情報を転送する（ステップＳ２１）。
【００６３】
同時に、回路情報入力制御部１５２は、コンフィギュレーションメモリ１５４Ｌから、論理回路Ｂのロジックブロック５１Ｌの回路情報を読み出し、回路情報入力信号線１５３Ａを介して処理回路部１５１内部のロジックブロック５１Ｌに対して書き込むことにより、論理回路Ｂの回路情報を転送する（ステップＳ２２）。
【００６４】
また、回路情報入力制御部１５２は、ステップＳ２１における論理回路Ｔの回路情報の転送後、コンフィギュレーションメモリ１５４Ｓから、論理回路Ｂのスイッチブロック５１Ｓの回路情報を読み出し、回路情報入力信号線１５３Ｂを介して処理回路部１５１内部のスイッチブロック５１Ｓに対して書き込むことにより、論理回路Ｂの回路情報を転送する（ステップＳ２３）。
【００６５】
次いで、現在実行中の論理回路Ａの処理が終了した場合には（ステップＳ６のＹｅｓ）、処理回路部１５１のスイッチブロック５３Ｓのみに対し、論理回路Ｔの処理の実行を開始する（ステップＳ７）。
【００６６】
論理回路Ｔの処理が終了すると（ステップＳ８のＹｅｓ）、論理回路Ｂの回路情報の転送が完了したか否かを判断する（ステップＳ９）。
【００６７】
論理回路Ｂの回路情報の転送が完了したと判断すると（ステップＳ９のＹｅｓ）、論理回路Ｂの処理の実行を開始し（ステップＳ１０）、ホストプロセッサ１０へ、ＡＣＫ信号を送信する。
【００６８】
ホストプロセッサ１０がＡＣＫ信号を受信すると、プログラマブル論理デバイス５０の論理回路変更は完了する（ステップＳ１１）。
【００６９】
このように本実施の形態によれば、処理回路部１５１と回路情報入力制御部１５２とを接続する信号線は、処理回路部１５１のスイッチブロック５１Ｓにのみ接続されている第１の信号線１５３Ｂと処理回路部１５１のロジックブロック５１Ｌにのみ接続されている第２の信号線１５３Ａとで構成されているとともに、回路情報入力制御部１５２は、回路情報を保存する複数の回路情報を保存するメモリ１５４Ｌ，１５４Ｓを有しており、回路情報入力制御部１５２は、データ転送用論理回路（論理回路Ｔ）のスイッチブロック５１Ｓの回路情報を一の回路情報を保存するメモリ１５４Ｓから読み出し、第１の信号線１５３Ｂを介して処理回路部１５１の内部のスイッチブロック５１Ｓに対して書き込むことによりデータ転送用論理回路（論理回路Ｔ）の回路情報を転送するとともに、第２の論理回路（論理回路Ｂ）のロジックブロック５１Ｌの回路情報を他の回路情報を保存するメモリ１５４Ｌから読み出し、第２の信号線１５３Ａを介して処理回路部１５１の内部のロジックブロック５１Ｌに対して書き込むことにより第２の論理回路（論理回路Ｂ）の回路情報を転送する。これにより、それぞれで別の制御が可能になる（論理回路Ｔに必要な情報のみを入力する系統である信号線１５３Ｂと、それ以外に入力する系統である１５３Ａから構成される場合には、信号線１５３Ｂで論理回路Ｔの構成情報を入力している間に、１５３Ａで論理回路Ｂの構成情報の入力ができる）ので、処理回路部１５１のハードウェア資源を殆ど増加することなく、スイッチブロック５１Ｓとロジックブロック５１Ｌとを独立に制御することができ、処理効率を向上させることができる。
【図面の簡単な説明】
【００７０】
【図１】本発明の第１の実施の形態にかかるプログラマブル論理デバイスを備える半導体装置を示すブロック図である。
【図２】処理回路部の構成を例示的に示す回路図である。
【図３】ロジックブロックの構成を例示的に示す模式図である。
【図４】スイッチブロックの構成を例示的に示す模式図である。
【図５】回路情報入力制御部の構成を示すブロック図である。
【図６】論理回路Ａを示す回路図である。
【図７】論理回路Ｂを示す回路図である。
【図８】データ転送用の論理回路Ｔを示す模式図である。
【図９】論理回路Ｔを示す回路図である。
【図１０】プログラムを実行した場合のタイムチャートである。
【図１１】プログラマブル論理デバイスにおける論理回路変更処理の流れを示すフローチャートである。
【図１２】テーブルの構造を示す模式図である。
【図１３】第１の変形例のプログラマブル論理デバイスのロジックブロックを示す模式図である。
【図１４】第２の変形例のプログラマブル論理デバイスのロジックブロックを示す模式図である。
【図１５】第２の変形例のプログラマブル論理デバイスのスイッチブロックを示す模式図である。
【図１６】本発明の第２の実施の形態にかかるプログラマブル論理デバイスを備える半導体装置を示すブロック図である。
【図１７】処理回路部の構成を例示的に示す回路図である。
【図１８】回路情報入力制御部の構成を示すブロック図である。
【図１９】プログラマブル論理デバイスにおける論理回路変更処理の流れを示すフローチャートである。
【符号の説明】
【００７１】
１０    制御装置
２０    記憶装置
５０，１５０    プログラマブル論理デバイス
５１，１５１    処理回路部
５２，１５２    回路情報入力制御部、回路情報入力制御装置
５３    信号線
６２    メモリ
１００，２００    半導体装置
１５３Ｂ    第１の信号線
１５３Ａ    第２の信号線
５４，１５４Ｌ，１５４Ｓ    回路情報設定メモリ
Ａ    第１の論理回路
Ｂ    第２の論理回路
Ｔ    データ転送用論理回路
【図１】
2007329760.tif 000003
【図２】
2007329760.tif 000004
【図３】
2007329760.tif 000005
【図４】
2007329760.tif 000006
【図５】
2007329760.tif 000007
【図６】
2007329760.tif 000008
【図７】
2007329760.tif 000009
【図８】
2007329760.tif 000010
【図９】
2007329760.tif 000011
【図１０】
2007329760.tif 000012
【図１１】
2007329760.tif 000013
【図１２】
2007329760.tif 000014
【図１３】
2007329760.tif 000015
【図１４】
2007329760.tif 000016
【図１５】
2007329760.tif 000017
【図１６】
2007329760.tif 000018
【図１７】
2007329760.tif 000019
【図１８】
2007329760.tif 000020
【図１９】
2007329760.tif 000021