(57)【要約】【課題】バスの衝突を防ぎつつデータが伝搬する際の遅延時間の計算が簡略化されたデータ伝送回路を提供する。【解決手段】ＰＥ（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ）１２Ａ〜Ｆは、データ入力部１４Ａ〜Ｆ又は、スイッチ部１５Ａ〜Ｈを介して接続される複数の配線１３を介して、相互にデータを送受信する。ＰＥ１２Ａ〜Ｆの出力端子と配線１３とは、マルチプレクサから構成されるデータ入力部１４Ａ〜Ｆ（又は、論理ゲートから構成されるデータ入力部）を介して接続される。このため、ＰＥ１２Ａ〜Ｆの出力端子から誤って電圧が印加されてバスの衝突が発生することはない。また、マルチプレクサから構成されるスイッチ部１５Ａ〜Ｈ（又は、論理ゲートから構成されるスイッチ部）において、複数の配線１３が接続されるため、データが伝搬する際の遅延時間の計算が簡略化される。【選択図】図５
2009140171.tif 000002
【特許請求の範囲】
【請求項１】
複数の配線と、
出力端子と、前記配線に接続された入力端子とを備える複数の演算部と、
前記演算部の出力端子から供給されたデータと、前記配線から供給されたデータのうち、第１のデータ指定情報により指定されたデータを、前記データ供給元の配線とは別の配線に供給する複数のデータ入力部と、
前記複数の配線からそれぞれ供給されたデータのうち、第２のデータ指定情報によりそれぞれ指定されたデータを、前記データ供給元の複数の配線とは別の複数の配線にそれぞれ供給する複数のスイッチ部と、を備え、
前記複数のデータ入力部と前記複数のスイッチ部は、前記複数の配線を介して接続される、
ことを特徴とするデータ伝送回路。
【請求項２】
前記データ入力部は、前記演算部の出力端子に接続された第１の入力端子と、前記配線に接続された第２の入力端子と、該第２の入力端子に接続された配線とは別の配線に接続された出力端子と、該出力端子に内部で接続されるいずれか一方の入力端子を指定する第１のデータ指定情報が供給される制御端子と、を備えるマルチプレクサを備える、
ことを特徴とする請求項１に記載のデータ伝送回路。
【請求項３】
前記スイッチ部は、前記複数の配線にそれぞれ接続された複数の入力端子と、該複数の入力端子に接続された配線とは別の配線に接続された出力端子と、該出力端子に内部で接続されるいずれか１つの入力端子を指定する第２のデータ指定情報が供給される制御端子と、を備える複数のマルチプレクサを備える、
ことを特徴とする請求項１に記載のデータ伝送回路。
【請求項４】
前記データ入力部は、第１のデータ指定情報を格納する第１のデータ指定情報記憶部をさらに備え、
前記データ入力部が備えるマルチプレクサは、制御端子が前記第１のデータ指定情報記憶部に接続され、制御端子に供給された第１のデータ指定情報で指定された入力端子と出力端子とを内部で接続する、
ことを特徴とする請求項２に記載のデータ伝送回路。
【請求項５】
前記スイッチ部は、第２のデータ指定情報を格納する第２のデータ指定情報記憶部をさらに備え、
前記スイッチ部が備えるマルチプレクサは、制御端子が前記第２のデータ指定情報記憶部に接続され、制御端子に供給された第２のデータ指定情報で指定された入力端子と出力端子とを内部で接続する、
ことを特徴とする請求項３に記載のデータ伝送回路。
【請求項６】
前記データ入力部は、ＡＮＤゲートとＯＲゲートとを備える論理回路から構成される、
ことを特徴とする請求項１に記載のデータ伝送回路。
【請求項７】
前記スイッチ部は、ＡＮＤゲートとＯＲゲートとを備える論理回路から構成される、
ことを特徴とする請求項１に記載のデータ伝送回路。
【請求項８】
前記データ入力部は、第１のデータとデータ指定情報とが供給されるＡＮＤゲートと、出力をマスクするか否かを指定するデータとしてのデータ指定情報と前記ＡＮＤゲートが出力するデータとが供給される第１のＯＲゲートと、該第１のＯＲゲートが出力するデータと第２のデータとが供給される第２のＯＲゲートと、を備える第１の論理回路、又は、
第１のデータとデータ指定情報とが供給されるＯＲゲートと、出力をマスクするか否かを指定するデータとしてのデータ指定情報と前記ＯＲゲートが出力するデータとが供給される第１のＡＮＤゲートと、該第１のＡＮＤゲートが出力するデータと第２のデータとが供給される第２のＡＮＤゲートと、を備える第２の論理回路、から構成され、
前記スイッチ部は、前記第１の論理回路又は前記第２の論理回路から構成される複数の経路選択部、を備える、
ことを特徴とする請求項１に記載のデータ伝送回路。
【請求項９】
第１のデータ指定情報は、データ入力部に対して演算部の出力端子から供給されたデータを指定するデータである場合は、該データ入力部にデータを供給するデータ入力部又はスイッチ部が備える経路選択部に対して出力をマスクさせるデータであり、
第２のデータ指定情報は、経路選択部から出力するデータとして指定されないデータを該経路選択部に供給するデータ入力部又は経路選択部に対して出力をマスクさせるデータである、
ことを特徴とする請求項８に記載のデータ伝送回路。
【請求項１０】
請求項１に記載のデータ伝送回路と、
前記第１のデータ指定情報を前記データ入力部に供給し、前記第２のデータ指定情報を前記スイッチ部に供給する制御部と、を備える、
ことを特徴とする集積回路。
【請求項１１】
ダイナミックリコンフィギュラブルハードウェアである、
ことを特徴とする請求項１０に記載の集積回路。
【請求項１２】
請求項１１に記載の集積回路と、
前記集積回路に実行させるプログラムを格納するプログラム格納部と、を備える、
ことを特徴とする情報処理装置。
【請求項１３】
複数の演算部と複数の配線とを備え、前記複数の演算部を前記複数の配線を介して接続することにより、前記複数の演算部の間で相互にデータを送受信させるデータ伝送回路のデータ伝送方法であって、
前記演算部の出力端子から供給されたデータと、前記配線から供給されたデータのうち、第１のデータ指定情報により指定されたデータを、前記データ供給元の配線とは別の配線に供給するステップと、
前記複数の配線からそれぞれ供給されたデータのうち、第２のデータ指定情報によりそれぞれ指定されたデータを、前記データ供給元の複数の配線とは別の複数の配線にそれぞれ供給するステップと、を備える、
ことを特徴とするデータ伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送回路、集積回路、情報処理装置、及び、データ伝送方法に関する。
【背景技術】
【０００２】
近年、アプリケーションプログラム（以下、アプリケーションとする）の実行時に、動的に回路構成を切り替えることが可能であるハードウェアに関する技術、いわゆるダイナミックリコンフィギュラブル技術が開発されている。ダイナミックリコンフィギュラブル技術では、ソフトウェアがハードウェア構造をほとんど意識せずに、専用論理回路並の性能を容易に実現できる環境を作り出すことが可能となる。
【０００３】
ダイナミックリコンフィギュラブル技術では、回路構成を高速に切り替えることが可能となるため、一つのチップを様々な専用ＬＳＩに瞬時に作り替えることができる。つまり、コンピュータの仮想記憶のように、その時々で必要な回路構成に切り替えることができる。
【０００４】
上述したダイナミックリコンフィギュラブル技術に関しては、例えば特許文献１に開示されている。
【特許文献１】特許第３５４０７９６号公報
【０００５】
上述したダイナミックリコンフィギュラブル技術を用いてＬＳＩを実現する場合、組み合わせ論理回路を実現するプログラマブルな演算素子として多数のＰＥ（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ）２０１２がリコンフィギュラブル回路上に二次元に配置され、この多数のＰＥ２０１２の間に双方向バス２０１３が張り巡らされる。そして、各ＰＥ２０１２は、この双方向バス２０１３を介してデータを送受信する。
【０００６】
より詳細には、図１１に示すように、ＰＥ２０１２は、３ステートバッファ２０１４を介して双方向バス２０１３に電圧を印加する（以下、データを供給するとする。）。また、双方向バス２０１３の結線状態は、複数のスイッチを備えたスイッチ部２０１５により決定される。スイッチ部２０１５は、例えば、外部からの制御信号に従って、複数のスイッチをオン・オフすることにより、双方向バス２０１３の結線状態を決定する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、３ステートバッファ２０１４を用いた方法では、複数のＰＥ２０１２から同時にデータが出力された場合はバスの衝突が発生する。また、双方向バス２０１３に接続された全てのＰＥ２０１２からデータが出力されない場合は、フローティングが発生する。特に、ダイナミックリコンフィギュラブルハードウェアのように回路構成を動的に切り替える回路では、バスの衝突やフローティングが発生しやすい。
【０００８】
また、双方向バス２０１３が長くなると配線容量の増加に伴うデータが伝搬する際の遅延時間の計算が複雑となる。さらに、３ステートバッファ２０１４を用いると、双方向バス２０１３にデータを出力するＰＥ２０１２が切り替わる際、信号の極性によって遅延時間が変化する。具体例を、図１２（Ａ）〜（Ｃ）を用いて説明する。図１２（Ａ）〜（Ｃ）は、３ステートバッファ２０１４の状態とデータが伝搬する際の遅延時間との関係を説明するための図である。なお、図１２（Ａ）〜（Ｃ）において、電圧が印加される経路上の配線を太線で示す。
【０００９】
図１２（Ａ）は、双方向バス２０１３にデータを出力するＰＥ２０１２を切り替える前の状態を示す図である。図１２（Ｂ）は、双方向バス２０１３にデータを出力するＰＥ２０１２を切り替える瞬間の状態を示す図である。図１２（Ｃ）は、双方向バス２０１３にデータを出力するＰＥ２０１２を切り替えた後の状態を示す図である。
【００１０】
図１２（Ｂ）に示す状態では、図面上方のＰＥ２０１２から双方向バス２０１３にデータが出力されているが、依然として図面下方のＰＥ２０１２からも双方向バス２０１３にデータが出力されている。すなわち、過渡的には、複数のＰＥ２０１２から双方向バス２０１３に同時にデータが出力される。このとき、それぞれのＰＥ２０１２から出力されるデータの極性によりデータが伝搬する際の遅延時間が変化し、遅延時間の計算が複雑になる。
【００１１】
また、双方向バス２０１３の交差部にスイッチ部２０１５を用いた場合、各スイッチの状態により遅延時間が異なる。具体例を、図１３を用いて説明する。図１３（Ａ）、（Ｂ）は、スイッチ部２０１５の各スイッチの状態とデータが伝搬する際の遅延時間との関係を説明するための図である。なお、データは左側の端子から右側の端子向かって伝搬するものとし、データが伝搬する際に電圧が印加される配線を太線で示す。
【００１２】
図１３（Ａ）は、右側中央のスイッチのみ導通状態にある場合に、電圧が印加される配線を示す図である。図１３（Ａ）に示すように、左側の端子に接続された配線と、右側の端子に接続された配線にしか電圧が印加されない。このため、双方向バス２０１３の配線の容量は小さく、双方向バス２０１３を駆動する際の負荷は小さい。図１３（Ｂ）は、右側中央のスイッチの他、左上のスイッチも導通状態にある場合に、電圧が印加される配線を示す図である。図１３（Ｂ）に示すように、電圧が印加される配線は、図１３（Ａ）の場合に比して、スイッチ内部でも増加する。さらに、上側の端子に接続される配線にも電圧が印加される。このため、双方向バス２０１３の配線の容量は増大し、双方向バス２０１３を駆動する際の負荷が増大する。このように、双方向バス２０１３の交差部にスイッチ２０１５を用いた場合、スイッチの状態により負荷が変化する。このため、データが伝搬する際の遅延時間の計算が複雑になる。
【００１３】
本発明は、上記問題に鑑みてなされたものであり、バスの衝突を防ぎつつデータが伝搬する際の遅延時間の計算が簡略化されたデータ伝送回路、集積回路、情報処理装置、及び、データ伝送方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明の第１の観点に係るデータ伝送回路は、
複数の配線と、
出力端子と、前記配線に接続された入力端子とを備える複数の演算部と、
前記演算部の出力端子から供給されたデータと、前記配線から供給されたデータのうち、第１のデータ指定情報により指定されたデータを、前記データ供給元の配線とは別の配線に供給する複数のデータ入力部と、
前記複数の配線からそれぞれ供給されたデータのうち、第２のデータ指定情報によりそれぞれ指定されたデータを、前記データ供給元の複数の配線とは別の複数の配線にそれぞれ供給する複数のスイッチ部と、を備え、
前記複数のデータ入力部と前記複数のスイッチ部は、前記複数の配線を介して接続される、
ことを特徴とする。
【００１５】
前記データ入力部は、前記演算部の出力端子に接続された第１の入力端子と、前記配線に接続された第２の入力端子と、該第２の入力端子に接続された配線とは別の配線に接続された出力端子と、該出力端子に内部で接続されるいずれか一方の入力端子を指定する第１のデータ指定情報が供給される制御端子と、を備えるマルチプレクサを備えてもよい。
【００１６】
前記スイッチ部は、前記複数の配線にそれぞれ接続された複数の入力端子と、該複数の入力端子に接続された配線とは別の配線に接続された出力端子と、該出力端子に内部で接続されるいずれか１つの入力端子を指定する第２のデータ指定情報が供給される制御端子と、を備える複数のマルチプレクサを備えてもよい。
【００１７】
前記データ入力部は、第１のデータ指定情報を格納する第１のデータ指定情報記憶部をさらに備え、
前記データ入力部が備えるマルチプレクサは、制御端子が前記第１のデータ指定情報記憶部に接続され、制御端子に供給された第１のデータ指定情報で指定された入力端子と出力端子とを内部で接続してもよい。
【００１８】
前記スイッチ部は、第２のデータ指定情報を格納する第２のデータ指定情報記憶部をさらに備え、
前記スイッチ部が備えるマルチプレクサは、制御端子が前記第２のデータ指定情報記憶部に接続され、制御端子に供給された第２のデータ指定情報で指定された入力端子と出力端子とを内部で接続してもよい。
【００１９】
前記データ入力部は、ＡＮＤゲートとＯＲゲートとを備える論理回路から構成されてもよい。
【００２０】
前記スイッチ部は、ＡＮＤゲートとＯＲゲートとを備える論理回路から構成されてもよい。
【００２１】
前記データ入力部は、第１のデータとデータ指定情報とが供給されるＡＮＤゲートと、出力をマスクするか否かを指定するデータとしてのデータ指定情報と前記ＡＮＤゲートが出力するデータとが供給される第１のＯＲゲートと、該第１のＯＲゲートが出力するデータと第２のデータとが供給される第２のＯＲゲートと、を備える第１の論理回路、又は、
第１のデータとデータ指定情報とが供給されるＯＲゲートと、出力をマスクするか否かを指定するデータとしてのデータ指定情報と前記ＯＲゲートが出力するデータとが供給される第１のＡＮＤゲートと、該第１のＡＮＤゲートが出力するデータと第２のデータとが供給される第２のＡＮＤゲートと、を備える第２の論理回路、から構成され、
前記スイッチ部は、前記第１の論理回路又は前記第２の論理回路から構成される複数の経路選択部、を備えてもよい。
【００２２】
第１のデータ指定情報は、データ入力部に対して演算部の出力端子から供給されたデータを指定するデータである場合は、該データ入力部にデータを供給するデータ入力部又はスイッチ部が備える経路選択部に対して出力をマスクさせるデータであり、
第２のデータ指定情報は、経路選択部から出力するデータとして指定されないデータを該経路選択部に供給するデータ入力部又は経路選択部に対して出力をマスクさせるデータであることが望ましい。
【００２３】
上記目的を達成するために、本発明の第２の観点に係る集積回路は、
請求項１に記載のデータ伝送回路と、
前記第１のデータ指定情報を前記データ入力部に供給し、前記第２のデータ指定情報を前記スイッチ部に供給する制御部と、を備える、
ことを特徴とする。
【００２４】
前記集積回路は、ダイナミックリコンフィギュラブルハードウェアである場合に特に有効である。
【００２５】
上記目的を達成するために、本発明の第３の観点に係る情報処理装置は、
前記集積回路と、
前記集積回路に実行させるプログラムを格納するプログラム格納部と、を備える、
ことを特徴とする。
【００２６】
上記目的を達成するために、本発明の第４の観点に係るデータ伝送方法は、
複数の演算部と複数の配線とを備え、前記複数の演算部を前記複数の配線を介して接続することにより、前記複数の演算部の間で相互にデータを送受信させるデータ伝送回路のデータ伝送方法であって、
前記演算部の出力端子から供給されたデータと、前記配線から供給されたデータのうち、第１のデータ指定情報により指定されたデータを、前記データ供給元の配線とは別の配線に供給するステップと、
前記複数の配線からそれぞれ供給されたデータのうち、第２のデータ指定情報によりそれぞれ指定されたデータを、前記データ供給元の複数の配線とは別の複数の配線にそれぞれ供給するステップと、を備える、
ことを特徴とする。
【発明の効果】
【００２７】
本発明にかかるデータ伝送回路、集積回路、情報処理装置、及び、データ伝送方法によれば、バスの衝突を防ぎつつデータが伝搬する際の遅延時間の計算が簡略化できる。
【発明を実施するための最良の形態】
【００２８】
（第１の実施形態）
以下、図面に基づき、本発明の第１の実施形態に係るデータ伝送回路、集積回路、情報処理装置、及び、データ伝送方法について説明する。
【００２９】
図１は、本発明の第１の実施形態に係る情報処理装置の全体構成を示すブロック図である。図１に示すように、情報処理装置１０００は、集積回路としてのリコンフィギュラブルハードウェア１００と、コンパイル部２００と、記憶部３００とを備える。
【００３０】
リコンフィギュラブルハードウェア１００は、データ伝送回路としてのリコンフィギュラブル回路１０と、設定部２０と、制御部３０と、内部状態保持回路４０とを備える。
【００３１】
リコンフィギュラブル回路１０は、情報処理装置１０００に供給された入力データに所定の演算を施したあと、演算結果を出力データとして出力する回路である。リコンフィギュラブル回路１０は、制御部３０の制御のもと、回路構成を変更することが可能である。そして、リコンフィギュラブル回路１０は、回路構成を変更することにより、演算機能を変更することができる。
【００３２】
なお、リコンフィギュラブル回路１０に供給される入力データは、例えば、キーボードなどの入力装置から供給されるデータ、磁気ディスク装置などの外部記憶装置から読み出されるデータである。また、リコンフィギュラブル回路１０から出力される出力データは、例えば、ディスプレイ装置などの出力装置に供給するデータ、外部記憶装置に書き込むデータ、周辺機器を制御するための制御データである。
【００３３】
図２は、図１に示すリコンフィギュラブル回路１０を説明するための図である。リコンフィギュラブル回路１０は、複数のＩ／Ｏ部１１と、複数のＰＥ１２と、複数の配線１３と、複数のデータ入力部１４と、複数のスイッチ部１５と、を備える。なお、理解を容易にするため、配線１３、データ入力部１４及びスイッチ部１５については、データ１ｂｉｔあたりのデータの送受信に必要なもののみを示している。従って、データがＮｂｉｔの場合は、Ｎｂｉｔ分の配線１３、データ入力部１４及びスイッチ部１５が必要となる。
【００３４】
Ｉ／Ｏ部１１は、リコンフィギュラブル回路１０の周辺部に配置され、リコンフィギュラブル回路１０の外部から供給されたデータをＰＥ１２に供給し、又は、ＰＥ１２から供給されたデータをリコンフィギュラブル回路１０の外部に出力する。
【００３５】
ＰＥ１２は、図２に示すように、リコンフィギュラブル回路１０上に、二次元に配置される。ＰＥ１２は、所望の関数の真理値表を少量のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルに保持して組み合わせ回路を実現する基本的な論理モジュールであるルックアップテーブルと、演算の途中結果のデータを保持するフリップフロップとを備える。
【００３６】
ＰＥ１２のルックアップテーブルのＳＲＡＭに記憶されるデータすなわちＰＥ１２の処理内容は、設定部２０から供給される設定データ２１に基づいて設定される。ＰＥ１２は、データの供給元の配線１３からデータを供給される入力端子と、データ入力部１４を介してデータの供給先の配線１３にデータを供給する出力端子と、を備える。
【００３７】
配線１３は、データ入力部１４やスイッチ部１５を介して、ＰＥ１２やＩ／Ｏ部１１を接続する。各配線１３は、図２に示すように、互いに直交する２つの方向のうちいずれか一方の方向に沿って配置される。配線１３は、隣接する２つのスイッチ部１５の間と、Ｉ／Ｏ部１１とこのＩ／Ｏ部１１に隣接するスイッチ部１５の間とに、それぞれ２本の経路ができるように配置される。
【００３８】
データ入力部１４は、ＰＥ１２から供給されるデータを配線１３に供給する機能を有する。データ入力部１４は、図２に示すように、隣接する２つのスイッチ部１５の間に構成される２本の経路のうち一方の経路を構成する配線１３の近傍に配置され、近傍のＰＥ１２に接続される。データ入力部１４の構成及び動作の詳細については後述する。
【００３９】
スイッチ部１５は、複数の配線１３相互間の接続状態を設定する機能を有する。スイッチ部１５は、図２に示すように、リコンフィギュラブル回路１０上の配線１３が相互に交差する部分に、二次元に配置される。スイッチ部１５の構成及び動作の詳細については後述する。
【００４０】
設定部２０は、設定データ２１を格納する。設定部２０は、制御部３０の制御のもと、リコンフィギュラブル回路１０を所定の回路構成とするための設定データ２１をリコンフィギュラブル回路１０に供給する。設定データ２１を受け取るとリコンフィギュラブル回路１０は、設定データ２１にもとづき回路構成を変更する。具体的には、設定データ２１は、ＰＥ１２の演算内容を示すルックアップテーブル用のＳＲＡＭのデータ、マルチプレクサ１４１、１５１、１５２、１５３、１５４の入力端子と出力端子との結線状態を示すデータ等を含む。
【００４１】
制御部３０は、リコンフィギュラブルハードウェア１００全体の動作を制御する。特に、制御部３０は、動的にリコンフィギュラブル回路１０の回路構成を変更させて、リコンフィギュラブル回路１０に回路構成に応じた処理を実行させる。また、制御部３０は、記憶部３００から設定データ３２０を取得し、設定データ２１として設定部２０に格納する。
【００４２】
内部状態保持回路４０は、リコンフィギュラブル回路１０の回路構成が変更されるときに、回路構成変更前に演算の途中結果としてリコンフィギュラブル回路１０内のフリップフロップに保持されている途中結果データや変更前の回路状態を示すデータ（内部状態データ）を退避するための回路である。そして、回路構成変更後の演算が終了したなどのタイミングで、制御部３０の制御により、退避した内部状態データを用いてリコンフィギュラブル回路１０を変更前の回路構成に復帰させ、リコンフィギュラブル回路１０内のフリップフロップに途中結果データを復帰させる。すなわち、内部状態保持回路４０は、内部状態データをリコンフィギュラブル回路１０のフリップフロップに直接書き戻す。
【００４３】
コンパイル部２００は、ハードウェア記述が可能なプログラム言語に記述されたソースプログラム３１０をリコンフィギュラブル回路１０におけるＰＥ１２の機能やＰＥ１２間の結線関係を定める設定データ３２０にコンパイルする。
【００４４】
記憶部３００には、ソースプログラム３１０と設定データ３２０とが格納される。
【００４５】
ソースプログラム３１０は、ハードウェア記述が可能なプログラム言語（例えば、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）やＣ言語など）で記述されたものである。ソースプログラム３１０は、リコンフィギュラブルハードウェア１００により実現されるべきプログラムである。
【００４６】
設定データ３２０は、上述のように、ソースプログラム３１０をコンパイル部２００がコンパイルすることにより生成される。生成された設定データ３２０は、制御部３０により、設定データ２１として設定部２０に格納される。設定部２０に格納された設定データ２１は、制御部３０の制御のもと、リコンフィギュラブル回路１０に供給される。設定データ２１を受け取るとリコンフィギュラブル回路１０は、その設定データ２１にもとづき回路構成を変更する。
【００４７】
次に、図３を用いて、データ入力部１４の構成と動作を説明する。
【００４８】
まず、データ入力部１４の構成を説明する。図３に示すように、データ入力部１４は、マルチプレクサ１４１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セル１４２とから構成される。
【００４９】
マルチプレクサ１４１は、２つの入力端子と、１つの出力端子と、１つの制御端子と、を備える。一方の入力端子はＰＥ１２の出力端子に接続され、他方の入力端子は配線１３Ａに接続される。出力端子は、配線１３Ｂに接続される。制御端子は、ＲＡＭセル１４２の出力端子に接続される。
【００５０】
ＲＡＭセル１４２は、１ビットのデータを記憶する記憶素子であり、図示しない１つの入力端子と、１つの出力端子を備える。出力端子は、マルチプレクサ１４１の制御端子に接続され、記憶している１ビットのデータを出力する。なお、制御部３０は、リコンフィギュラブル回路１０の回路構成の変更時に、設定データ２１に基づいて、マルチプレクサ１４１の出力端子に内部で接続する入力端子を示す１ビットのデータを、ＲＡＭセル１４２の入力端子からＲＡＭセル１４２に書き込む。
【００５１】
次に、データ入力部１４の動作を説明する。
【００５２】
ＲＡＭセル１４２に記憶されたデータが、配線１３Ａ側の入力が選択された事を示す値（すなわち、ＰＥ１２側の入力が選択されていない事を示す値）、例えば「０」である間は、マルチプレクサ１４１の制御端子には、「０」に対応する信号、例えばＬレベルの信号が供給される。すると、マルチプレクサ１４１の出力端子は、配線１３Ａから供給されたデータを出力する。このため、配線１３Ａから供給されるデータが配線１３Ｂに供給され、ＰＥ１２の出力端子から供給されたデータは配線１３Ｂに供給されない。
【００５３】
一方、ＲＡＭセル１４２に記憶されたデータが、ＰＥ１２側の入力が選択された事を示す値（すなわち、配線１３Ａ側の入力が選択されていない事を示す値）、例えば「１」である間は、マルチプレクサ１４１の制御端子には、「１」に対応する信号、例えばＨレベルの信号が供給される。すると、マルチプレクサ１４１の出力端子は、ＰＥ１２から供給されたデータを出力する。このため、配線１３Ａから供給されるデータが配線１３Ｂに供給されることなく、ＰＥ１２の出力端子から供給されたデータが配線１３Ｂに供給される。
【００５４】
このように、データ入力部１４は、配線１３Ａから供給されるデータとＰＥ１２の出力端子から供給されるデータのうち、いずれか一方のデータを配線１３Ｂに供給する。
【００５５】
次に、図４を用いて、スイッチ部１５の構成と動作を説明する。
【００５６】
まず、スイッチ部１５の構成を説明する。図４に示すように、スイッチ部１５は、マルチプレクサ１５１〜１５４と、ＲＡＭセル１５５〜１５８とから構成される。スイッチ部１５には、スイッチ部１５に対してデータを供給する配線１３Ｃ〜１３Ｆと、スイッチ部１５からデータが供給される配線１３Ｇ〜１３Ｊとがそれぞれ４本ずつ接続されている。
【００５７】
マルチプレクサ１５１は、４つの入力端子と、１つの出力端子と、２つの制御端子と、を備える。４つの入力端子は、それぞれ４本のデータ供給元の配線１３Ｃ〜１３Ｆに接続される。出力端子は、データ供給先の配線１３Ｇに接続される。２つの制御端子は、ＲＡＭセル１５５の２つの出力端子にそれぞれ接続される。
【００５８】
マルチプレクサ１５２〜１５４は、マルチプレクサ１５１と同様の構成をしており、各端子の接続先が異なる。４つの入力端子は、マルチプレクサ１５１と同様に、それぞれ４本のデータ供給元の配線１３Ｃ〜１３Ｆに接続される。出力端子は、それぞれデータ供給先の配線１３Ｈ〜１３Ｊに接続される。２つの制御端子は、ＲＡＭセル１５６〜１５８の２つの出力端子にそれぞれ接続される。
【００５９】
ＲＡＭセル１５５は、２ビットのデータを記憶する記憶素子であり、それぞれ図示しない２つの入力端子と２つの出力端子とを備える。２つの出力端子は、マルチプレクサ１５１の２つの制御端子にそれぞれ接続され、記憶している２ビットのデータを出力する。ＲＡＭセル１５６〜１５８は、ＲＡＭセル１５５と同様の構成であり、２つの出力端子は、それぞれマルチプレクサ１５２〜１５４の２つの制御端子と接続される。
【００６０】
なお、制御部３０は、リコンフィギュラブル回路１０の回路構成の変更時に、設定データ２１に基づいて、マルチプレクサ１５１〜１５４のそれぞれの出力端子と内部でそれぞれ接続する入力端子を示す２ビットのデータを、ＲＡＭセル１５５〜１５８の２つの入力端子からＲＡＭセル１５５〜１５８に書き込む。
【００６１】
次に、スイッチ部１５の動作を説明する。
【００６２】
スイッチ部１５は、配線１３Ｃ〜１３Ｆから１３Ｇ〜１３Ｊへの接続状態を設定する機能を有する。具体的には、マルチプレクサ１５１〜１５４は、データ供給元の配線１３Ｃ〜１３Ｆから、データ供給先の配線１３Ｇ〜１３Ｊそれぞれへ接続する。以下に、マルチプレクサ１５１を例にして、動作の詳細を説明する。
【００６３】
ＲＡＭセル１５５に記憶されたデータが、配線１３Ｃを示す値、例えば「００」である間は、「００」に対応する信号、例えばＬレベルの信号がマルチプレクサ１５１の２つの制御端子に入力される。すると、マルチプレクサ１５１の出力端子は、配線１３Ｃからの入力値を出力する。このため、配線１３Ｃから供給されるデータが配線１３Ｇに供給される。
【００６４】
このように、マルチプレクサ１５１は、ＲＡＭセル１５５に記憶された値に応じて、配線１３Ｇと配線１３Ｃ〜１３Ｆのうちいずれか１本の配線からの入力値を出力する。同様に、マルチプレクサ１５２〜１５４は、それぞれＲＡＭセル１５６〜１５８に記録された値に応じて、配線１３Ｈ〜Ｊへ配線１３Ｃ〜１３Ｆのうちいずれか１本からの入力値を出力する。
【００６５】
次に、図５と図６を用いて、本実施の形態に係るリコンフィギュラブル回路１０におけるデータの流れについて説明する。なお、図５と図６において、データ入力部１４Ａ〜１４Ｆと、スイッチ部１５Ａ〜１５Ｈについては、結線状態を明確にするため簡略化して記載する。
【００６６】
図５は、ＰＥ１２Ａが配線１３に供給したデータをＰＥ１２ＢとＰＥ１２Ｃとが入力し、また、ＰＥ１２Ｄが配線１３に供給したデータをＰＥ１２ＥとＰＥ１２Ｆとが入力する場合のデータの流れを示す図である。なお、ＰＥ１２Ｄ〜Ｆ、データ入力部１４Ｄ〜１４Ｆ及びスイッチ部１５Ｅ〜１５Ｈは、それぞれＰＥ１２Ａ〜Ｃ、データ入力部１４Ａ〜１４Ｃ及びスイッチ部１５Ａ〜１５Ｄと同様に接続され、同様の動作をするため、説明を省略する。
【００６７】
まず、各部の結線状態について説明する。制御部３０は、設定データ２１に基づいて、所定の回路構成を実現するために必要なデータをデータ入力部１４Ａ〜１４Ｃ及びスイッチ部１５Ａ〜１５Ｄ内のＲＡＭセルに書き込む。これに伴い、データ入力部１４Ａ〜１４Ｃ及びスイッチ部１５Ａ〜１５Ｄの結線状態が変更される。
【００６８】
具体的には、データ入力部１４Ａの出力端子はＰＥ１２Ａの出力端子に接続されている方の入力端子から供給されたデータを出力し、データ入力部１４Ｂの出力端子は配線１３に接続されている方の入力端子から供給されたデータを出力し、データ入力部１４Ｃの出力端子は配線１３に接続されている方の入力端子から供給されたデータを出力する。
【００６９】
スイッチ部１５Ａの右側に接続されている２つの配線１３（図４において、配線１３Ｈと配線１３Ｄに相当）は内部で接続される。また、スイッチ部１５Ｂの左側及び右側の上方に接続されている２つの配線１３（図４において、配線１３Ｆと配線１３Ｈに相当）は内部で接続される。さらに、スイッチ部１５Ｂの左側及び右側の下方に接続されている２つの配線１３（図４において、配線１３Ｊと配線１３Ｄに相当）は内部で接続される。
【００７０】
また、スイッチ部１５Ｃの左側及び右側の上方に接続されている２つの配線１３（図４において、配線１３Ｆと配線１３Ｈに相当）は内部で接続される。また、スイッチ部１５Ｃの左側及び右側の下方に接続されている２つの配線１３（図４において、配線１３Ｊと配線１３Ｄに相当）は内部で接続される。さらに、スイッチ部１５Ｄの左側に接続されている２つの配線１３（図４において、配線１３Ｆと配線１３Ｊに相当）は内部で接続される。
【００７１】
次に、データ入力部１４とスイッチ部１５が上述の結線状態にある場合のデータの流れについて説明する。なお、ＰＥ１２の演算内容については説明を省略する。ＰＥ１２Ａは、所定の演算を行い演算結果のデータを出力端子から出力する。出力端子から出力されたデータは、データ入力部１４Ａを介して、配線１３に供給される。このデータは、データ入力部１４やスイッチ部１５を介して配線１３上を伝搬する。
【００７２】
具体的には、データは、ＰＥ１２Ａ→データ入力部１４Ａ→スイッチ部１５Ｂ→データ入力部１４Ｂ→スイッチ部１５Ｃ→ＰＥ１２Ｃ、という経路で配線１３上を伝搬する。
【００７３】
この状態において、ＰＥ１２Ｂ及びＰＥ１２Ｃは、配線１３上に伝搬したデータを、それぞれの入力端子から入力することができる。
【００７４】
図６は、ＰＥ１２Ａが配線１３に供給したデータをＰＥ１２Ｄが入力し、ＰＥ１２Ｂが配線１３に供給したデータをＰＥ１２Ｅが入力し、ＰＥ１２Ｃが配線１３に供給したデータをＰＥ１２Ｆが入力する場合のデータの流れを示す図である。なお、ＰＥ１４Ｂ、１４Ｅ及びＰＥ１４Ｃ、１４Ｆは、ＰＥ１４Ａ、１４Ｄと同様に接続され、同様の動作をするため、ここでは説明を省略する。また、データ入力部１４Ｂ、１４Ｅ及びデータ入力部１４Ｃ、１４Ｆは、データ入力部１４Ａ、１４Ｄと同様に接続され、同様の動作をするため、ここでは説明を省略する。また、スイッチ部１５Ｃ、１５Ｇ並びにスイッチ部１５Ｄ、１５Ｈは、スイッチ部１５Ｂ、１５Ｆと同様に接続され、同様の動作をするため、ここでは説明を省略する。
【００７５】
まず、各部の結線状態について説明する。制御部３０は、回路構成を変更するために、データ入力部１４Ａ、１４Ｄ及びスイッチ部１５Ａ、１５Ｂ、１５Ｅ、１５Ｆ内のＲＡＭセルに書き込むデータを変更する。これに伴い、データ入力部１４Ａ、１４Ｄ及びスイッチ部１５Ａ、１５Ｂ、１５Ｅ、１５Ｆの結線状態は変更される。
【００７６】
具体的には、データ入力部１４Ａの出力端子はＰＥ１２Ａの出力端子に接続されている方の入力端子から供給されたデータを出力し、データ入力部１４Ｄの出力端子は配線１３に接続されている方の入力端子から供給されたデータを出力する。
【００７７】
スイッチ部１５Ａの右側に接続されている２つの配線１３（図４において、配線１３Ｈと配線１３Ｄに相当）は内部で接続される。また、スイッチ部１５Ｂの左側上方と下側右方とに接続されている配線１３（図４において、配線１３Ｆと配線１３Ｉに相当）は内部で接続される。さらに、スイッチ部１５Ｂの左側下方と下側左方とに接続されている配線１３（図４において、配線１３Ｊと配線１３Ｅに相当）は内部で接続される。
【００７８】
スイッチ部１５Ｅの右側に接続されている２つの配線１３（図４において、配線１３Ｈと配線１３Ｄに相当）は内部で接続される。また、スイッチ部１５Ｆの上側右方と左側下方とに接続されている配線１３（図４において、配線１３Ｃと配線１３Ｊに相当）は内部で接続される。さらに、スイッチ部１５Ｆの上側左方と左側上方とに接続されている配線１３（図４において、配線１３Ｇと配線１３Ｆに相当）は内部で接続される。
【００７９】
次に、データ入力部１４とスイッチ部１５が上述の結線状態にある場合のデータの流れについて説明する。ＰＥ１２Ａは、所定の演算を行い演算結果のデータを出力端子から出力する。出力端子から出力されたデータは、データ入力部１４Ａを介して、配線１３に供給される。このデータは、データ入力部１４やスイッチ部１５を介して配線１３上を伝搬する。
【００８０】
具体的には、データは、ＰＥ１２Ａ→データ入力部１４Ａ→スイッチ部１５Ｂ→スイッチ部１５Ｆ→スイッチ部１５Ｅ→ＰＥ１２Ｄ、という経路で配線１３上を伝搬する。
【００８１】
この状態において、ＰＥ１２Ｄは、配線１３上に伝搬したデータを、入力端子から入力することができる。
【００８２】
以上に示したように、本実施の形態に係る情報処理装置１０００によれば、さも双方向バスを用いたバスのように扱うことが可能になる。また、このバスはマルチプレクサを介して接続されているため、誤った構成情報の設定時や、構成情報の過渡的な変化時にもバスの衝突が発生しない。
【００８３】
リコンフィギュラブル回路１０の回路構成が変更される場合、出力データ入力部１４やスイッチ部１５の接続状態が過渡的に異常な状態となる可能性がある。かかる場合に、仮に複数のＰＥ１２から同時にデータが出力されても、出力データ入力部１４やスイッチ部１５を介して従来互いに接続されていた配線１３が個々の出力毎の配線に変更された為、同時に電圧が印加されることはなく、データの衝突は発生しない。
【００８４】
また、図１２（Ａ）〜（Ｃ）を用いて説明したように、複数のバッファ（ドライバー）から１つの配線に電圧を印加する場合、遅延時間の算出には他のバッファの出力の状態を考慮する必要がある。本実施の形態に係る情報処理装置１０００によれば、スイッチ部１５がマルチプレクサから構成されるため、スイッチ部１５において１つの配線で一方向にしかデータが伝搬せず、接続された一連の配線に対して電圧を印加するバッファを１つに限定できる。従って、バッファから各ＰＥまでの遅延時間を算出する際に、他のバッファの出力の状態を考慮する必要がない。このため、構成情報をどの様に変化させても、電圧を印加しなければならない配線の距離に基づいて、精度の高い遅延計算を簡単に行うことが可能となる。
【００８５】
また、どこからもデータが供給されない経路がある場合には、この経路はループを形成している事になり、発振するおそれがある。このため、各経路は、必ずいずれかのＰＥ１２の出力端子に接続され、データが供給されるように設定データ２１を作成することが望ましい。あるいは、ＰＥ１２の出力端子からデータを供給する代わりに、Ｉ／Ｏ部１１などからデータを供給するようにしてもよい。
【００８６】
（第１の実施形態の変形例）
第１の実施形態では、図２に示すように、ＰＥ１２を基準として同一方向（本実施の形態では下方向）であってＰＥ１２の近傍に配置された配線１３の間にデータ入力部１４を配置した。しかし、データ入力部１４は、ＰＥ１２を基準として必ずしも同一方向に配置された配線１３の間に配置する必要はない。以下、図７、図８を用いて、第１の実施形態の変形例に係る情報処理装置について説明する。なお、第１の実施形態の変形例に係る情報処理装置は、リコンフィギュラブル回路以外は第１の実施形態に係る情報処理装置と同様であるため、リコンフィギュラブル回路についてのみ説明する。
【００８７】
図７は、本発明の第１の実施形態の変形例に係る情報処理装置が備えるリコンフィギュラブル回路１０１０を説明するための図である。リコンフィギュラブル回路１０１０は、リコンフィギュラブル回路１０とは、データ入力部１４の配置のみが異なる。
【００８８】
図７に示すように、図中で上から奇数番目の行に配置されるＰＥ１２に接続されるデータ入力部１４は、ＰＥ１２を基準として下方向に配置された配線１３の間に配置され、図中で上から偶数番目の行に配置されるＰＥ１２に接続されるデータ入力部１４は、ＰＥ１２を基準として上方向に配置された配線１３の間に配置される。
【００８９】
次に、図８を用いて、リコンフィギュラブル回路１０１０におけるデータの流れについて説明する。
【００９０】
図８は、ＰＥ１２Ａが配線１３に供給したデータをＰＥ１２Ｄが入力し、ＰＥ１２Ｂが配線１３に供給したデータをＰＥ１２Ｅが入力し、ＰＥ１２Ｃが配線１３に供給したデータをＰＥ１２Ｆが入力する場合のデータの流れを示す図である。このように、リコンフィギュラブル回路１０１０に実行させる動作は、図６に示したリコンフィギュラブル回路１０の動作と同様である。ここでは、ＰＥ１２Ａが配線１３に供給したデータをＰＥ１２Ｄが入力する動作に関連する部分のみを説明する。
【００９１】
まず、各部の結線状態について説明する。制御部３０は、設定データ２１に基づいて、データ入力部１４Ａ、１４Ｄ及びスイッチ部１５Ａ、１５Ｂ内のＲＡＭセルに必要なデータを書き込む。これに伴い、データ入力部１４Ａ、１４Ｄ及びスイッチ部１５Ａ、１５Ｂは結線状態を変更する。
【００９２】
具体的には、データ入力部１４Ａの出力端子はＰＥ１２Ａの出力端子に接続されている方の入力端子から供給されたデータを出力し、データ入力部１４Ｄの出力端子は配線１３に接続されている方の入力端子から供給されたデータを出力する。
【００９３】
スイッチ部１５Ａの右側に接続されている２つの配線１３（図４において、配線１３Ｈと配線１３Ｄに相当）は内部で接続される。また、スイッチ部１５Ｂの左側に接続されている２つの配線１３（図４において、配線１３Ｆと配線１３Ｊに相当）は内部で接続される。
【００９４】
次に、データ入力部１４とスイッチ部１５が上述の結線状態にある場合のデータの流れについて説明する。ＰＥ１２Ａは、所定の演算を行い演算結果のデータを出力端子から出力する。出力端子から出力されたデータは、データ入力部１４Ａを介して、配線１３に供給される。このデータは、データ入力部１４やスイッチ部１５を介して配線１３に伝搬する。
【００９５】
具体的には、データは、ＰＥ１２Ａ→データ入力部１４Ａ→スイッチ部１５Ｂ→ＰＥ１２Ｄ、という経路で配線１３上を伝搬する。
【００９６】
このように、変形例に係る情報処理装置によれば、上下方向に隣接する所定のＰＥ１２間でデータを受け渡しする際のデータが伝搬する経路を短くすることができる。なお、変形例に係る情報処理装置においても、配線１３上でのデータの衝突を防止する効果、遅延時間の計算を簡略化できる効果が得られる。
【００９７】
（第２の実施形態）
第１の実施形態では、図３及び図４に示すように、データ入力部１４及びスイッチ部１５はマルチプレクサから構成されていた。しかし、データ入力部及びスイッチ部はＡＮＤゲートやＯＲゲートなどの論理ゲートから構成されていてもよい。以下、図９、図１０を用いて、データ入力部及びスイッチ部が論理ゲートから構成されている場合について説明する。なお、リコンフィギュラブルハードウェアの全体構成については、第１の実施形態と同様であるため説明を省略する。
【００９８】
図９に示すように、ＰＥ１２Ａ〜Ｆから配線１３に供給されたデータは、それぞれデータ入力部１６Ａ〜Ｆを介してバス上に供給される。図９に示すように、図面上で縦方向及び横方向に隣接するＰＥは、互いに構成の異なるデータ入力部に接続される。具体的には、ＰＥ１２Ａ、Ｃ及びＥにそれぞれ接続されるデータ入力部１６Ａ、Ｃ及びＥは、ＰＥ１２Ｂ、Ｄ及びＦに接続されるデータ入力部１６Ａ、Ｃ及びＥとは構成が異なる。以下、図９を参照しながら、データ入力部１６Ａ〜Ｆについて説明する。
【００９９】
データ入力部１６Ａは、ＡＮＤゲート１６１Ａと、ＯＲゲート１６２Ａと、ＯＲゲート１６３Ａと、ＲＡＭセル１６４Ａとを備える。なお、データ入力部１６Ｃ及びＥは、データ入力部１６Ａと同様の構成であるため説明を省略する。
【０１００】
ＡＮＤゲート１６１Ａは、ＰＥ１２Ａから供給されたデータが示す論理レベルと、ＲＡＭセル１６４Ａから供給されたデータが示す論理レベルとの論理積を示すデータを、ＯＲゲート１６２Ａの一方の入力端子に供給する。
【０１０１】
ＯＲゲート１６２Ａは、ＡＮＤゲート１６１Ａから供給されたデータが示す論理レベルと、後段のデータ入力部１６Ｂに含まれるＲＡＭセル１６４Ｂから供給されたデータが示す論理レベルを反転させた論理レベルとの論理和を示すデータを、ＯＲゲート１６３Ａの一方の入力端子に供給する。
【０１０２】
ＯＲゲート１６３Ａは、ＯＲゲート１６２Ａから供給されたデータが示す論理レベルと、前段のデータ入力部１６Ｄに含まれるＡＮＤゲート１６３Ｄから供給されたデータが示す論理レベルとの論理和を示すデータを、後段のＰＥであるＰＥ１２Ｂと後段のデータ入力部１６Ｂに含まれるＡＮＤゲート１６３Ｂの一方の入力端子とに供給する。
【０１０３】
ＲＡＭセル１６４Ａは、記憶しているデータをＡＮＤゲート１６１Ａの一方の入力端子と前段のデータ入力部１６Ｄに含まれるＡＮＤゲート１６２Ｄの一方の入力端子とに供給する。
【０１０４】
次に、データ入力部１６Ｂについて説明する。データ入力部１６Ｂは、ＯＲゲート１６１Ｂと、ＡＮＤゲート１６２Ｂと、ＡＮＤゲート１６３Ｂと、ＲＡＭセル１６４Ｂとを備える。なお、データ入力部１６Ｄ及びＦは、データ入力部１６Ｂと同様の構成であるため説明を省略する。
【０１０５】
ＯＲゲート１６１Ｂは、ＰＥ１２Ｂから供給されたデータが示す論理レベルと、ＲＡＭセル１６４Ｂから供給されたデータが示す論理レベルとの論理和を示すデータを、ＡＮＤゲート１６２Ｂの一方の入力端子に供給する。
【０１０６】
ＡＮＤゲート１６２Ｂは、ＯＲゲート１６１Ｂから供給されたデータが示す論理レベルと、後段のデータ入力部１６Ｃに含まれるＲＡＭセル１６４Ｃから供給されたデータが示す論理レベルを反転させた論理レベルとの論理積を示すデータを、ＡＮＤゲート１６３Ｂの他方の入力端子に供給する。
【０１０７】
ＡＮＤゲート１６３Ｂは、ＡＮＤゲート１６２Ｂから供給されたデータが示す論理レベルと、前段のデータ入力部１６Ａに含まれるＯＲゲート１６３Ａから供給されたデータが示す論理レベルとの論理積を示すデータを、後段のＰＥであるＰＥ１２Ｃと後段のデータ入力部１６Ｃに含まれるＯＲゲート１６３Ｃの一方の入力端子とに供給する。
【０１０８】
ＲＡＭセル１６４Ｂは、記憶しているデータをＯＲゲート１６１Ｂの一方の入力端子と前段のデータ入力部１６Ａに含まれるＯＲゲート１６２Ａの他方の入力端子とに供給する。
【０１０９】
次に、データ入力部１６の動作を具体的な例を用いて説明する。
【０１１０】
例えば、ＰＥ１２Ａから配線１３にデータを供給する場合、ＲＡＭセル１６４Ａに論理レベルが「１」を示すデータを書き込む。すると、ＰＥ１２Ａから供給されたデータがＡＮＤゲート１６１Ａから出力される。同時に、前段のデータ入力部１６Ｄに対してマスク処理を行う。具体的には、前段のデータ入力部１６Ｄに含まれるＡＮＤゲート１６２Ｄの一方の入力端子に論理レベルが「０」を示すデータを供給する。すると、ＯＲゲート１６３Ａの入力端子のうち配線１３が接続される方の入力端子に論理レベルが「０」を示すデータが供給される。従って、ＰＥ１２Ａから配線１３に所望の論理レベルを有するデータを供給することができる。ただし、データ入力部１６Ａが後段のデータ入力部１６Ｂによりマスク処理されている場合、すなわち、後段のデータ入力部１６Ｂに含まれるＲＡＭセル１６４Bに論理レベルが「０」を示すデータが書き込まれている場合、配線１３には論理レベルが「１」を示す固定データが供給される。
【０１１１】
一方、ＰＥ１２Ａから配線１３にデータを供給しない場合、ＲＡＭセル１６４Ａに論理レベルが「０」を示すデータを書き込む。すると、論理レベルが「０」を示すデータがＡＮＤゲート１６１Ａから出力される。このとき、前段のデータ入力部１６Ｄに対してマスク処理は行わない。このため、ＯＲゲート１６３Ａの入力端子のうち配線１３が接続される方の入力端子には、ＡＮＤゲート１６３Ｄが出力したデータが供給される。従って、データ供給元の配線１３から供給されたデータをそのままデータ供給先の配線１３に供給することができる。ただし、上述のように、データ入力部１６Ａが後段のデータ入力部１６Ｂによりマスク処理されている場合、配線１３には論理レベルが「１」を示す固定データが供給される。
【０１１２】
また、例えば、ＰＥ１２Ｂから配線１３にデータを供給する場合、ＲＡＭセル１６４Ｂに論理レベルが「０」を示すデータを書き込む。すると、ＰＥ１２Ｂから供給されたデータがＯＲゲート１６１Ｂから出力される。同時に、前段のデータ入力部１６Ａに対してマスク処理を行う。具体的には、前段のデータ入力部１６Ａに含まれるＯＲゲート１６２Ａの一方の入力端子に論理レベルが「１」を示すデータを供給する。すると、ＡＮＤゲート１６３Ｂの入力端子のうち配線１３が接続される方の入力端子に論理レベルが「１」を示すデータが供給される。従って、ＰＥ１２Ｂから配線１３に所望の論理レベルを有するデータを供給することができる。ただし、データ入力部１６Ｂが後段のデータ入力部１６Ｃによりマスク処理されている場合、すなわち、後段のデータ入力部１６Ｃに含まれるＲＡＭセル１６４Ｃに論理レベルが「１」を示すデータが書き込まれている場合、配線１３には論理レベルが「０」を示す固定データが供給される。
【０１１３】
一方、ＰＥ１２Ｂから配線１３にデータを供給しない場合、ＲＡＭセル１６４Ｂに論理レベルが「１」を示すデータを書き込む。すると、論理レベルが「１」を示すデータがＯＲゲート１６１Ｂから出力される。このとき、前段のデータ入力部１６Ａに対してマスク処理は行わない。このため、ＡＮＤゲート１６３Ｂの入力端子のうち配線１３が接続される方の入力端子には、ＯＲゲート１６３Ａが出力したデータが供給される。従って、データ供給元の配線１３から供給されたデータをそのままデータ供給先の配線１３に供給することができる。ただし、上述のように、データ入力部１６Ｂが後段のデータ入力部１６Ｃによりマスク処理されている場合、配線１３には論理レベルが「０」を示す固定データが供給される。
【０１１４】
上述のように、データ入力部１６の構成は、前段のデータ入力部１６及び後段のデータ入力部１６とは異なる。かかる構成において、ＲＡＭセルに所定の論理レベルを有するデータを書き込むことにより、ＰＥ１２から配線１３に選択的にデータを供給することが可能となる。
【０１１５】
次に、スイッチ部１７について説明する。なお、理解を容易にするため、図１０には、スイッチ部１７のうち配線１３Ｄ、Ｆ、Ｈ及びＪ間の接続に関する構成のみを示す。スイッチ部１７は、他の配線間についても図１０に示す構成と同様の構成を有することにより、図４に示すスイッチ部１５と同様に全ての配線の接続先を任意に設定することができる。
【０１１６】
図１０に示すように、スイッチ部１７は、マルチプレクサの代わりに論理ゲートから構成された経路選択部を備える。経路選択部は、例えば、図９に示したデータ入力部１６Ａ（又は、Ｃ、Ｅ）と同様の構成である経路選択部１７Ａ、又は、データ入力部１６Ｂ（又は、Ｄ、Ｆ）と同様の構成である経路選択部１７Ｂのいずれかとなる。経路選択部が、経路選択部１７Ａ、経路選択部１７Ｂのいずれになるかは、データの供給先と供給元のデータ入力部１６の構成による。
【０１１７】
具体的には、例えば、データの供給先と供給元のデータ入力部１６が共にデータ入力部１６Ａ（又は、Ｃ、Ｅ）であれば、経路選択部は経路選択部１７Ｂとなる。反対に、データの供給先と供給元のデータ入力部１６が共にデータ入力部１６Ｂ（又は、Ｄ、Ｆ）であれば、経路選択部は経路選択部１７Ａとなる。
【０１１８】
すなわち、全てのデータ入力部１６と全ての経路選択部は、互いに異なる構成を有するデータ入力部１６（又は、経路選択部）からデータを供給され、互いに異なる構成を有するデータ入力部１６（又は、経路選択部）にデータを供給する。本実施形態では、図１０に示すように、スイッチ部１７は、経路選択部１７Ａと経路選択部１７Ｂとを含むものとする。
【０１１９】
なお、図９では、理解を容易にするためにスイッチ部１７を省略しているため、構成が異なるデータ入力部１６同士が接続されている。しかし、例えば、データ入力部１６間に、経路選択部（スイッチ部１７）が１つ介在する場合、データ入力部１６は全て同様の構成となる。また、この場合、全ての経路選択部の構成は、データ入力部１６と異なる構成となる。
【０１２０】
図１０に示すように、経路選択部１７Ａは、ＡＮＤゲート１７１Ａと、ＯＲゲート１７２Ａ、１７３Ａと、ＲＡＭセル１７４Ａとを備え、経路選択部１７Ｂは、ＯＲゲート１７１Ｂと、ＯＲゲート１７２Ｂ、１７３Ｂと、ＲＡＭセル１７４Ｂとを備える。
【０１２１】
ＡＮＤゲート１７１Ａは、配線１３Ｆから供給されたデータが示す論理レベルと、ＲＡＭセル１７４Ａから供給されたデータが示す論理レベルとの論理積を示すデータを、ＯＲゲート１７２Ａの一方の入力端子に供給する。
【０１２２】
ＯＲゲート１７２Ａは、ＡＮＤゲート１７１Ａから供給されたデータが示す論理レベルと、配線１３Ｈを介してデータが供給される図示しないデータ供給先のデータ入力部（例えば、データ入力部１６Ｂと同様の構成のデータ入力部）に含まれるＲＡＭセル（例えば、ＲＡＭセル１６４Ｂに相当するＲＡＭセル）から配線１８Ａを介して供給されたデータが示す論理レベルを反転させた論理レベルとの論理和を示すデータを、ＯＲゲート１７３Ａの一方の入力端子に供給する。
【０１２３】
ＯＲゲート１７３Ａは、ＯＲゲート１７２Ａから供給されたデータが示す論理レベルと、配線１３Ｄから供給されたデータが示す論理レベルとの論理和を示すデータを、配線１３Ｈに供給する。
【０１２４】
ＲＡＭセル１７４Ａは、ＡＮＤゲート１７１Ａの一方の入力端子と、配線１３Ｄを介してデータを供給する図示しないデータ供給元のデータ入力部（例えば、データ入力部１６Ｂと同様の構成のデータ入力部）に含まれるＡＮＤゲート（例えば、ＡＮＤゲート１６２Ｂに相当するＡＮＤゲート）の一方の入力端子とに、記憶しているデータを、配線１８Ｂを介して供給する。
【０１２５】
ＯＲゲート１７１Ｂは、配線１３Ｄから供給されたデータが示す論理レベルと、ＲＡＭセル１７４Ｂから供給されたデータが示す論理レベルとの論理和を示すデータを、ＡＮＤゲート１７２Ｂの一方の入力端子に供給する。
【０１２６】
ＡＮＤゲート１７２Ｂは、ＯＲゲート１７１Ｂから供給されたデータが示す論理レベルと、配線１３Ｊを介してデータが供給される図示しないデータ供給先のデータ入力部（例えば、データ入力部１６Ａと同様の構成のデータ入力部）に含まれるＲＡＭセル（例えば、ＲＡＭセル１６４Ａに相当するＲＡＭセル）から配線１８Ｃを介して供給されたデータが示す論理レベルを反転させた論理レベルとの論理積を示すデータを、ＡＮＤゲート１７３Ｂの一方の入力端子に供給する。
【０１２７】
ＡＮＤゲート１７３Ｂは、ＡＮＤゲート１７２Ｂから供給されたデータが示す論理レベルと、配線１３Ｆから供給されたデータが示す論理レベルとの論理積を示すデータを、配線１３Ｊに供給する。
【０１２８】
ＲＡＭセル１７４Ｂは、ＯＲゲート１７１Ｂの一方の入力端子と、配線１３Ｆを介してデータを供給する図示しないデータ供給元のデータ入力部（例えば、データ入力部１６Ａと同様の構成のデータ入力部）に含まれるＯＲゲート（例えば、ＯＲゲート１６２Ａに相当するＯＲゲート）の一方の入力端子とに、記憶しているデータを、配線１８Ｄを介して供給する。
【０１２９】
次に、経路選択部１７Ａの動作を具体的な例を用いて説明する。
【０１３０】
例えば、配線１３Ｆから供給されたデータを配線１３Ｈに供給する場合、ＲＡＭセル１７４Ａに論理レベルが「１」を示すデータを書き込む。すると、配線１３Ｆから供給されたデータがＡＮＤゲート１７１Ａから出力される。同時に、配線１３Ｄを介してデータを供給する図示しないデータ供給元のデータ入力部（例えば、データ入力部１６Ｂとする）に対してマスク処理を行う。具体的には、データ入力部１６Ｂに含まれるＡＮＤゲート１６２Ｂの一方の入力端子に論理レベルが「０」を示すデータを供給する。すると、ＯＲゲート１７３Ａの入力端子のうち配線１３Ｄが接続される方の入力端子に論理レベルが「０」を示すデータが供給される。従って、配線１３Ｆから供給されたデータを配線１３Ｈに供給することができる。ただし、経路選択部１７Ａが、配線１３Ｈを介してデータが供給される図示しないデータ供給先のデータ入力部（例えば、データ入力部１６Ｄとする）によりマスク処理されている場合、すなわち、データ入力部１６Ｄに含まれるＲＡＭセル１６４Ｄに論理レベルが「０」を示すデータが書き込まれている場合、配線１３Ｈには論理レベルが「１」を示す固定データが供給される。
【０１３１】
一方、配線１３Ｄから供給されたデータを配線１３Ｈに供給する場合、ＲＡＭセル１７４Ａに論理レベルが「０」を示すデータを書き込む。すると、論理レベルが「０」を示すデータがＡＮＤゲート１７１Ａから出力される。このとき、データ入力部１６Ｂに対してマスク処理は行わない。このため、ＯＲゲート１７３Ａの入力端子のうち配線１３Ｄが接続される方の入力端子には、ＡＮＤゲート１６３Ｂが出力したデータが供給される。従って、配線１３Ｄから供給されたデータを配線１３Ｈに供給することができる。ただし、上述のように、経路選択部１７Ａが、入力部１６Ｄによりマスク処理されている場合、配線１３Ｈには論理レベルが「１」を示す固定データが供給される。
【０１３２】
経路選択部１７Ｂの動作については、論理レベルを除き経路選択部１７Ａの動作と同様であり、また、データ入力部１６Ｂの動作と同様であるため、説明を省略する。
【０１３３】
以上に説明したように、マルチプレクサの代わりに論理ゲートを用いて、データ入力部及びスイッチ部を構成することが可能である。この場合、マルチプレクサを用いる場合に比べ、データが配線１３上を通過する時の論理ゲートの段数が少なくなるので遅延を減少させるという効果がある。
【０１３４】
なお、この発明は上記実施の形態及び変形例に限定されず、種々の変形及び応用が可能である。
【０１３５】
上記実施の形態では、スイッチ部１５は、データ供給元の配線１３と、データ供給先の配線１３とが４本ずつ接続され、４つ入力端子を備える４つのマルチプレクサを備えていた。しかし、スイッチ部に接続されるデータ供給元の配線１３の本数、データ供給先の配線１３の本数、マルチプレクサが備える入力端子の数、及び、マルチプレクサの数は任意である。なお、スイッチ部が備えるマルチプレクサは、データ供給元の配線１３の本数分の入力端子を備えていることが望ましい。また、スイッチ部は、データ供給先の配線１３の本数分のマルチプレクサを備えていることが望ましい。
【０１３６】
また、データ入力部１４は、上記実施の形態では、ＰＥ１２を基準として下方向（変形例では下方向又は上方向）に配置された配線１３の間に配置されていた。しかし、配線１３の間に配置される限り、データ入力部１４はどこに配置されてもよい。
【０１３７】
また、上記実施の形態では、ＰＥ１２の入力端子は、ＰＥ１２の出力端子が接続されたデータ入力部１４のデータ供給元の配線１３に接続されていた。しかし、ＰＥ１２の入力端子は、他の配線１３に接続されてもいてもよい。
【０１３８】
上記実施の形態では、ＲＡＭセル１４２（又は、ＲＡＭセル１５５〜１５８）に記憶されたデータをマルチプレクサ１４１（又は、マルチプレクサ１５１〜１５４）の制御端子に供給することにより、マルチプレクサ１４１（又は、マルチプレクサ１５１〜１５４）内部の結線状態を制御していた。しかし、ＲＡＭセルを用いずに、例えば、フリップフロップやラッチを用いてマルチプレクサの制御端子にデータを供給することにより、結線状態を制御してもよい。
【０１３９】
上記実施の形態では、リコンフィギュラブルハードウェア１００が通常の処理を行う通常モードにおいて、動的にデータ入力部１４やスイッチ部１５の接続状態を変更する例を示した。しかし、本発明は、通常の動作モードのみならず、リコンフィギュラブルハードウェア１００の動作をチェックするスキャンモードにおいても有用である。
【０１４０】
スキャンモードにおいては、制御部３０に変えて図示しない外部の制御部の制御のもと、マルチプレクサの制御端子に接続されたＲＡＭセルに書き込むデータを変更することにより、マルチプレクサの接続状態を変更すればよい。あるいは、ＲＡＭセルを用いず、直接マルチプレクサの制御端子にデータを供給する構成としてもよい。
【０１４１】
なお、スキャンモードにおいて、どこからもデータが供給されない経路がある場合、通常のツールでは完全にスキャンすることができない。このため、各経路に対しては、必ずいずれかのＰＥ１２からデータを供給する。
【図面の簡単な説明】
【０１４２】
【図１】本発明の第１の実施形態に係る情報処理装置の全体構成を示すブロック図である。
【図２】図１に示すリコンフィギュラブル回路を説明するための図である。
【図３】図２に示すリコンフィギュラブル回路のデータ入力部を説明するための図である。
【図４】図２に示すリコンフィギュラブル回路のスイッチ部を説明するための図である。
【図５】図２に示すリコンフィギュラブル回路の動作を説明するための第１の図である。
【図６】図２に示すリコンフィギュラブル回路の動作を説明するための第２の図である。
【図７】本発明の第１の実施形態の変形例に係る情報処理装置が備えるリコンフィギュラブル回路を説明するための図である。
【図８】図７に示すリコンフィギュラブル回路の動作を説明するための図である。
【図９】本発明の第２の実施形態に係る情報処理装置が備えるリコンフィギュラブル回路のデータ入力部を説明するための図である。
【図１０】本発明の第２の実施形態に係る情報処理装置が備えるリコンフィギュラブル回路のスイッチ部を説明するための図である。
【図１１】従来のリコンフィギュラブル回路の動作を説明するための図である。
【図１２】（Ａ）〜（Ｃ）は、３ステートバッファの状態とデータが伝搬する際の遅延時間との関係を説明するための図である。
【図１３】（Ａ）、（Ｂ）は、スイッチ部の各スイッチの状態とデータが伝搬する際の遅延時間との関係を説明するための図である。
【符号の説明】
【０１４３】
１０  リコンフィギュラブル回路（データ伝送回路）
１１  Ｉ／Ｏ部
１２  ＰＥ（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ）
１２Ａ〜Ｆ  ＰＥ
１３  配線
１３Ａ〜Ｊ  配線
１４  データ入力部
１４Ａ〜Ｆ  データ入力部
１４１  マルチプレクサ
１４２  ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セル
１５  スイッチ部
１５Ａ〜Ｈ  スイッチ部
１５１〜１５４  マルチプレクサ
１５５〜１５８  ＲＡＭセル
１６Ａ〜Ｆ  データ入力部
１６１Ａ、１６２Ｂ、１６３Ｂ、１６１Ｃ、１６２Ｄ、１６３Ｄ、１６１Ｅ、１６２Ｆ、１６３Ｆ  ＡＮＤゲート
１６２Ａ、１６３Ａ、１６１Ｂ、１６２Ｃ、１６３Ｃ、１６１Ｄ、１６２Ｅ、１６３Ｅ、１６１Ｆ  ＯＲゲート
１６４Ａ〜Ｆ  ＲＡＭセル
１７  スイッチ部
１７Ａ、１７Ｂ  経路選択部
１７１Ａ、１７２Ｂ、１７３Ｂ  ＡＮＤゲート
１７１Ｂ、１７２Ａ、１７３Ａ  ＯＲゲート
１７４Ａ、１７４Ｂ  ＲＡＭセル
【図１】
2009140171.tif 000003
【図２】
2009140171.tif 000004
【図３】
2009140171.tif 000005
【図４】
2009140171.tif 000006
【図５】
2009140171.tif 000007
【図６】
2009140171.tif 000008
【図７】
2009140171.tif 000009
【図８】
2009140171.tif 000010
【図９】
2009140171.tif 000011
【図１０】
2009140171.tif 000012
【図１１】
2009140171.tif 000013
【図１２】
2009140171.tif 000014
【図１３】
2009140171.tif 000015