(57)【要約】【課題】機能ブロックの入力ポート数が増加しても、ハードウェア規模の増加を抑制可能な再構成可能デバイスを提供する。【解決手段】再構成可能デバイス１は、機能ブロック１０及び１１等の複数の機能ブロックと、機能ブロック間を切り替え可能に接続するプログラマブル・スイッチ１５とを備えている。機能ブロック１０及び１１は、プログラマブル・スイッチ１５と接続されるデータ入力ポート１０４及びデータ出力ポート１０５を有する。さらに、機能ブロック１０と１１の間はプログラマブル・スイッチ１５を介さずに、ダイレクト入力ポート１０１及びダイレクト出力ポート１０２を接続するダイレクト配線１０３により接続されている。【選択図】図１
2011129141.tif 000002
【特許請求の範囲】
【請求項１】
内部回路の構成を変更可能な半導体集積回路であって、
少なくとも１の演算器又は記憶回路を有する複数の機能ブロックと、
前記複数の機能ブロックの間を切り替え可能に接続するプログラマブル・スイッチとを備え、
前記複数の機能ブロックの各々は、前記プログラマブル・スイッチと接続される少なくとも１つのデータ入力ポート及び少なくとも１つのデータ出力ポートを有するとともに、
前記複数の機能ブロックに含まれる第１の機能ブロックと第２の機能ブロックとの間は、前記プログラマブル・スイッチを介さずに接続され、
前記第１の機能ブロックは、前記第１の機能ブロックが有する前記第１の演算器の演算結果の一部分を前記第１の機能ブロックの有する第１のダイレクト出力ポートから前記第２の機能ブロックの有する第１のダイレクト入力ポートに入力し、
前記第２の機能ブロックは、当該演算結果の一部分を前記第２の機能ブロック有する第１のデータ出力ポートから出力する、半導体集積回路。
【請求項２】
前記第２の機能ブロックは、前記第２の機能ブロックが有する第２のダイレクト出力ポートから前記第１の機能ブロックが有する第２のダイレクト入力ポートに入力を行い、
前記第１の機能ブロックは、前記第２のダイレクト入力ポートからの入力を前記第１の演算器の入力とすることを特徴とする請求項１に記載の半導体集積装置。
【請求項３】
前記第１の演算器は、演算結果を演算ビット幅未満のデータビット幅に分割し、分割した演算結果を前記第１の機能ブロックが有する第２のデータ出力ポート、前記第１のダイレクト出力ポートからそれぞれ出力することを特徴とする請求項１または請求項２に記載の半導体集積装置。
【請求項４】
前記第１の演算器は、２以上の入力データの演算を行う多入力演算器であることを特徴とする請求項１乃至請求項３のいずれか１項に記載の半導体集積装置。
【請求項５】
前記第１の機能ブロックの有する第１のデータ入力ポートから第１の２ｍビットデータの上位値が入力され、
前記第１の機能ブロックの有する第２のデータ入力ポートから第２の２ｍビットデータの上位値が入力され、
前記第２の機能ブロックの有する第３のデータ入力ポートから第１の２ｍビットデータの下位値が入力され、
前記第２の機能ブロックの有する第４のデータ入力ポートから第２の２ｍビットデータの下位値が入力され、
前記第２の機能ブロックは、前記第１及び第２の２ｍビットデータの下位値を、前記第２のダイレクト出力ポート及び前記第２の機能ブロックの有する第３のダイレクト出力ポートから前記第２のダイレクト入力ポート及び前記第１の機能ブロックが有する第３のダイレクト入力ポートに入力し、
前記第１の機能ブロックは、前記第１の演算器を用いて前記第１の２ｍビットデータの上位値、前記第１の２ｍビットデータの下位値、前記第２の２ｍビットデータの上位値、前記第２の２ｍビットデータの下位値を入力とする２ｍビット演算を行い、２ｍビット演算結果の上位ｍビット及び下位ｍビットの一方を前記第２のデータ出力ポートから出力するとともに、他方を前記第１のダイレクト出力ポートから前記第１のダイレクト入力ポートに入力することを特徴とする請求項２乃至請求項４のいずれか１項に記載の半導体集積回路。
【請求項６】
前記第２の機能ブロックは、第２の演算器と、
前記第２の演算器の演算結果、前記第１のダイレクト出力ポートから出力され前記第１のダイレクト入力ポートに入力される演算結果、の一方を選択して出力するセレクタと、
を備えることを特徴とする請求項１乃至請求項５のいずれか１項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能ブロック間の接続関係を選択することによって回路構成を決定することが可能な再構成可能デバイス等の半導体集積回路に関する。
【背景技術】
【０００２】
各種のデータ処理を実行するプロセッサ・ユニットとして、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processor Unit）と呼称される製品が実用化されている。これらのプロセッサ・ユニットを利用したデータ処理システムでは、複数の命令が記述されたアプリケーション・プログラムと処理データとがメモリ・デバイスに格納され、プロセッサ・ユニットはメモリ・デバイスから命令や処理データを読み出して演算処理を逐次実行する。このようなプロセッサ・ユニットは、アプリケーション・プログラムの切り替えによって様々なデータ処理を実現できるが、メモリ・デバイスから命令及び処理データを順次読み出して実行するため、複雑なデータ処理を高速に実行することができない。
【０００３】
一方、セルベースＩＣやゲート・アレイを用いて製造される専用回路は、カスタム・チップ、ＡＳＩＣ（Application Specific Integrated Circuit）等と呼ばれる。このような専用回路は、データ処理を実行する論理回路がハードウェアによって形成されているため、複雑なデータ処理を高速に実行することができる。しかしながら、特定のデータ処理にしか利用できず、上述したＣＰＵ等のデータ処理システムに比べて柔軟性を欠くという欠点がある。
【０００４】
これらの中間に位置するものとして、アプリケーション・プログラムや処理データに応じて、回路構成を変更することが可能な再構成可能デバイスが知られている。再構成可能デバイスには演算器やレジスタ・ファイルが小規模な多数の機能ブロックとして配置されており、デバイスの設計時やデバイスの動作時に、アプリケーション・プログラムや処理データに対応して機能ブロックの動作及び接続関係を変更することで、再構成可能デバイスの回路構成を自由に構成することができる。
【０００５】
一般的な再構成可能デバイス７の構成を図２２に示す。機能ブロック７０は、１又は複数の演算器やレジスタ・ファイルを備えている。プログラマブル・スイッチ（ＰＳＷ）１５は、複数の機能ブロック７０の間を接続するための配線上に設けられ、機能ブロック７０の間を接続する配線資源及び機能ブロック７０の入出力ポートと接続されている。プログラマブル・スイッチ１５の制御によって、機能ブロック７０の間の接続切り替えが可能である。構成情報メモリ（ＣＦＧＭ）１６は、再構成可能デバイス７の構成を変更可能とするため、再構成可能デバイス７の構成定義に必要な機能ブロック１７の動作及びプログラマブル・スイッチ１５の接続関係に関する構成情報を格納するメモリである。アプリケーション・プログラムや処理データに応じて、構成情報メモリ１６に格納された構成情報を機能ブロック７０及びプログラマブル・スイッチ１５にロードすることにより、回路構成の変更ができる、
【０００６】
出願人は、上述した再構成可能デバイスの１つであるアレイ型プロセッサを出願している（特許文献１、特許文献２を参照）。以下では、特許文献１及び特許文献２に開示したアレイ型プロセッサを第一従来技術と呼ぶこととする。図２３乃至２５を用いて、第一従来技術のアレイ型プロセッサの概要を説明する。
【０００７】
図２３は、第一従来技術のアレイ型プロセッサ８の構成の一例を示している。アレイ型プロセッサ８は、複数のプロセッサ・エレメント（ＰＥ）８１及びこれらの間の電気的接続を担う複数のプログラマブル・スイッチ１５をマトリクス状に配列した構成を有している。さらに、アレイ型プロセッサ８は、アレイ型プロセッサ８の演算状態の遷移、つまりプロセッサ・エレメント８１の動作及びプロセッサ・エレメント８１間の接続関係の変更による回路構成の変更を管理する状態管理部（ＳＴＣ：State Transition Controller）８２を備えている。
【０００８】
状態管理部８２は、外部から入力される一連のオブジェクトコードを保持し、プロセッサ・エレメント８１及びプログラマブル・スイッチ１５に対する命令ポインタ（ＩＰ）を生成し、生成した命令ポインタをプロセッサ・エレメント８１及びプログラマブル・スイッチ１５に供給する。ここで、命令ポインタとは、後述する命令メモリ８０１内に格納された命令コードのアドレスを指定する情報である。また、命令コードとは、プロセッサ・エレメント８１の動作及びプログラマブル・スイッチ１５による配線接続を指定する識別子である。つまり、命令メモリ８０１は上述した構成情報メモリ１６に相当し、命令コードは構成情報メモリ１６に格納される構成情報に相当する。
【０００９】
プロセッサ・エレメント８１の構成を図２４に示す。プロセッサ・エレメント８１は、命令メモリ８０１及び命令デコーダ８０２並びにレジスタ・ファイル１４０、算術演算及び論理演算等を行う演算器であるＡＬＵ（Arithmetic and Logical Unit）８０３、ビット処理等の機能を持つ演算器であるＤＭＵ（Data Management Unit）８０４等の演算部を有している。さらに、内部配線資源８０５は、プログラマブル・スイッチ１５から入力されるデータの入力先及びプロセッサ・エレメント８１内におけるレジスタ・ファイル１４０、ＡＬＵ８０３等の演算部間の接続関係を変更するプログラマブル・スイッチである。
【００１０】
命令メモリ８０１は、プロセッサ・エレメント８１における演算部の選択等の動作を規定する命令コードを格納する。命令デコーダ８０２は、命令コードをデコードしてＡＬＵ８０３等の演算部及び内部配線資源８０５の動作を制御する。命令メモリ８０１には複数の命令コードを格納することができ、状態管理部８２から命令メモリ８０１に供給する命令ポインタを切り替えることによって、アレイ型プロセッサ８の回路構成を動的に変更することが可能である。
【００１１】
ＡＬＵ８０３の内部構成例を図２５に示す。ＡＬＵ８０３は、２つのデータ入力ポート８０３１及び８０３２並びに１つのデータ出力ポート８０３４を有している。これらのポートに対する入出力データのビット幅は、アレイ型プロセッサ８内でのデータ処理単位であるｍビットである。また、ＡＬＵ８０３は、２入力論理演算器１２８、２入力セレクタ１２９、２入力ｍビット幅加減算器１２６及び２入力ｍビット幅比較器１２７が、入力ポート８０３１及び８０３２と出力ポート８０３４の間に並列に接続されている。演算器１２７乃至１２９と出力ポート８０３４の間にはマルチプレクサ１３１が設けられており、演算器１２７乃至１２９のいずれかの出力がマルチプレクサ１３１において選択されて、出力ポート８０３４に出力される。
【００１２】
命令デコーダ８０２を介してＡＬＵ８０３に供給された命令コードに応じて、演算器１２７乃至１２９の選択、マルチプレクサ１３１の入力元の選択が行うことにより、ＡＬＵ８０３は様々な算術演算器、論理演算器、セレクタ又は比較器として動作する。
【００１３】
このように、アレイ型プロセッサ８は、プロセッサ・エレメント８１内にＡＬＵ８０３等の複数の機能ブロックと、これらの間の接続を切り替えるための内部配線資源８０５を備えている。さらに、アレイ型プロセッサ８は、プロセッサ・エレメント８１の間の接続を切り替えるプログラマブル・スイッチ１５を備えている。つまり、アレイ型プロセッサ８は、図１の再構成可能デバイス７が有するプログラマブル・スイッチ１５を介して機能ブロック７０間を可変的に接続する構成を、プロセッサ・エレメント８１内での機能ブロックの可変的な接続及びプロセッサ・エレメント８１間での機能ブロックの可変的な接続に階層化した構成を有している。
【００１４】
上述した再構成可能デバイス７やアレイ型プロセッサ８は、ＡＳＩＣ等の専用回路に比べて回路構成の柔軟性が大きいとう利点があるが、再構成可能な回路構成が冗長になるという弱点がある。再構成可能デバイス７やアレイ型プロセッサ８は、回路構成の切り替えに対応した複数の機能ブロック７０やプロセッサ・エレメント８１、回路構成情報を格納する構成情報メモリ１６又は命令メモリ８０１及び命令デコーダ８０２等を備えている。また、機能ブロック間又はプロセッサ・エレメント間の接続関係を切り替えるためのプログラマブル・スイッチ１５は、専用回路の配線に比べて多くの配線面積を必要とする。このため、再構成可能デバイス７やアレイ型プロセッサ８で所望の回路を構成する場合は、同一の回路を専用回路によって構成する場合に比べて集積度が低く面積効率が悪くなる。
【００１５】
一例として、（Ａ＋Ｂ）＊（Ｃ＋Ｄ）→Ｙという算術演算を行う回路を、再構成可能デバイス７と専用回路のそれぞれで構成した場合の比較を図２６に示す。図２６（ａ）は、専用回路によって構成した場合を示している。この場合、Ａ＋Ｂの演算を行う加算回路８１０ａ及びＣ＋Ｄの演算を行う加算回路８１０ｂ、２つの加算回路の出力データの乗算を行う乗算回路８１１によって構成することができる。他方、図２６（ｂ）は、再構成可能デバイス７による構成を示している。この場合は、機能ブロック７０ａ乃至７０ｃに対する入力データの選択切り替えを可能とするプログラマブル・スイッチ１５ａ乃至１５ｃ、加算回路又は乗算回路を構成するために必要な演算器以外に機能ブロック７０ａ乃至７０ｃが備える演算器等の回路要素、構成情報メモリ１６ａ乃至１６ｃが、再構成可能デバイス７で構成する場合の冗長部分となる。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００１−３１２４８１号公報
【特許文献１】特開２００３−７６６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上述したアレイ型プロセッサ８等の従来の再構成可能デバイスは、アプリケーション・プログラムや処理データの内容によっては、面積及び処理速度の観点から効率の良い回路を実現できない場合がある。
【００１８】
一例として、２入力を超える多入力の演算を効率良く実行するために、上述した再構成可能デバイス７の機能ブロック７０の入力数を増加させる場合について説明する。図２７は、機能ブロック７０を４入力の機能ブロックとした場合の例である。図２７の機能ブロック７０は４入力演算部１１０を備えている。４入力演算部１１０には、機能ブロック７０の４つの入力ポート１０４ａ乃至１０４ｄから入力データが供給され、４入力演算部１１０による演算結果は、機能ブロック７０の出力ポート１０５から出力される。
【００１９】
このように機能ブロック７０に対する入力数を増加することは、動作速度の向上の点からは有利となる。例えば、２入力の機能ブロックによって４入力セレクタを実現するためには、２入力セレクタを備える３つの機能ブロックが必要となる。機能ブロック間の接続はプログラマブル・スイッチを介して行われるため、プログラマブル・スイッチ及び配線での信号遅延に起因する動作速度の低下を招いてしまう。これに対して、図２７のような４入力の機能ブロックを用いることとすれば、配線遅延の累積による動作速度の低下を回避することができる。
【００２０】
しかしながら、従来の再構成可能デバイス７において機能ブロック７０の入力ポート数を増加すると、これらに対する入力元を選択するためのプログラマブル・スイッチ１５及び構成情報メモリ１６の規模も増加する結果となる。図２７の場合、機能ブロック７０の入力ポートが２入力から４入力に増加すると、これに合わせて、入力ポート１０４ａ乃至１０４ｄに対する入力元を選択するためにプログラマブル・スイッチ１５が備える入力選択ユニット１５１の規模は、２入力の場合に比べて２倍になる。さらに、入力選択ユニット１５１ａ乃至１５１ｄのそれぞれの設定情報を格納する構成情報メモリ１６の規模も、２入力の場合に比べて２倍になる。
【００２１】
また、ｍビットを超えるデータの加減算を行う場合も同様である。ｍビット加減算器を組み合わせてｍビットを越えるデータの加減算、つまり桁上げを伴う加減算を行う場合、ｍビット加減算器の間でのキャリー伝播が必要である。このため、複数の機能ブロック７０の間をプログラママブル・スイッチ１５を介して接続する必要があり、配線遅延によって動作速度の低下を招いてしまう。
【００２２】
そこで、図２８に示すように機能ブロック７０内の加減算器を２ｍビット幅加減算器１２２とし、２つの２ｍビット入力データを上位ｍビットと下位ｍビットに分割して、ｍビット幅の４つの入力ポート１０４ａ及び１０４ｂから入力する。また、２ｍビット幅加減算器１２２の出力データは、上位ｍビットと下位ｍビットに分割して出力ポート１０５ａ及び１０５ｂから出力する。このような構成であれば、ｍビット幅のプログラマブル・スイッチ１５及び配線資源を用いながら、機能ブロック間でのキャリー伝播が不要になる。
【００２３】
しかしながら、上述した４入力セレクタを実現する構成と同様に、機能ブロック７０の入力ポート数の増加に応じて、これらに対する入力元を選択するためのプログラマブル・スイッチ１５及び構成情報メモリ１６の規模も増加する結果となり、再構成可能デバイスのハードウェア規模の増大を生じてしまう。再構成可能デバイスのハードウェア規模の増加は、再構成可能デバイスの集積度を低下させ、面積効率がさらに悪化する原因となる。
【００２４】
なお、機能ブロック７０の入力ポートを増やしてもプログラマブル・スイッチ１５の入力数を制限することによって、プログラマブル・スイッチ１５の規模及び構成情報メモリ１６の規模の増加を抑制することは可能である。しかしながら、このような方法では、機能ブロック７０の間の配線の自由度が制限されるため、回路構成の変更の自由度を制約することになる。
【００２５】
このように、従来の再構成可能デバイスには、機能ブロックの入力ポート数の増加に応じて、プログラマブル・スイッチの規模、構成情報メモリの規模が増加し、ハードウェア規模が増大するという課題がある。
【００２６】
なお、このような課題は、第一従来技術として説明したアプリケーション・プログラムに応じて動的に再構成を行うことができるアレイ型プロセッサ８に限らず存在するものである。つまり、プログラマブル論理デバイス（ＰＬＤ：Programmable Logical Device）やＦＰＧＡ（Field Programmable gate Array）といった機能ブロック間の接続関係を変更可能なその他の再構成可能デバイス等、機能ブロック間の接続関係をプログラマブル・スイッチによって決定する構成を有する半導体集積回路に共通して存在する課題である。
【課題を解決するための手段】
【００２７】
本発明にかかる半導体集積回路は、内部回路の構成を変更可能な半導体集積回路であって、少なくとも１の演算器又はレジスタ・ファイルを有する複数の機能ブロックと、前記複数の機能ブロック間を切り替え可能に接続するプログラマブル・スイッチとを備え、前記複数の機能ブロックは、前記プログラマブル・スイッチと接続される少なくとも１つのデータ入力ポート及び少なくとも１つのデータ出力ポートを有する。さらに、少なくとも一部の前記機能ブロックの間は前記プログラマブル・スイッチを介さずに接続され、１の前記機能ブロックがダイレクト出力ポートから出力するデータを他の前記機能ブロックが有するダイレクト入力ポートに入力可能なものである。
【００２８】
このような構成により、プログラマブル・スイッチと接続されていないダイレクト入力ポートから機能ブロックに対するデータ入力が可能となるため、機能ブロックへのデータ入力数が増加しても、プログラマブル・スイッチの規模の増加、構成情報メモリの規模の増加といったハードウェア規模の増加を抑制することができる。
【発明の効果】
【００２９】
本発明により、機能ブロックの入力ポート数が増加しても、ハードウェア規模の増加を抑制することができる半導体集積回路を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明にかかる再構成可能デバイスの構成図である。
【図２】本発明の再構成可能デバイスにおける機能ブロックの接続を示す図である。
【図３】本発明にかかる再構成可能デバイスの構成図である。
【図４】ＡＬＵ演算部の構成例を示す図である。
【図５】本発明にかかる再構成可能デバイスにおいて４入力論理演算を実現する場合の構成図である。
【図６】本発明にかかる再構成可能デバイスにおいて２ｍビット加減算を実現する場合の構成図である。
【図７】本発明の再構成可能デバイスが備える機能ブロックの入力ポート数とデバイス規模の増加の関係を示す図である。
【図８】本発明の再構成可能デバイスが備える機能ブロックの構成図である。
【図９】本発明の再構成可能デバイスにおける機能ブロックの接続を示す図である。
【図１０】本発明にかかる再構成可能デバイスにおいて４入力論理演算を実現する場合の構成図である。
【図１１】本発明にかかる再構成可能デバイスにおいて２ｍビット加減算を実現する場合の構成図である。
【図１２】本発明の再構成可能デバイスが備える機能ブロックの構成図である。
【図１３】３入力演算部の構成例を示す図である。
【図１４】本発明の再構成可能デバイスにおける機能ブロックの接続を示す図である。
【図１５】３入力演算部の構成例を示す図である。
【図１６】本発明にかかる再構成可能デバイスにおいて４入力論理演算を実現する場合の構成図である。
【図１７】本発明にかかる再構成可能デバイスにおいて６入力論理演算を実現する場合の構成図である。
【図１８】本発明の再構成可能デバイスにおける機能ブロックの接続を示す図である。
【図１９】本発明の再構成可能デバイスにおける機能ブロックの接続を示す図である。
【図２０】本発明の再構成可能デバイスにおける機能ブロックの接続を示す図である。
【図２１】本発明の再構成可能デバイスでカウンタ回路を実現する場合の構成図である。
【図２２】従来の再構成可能デバイスの構成図である。
【図２３】従来のアレイ型プロセッサの構成図である。
【図２４】従来のプロセッサ・エレメントの構成図である。
【図２５】従来のＡＬＵの構成図である。
【図２６】専用回路の回路規模と再構成可能デバイスの回路規模を比較するための図である。
【図２７】従来の再構成可能デバイスが備える機能ブロックの入力ポート数とデバイス規模の増加の関係を示す図である。
【図２８】従来の再構成可能デバイスにおいて２ｍビット幅の演算器を実現する機能ブロックの構成図である。
【発明を実施するための形態】
【００３１】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。なお、以下に説明する実施の形態は、再構成可能デバイスに対して本発明を適用したものである。以下の説明では、上述した従来の再構成可能デバイス７又はアレイ型プロセッサ８が備える構成要素と同様の機能を有するものについては、同一の符号を付して詳細な説明を省略することとする。
【００３２】
発明の実施の形態１．
本実施の形態にかかる再構成可能デバイス１の構成を図１に示す。再構成可能デバイス１に含まれる機能ブロック１０は、プログラマブル・スイッチ１５と接続される入力ポート１０４及び出力ポート１０５の他に、他の機能ブロック１１とプログラマブル・スイッチ１５を介さずに直接接続されるダイレクト入力ポート１０１を備えている。また、機能ブロック１１は、プログラマブル・スイッチ１５と接続される入力ポート及び出力ポートの他に、他の機能ブロック１０とプログラマブル・スイッチ１５を介さずに直接接続されるダイレクト出力ポート１０２を備えている。また、機能ブロック１０のダイレクト入力ポート１０１と機能ブロック１１のダイレクト出力ポート１０２との間は、ダイレクト配線１０３によって接続されている。
【００３３】
機能ブロック１０及び１１の接続構成の詳細を図２に示す。機能ブロック１０は、プログラマブル・スイッチ１５ａと接続されるｍビット幅の２つの入力ポート１０４ａ及び１０４ｂの加えて、機能ブロック１１のダイレクト出力ポート１０２ａ、１０２ｂと接続されるｍビット幅のダイレクト入力ポート１０１ａ及び１０１ｂを有している。入力ポート１０４ａ及び１０４ｂ、ダイレクト入力ポート１０１ａ及び１０１ｂからの入力データは、４入力演算部１１０に入力される。４入力演算部１１０の出力ポート１１０１から出力される演算結果は、出力ポート１０５ａを介してプログラマブル・スイッチ１５に入力される。また、４入力演算部１１０の出力ポート１１０２は、演算結果がｍビットを超える場合等に使用する出力ポートであり、機能ブロックの出力ポート１０６を介して出力され、他の機能ブロックに入力することが可能である。出力ポート１０６の使用形態については後述する。
【００３４】
一方、機能ブロック１１は、プログラマブル・スイッチ１５ｂと接続されるｍビット幅の２つの入力ポート１０４ｃ及び１０４ｄを有している。入力ポート１０４ｃ及び１０４ｄからの入力されたデータは、２入力演算部１１１に入力されるとともに、ダイレクト出力ポート１０２ａ及び１０２ｂからそれぞれ出力される。
【００３５】
このように、本実施の形態にかかる再構成可能デバイス１は、複数の機能ブロック１０及び１１が有する入力ポート及び出力ポートの全てがプログラマブル・スイッチ１５と接続されるのではなく、少なくとも一部の機能ブロックは、機能ブロック間を直接接続するダイレクト配線１０３によって接続されている。
【００３６】
このような構成により、プログラマブル・スイッチ１５と接続されていないダイレクト入力ポート１０１から機能ブロック１０に対するデータ入力が可能となるため、機能ブロック１０へのデータ入力数が増加しても、プログラマブル・スイッチ１５の規模の増加、構成情報メモリ１６の規模の増加といったハードウェア規模の増加を抑制することができる。
【００３７】
なお、ダイレクト入力ポート１０１に対する入力は、このポートの上流側の機能ブロック１１に接続されたプログラマブル・スイッチ１５ｂによって入力元を選択することができる。このため、ハードウェア規模の増加を抑制しながらも、機能ブロック間の配線の柔軟性に対する制限を緩和することができる。
【００３８】
図３は、再構成可能デバイス１の構成を第一従来技術のアレイ型プロセッサに適用した場合におけるプロセッサ・エレメントの構成例を示している。図３のプロセッサ・エレメント１２は、上述した機能ブロック１０に相当する４入力のＡＬＵ１３及び機能ブロック１１に相当する２入力のＤＭＵ１４を備えている。なお、図３では、命令メモリ８０１及び命令デコーダ８０２の記載を省略している。これらの機能は、従来のプロセッサ・エレメント８１が備える命令メモリ８０１及び命令デコーダ８０２と同様であるため説明を省略する。ＡＬＵ１３は、ダイレクト入力ポート１０１ａ及び１０１ｂを有しており、ＤＭＵ１３とダイレクト配線１０３ａ及び１０３ｂを介して接続されている。ダイレクト入力ポート１０１ａ、１０１ｂ及びプログラマブル・スイッチ１５ａと内部配線資源８０５ａを介して接続されている入力ポート１０４ａ及び１０４ｂから入力されたデータは、４入力ＡＬＵ演算部１１３に入力される。
【００３９】
ＤＭＵ１４は、プログラマブル・スイッチ１５ｂから内部配線資源８０５ｂを介して入力されたデータを出力するものであって、ＡＬＵ１３のダイレクト入力ポート１０１ａ及び１０１ｂと接続されるダイレクト出力ポート１０２ａ及び１０２ｂを備えている。
【００４０】
なお、４入力演算部１１３は、２つの出力ポート１１３１及び１１３２を有している。４入力ＡＬＵ演算部１１３が、４つのｍビット入力データから１のデータを選択する４入力セレクタ等として動作する場合の出力データはｍビットであるため、４入力ＡＬＵ演算部１１３の出力ポート１１３１、ＡＬＵ１３の出力ポート１０５ａから出力されたデータは、プログラマブル・スイッチ１５に入力される。
【００４１】
一方、４入力ＡＬＵ演算部１１３が２ｍビット幅加減算器として動作する場合、出力データは２ｍビット幅となる。このように、４入力ＡＬＵ演算部１１３の出力データのデータ幅がｍビットを超える場合は、出力データを上位ｍビットと下位ｍビットに分割し、一方（例えば下位ｍビット）を出力ポート１１３１、他方（例えば上位ｍビット）を出力ポート１１３２から出力する。出力ポート１１３２から出力されたデータは、ＡＬＵ１３の出力ポート１０６に出力され、ＤＭＵ１４の入力ポート１０７に入力される。入力ポート１０７から入力されたデータは、マルチプレクサ１３０に入力される。マルチプレクサ１３０において入力ポート１０７からの入力データを選択することにより、４入力ＡＬＵ演算部１１３の出力データの一部（例えば上位ｍビット）をＤＭＵ１４の出力ポート１０５ｂに出力することが可能となり、４入力ＡＬＵ演算部１１３の出力データの一部（例えば上位ｍビット）をプログラマブル・スイッチ１５を介して他のプロセッサ・エレメントに供給することができる。
【００４２】
ここで、ＡＬＵ１３が備える４入力ＡＬＵ演算部１１３の構成例を図４に示す。４入力ＡＬＵ演算部１１３は、４入力論理演算器１２０、４入力セレクタ１２１、２ｍビット幅加減算器１２２及び２ｍビット幅比較器１２３の組合せであり、これらの演算器１２０乃至１２３の出力のいずれかを出力するマルチプレクサ１３１を有している。また、２ｍビット幅加減算器１２２の２ビット幅の出力データのうち、上位ｍビット又は下位ｍビットのデータを出力する出力ポート１１３２を備えている。
【００４３】
続いて以下では、図５乃至図７を用いて、ダイレクト配線１０３によって接続される機能ブロック１０及び１１を有する再構成可能デバイス１の利点を詳細に説明する。図５は、機能ブロック１０で４入力論理演算を実現する構成を示したものである。具体的には、４値Ａ、Ｂ、Ｃ及びＤの排他的論理和（Ａ＾Ｂ＾Ｃ＾Ｄ→Ｙ）を実行する。
【００４４】
プログラマブル・スイッチ１５ａと接続されたｍビット幅入力ポート１０４ａ及び１０４ｂ並びにｍビット幅ダイレクト入力ポート１０１ａ及び１０１ｂから入力される４つの値Ａ、Ｂ，Ｃ、Ｄが、４入力論理演算器１２０に入力される。このうち、ダイレクト入力ポート１０１ａ及び１０１ｂに入力される値Ｃ、Ｄは、他の機能ブロック１１のダイレクト出力ポート１０２ａ及び１０２ｂから入力されるものである。さらに、ダイレクト出力ポート１０２ａ及び１０２ｂは、プログラマブル・スイッチ１５ｂからデータ入力を行う入力ポート１０４ｃ及び１０４ｄと接続されている。
【００４５】
このような構成によって、論理演算対象の４つのデータＡ乃至Ｄの入力元は、プログラマブル・スイッチ１５ａ及び１５ｂの制御により自由に選択することができる。つまり、機能ブロック１１と接続されたプログラマブル・スイッチ１５ｂを、機能ブロック１０の入力データを選択するためのスイッチとして利用することが可能となる。このように機能ブロック１０及び１１を組み合わせた構成により、４入力論理演算を実行する機能ブロック１０に接続したプログラマブル・スイッチ１５ａの入力ポート及び入力選択ユニット１５１の数を増設しなくても、データ入力元の選択自由度を損なうことなく４値演算可能な再構成可能デバイスを実現することができる。
【００４６】
図６は、機能ブロック１０で２ｍビット加算（Ａ＋Ｂ→Ｙ）を実現する構成を示したものである。２つの２ｍビット幅の入力データＡ及びＢの上位ｍビットＡ［２ｍ−１：ｍ］及びＢ［２ｍ−１：ｍ］が、入力ポート１０４ａ及び１０４ｂに入力される。一方、Ａ及びＢの下位ｍビットＡ［ｍ−１：０］及びＢ［ｍ−１：０］は、機能ブロック１１の入力ポート１０４ｃ及び１０４ｄに入力され、ダイレクト出力ポート１０２ａ及び１０２ｂを経由してダイレクト入力ポート１０１ａ及び１０１ｂに入力される。これらの４つの入力データは、２ｍビット幅加減算器１２２に入力される。２ｍビット幅加減算器１２２のエ演算結果Ｙの上位ｍビットＹ［２ｍ−１：ｍ］は、機能ブロック１０の出力ポート１０５ａに出力され、下位ｍビットＹ［ｍ−１：０］は、出力ポート１０６に出力される。ここで、機能ブロック１１のマルチプレクサ１３０を、入力端子１０７から入力されるデータを選択できるよう構成することにより、２ｍビット幅加減算器１２２の演算結果Ｙの下位ｍビットを機能ブロック１１の出力ポート１０５ｂから出力することができる。なお、下位ｍビットＹ［ｍ−１：０］を出力ポート１０５ａから出力し、上位ｍビットＹ［２ｍ−１：ｍ］を出力ポート１０５ｂから出力することとしても構わない。
【００４７】
このような構成によって、機能ブロック１１と接続されたプログラマブル・スイッチ１５ｂを、機能ブロック１０の入力データを選択するためのスイッチとして利用することができ、４入力論理演算を実行する機能ブロック１０に接続したプログラマブル・スイッチ１５ａの入力ポート及び入力選択ユニット１５１の数を増設しなくても、データ入力元の選択自由度を損なうことなく４値演算可能な再構成可能デバイスを実現することができる。
【００４８】
さらに、機能ブロック１０の出力データの一部を他の機能ブロック１１の出力ポート１０５ｂに出力可能な構成とすることにより、機能ブロック１０の出力ポートと接続されるプログラマブル・スイッチ１５の入力ポート数を増加しなくても、ｍビットを超える演算結果を分割して出力することが可能となる。
【００４９】
図７（ａ）は、４入力演算器１１０を有する機能ブロック１０とこれに入力データを与えるプログラマブル・スイッチ１５及び構成情報メモリ１６を示している。図２７に示した従来の再構成可能デバイス７が備える機能ブロック７０を４入力化する場合、入力ポート１０４ａ乃至１０４ｄに対する入力元を選択可能とするために、プログラマブル・スイッチ１５が備える入力選択ユニット１５１の規模は２入力の場合に比べて２倍にする必要があった。これに対して、図７（ａ）の機能ブロック１０は、他の機能ブロック１１に接続されたプログラマブル・スイッチをダイレクト入力ポート１０１ａ及び１０１ｂの入力データの選択のために利用することができる。このため、機能ブロック１０の入力ポートを増やして４入力化しても、２入力の場合と比べてプログラマブル・スイッチ１５及び構成情報メモリ１６の規模を増加する必要がない。
【００５０】
図７（ｂ）は、図７（ａ）と同様の構成を第一従来技術のアレイ型プロセッサに適用した場合のものである。この場合も、機能ブロック１０の入力ポートを増やして４入力化した場合に、プログラマブル・スイッチ１５、命令メモリ８０１及び命令デコーダ８０２の規模を２入力の場合に比べて増加する必要がない。
【００５１】
なお、２入力を超える多入力又はｍビットを超えるデータ幅の演算に機能ブロック１０を使用する場合、他の機能ブロック１１に接続されたプログラマブル・スイッチ１５を機能ブロック１０のダイレクト入力ポート１０１の入力元選択のために使用することになる。このため、機能ブロック１１を演算に使用することができない。しかしながら、もともと２入力演算器で４入力演算を行うためには３つの機能ブロックが必要であったことを考慮すると、機能ブロック１０及び１１の２つの機能ブロックによって４入力演算を行うことができる本実施の形態の構成によって、機能ブロックの使用効率を改善することができる。
【００５２】
また、機能ブロック１０を３入力演算に使用する場合は、機能ブロック１１の１入力のみをダイレクト配線１０３に出力すればよい。このため、機能ブロック１１を、３入力演算を行う機能ブロック１０のダイレクト入力ポート１０１にデータを与えるとともに、１入力演算器として使用することが可能である。
【００５３】
さらに、機能ブロック１０を２入力演算に使用する場合、機能ブロック１０を４入力とするために設けたダイレクト入力ポート１０１、ダイレクト出力ポート１０２、ダイレクト配線１０３は冗長な構成となる。しかしながら、図２７に示したようにプログラマブル・スイッチ１５の規模を増加させる構成と比較すれば、その冗長度は軽微なものである。
【００５４】
本実施の形態では、機能ブロック１０において４入力演算又は２ｍビット加算等の算術演算を行うために入力ポート数を２ポートから４ポートに増加する場合について説明した。しかしながら、本発明は、このような構成に限定されるものではなく、任意の数の入力ポートを有する構成において広く有効なものである。
【００５５】
また、図５及び図６等に示した機能ブロック１０及び１１が備える演算器は一例を示すものであり、再構成可能デバイス１で達成すべき機能に応じて様々な演算器の組合せが考えられる。例えば、可減算器、飽和演算器、比較器、乗算器、除算器、論理演算器、セレクタ、バレルシフタ、ビットマスク回路、ガロア体乗算器等の多入力演算器、又はこれらの組合せからなる演算器、さらにはこれらと他の演算器の組合せからなる演算器等である。
【００５６】
発明の実施の形態２．
図８は、本実施の形態にかかる再構成可能デバイス２が備える機能ブロック２０の構成を示している。実施の形態１で説明した再構成可能デバイス１は、ダイレクト入力ポート１０１を有し多入力演算を行う機能ブロック１０と、機能ブロック１０のダイレクト入力ポート１０１にデータを出力するダイレクト出力ポート１０２を有する機能ブロック１１とを備えていた。これに対して、本実施の形態の再構成可能デバイス２が備える機能ブロック２０は、ダイレクト入力ポート１０１及びダイレクト出力ポート１０２の双方を有している点が特徴である。なお、機能ブロック２０が有する構成要素は、上述した機能ブロック１０又は１１が有している構成要素と同様であるため、同一の符号を付して詳細説明を省略する。
【００５７】
次に、図９は、複数の機能ブロック２０の間を接続した再構成可能デバイス２の構成を示している。機能ブロック２０ａを４入力演算に使用する場合、４入力演算部１１０ａに対する入力データの一部は、他の機能ブロック２０ｂのダイレクト出力ポート１０２ａ及び１０２ｂから出力されてダイレクト入力ポート１０１ａ及び１０１ｂに入力されるデータによって与えられる。このような構成によって、発明の実施の形態１の再構成可能デバイス１と同様に、ダイレクト入力ポート１０１ａ及び１０１ｂに入力されるデータの入力元の選択を機能ブロック２０ｂに接続されたプログラマブル・スイッチ１５ｂによって行うことができる。
【００５８】
また、図１０は、機能ブロック２０ａが有する４入力論理演算器１２０を用いて、機能ブロック２０ａの入力ポート１０４ａ及び１０４ｂ並びに機能ブロック２０ｂの入力ポート１０４ｃ及び１０４ｄに入力されるｍビットデータＡ乃至Ｄの排他的論理和の演算を行う構成を示している。さらに、図１１は、機能ブロック２０ａが有する２ｍビット幅加減算器１２２を用いて２ｍビット加算処理を行う構成を示している。これらの構成は、発明の実施の形態１において図５及び図６を用いて説明した構成に対応している。本実施の形態の機能ブロック２０の間をダイレクト配線１０３で接続することによって、発明の実施の形態１の機能ブロック１０及び１１の間をダイレクト配線１０３によって接続して行ったのと同等の演算処理を実現することができ、プログラマブル・スイッチ１５、構成情報メモリ１６の規模の増加を抑制することができる。
【００５９】
なお、発明の実施の形態１の再構成可能デバイス１は、ダイレクト入力ポート１０１を有する機能ブロック１０とダイレクト出力ポート１０２を有する機能ブロック１１を組み合わせて、多入力演算又は多ビット幅演算を行う必要があった。これに対して、本実施の形態にかかる再構成可能デバイス２は、１の機能ブロック２０がダイレクト入力ポート１０１及びダイレクト出力ポート１０２を有しているため、再構成可能デバイス１に比べて多入力演算又は多ビット幅演算を行う場合の機能ブロックの組合せの自由度が高い。
【００６０】
発明の実施の形態３．
図１２は、本実施の形態にかかる再構成可能デバイス３が備える機能ブロック３０の構成を示している。機能ブロック３０は、３入力演算部１１２を備えている。なお、上述した発明の実施の形態１の再構成可能デバイス１又は実施の形態２の再構成可能デバイス２が有する構成要素と同一の構成要素は、同一の符号を付して詳細な説明を省略することとする。
【００６１】
３入力演算部１１２は、３入力演算器又は３入力演算器及び２入力演算器の組合せからなるものである。機能ブロック３０は、入力ポート１０４ａ及び１０４ｂ並びにダイレクト入力ポート１０１から入力されたデータに対して、構成情報メモリ１６の内容に応じた演算処理を行う。
【００６２】
３入力演算部１１２の構成例を図１３に示す。図１３の３入力演算部１１２は、ｍビット幅データを入力して論理演算を行う３入力論理演算器１２４、３つのｍビット幅データを入力可能な３入力セレクタ１２５、ｍビット幅加減算器１２６及びｍビット幅比較器１２７を有している。マルチプレクサ１３０は、これらの演算器１２４乃至１２７のいずれかの出力を出力するものである。マルチプレクサ１３０の出力データは、出力ポート１１２１及び１１２２に出力される。
【００６３】
図１２に戻り、機能ブロック３０は、プログラマブル・スイッチ１５と接続される入力ポート１０４ａ及び１０４ｂ、他の機能ブロックのダイレクト出力ポートと接続されるダイレクト入力ポート１０１を有している。これら３つの入力ポート１０４ａ、１０４ｂ及び１０１は、３入力演算部１１２の入力ポートに接続されている。
【００６４】
また、３入力演算器１１２の演算結果を出力する出力ポート１１２１と機能ブロック３０の出力ポート１０５が接続されている。当該出力ポート１０５は、プログラマブル・スイッチに接続される。さらに、機能ブロック３０は、他の機能ブロックとプログラマブル・スイッチを介さずに接続されるダイレクト出力ポート１０２を有している。ダイレクト出力ポート１０２は、３入力演算部１１２の出力ポート１１２２と接続されている。
【００６５】
次に、図１４は、複数の機能ブロック３０の間を接続した再構成可能デバイス３の構成を示している。機能ブロック３０ａを３入力演算に使用する場合、３入力演算部１１２ａに対する入力データの一部は、他の機能ブロック３０ｂのダイレクト出力ポート１０２ｂから出力されてダイレクト入力ポート１０１ａに入力されるデータによって与えられる。
【００６６】
図１６は、本実施の形態にかかる再構成可能デバイス３において４入力演算を実現する構成を示したものである。図１６の構成によって、機能ブロック３０ａの入力ポート１０４ａ及び１０４ｂ並びに機能ブロック３０ｂの入力ポート１０４ｃ及び１０４ｄに入力されるｍビットデータＡ乃至Ｄの排他的論理和の演算を行った結果を、機能ブロック３０ａの出力ポート１０５ａに出力することができる。以下に詳しく説明する。
【００６７】
まず、機能ブロック３０ｂの３入力演算部１１２ｂにおいて、入力ポート１０４ｃ及び１０４ｄに入力されるｍビットデータＣ及びＤの排他的論理和（Ｃ＾Ｄ）が演算される。３入力演算部１１２ｂは、２入力排他的論理和の演算を実現するよう構成されている。演算結果がダイレクト出力ポート１０２ｂに出力される。
【００６８】
機能ブロック３０ａでは、入力ポート１０４ａ及び１０４ｂから入力されるｍビットデータＡ及びＢが、３入力演算部１１２ａに入力される。さらに、ダイレクト入力ポート１０１ａから入力されるデータＣとＤの排他的論理和（Ｃ＾Ｄ）が、３入力演算部１１２ａに入力される。３入力演算部１１２ａは、入力された３つの値の排他的論理和を演算し、演算結果を出力ポート１０５ａに出力する。これにより、出力ポート１０５ａには、２つの機能ブロック３０ａ及び３０ｂに入力された４つのデータＡ乃至Ｄに対する排他的論理和の演算結果が出力されることとなる。
【００６９】
このように、本実施の形態にかかる再構成可能デバイス３によっても、上述した再構成可能デバイス１及び２と同様に、４入力演算を２つの機能ブロックを用いて実現することができる。なお、図１６において、４つのデータＡ乃至Ｄの入力元は、プログラマブル・スイッチ１５ａ及び１５ｂが有する入力選択ユニット１５１ａ乃至１５１ｄによって自由に選択可能である。このため、機能ブロック３０の入力ポートを３入力としても、２入力の場合と比べてプログラマブル・スイッチ１５及び構成情報メモリ１６の規模を増加する必要がない。
【００７０】
さらに、上述した再構成可能デバイス１及び２では、４入力演算を行うために、機能ブロック内の演算部を４入力化しているのに対し、本実施の形態の再構成可能デバイス３の機能ブロック３０の演算部１１２は３入力化でよい。このため、再構成可能デバイス３は、再構成可能デバイス１及び２に比べて、さらに回路規模あるいは回路面積を削減することができる。
【００７１】
また、再構成可能デバイス３は、機能ブロック間のダイレクト配線１０３の数が、再構成可能デバイス１及び２に比べて少ない。データビット幅が大きくなると配線リソースが大きくなり、また、機能ブロック間の距離が大きくなるとデータ中継に必要なバッファが無視できなくなることから、ダイレクト配線１０３の数が少ない再構成可能デバイス３は有利である。
【００７２】
図１７は、本実施の形態にかかる再構成可能デバイス３において６入力演算、具体的には６つの入力データＡ乃至Ｆの排他的論理和の演算を実現する構成を示したものである。まず６つの入力データＡ乃至ＦのうちＥ及びＦの２つは、機能ブロック３０ｃに入力され、３入力演算部１１２３において排他的論理和の演算を行った結果がダイレクト出力ポート１０２ｃから出力される。
【００７３】
機能ブロック３０ｂは、３入力演算部１１２ｂにおいて、入力ポート１０４ｃ及び１０４ｄに入力されるデータＣ及びＤと、ダイレクト入力ポート１０１ｂに入力されるデータＥ及びＦの排他的論理和の演算結果の３値に対する排他的論理和を演算する。当該演算の結果は、ダイレクト出力ポート１０２ｂに出力される。
【００７４】
さらに、機能ブロック３０ａは、３入力演算部１１２ａにおいて、入力ポート１０４ａ及び１０４ｂに入力されるデータＡ及びＢと、ダイレクト入力ポート１０１ａに入力されるデータＣ乃至Ｆの排他的論理和の演算結果の３値に対する排他的論理和を演算する。当該演算の結果は、出力ポート１０５ａに出力される。これにより、出力ポート１０５ａには、３つの機能ブロック３０ａ乃至３０ｃに入力された６つのデータＡ乃至Ｆに対する排他的論理和の演算結果が出力されることとなる。なお、６つのデータＡ乃至Ｆの入力元は、プログラマブル・スイッチ１５ａ乃至１５ｃの入力選択ユニット１５１ａ乃至１５１ｆによって自由に選択可能である。
【００７５】
このように、本実施の形態にかかる再構成可能デバイス３は、機能ブロック３０の間をダイレクト配線１０３で接続していくことによって、４入力を超える多入力の演算に拡張していくことが可能である。
【００７６】
なお、図１３に示した機能ブロック３０の構成は一例である。例えば、図１５に示すように、機能ブロック３０のダイレクト出力ポート１０２と接続される出力ポート１１２２に、マルチプレクサ１３０の出力ではなく、演算器１２４乃至１２７のいずれかの出力（図１５では３入力セレクタ１２５の出力）を接続することも可能である。このような構成では、出力ポート１１２２と接続された特定の演算器の演算結果のみ、機能ブロック３０のダイレクト出力ポート１０２に出力可能である。しかしながら、マルチプレクサ１３０を介さないため、配線による信号遅延を低減することが可能である。このため、特定の多入力演算において特に高速に演算を行いたい場合に、図１５のような構成が有利となる。
【００７７】
発明の実施の形態４．
図１８は、本実施の形態にかかる再構成可能デバイス４が備える機能ブロック４０の構成を示している。機能ブロック４０は、入力されたデータを保持可能な記憶回路であるレジスタ・ファイル１４０を有している。なお、上述した再構成可能デバイス１が有する構成要素と同一の構成要素は、同一の符号を付して詳細な説明を省略することとする。
【００７８】
機能ブロック４０が有するレジスタ・ファイル１４０へのライトデータは、通常は入力ポート１０４ａから入力される。また、レジスタ・ファイル１４０の読み出し／書き込みアドレスの入力及びイネーブル制御は、通常は構成情報メモリ１６によって行われる。しかし、マルチプレクサ１３２を切り替えることによって、ダイレクト入力ポート１０１から入力される信号によって読み出し/書き込みアドレスを入力することやイネーブル制御を行うことも可能である。
【００７９】
また、図１９に示すように、レジスタ・ファイル１４０の入力ポートに接続されているプログラマブル・スイッチ１５ａの入力選択ユニット１５１ａに対する制御線に、ダイレクト入力ポート１０１から入力される信号を接続してもよい。この場合、例えば、入力選択ユニット１５１ａに対する制御線に値"０"を入力すると、入力選択ユニット１５１ａの出力値をゼロとするリセット処理ができる場合には、ダイレクト入力ポート１０１から入力選択ユニット１５１ａの制御線に値"０"を入力すれば、入力選択ユニット１５１ａの出力値を強制的にリセットすることができる。
【００８０】
なお、図２０の構成によっても、ダイレクト入力ポート１０１からの入力信号を用いてレジスタ・ファイル１４０のデータ入力値をゼロとするリセット処理を実行できる。具体的には、レジスタ・ファイルのデータ入力側にＡＮＤゲート１４１を設け、入力ポート１０４ａからの入力データ及びダイレクト入力ポート１０１からの入力データをＡＮＤゲート１４１に入力し、その出力値をレジスタ・ファイル１４０に入力している。しかしながら、図２０の構成では、レジスタ・ファイル１４０のデータ入力に値を入力するまでのセットアップ遅延がＡＮＤゲート１４１の分だけ増加するため、図１９に示した構成によってリセット処理を行うことが望ましい。
【００８１】
このような構成によって、機能ブロックの一種としてレジスタ・ファイルを有する再構成デバイスにおいて、レジスタ・ファイルのアドレス指定、イネーブル制御、リセット制御を行う際に、ダイレクト入力ポート１０１からの入力信号を利用することが可能になる。
【００８２】
一例として、本実施の形態にかかる再構成可能デバイス４において、カウンタ回路を構成した場合を図２１に示す。このカウンタ回路は、１クロック・サイクル毎にインクリメントし、所定の値になったらゼロに戻るものである。
【００８３】
機能ブロック１１ａに対する２つの入力データのうち、入力ポート１０４ｃへの入力データはダイレクト出力ポート１０２ａに出力し、もう一方の入力ポート１０４ｄへの入力データは２入力演算部１１０ａに入力している。機能ブロック１１ａではインクリメント処理を実行しているため、演算部１１０ａへの入力は１つでよい。このため、２つの入力ポートのうちの一方（入力ポート１０４ｃ）を、他の機能ブロックにデータを供給する用途に使用しても問題はない。
【００８４】
機能ブロック１１ｂは、機能ブロック１１ａによるインクリメント値と、所定の最大値とを入力する。演算部１１０ｂにおいて２つの入力値を比較して両者が一致すると、演算部１１０ｂはリセット信号を出力する。機能ブロック１１ｂの出力ポート１０５ｃから出力されたリセット信号は、機能ブロック１１ａの入力ポート１０４ｃに接続されている入力選択ユニット１５１ｃに入力される。そして、当該リセット信号は、ダイレクト出力ポート１０２ａ及びダイレクト入力ポート１０１を経由して機能ブロック４０に到達する。図１９を用いて説明したように、機能ブロック４０に到達したリセット信号は、入力選択ユニット１５１ａに対する制御線に供給され、入力選択ユニット１５１ａの出力値を強制的にリセットし、これと接続されるレジスタ・ファイル１４０の値をゼロにリセットすることができる。
【００８５】
上述したダイレクト入力ポート１０１からの入力信号を利用したレジスタ・ファイル１４０のリセット処理を行わず、さらに、機能ブロックへの入力ポートの追加も行わずに図２１と同等のカウンタ回路を構成するためには、機能ブロック１１ｂと機能ブロック４０の間に追加の機能ブロックが必要となる。具体的には、機能ブロック１１ｂが出力するリセット信号に応じて"０"を選択するセレクタとして動作する機能ブロックである。本実施の形態では、この追加の機能ブロックが不要であること、レジスタ・ファイル間の機能ブロックの段数を削減できることから、再構成可能デバイス４にマッピングしたカウンタ回路の動作速度を向上させることができる。
【００８６】
アプリケーション・プログラムによっては、条件によってイネーブルやリセットの制御、またはアドレスの制御を行いたい場合もある。従来の再構成可能デバイスの場合、レジスタ・ファイルに入力ポートを増やすことは、機能ブロックの入力ポートを増やすことになり、結果的に、プログラマブル・スイッチ１５の入力選択ユニット１５１の増加、構成情報メモリ１６に格納する構成情報の増加などを招くことになる。これに対して、本実施の形態の再構成可能デバイス４では、機能ブロック間を接続するダイレクト配線を用いてレジスタ・ファイルのイネーブルやリセットの制御、アドレス制御等を行うことができるため、機能ブロックの入力ポート数が増えてもプログラマブル・スイッチ１５や構成情報メモリ１６の規模を増加する必要がない。
【００８７】
上述した実施の形態１乃至４では、再構成可能デバイスにおいて４入力演算を実現する場合を主として説明した。しかしながら、本発明の適用先は、このような構成に限られない。本発明は、機能ブロックに対し、プログラマブル・スイッチと接続される入出力ポートに加えて、機能ブロック間を直接接続するための入力ポート若しくは出力ポート又はこれら両方を設けることとし、機能ブロック間をダイレクト配線によって接続するものである。これにより、機能ブロック間の配線の自由度、つまり機能ブロックにマッピングする回路の自由度を維持しつつ、再構成可能デバイスの面積増大を抑制するものである。このため本発明は、上述した実施の形態に限らず、機能ブロック間の接続関係をプログラマブル・スイッチによって決定する構成を有する半導体集積回路広く適用可能なものである。
【符号の説明】
【００８８】
１、２、３、４  再構成可能デバイス
１０、１１、２０、３０、４０、４１、４２  機能ブロック
１２  プロセッサ・エレメント（ＰＥ）
１３  ＡＬＵ
１４  ＤＭＵ
１５  プログラマブル・スイッチ（ＰＳＷ）
１６  構成情報メモリ（ＣＦＧＭ）
１０１  ダイレクト入力ポート
１０２  ダイレクト出力ポート
１０３  ダイレクト配線
１０４、１０７  入力ポート
１０５、１０６  出力ポート
１１０  ４入力演算部
１１１  ２入力演算部
１１２  ３入力演算部
１１３  ４入力ＡＬＵ演算部
１１４  ２入力ＤＭＵ演算部
１２０  ４入力論理演算器
１２１  ４入力セレクタ
１２２  ２ｍビット幅加減算器
１２３  ２ｍビット幅比較器
１２４  ３入力論理演算器
１２５  ３入力セレクタ
１２６  ｍビット幅加減算器
１２７  ｍビット幅比較器
１２８  ２入力論理演算器
１２９  ２入力セレクタ
１３０、１３１、１３２  マルチプレクサ
１４０  レジスタ・ファイル
１４１  ＡＮＤゲート
１５１  入力選択ユニット
【図１】
2011129141.tif 000003
【図２】
2011129141.tif 000004
【図３】
2011129141.tif 000005
【図４】
2011129141.tif 000006
【図５】
2011129141.tif 000007
【図６】
2011129141.tif 000008
【図７】
2011129141.tif 000009
【図８】
2011129141.tif 000010
【図９】
2011129141.tif 000011
【図１０】
2011129141.tif 000012
【図１１】
2011129141.tif 000013
【図１２】
2011129141.tif 000014
【図１３】
2011129141.tif 000015
【図１４】
2011129141.tif 000016
【図１５】
2011129141.tif 000017
【図１６】
2011129141.tif 000018
【図１７】
2011129141.tif 000019
【図１８】
2011129141.tif 000020
【図１９】
2011129141.tif 000021
【図２０】
2011129141.tif 000022
【図２１】
2011129141.tif 000023
【図２２】
2011129141.tif 000024
【図２３】
2011129141.tif 000025
【図２４】
2011129141.tif 000026
【図２５】
2011129141.tif 000027
【図２６】
2011129141.tif 000028
【図２７】
2011129141.tif 000029
【図２８】
2011129141.tif 000030