(57)【要約】【課題】コンテキストの切り換え内容に応じた最適なクラスタ間のデータ送信を実現する。【解決手段】リコンフィグ回路１００は、再構成可能なＰＥ（プロセッシングエレメント）の集合からなるクラスタ１１０を複数備え、ＰＥの処理内容とＰＥ間の接続内容が記述されたコンテキストに応じて、クラスタ１１０の構成を動的に切り換え可能である。そして、各クラスタ１１０は、コンテキストの切り換え指示を受け付けると、当該切り換え指示をあらわす報知信号であるインヒビット信号を生成するインヒビット信号生成回路３４０と、クラスタ１１０から他のクラスタ１１０へ送信する出力データに生成された報知信号を付加するインヒビット信号付加回路３５０と、他のクラスタ１１０によって生成された報知信号が付加された出力データが送信されてきた場合に、この出力データのクリア処理をおこなう入力データクリア回路３６０とを備えている。【選択図】図３
2010003058.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能なプロセッシングエレメント（以下、「ＰＥ」という）の集合からなるクラスタを複数備え、前記ＰＥの処理内容と前記ＰＥ間の接続内容が記述されたコンテキストに応じて前記クラスタの構成を動的に切り換え可能な動的再構成回路であって、
前記各クラスタは、
前記コンテキストの切り換え指示を受け付けると、当該切り換え指示をあらわす報知信号を生成する信号生成回路と、
当該クラスタから他のクラスタへ送信する出力データに前記信号生成回路によって生成された報知信号を付加する信号付加回路と、
前記他のクラスタによって生成された報知信号が付加された出力データが送信されてきた場合に、当該出力データのクリア処理をおこなうデータクリア回路と、
を備えることを特徴とする動的再構成回路。
【請求項２】
前記各クラスタは、
前記データクリア回路の前段に、前記他のクラスタから送信された出力データの受信を制御するスイッチ回路を備え、
前記スイッチ回路は、前記他のクラスタから送信された出力データが当該クラスタ宛である場合は、当該出力データを前記データクリア回路に出力し、当該クラスタ宛でない場合は、当該出力データを前記他のクラスタ以外の隣接するクラスタに転送することを特徴とする請求項１に記載の動的再構成回路。
【請求項３】
前記信号生成回路は、前記コンテキストの切り換え指示が入力されている間、前記報知信号の生成を継続することを特徴とする請求項１または２に記載の動的再構成回路。
【請求項４】
前記信号生成回路は、前記コンテキストの切り換え指示によって指定されたコンテキストの設定に応じた期間、前記報知信号の生成を継続することを特徴とする請求項１または２に記載の動的再構成回路。
【請求項５】
前記データクリア回路は、前記コンテキストの切り換え指示によって指定されたコンテキストの設定に応じて、前記クリア処理を無効にすることを特徴とする請求項１〜４のいずれか一つに記載の動的再構成回路。
【請求項６】
前記各クラスタは、
前記報知信号を出力する専用ポートを備え、
前記記号付加回路は、前記クラスタから他のクラスタへ送信する出力データの出力に併せて前記信号生成回路によって生成された報知信号を前記専用ポートに出力し、
前記データクリア回路は、前記他のクラスタからの出力データとともに、前記専用ポートから前記他のクラスタによって生成された報知信号が送信されてきた場合に、当該出力データのクリア処理をおこなうことを特徴とする請求項２〜５のいずれか一つに記載の動的再構成回路。
【請求項７】
前記スイッチ回路は、前記他のクラスタから送信された出力データが他のクラスタ宛であり、なおかつ、前記出力データとともに、前記専用ポートから報知信号が送信されてきた場合、当該報知信号の末尾に任意の長さの報知信号を追加可能であることを特徴とする請求項６に記載の動的再構成回路。
【請求項８】
再構成可能なプロセッシングエレメント（以下、「ＰＥ」という）の集合からなるクラスタを複数備え、前記ＰＥの処理内容と前記ＰＥ間の接続内容が記述されたコンテキストに応じて前記クラスタの処理内容を動的に切り換える動的再構成回路において前記クラスタ間のデータ送信を制御するデータ送信制御方法であって、
前記複数のクラスタのうち一のクラスタは、
前記コンテキストの切り換え指示を受け付けると、当該切り換え指示をあらわす報知信号を生成する信号生成工程と、
当該クラスタからの出力データに前記信号生成工程によって生成された報知信号を付加する信号付加工程と、を含み、
前記一のクラスタ以外の他のクラスタは、
前記一のクラスタから前記報知信号が付加された出力データが送信されてきた場合に、当該出力データのクリア処理をおこなうデータクリア工程と、
を含むことを特徴とするデータ送信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、再構成可能なプロセッシングエレメント（以下、「ＰＥ」という）の集合からなるクラスタを複数備え、当該クラスタはＰＥの処理内容とＰＥ間の接続内容が記述されたコンテキストに応じて動的に処理内容を切り替え可能な動的再構成回路と、動的再構成回路によるデータ送信制御方法とに関する。
【背景技術】
【０００２】
従来より、動的再構成回路（ダイナミックリコンフィギャラブル回路：以下、単に「リコンフィグ回路」とよぶ）は、動作中にリコンフィグ回路内部のＰＥへの命令内容やＰＥ間の接続を変更する機能を備えている。そして、一般的に、リコンフィグ回路内部のＰＥへの命令内容やＰＥ間の接続をあらわす情報をコンテキストとよぶ。そして、あらたなコンテキストを読み込んで構成内容を変更することをコンテキスト切り替えという。
【０００３】
リコンフィグ回路は、コンテキストを切り替えることによって、ＰＥを時間軸方向に分割して共用することができるため、リコンフィグ回路全体のハードウェア規模を削減することができる。また、リコンフィグ回路は、複数のクラスタから構成されているものもある（たとえば、下記特許文献１参照。）。このようなクラスタ型のリコンフィグ回路の場合、クラスタ単位にコンテキスト切り替えの制御をおこなうことができる。
【０００４】
図１７は、従来のクラスタの内部構成を示す回路図である。クラスタ１１０の内部には、シーケンサ３１０、コンフィグレーションメモリ３２０、ＰＥアレイ３３０と、クロスバースイッチ１１１が搭載されている。シーケンサ３１０はステートマシンとして、コンフィグレーションメモリ３２０に格納されているコンテキストの切り替えを制御する。ＰＥアレイ３３０は、シーケンサ３１０の制御によってコンフィグレーションメモリ３２０から読み出されたコンフィグレーションデータに応じてＰＥの演算内容や接続を変更することができる。
【０００５】
また、リコンフィグ回路へのアプリケーションの実装にはＣ言語によって記述されたソースコードを、リコンフィグ回路用のコンパイラによってコンパイルして使用することが一般的である。このとき、Ｃ言語で記述された処理のうち、特に時間を要する制御として、ループ制御が挙げられる。そこで、リコンフィグ回路では、ループ制御をパイプライン演算することで、その処理時間を短縮できるような構成を備えている。具体的には、リコンフィグ回路にカウンタを配置し、このカウンタからの出力を起点として、ループ制御を含んだ演算の制御をおこなうことができる。
【０００６】
また、図１７にて説明したクラスタ１１０同士は、それぞれクロスバースイッチ１１１によってマトリックスに接続されている。また、図１８は、従来のクラスタ間のデータ転送例を示す説明図である。ここで、図１８を用いて複数のクラスタ１１０間の接続について説明する。リコンフィグ回路１００は、複数のクラスタ１１０を、クロスバースイッチ１１１を経由してマトリックス状に接続している。このように、クロスバースイッチ１１１を用いることによって、クラスタ数を調整し、リコンフィグ回路１００の演算器（ＰＥ）の搭載個数をカスタマイズすることができる。そして、クラスタ１１０同士は、クロスバースイッチ１１１を経由してデータを転送することができる。このとき、クラスタ間を接続する配線には、不図示のＤフリップフロップ（ＤＦＦ）が配置されている。ＤＦＦを配置することによって、ＬＳＩの動作速度によってクラスタ１１０間のデータ転送のタイミング制約を満たせないような事態を防ぐことができる。
【０００７】
このように、クラスタ型のリコンフィグ回路１００は、クラスタ１１０の数や、クラスタ１１０間の配線におけるポート数およびポートのｂｉｔ幅については、実装するアプリケーションおよびＬＳＩの回路面積により、自由に変更可能である。図１８の場合、クラスタ数は、４クラスタ構成の例（クラスタ−０，１，２，３）である。したがって、ＰＥの個数を増やしたい場合はクラスタ−ｅｘ０，ｅｘ１，ｅｘ２，ｅｘ３のように行方向、列方向にそれぞれクラスタを配置して拡張することができる。
【０００８】
また、クラスタ１１０間の配線におけるポート数およびポートのｂｉｔ幅は、クラスタ１１０内の演算器のアーキテクチャに依存する（一般的には、８ｂｉｔ、１６ｂｉｔ、３２ｂｉｔのいずれかが採用されることが多い）。ポート数を増やすことによってクラスタ１１０間で転送可能なデータの種類を増やすことができる。
【０００９】
【特許文献１】特開２００６−１８５１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述したような従来のクラスタ型のリコンフィグ回路１００では、コンテキスト切り換えをまたいだ処理（たとえば、コンテキストＡ→コンテキストＢへの切り換えを含むような一連の処理）において、クラスタ１１０間のデータ送信に不具合が生じる場合があった。
【００１１】
コンテキスト切り換えは、クラスタ１１０内のシーケンサ３１０で遷移先が先読みできる場合、待機サイクルなしで切り換え可能となる。ところが、異なるクラスタ１１０間でデータ送信をおこなう場合、データ送信元のクラスタ１１０はデータ送信先のクラスタ１１０の状態を把握できない。したがって、コンテキストが切り換えられたために、データ送信元のクラスタ１１０からデータ送信先のクラスタ１１０にとって不要なデータを送ってしまい、誤動作を起こしてしまう可能性があった。
【００１２】
ここでは一例として、図１８のような、マトリックス状に接続したクラスタ１１０群において、クラスタ−０からクラスタ−２とクラスタ−３とにＡ，Ｂの２系統のデータを転送する場合を仮定して説明する。ここで、図１９は、クラスタごとのコンテキスト切り替えシーケンスを示す説明図である。
【００１３】
図１８にて説明した各クラスタ１１０（クラスタ−０，１，２，３）は、内部のシーケンサ３１０（図１７参照）の制御により、所定の時間（ｔｉｍｅ：ｎ）のタイミングでコンテキスト−０からコンテキスト−１への切り換えがおこなわれる（図１９参照）。なお、図１９に示したクラスタごとの「コンテキスト数字−数字」の表記は、コンテキスト［コンテキスト番号］−［クラスタ番号］を意味する。また、コンテキスト切り換えの際は、待機サイクルなしで、次のコンテキストに遷移することができる。
【００１４】
ここで、図１９のように、コンテキスト切り換えをまたいでクラスタ１１０間のデータ転送処理をおこなう場合、上述したクラスタ１１０間の配線に配置されたＤＦＦが原因となって、リコンフィグ回路１００が誤動作を起こす場合がある。図２０は、クラスタ間のデータ転送動作を示すタイミングチャートである。図２０のタイミングチャートに示すように、クラスタ−２，３、はコンテキスト−１−［２，３］を実行中に、クラスタ−０がコンテキスト−０−０で出力したデータを受け取る（＊の部分）。この受け取ったデータは、コンテキスト切り換え間においてクラスタ１００間のＤＦＦに保持されていたデータである。
【００１５】
図２０のように、クラスタ−０からの出力データのうち、Ａ−０〜Ａ−５およびＢ−０〜Ｂ−５がコンテキスト０の処理によって生成され、Ａ−６〜Ａ−１０およびＢ−６〜Ｂ−１０がコンテキスト１によって生成される。ここで、クラスタ−２，３が、一つ前のコンテキストであるコンテキスト０によって生成された出力データを入力データ（図２０の＊がついたデータ群）として、継続して使用するのであれば、ＤＦＦに保持されていたデータを受け取ったとしても、問題は発生しない。
【００１６】
ところが、現在設定されているコンテキスト１によって利用する入力データとして、コンテキスト０の出力データを使用しない場合には、クラスタ１１０間のＦＦに保持された一つ前のコンテキスト０のデータを利用すると異なる演算値が出力されたり、誤動作を起こしてしまうことがあった。このような事態を解決するには、コンテキスト切り換え間に空のデータを意図的に流すサイクルを追加しなければならない。結果として、コンテキスト切り換え間に無駄な待ち時間が発生してしまい、リコンフィグ回路の性能低下を引き起こしてしまうという問題があった。
【００１７】
この発明は、上述した従来技術による問題点を解消するため、コンテキストの切り換え内容に応じた最適なクラスタ間のデータ送信を実現することのできる動的再構成回路およびデータ送信制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上述した課題を解決し、目的を達成するため、この動的再構成回路は、再構成可能なプロセッシングエレメント（以下、「ＰＥ」という）の集合からなるクラスタを複数備え、前記ＰＥの処理内容と前記ＰＥ間の接続内容が記述されたコンテキストに応じて前記クラスタの構成を動的に切り換え可能な動的再構成回路であって、前記各クラスタは、前記コンテキストの切り換え指示を受け付けると、当該切り換え指示をあらわす報知信号を生成する信号生成回路と、当該クラスタから他のクラスタへ送信する出力データに前記信号生成回路によって生成された報知信号を付加する信号付加回路と、前記他のクラスタによって生成された報知信号が付加された出力データが送信されてきた場合に、当該出力データのクリア処理をおこなうデータクリア回路とを備えることを要件とする。
【００１９】
また、上述した課題を解決し、目的を達成するため、このデータ送信制御方法は、再構成可能なプロセッシングエレメント（以下、「ＰＥ」という）の集合からなるクラスタを複数備え、前記ＰＥの処理内容と前記ＰＥ間の接続内容が記述されたコンテキストに応じて前記クラスタの処理内容を動的に切り換える動的再構成回路において前記クラスタ間のデータ送信を制御するデータ送信制御方法であって、前記複数のクラスタのうち一のクラスタは、前記コンテキストの切り換え指示を受け付けると、当該切り換え指示をあらわす報知信号を生成する信号生成工程と、当該クラスタからの出力データに前記信号生成工程によって生成された報知信号を付加する信号付加工程と、を含み、前記一のクラスタ以外の他のクラスタは、前記一のクラスタから前記報知信号が付加された出力データが送信されてきた場合に、当該出力データのクリア処理をおこなうデータクリア工程と、を含むことを要件とする。
【００２０】
この動的再構成回路およびデータ送信制御方法によれば、コンテキストの切り換えをまたいだ処理の間に出力された出力データに対して報知信号を付加することができる。出力データの送信先となるクラスタは、報知信号の有無によって受信したデータがコンテキストの切り替え前の出力データであるか否かを判断することができるため、コンテキスト切り換えを待たずに次のコンテキストの処理に移行できる。
【発明の効果】
【００２１】
この動的再構成回路およびデータ送信制御方法によれば、コンテキストの切り換え内容に応じた最適なクラスタ間のデータ送信を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この動的再構成回路およびデータ送信制御方法の好適な実施の形態を詳細に説明する。この動的再構成回路およびデータ送信制御方法では、クラスタ間を伝送するデータに、コンテキストの切り換え間のデータであることをあらわす報知信号（後述するインヒビット信号）を付加することによって、クラスタ間の最適なデータフローを実現する。
【００２３】
［本実施の形態にかかるリコンフィグ回路の概要］
まず、本実施の形態にかかるリコンフィグ回路（動的再構成回路）の概要について説明する。図１は、本実施の形態にかかるリコンフィグ回路の内部のクラスタの接続を示す説明図である。図１のように、リコンフィグ回路１００は、クロスバースイッチ１１１によってマトリックスに接続された複数のクラスタ１１０によって構成されている。
【００２４】
クラスタ１１０同士を接続する回線には、各クラスタ１１０によって生成されたデータを出力データとして、特定のクラスタ１１０へ送信するための複数のポート（たとえば、ｐｏｒｔ０〜ｐｏｒｔ（ｘ））が用意されている。また、本実施の形態の場合、上述したような通常のポートに加えて、本実施の形態の独自構成として、インヒビット信号を送信するための専用ポート（ｉｎｈｉｂｉｔ）を備えている。なお、図１では、簡易的に１回線分の専用ポート（ｉｎｈｉｂｉｔ）を例示しているが、通常は、出力データ用のｐｏｒｔ１〜ｐｏｒｔ（ｘ）のポートと同数用意されている。
【００２５】
そして、本実施の形態では、クラスタ１１０（たとえば、クラスタ−０）からの出力データを他のクラスタ１１０（たとえば、クラスタ−２，３）へ送信する際に、同時にインヒビット信号が上述した専用のポートから出力される。クロスバースイッチ１１１は、他のクラスタ１１０から送信された出力データが自クラスタ１１０宛である場合は、この出力データを受け付け、自クラスタ１１０宛でない場合は、この出力データを送信元であった他のクラスタ１１０の隣接するクラスタに転送する。すなわち、各クラスタは、それぞれ宛先に設定された場合は、出力データを受信し、それ以外であれば、送信先に転送するためにスルーする。そして、出力データを受け付けた場合に、インヒビット信号が付加されているかに応じて、送信先のクラスタ１１０のコンテキストの切り換え状況を判断することができる。
【００２６】
以下に、本実施の形態にかかるリコンフィグ回路が上述のような処理をおこなうための具体的な構成について説明する。
【００２７】
＜リコンフィグ回路の全体構成＞
最初に、図１を用いて本実施の形態にかかるリコンフィグ回路１００の全体構成について説明する。リコンフィグ回路（動的再構成回路）１００は、複数のクラスタ１１０から構成されている。この各クラスタ１１０は、コンテキストに応じてＰＥ命令およびＰＥ間接続を動的に変更可能なＰＥ群によって構成されている（詳細な構成については後述する）。そして、リコンフィグ回路１００は、上位プログラムと連動して指定されたコンテキストに設定されたＰＥ命令およびＰＥ間接続を実行し、ユーザの消耗する動作を実現することができる。
【００２８】
また、上述したようなリコンフィグ回路１００によってユーザが用意したプログラムを実行するには、プログラムをリコンフィグ回路１００の構成に応じてコンパイルしなければならない。したがって、つぎに、リコンフィグ回路１００の実際の使用手順について説明する。なお、ここでは、利用者がＣ言語で記述したプログラムを用意し、リコンフィグ回路１００によって実行させるものとする。当然のことながら、他の高級言語を利用して記述されたプログラムを利用することもできる。そのような場合には、記述された高級言語に対応したコンパイラを用意すればよい。
【００２９】
図２は、リコンフィグ回路の使用手順を示す説明図である。図２のように、まず、リコンフィグ回路用Ｃソースコード２０１を用意する。このリコンフィグ回路用Ｃソースコード２０１は、リコンフィグ回路１００の利用者によって用意されたＣ言語によって記述されたソースコードである。
【００３０】
リコンフィグ回路１００を使用するには、まず、リコンフィグ回路用Ｃソースコード２０１をリコンフィグ回路用コンパイラで翻訳し（ステップＳ２１０）、コンフィグレーションデータ２０２を作成する。リコンフィグ回路用コンパイラは、ここで使用するリコンフィグ回路用のコンパイラであり、リコンフィグ回路のハードウェア構成に対応したコンフィグレーションデータ２０２を生成する。
【００３１】
リコンフィグ回路用コンパイラによるコンパイルが終了すると、続いて、リコンフィグ回路１００の起動要求をおこなう（ステップＳ２２０）。起動要求後、ステップＳ２１０によって生成されたコンフィグレーションデータ２０２がロードされ（ステップＳ２３０）、リコンフィグ回路１００の動作が開始される（ステップＳ２４０）。
【００３２】
このステップＳ２４０の処理の内容を詳しく説明すると、リコンフィグ回路１００の起動によって各クラスタ１１０が起動されると、各クラスタ１１０内部のコンフィグレーションメモリにコンフィグレーションデータ２０２が書き込まれる。そして、各クラスタ１１０のシーケンサによってコンフィグレーションメモリに書き込まれたコンフィグレーションデータ２０２に従ったコンテキスト切り替え処理（２０３）がおこなわれ、コンフィグレーションデータ２０２に応じたコンテキスト切り替えが終了すると、一連のリコンフィグ回路動作を終了する（ステップＳ２５０）。
【００３３】
このように、本実施の形態にかかるリコンフィグ回路１００は、実行させるプログラムに応じてそれぞれ異なるコンテキストが設定されるとともに、処理の流れに応じてこれらコンテキストは動的に切り換えられる。
【００３４】
＜クラスタの構成＞
つぎに、リコンフィグ回路１００の内部に配置された各クラスタ１１０の構成について説明する。図３は、本実施の形態にかかるクラスタの構成を示す回路図である。図３のように、クラスタ１１０は、シーケンサ３１０と、コンフィグレーションメモリ３２０と、ＰＥアレイ３３０とからなる演算処理用の機能部と、クロスバースイッチ１１１と、インヒビット信号生成回路３４０と、インヒビット信号付加回路３５０と、入力データクリア回路３６０とからなるデータ転送用の機能部とから構成されている。以下、演算処理用の機能部と、データ転送用の機能部とについてそれぞれ説明する。
【００３５】
（演算処理用の機能部）
クラスタ１１０の演算処理に関する動作は、上位プログラムからコンテキストの開始指示（信号）がトリガとなって開始される。また、図１にて説明したように、クラスタ１１０には、クロスバースイッチ１１１が備えられ、このクロスバースイッチ１１１を経由して他のクラスタ１１０への外部出力をおこなうとともに、他のクラスタ１１０からの外部入力の受け付けもおこなう。
【００３６】
各構成について具体的に説明すると、まず、シーケンサ３１０は、上位プログラムから開始指示（信号）を受け付けると、コンテキスト切り替え指示と、クラスタ内ＰＥの接続および命令設定の変更をおこなうため、コンフィグレーションメモリ３２０にＰＣ値（プログラムカウンタ値）を出力するとともに、ＰＥアレイ３３０にｃｏｎｔｅｘｔ  ｓｔａｒｔ信号を出力する。ｃｏｎｔｅｘｔ  ｓｔａｒｔ信号を受け取ったＰＥアレイ３３０は、設定されたコンテキストの処理が終了すると、シーケンサ３１０にｐｒｅｄｉｃａｔｅ信号を送信する。ｐｒｅｄｉｃａｔｅ信号とは、ＰＥアレイ３３０内の制御とシーケンサ３１０にコンテキストの切り替え指示をおこなう信号であり、詳細については後述する。そして、シーケンサ３１０は、ｐｒｅｄｉｃａｔｅ信号を受け取ると、つぎのコンテキストを切り替えるため、コンフィグレーションメモリ３２０とＰＥアレイ３３０にそれぞれ上述の出力をおこなう。
【００３７】
コンフィグレーションメモリ３２０には、図２のステップＳ２１０によって作成されたコンフィグレーションデータ２０２が格納されている。コンフィグレーションデータ２０２は、リコンフィグ回路によって実行させるコンテキストによって構成されている。したがって、コンフィグレーションメモリ３２０は、シーケンサ３１０からＰＣ値が入力されると、対応するコンテキストのコンフィグレーションデータ２０２をｃｏｎｆｉｇｕｒａｔｉｏｎ信号として、ＰＥアレイ３３０の各機能部に出力する。また、コンフィグレーションメデータ２０２の中には、今回追加されたデータ転送用の機能部であるインヒビット信号生成回路３４０、インヒビット信号付加回路３５０および入力データクリア回路３６０の動作を制御する信号が含まれている。したがって、これらの機能部３４０〜３６０にもそれぞれコンフィグレーションデータをｃｏｎｆｉｇｕｒａｔｉｏｎ信号として出力している。
【００３８】
なお、コンテキストは、ユーザがＣ言語で記述したプログラムをコンパイルすることによって生成されるため、プログラムの記述内容によってコンテキスト数は異なる。また、コンパイルは、リコンフィグ回路のハードウェア構成に基づいたコンテキストを生成する。したがって、本実施の形態の場合、リコンフィグ回路のクラスタ１１０の構成に基づいたコンテキストが生成される。
【００３９】
ＰＥアレイ３３０は、コンテキストの設定に応じた演算をおこなう機能部であり、信号変換器３３１と、ＰＥ３３２と、ネットワーク回路３３３と、カウンタ３３４とから構成されている。信号変換器３３１は、受信したｃｏｎｔｅｘｔ  ｓｔａｒｔ信号をｐｒｅｄｉｃａｔｅ信号に変換する機能部である。
【００４０】
また、ＰＥ３３２は、演算子でありコンフィグレーションメモリ３２０から入力されたｃｏｎｆｉｇｕｒａｔｉｏｎ信号によって指定された演算をおこなう。ネットワーク回路３３３は、ＰＥアレイ３３０内の信号変換器３３１、ＰＥ３３２およびカウンタ３３４をコンフィグレーションメモリ３２０から入力されたｃｏｎｆｉｇｕｒａｔｉｏｎ信号に応じて接続する。カウンタ３３４は、コンフィグレーションメモリ３２０から入力されたｃｏｎｆｉｇｕｒａｔｉｏｎ信号に応じて指定された動作のカウントをおこなう。
【００４１】
上述したＰＥアレイ３３０の各構成のうち、ＰＥ３３２およびカウンタ３３４は、複数個配置されている。また、ＰＥアレイ３３０内では、ＰＥ３３２における演算結果や、カウンタ３３４の回路出力であるカウント値を伝えるため、ネットワーク回路３３３を介してｄａｔａ信号の送受がおこなわれている。この、ｄａｔａ信号の接続は、ネットワーク回路３３３によって動的に変更可能である。
【００４２】
（ｐｒｅｄｉｃａｔｅ信号について）
つぎに、ＰＥアレイ３３０内の制御とシーケンサ３１０にコンテキストの切り替え指示をおこなうｐｒｅｄｉｃａｔｅ信号について説明する。ｐｒｅｄｉｃａｔｅ信号は、２ｂｉｔの信号であり、ＰＥ３３２内における比較結果、コンテキスト開始・終了を指示するクラスタ内の制御信号である。ｐｒｅｄｉｃａｔｅ信号の接続先も、ネットワーク回路３３３により動的に変更可能である。
【００４３】
このｐｒｅｄｉｃａｔｅ信号は、信号変換器３３１によって、シーケンサ３１０からのコンテキスト開始指示（信号）が２ｂｉｔの信号に変換されたものである。変換されたｐｒｅｄｉｃａｔｅ信号は、ネットワーク回路３３３を介してＰＥ３３２やカウンタ３３４に出力される。このときは、ｐｒｅｄｉｃａｔｅ信号は、具体的には、下記のような意味をあらわす。
【００４４】
・２’ｂ＝「１１」：成立（ｔｒｕｅ）
・２’ｂ＝「１０」：非成立（ｆａｌｓｅ）
・２’ｂ＝「０１」、「００」：無効（ｉｎｖａｌｉｄ）、すなわち意味を持たない。
【００４５】
（データ転送用の機能部）
つぎに、実施の形態にかかるクラスタ１１０のデータ転送用の機能部について説明する。図３のクラスタ１１０の構成のうち、クロスバースイッチ１１１と、インヒビット信号生成回路３４０、インヒビット信号付加回路３５０、入力データクリア回路３６０とは、クラスタ１１０間のデータ転送を適切におこなうためにあらたに追加された機能部である。なお、クロスバースイッチ１１１自体は、図１７に示したように、従来から搭載されていたが、本実施の形態の場合、データ転送を制御するための機能が拡張させた構成になっている。したがって以下に追加された各回路３４０〜３６０とクロスバースイッチ１１１の拡張機能について説明する。
【００４６】
１）インヒビット信号生成回路
まず、インヒビット信号生成回路３４０について説明する。図４は、インヒビット信号生成回路の構成を示す回路図である。インヒビット信号生成回路３４０には、ＰＥアレイ３３０からのｐｒｅｄｉｃａｔｅ信号が入力され、コンフィグレーションメモリ３２０からのコンフィグレーションデータ（ｃｏｎｆｉｇｕｒａｔｉｏｎ）が入力される。そして、インヒビット信号生成回路３４０は、ｐｒｅｄｉｃａｔｅ信号をトリガに、コンフィグレーションデータに設定された所定の期間の間インヒビット信号を生成する機能を実現する。
【００４７】
具体的に説明すると、インヒビット信号生成回路３４０は、図４のように、開始信号生成回路３４１と、３ｂｉｔカウンタ回路３４２と、出力回路３４３とを含んでいる。なお、図４において、ｐｒｅｄｉｃａｔｅ信号と、コンフィグレーションデータとの入力線上の数字は、各信号のｂｉｔ数をあらわしている。
【００４８】
個々の機能について説明すると、開始信号生成回路３４１は、ｐｒｅｄｉｃａｔｅ信号として成立をあらわす「１１」が入力されたタイミングで３ｂｉｔカウンタ回路３４２のカウントを開始させる開始信号を生成する。開始信号生成回路３４１によって生成された開始信号は、３ｂｉｔカウンタ回路３４２に入力される。
【００４９】
つぎに、３ｂｉｔカウンタ回路３４２は、入力されたコンフィグレーションデータに設定された所定の期間の間、開始信号生成回路３４１からの開始信号の入力数をカウントする。なお、３ｂｉｔカウンタ回路３４２は名称の通り３ｂｉｔのメモリを備えているため、「０００」の無カウント状態を除いた１〜８サイクル（「００１〜１１１」）をカウントすることができる。３ｂｉｔカウンタ回路３４２は、カウント動作中には、出力回路３４３にカウント中であることをあらわすフラグを出力する。
【００５０】
そして、出力回路３４３は、３ｂｉｔカウンタ回路３４２からフラグが入力されている期間、インヒビット信号を出力する。出力回路３４３から出力されたインヒビット信号は、後述するインヒビット信号付加回路３５０に出力される。このように出力回路３４３からのインヒビット信号が出力されている期間がそのままインヒビット信号のアサート期間となる。
【００５１】
また、図５は、インヒビット信号生成回路の動作を示すタイムチャートである。図５を用いてインヒビット信号の生成動作の具体的なタイミングについて説明する。なお、不図示であるが、リコンフィグ回路１００の各クラスタには、共通のクロック信号が入力されている。したがって、各機能部の処理は、図５に示したようなクロック信号（ｃｌｏｃｋ）を基準にそれぞれ動作がおこなわれる。
【００５２】
また、図５において、ｐｒｅｄｉｃａｔｅは、開始信号生成回路３４１に入力されているｐｒｅｄｉｃａｔｅ信号の値（２ｂｉｔ値）をあらわし、ｃｏｎｆｉｇｕｒａｔｉｏｎは、３ｂｉｔカウンタ回路３４２に入力されているコンフィグレーションデータの値（３ｂｉｔ値）をあらわしている。また、ｉｎｈｉｂｉｔは、インヒビット信号の生成状態をあらわしている。したがって、ｉｎｈｉｂｉｔがｈｉｇｈ状態を示す期間は、インヒビット信号の生成が継続されていることになる。
【００５３】
インヒビット信号の生成が継続される期間が結果としてインヒビット信号のアサート期間となる。そして、本実施の形態の場合は、コンフィグレーションデータの値があらわす設定値＋１サイクルがインヒビット信号のアサート期間となる。たとえば、図５のタイムチャートでは、ｐｒｅｄｉｃａｔｅ信号の値が最初に「１１」に変化した直後の時刻ｔ１のクロックからインヒビット信号の生成がおこなわれる。このとき、コンフィグレーションデータの値は、「００１」である。したがって、設定値＝１となり、さらに１サイクル追加した計２サイクルの間、インヒビット信号の生成が継続される。
【００５４】
同様に、ｐｒｅｄｉｃａｔｅ信号の値が再度「１１」に変化すると、このときのコンフィグレーションデータの値が「０１１」となるため、設定値＝３となる。したがって、ｐｒｅｄｉｃａｔｅ信号の値が「１１」となった直後の時刻ｔ２からの４サイクルの間インヒビット信号の生成が継続される。
【００５５】
このように、インヒビット信号のアサート期間は、コンフィグレーションデータの設定に応じて変更可能になっている。コンフィグレーションデータの設定に応じて変更可能にすることによって、クラスタ１１０間の接続線上に配置されたＤＦＦの段数が、タイミング制約により変更された場合にもインヒビット信号生成回路３４０の構成を変更せずに、そのまま利用することができる。
【００５６】
また、クラスタ１１０間のＤＦＦに保持されたデータ以外にも、不要なデータが存在した場合に、任意のサイクルで出力データをクリアすることもできる。なお、図４にて説明したように、３ｂｉｔカウンタ回路３４２によるカウントは８カウントが限界である。したがって、ＤＦＦの段数に応じて８カウント以上継続させる場合には、３ｂｉｔ以上のカウンタ回路に拡張することによって対応することができる。
【００５７】
２）インヒビット信号付加回路
つぎに、インヒビット信号付加回路３５０について説明する。図６は、インヒビット信号付加回路の接続を示すブロック図である。インヒビット信号付加回路３５０は、インヒビット信号生成回路３４０からインヒビット信号（ｉｎｈｉｂｉｔ）が入力された場合、このインヒビット信号を指定された出力データ用のデータポートに付加する処理をおこなう。ここで、インヒビット信号を付加するかしないかは、コンフィグレーションデータの設定に依存する。したがって、データポート単位にインヒビット信号を付加するか否かを調整することができる。そのため、コンフィグレーションデータのｂｉｔ数は、少なくともクラスタ出力のポート数分だけ必要となる。本実施の形態では、図１のように（ｘ）個のポートがあるため、ｘｂｉｔとして説明する。
【００５８】
また、図７は、インヒビット信号付加回路の動作を示すタイムチャートである。図７は、図３にて説明したクラスタ１１０の機能部の中から、インヒビット信号付加回路３５０の周辺接続を抜き出している。この図７を用いて、インヒビット信号付加回路３５０の動作を説明する。
【００５９】
まず、コンフィグレーションメモリ３２０からは、（ｘ）−ｂｉｔのコンフィグレーションデータ（ｃｏｎｆｉｇｕｒａｔｉｏｎ）が入力される。インヒビット信号付加回路３５０は、インヒビット信号生成回路３４０からインヒビット信号が入力されると、コンフィグレーションメモリ３２０から入力されたコンフィグレーションデータの設定に応じて、下記の各ポートについてインヒビット信号を付加するか否かを判断する。ここでは、コンフィグレーションデータの設定が”１’ｂ１”のとき、インヒビット信号を付加する。
なお、ここでは、ｂｉｔ位置がポート番号に対応するものとする。
【００６０】
コンフィグレーション  ［０］  −＞ｐｏｒｔ０  ｄａｔａ
コンフィグレーション  ［１］  −＞ｐｏｒｔ１  ｄａｔａ
：                ：                ：
コンフィグレーション［（ｘ）］−＞ｐｏｒｔ（ｘ）  ｄａｔａ
【００６１】
この時、インヒビット信号の出力は、データポートごとに存在する。そして、インヒビット信号が付加されたポートからの出力データは、クロスバースイッチ１１１を経由して他のクラスタ１１０へ送信される。
【００６２】
たとえば、図７のタイムチャートでは、時刻ｔ３にインヒビット信号生成回路３４０から最初にインヒビット信号が入力されている。このとき、コンフィグレーション［０］，［（ｘ）］のビットが立っており、インヒビット信号の付加を指示している。したがってクロスバースイッチ１１１から出力される出力データのうち、ｐｏｒｔ０，（ｘ）にはインヒビット信号が付加されて、同時に出力されている。一方、時刻ｔ４にもインヒビット信号が入力されている。このときは、コンフィグレーション［１］，［（ｘ）］のビットが立っているため、出力データのうち、ｐｏｒｔ１，（ｘ）にインヒビット信号が付加されている。
【００６３】
以上説明したように、クラスタ１１０は、インヒビット信号生成回路３４０と、インヒビット信号付加回路３５０とによって出力データにコンテキスト切り換えを報知するための情報を付加することができる。このインヒビット信号によって、出力データの送信先となるクラスタ１１０が、送信元のクラスタ１１０のコンテキスト切り換えを判断することができる。
【００６４】
３）入力データクリア回路
つぎに、入力データクリア回路３６０について説明する。上述したように、クラスタ１１０では、出力データにコンテキスト切り換えを報知するためのインヒビット信号を付加することができる。ここで説明する入力データクリア回路３６０は、他のクラスタ１１０からインヒビット信号が付加された出力データが送信されてきた場合に、適切に出力データを処理するための回路である。
【００６５】
図８は、入力データクリア回路の接続を示すブロック図である。入力データクリア回路３６０は、他のクラスタ１１０から送信されてきた出力データにインヒビット信号付加回路３５０によってデータポート単位でインヒビット信号が付加された場合、対象となる出力データのクリア処理（ＡＬＬ−０）をおこなう。ここでも、インヒビット信号が付加されていれば一意的にクリア処理をおこなうのではなく、コンフィグレーションデータの設定によりクリア処理するか否かをデータポート単位で設定することができる。したがって、ここでもコンフィグレーションデータのｂｉｔ数は、クラスタ１１０の出力ポート数分だけ必要となる。なお、本実施の形態では、図１のように（ｘ）個のポートがあるため、ｘｂｉｔとして説明する。
【００６６】
また、図９は、入力データクリア回路の動作を示すタイムチャートである。図９では、図３にて説明したクラスタ１１０の機能部の中から、入力データクリア回路３６０の周辺接続を抜き出している。この図９を用いて、入力データクリア回路３６０の動作を説明する。
【００６７】
入力データクリア回路３６０には、クロスバースイッチ１１１経由で他のクラスタ１１０から送信されてきた出力データが入力される。このとき、出力データに対応するデータポートからは、インヒビット信号生成元のクラスタ１１０で付加されたインヒビット信号が出力され、同じく入力データクリア回路３６０に入力される。そして、（ｘ）−ｂｉｔのコンフィグレーションデータによって、下記の各ポートについて、インヒビット信号が付加された出力データが入力された場合、対応する出力データをクリアするか否かの設定をおこなう。ここでは、インヒビット信号が付加されており、なおかつ、コンフィグレーションデータの設定が”１’ｂ１”である場合に送信されてきた出力データ（このクラス
タ１１０への入力データ）のクリア処理をおこなう。当然のことながら、インヒビット信号が付加されていない場合や、付加されていてもコンフィグレーションデータの設定が“０”の場合には、送信されてきた出力データをそのままＰＥアレイ３３０に出力する。なお、ここでもコンフィグレーションデータのｂｉｔ位置は、そのままポート番号に対応するものとする。
【００６８】
コンフィグレーション  ［０］  −＞  ｐｏｒｔ０  ｄａｔａ
コンフィグレーション  ［１］  −＞  ｐｏｒｔ１  ｄａｔａ
：              ：                  ：
コンフィグレーション［（ｘ）］−＞  ｐｏｒｔ（ｘ）  ｄａｔａ
【００６９】
たとえば、図９のタイムチャートでは、時刻ｔ５において、ｐｏｒｔ０，１，（ｘ）からの入力にはインヒビット信号が付加されている。このとき、コンフィグレーション［０］，［（ｘ）］のビットが立っており、クリア処理が指示された状態になっている。したがって、対応するｐｏｒｔ０，（ｘ）のデータはクリア（ｃｌｅａｒ（ＡＬＬ０））される。次に、時刻ｔ６においてもｐｏｒｔ０，（ｘ）からの入力にはインヒビット信号が付加されている。そして、コンフィグレーション［（ｘ）］のビットのみが立っているため、対応するｐｏｒｔ（ｘ）のデータはクリアされる。
【００７０】
このように、インヒビット信号の付加によってコンテキスト切り替えをまたいだデータであることが報知される。すなわち、コンフィグレーションデータによってクリアするデータであると指定されている場合には、インヒビット信号の付加された期間をガイドにしてデータをクリアすれば、誤って必要なデータをクリアしてしまうような事態を避けることができる。
【００７１】
したがって、図８のように、インヒビット信号によって制御された入力データクリア回路３６０の出力は、そのままＰＥアレイ３３０のネットワーク回路３３２を経由して各ＰＥ３３２の入力データとなる。このように、クラスタ１１０の場合、他のクラスタ１１０から送信されてきた出力データをＰＥアレイ３３０に入力する前段に、入力データクリア回路３６０による判断処理を含むため、コンテキスト切り替えに応じて入力データを選別することができる。
【００７２】
４）クロスバースイッチの機能拡張
つぎに、クロスバースイッチ１１１の機能拡張について説明する。本実施の形態の場合、クロスバースイッチ１１１が、入力されたデータを他のクラスタ１１０に転送する場合に、データに付加されているインヒビット信号を次のサイクルのデータにも付加するような機能を持つように拡張している。この機能は、他のクラスタ１１０へのデータ転送の際に、追加で１段のＤＦＦを経由するためである。
【００７３】
図１０は、クロスバースイッチの動作例を示す説明図である。図１０を用いて上述した拡張機能について説明する。図１０のように、クラスタ−０によって生成されたデータを出力データとし、ｐｏｒｔ１を使って、クラスタ−２を経由させてクラスタ−３へ送信するものとする。このとき、クラスタ−０からの出力データにはインヒビット信号が付加されている。
【００７４】
クラスタ−０からの出力データは、クラスタ−２をスルーして、クラスタ−３に転送される。このとき、クラスタ−２内のクロスバースイッチ１１１は、ｐｏｒｔ１の出力に１サイクルのインヒビット信号をあらたに付加する。図１１は、クラスタ−２のクロスバースイッチの動作を示すタイムチャートである。図１１のように、クラスタ−０からの出力データにおけるインヒビット信号の付加期間の終了直後の時刻ｔ７にクロスバースイッチ１１１は、１サイクルインヒビット信号の付加期間を延長して出力している。
【００７５】
ここで、図１２は、クラスタ間のインヒビット信号の接続を示す説明図である。図１２では、クラスタ１１０同士の接続のうち、インヒビット信号の接続線のみをあらわしている。インヒビット信号は出力データと対になっているため、図１０のようにインヒビット信号の接続線もデータ送信用の接続線と同様にクロスバースイッチ１１１を経由している。しかし、図１にも示したように、出力データを送信するための接続線と異なり、インヒビット信号を送信するための接続線上にはＤＦＦが存在しない。したがって、図１０，１１にて説明したような拡張機能を適用させることによって、インヒビット信号を出力データとずれて付加されないように制御することができる。
【００７６】
以上説明したように、本実施の形態にかかるリコンフィグ回路１００では、コンテキスト切り替え間にクラスタ１１０間のＤＦＦに保持される出力データにインヒビット信号が付加される。この処理によって、送信先のクラスタ１１０も、送信されてきたデータが、コンテキスト切り換え間の出力データ、すなわちハザードデータであることを判断できるようになる。
【００７７】
また、インヒビット信号を付加した出力データが送信されてきた送信先となるクラスタ１１０では、コンフィグレーションデータの指示に応じて、インヒビット信号が有効か、無効かを判断する。この判断によって有効となった場合は、対象となるデータをクリアする。そして、この有効無効の設定はポート単位でコンフィグレーションデータによって設定可能である。すなわち、クリア動作を無効化することもできる。したがって、インヒビット信号が付加されたデータであっても、一意的にクリアするのではなく、そのままデータ切り替え後のコンテキストでも継続して使用することもできる。
【００７８】
さらに、インヒビット信号によるクリア動作を適用することで、２回目のコンテキスト開始時に、クラスタへの入力を初期化してから、動作を開始することが可能となる。そのため、各クラスタ１１０にソフトリセットをおこなう必要がなく、コンテキスト切り換え間の待ち時間を省略することができる。また、上述した処理を適用することで、コンテキスト切り換え間でのポートのシェアが可能となり、クラスタ１１０間の配線リソースを抑えることができる。
【００７９】
＜実施例＞
つぎに、実施例として、任意のアプリケーションを実行させた場合のリコンフィグ回路１００の動作について説明する。図１３は、リコンフィグ回路に実装するアプリケーションの一例を示す説明図である。ここでは、図１３に示したソースコード１３００のようなアプリケーションを実行させた場合の動作を説明する。
【００８０】
ソースコード１３００には、２つのコンテキストが記述されている。具体的には、記述１３０１は、コンテキスト−０の処理に相当し、記述１３０２は、コンテキスト−１の処理に相当する。また、ソースコード１３００の記述において、配列変数Ａ［］，Ｂ［］，Ｃ［］は、クラスタ１１０内のＰＥの一つである、ＲＡＭに展開される。また、ソースコード１３００の記述において、ｆｕｎｃ−０，ｆｕｎｃ−１，ｆｕｎｃ−２は、クラスタ１１０内で複数ＰＥを組み合わせて実装する演算フローである。
【００８１】
なお、コンテキスト−０に記述されている二つのｆｏｒ文は、互いに依存関係がないので並列に実行される。そして、コンテキスト−０は、最後のｆｏｒループの終了を待って、コンテキスト−１への切り換えをおこなう。また、ｆｕｎｃ−０は、コンテキスト−０，コンテキスト−１において継続して実行する。
【００８２】
つぎに、リコンフィグ回路１００に物理配置配線を上記のアプリケーションを実装した場合の動作について説明する。図１４は、コンテキスト−０のリコンフィグ回路の実装例を示す説明図である。また、図１５は、コンテキスト−１のリコンフィグ回路の実装例を示す説明図である。
【００８３】
図１４，１５の実装例のようにソースコード１３００のアプリケーションを実行させる場合、クラスタ−０，クラスタ−２，クラスタ−３の３クラスタを使用する。なお、これら３つのクラス１１０タは、同タイミングでコンテキストを切り替える。また、変数配列Ａ［］，Ｂ［］，Ｃ［］は全てクラスタ−０内のＲＡＭに展開し、同クラスタ−０内のカウンタで変数を読み出す。そして、カウンタで読み出した配列変数は、クロスバースイッチ１１経由でクラスタ−２、クラスタ−３に転送される。このとき、クラスタ１１０間の転送において、インヒビット信号以外の出力信号（出力データ）は、１段のＤＦＦを経由する（図１参照）。
【００８４】
上述した構成のコンテキスト−０からコンテキスト−１への切り換えにおいて、待ち時間を最小（＝０）にするため、各コンテキストにおいて、下記のような処理を適用する。また、図１６は、図１３に例示したアプリケーションの動作を示すタイムチャートである。図１６のタイムチャートには、下記のコンテキスト−０，１における処理内容が反映されている。
【００８５】
［コンテキスト−０］
コンテキスト−０の終了直前にクラスタ−０内でインヒビット信号を生成し、配列変数Ａ［］，Ｂ［］にそれぞれ付加する。このときのインヒビット信号の生成期間は、隣接するクラスタ１１０内のＰＥの入力までかかるクロックサイクルとなる”２”を設定する。
なお、クラスタ−０からクラスタ−３の転送については、クラスタ−０からクラスタ−３のＰＥへの入力まで、クラスタ−２を経由するため、必要となるクロックサイクルは、“３”となるが、図１０，１１にて説明したクロスバースイッチ１１１の拡張機能によってインヒビット信号の付加期間が１サイクル延びるためそのまま適用される。
【００８６】
［コンテキスト−１］
コンテキスト−１では、まず、クラスタ−２において、コンテキスト−０の入力データを継続して使用するための設定を施す。具体的には、クラスタ−２内部の入力データクリア回路３６０によって、インヒビット信号が付加されたｐｏｒｔ０からの入力されたデータをクリアしないように設定する。この結果、クラスタ−２についてはコンテキスト切り換えを、待ち時間なしで実行することができる（図１６参照）。
【００８７】
さらに、コンテキスト−１では、クラスタ−３において、コンテキスト−０の入力データを継続して使用しないための設定を施す。具体的には、クラスタ−３内の入力データクリア回路３６０において、インヒビット信号が付加されたｐｏｒｔ０およびｐｏｒｔ１からの入力をクリアするように設定する。その結果、コンテキスト−０から使用しているｐｏｒｔ１は、コンテキスト−１で全く別のデータ転送用として使用することができる。また、ｐｏｒｔ０への入力については、コンテキスト−０では使用していないが、コンテキスト−１の開始時に、どんなデータがきているか不明のためリセットする必要がある。これは、上述したインヒビット信号によるクリア動作で達成されるため、ソフトリセット動作をおこなうことなく、即座に次のコンテキストの処理に移行できる。
【００８８】
以上説明したように、本実施の形態にかかるリコンフィグ回路は、コンテキスト切り換え間に無駄な待ち時間が発生することがない。したがって、リコンフィグ回路の性能低下を防ぎ、最適なクラスタ間のデータ送信を実現することができる。
【図面の簡単な説明】
【００８９】
【図１】本実施の形態にかかるリコンフィグ回路の内部のクラスタの接続を示す説明図である。
【図２】リコンフィグ回路の使用手順を示す説明図である。
【図３】本実施の形態にかかるクラスタの構成を示す回路図である。
【図４】インヒビット信号生成回路の構成を示す回路図である。
【図５】インヒビット信号生成回路の動作を示すタイムチャートである。
【図６】インヒビット信号付加回路の接続を示すブロック図である。
【図７】インヒビット信号付加回路の動作を示すタイムチャートである。
【図８】入力データクリア回路の接続を示すブロック図である。
【図９】入力データクリア回路の動作を示すタイムチャートである。
【図１０】クロスバースイッチの動作例を示す説明図である。
【図１１】クラスタ−２のクロスバースイッチの動作を示すタイムチャートである。
【図１２】クラスタ間のインヒビット信号の接続を示す説明図である。
【図１３】リコンフィグ回路に実装するアプリケーションの一例を示す説明図である。
【図１４】コンテキスト−０のリコンフィグ回路の実装例を示す説明図である。
【図１５】コンテキスト−１のリコンフィグ回路の実装例を示す説明図である。
【図１６】図１３に例示したアプリケーションの動作を示すタイムチャートである。
【図１７】従来のクラスタの内部構成を示す回路図である。
【図１８】従来のクラスタ間のデータ転送例を示す説明図である。
【図１９】クラスタごとのコンテキスト切り替えシーケンスを示す説明図である。
【図２０】クラスタ間のデータ転送動作を示すタイミングチャートである。
【符号の説明】
【００９０】
１００  リコンフィグ回路（動的再構成回路）
１１０  クラスタ
１１１  クロスバースイッチ
３１０  シーケンサ
３２０  コンフィグレーションメモリ
３３０  ＰＥアレイ
３３１  信号変換器
３３２  ＰＥ
３３３  ネットワーク回路
３３４  カウンタ
３４０  インヒビット信号生成回路
３４１  開始信号生成回路
３４２  ３ｂｉｔカウンタ回路
３４３  出力回路
３５０  インヒビット信号付加回路
３６０  入力データクリア回路
【図１】
2010003058.tif 000003
【図２】
2010003058.tif 000004
【図３】
2010003058.tif 000005
【図４】
2010003058.tif 000006
【図５】
2010003058.tif 000007
【図６】
2010003058.tif 000008
【図７】
2010003058.tif 000009
【図８】
2010003058.tif 000010
【図９】
2010003058.tif 000011
【図１０】
2010003058.tif 000012
【図１１】
2010003058.tif 000013
【図１２】
2010003058.tif 000014
【図１３】
2010003058.tif 000015
【図１４】
2010003058.tif 000016
【図１５】
2010003058.tif 000017
【図１６】
2010003058.tif 000018
【図１７】
2010003058.tif 000019
【図１８】
2010003058.tif 000020
【図１９】
2010003058.tif 000021
【図２０】
2010003058.tif 000022