(57)【特許請求の範囲】
【請求項１】
論理を再構成可能な複数のブロックと、
前記複数のブロックの間に配置され、複数の交差部を有する第１の配線部と、
前記複数の交差部に配置され、第１の機能回路の論理が分割して搭載される２以上のブロック間で情報を転送する前記第１の配線部の経路を決定する複数のルータ部と、
前記複数のブロックの周囲に配置される複数の第２の配線部と、
前記複数の第２の配線部の間に配置され、第２の配線部間の接続を切り替えることで、第２の機能回路の論理が分割して搭載される２以上のブロックを相互に接続する複数の配線切替部と
を備えることを特徴とする半導体装置。
【請求項２】
前記複数のブロックは、縦横に配列され、
前記複数の配線切替部は、前記複数の第２の配線部の各々において、隣接する第２の配線部に対向する位置に配置されること
を特徴とする請求項１記載の半導体装置。
【請求項３】
前記複数の配線切替部の各々は、
互いに対向する一対の第２の配線部上にそれぞれ配置される第１の切替部および第２の切替部と、
前記第１の切替部と前記第２の切替部とを互いに接続する配線を有する接続配線部と
を備え、
前記第１の切替部および前記第２の切替部の各々は、対応する回路ブロック内の配線と、対応する第２の配線部における時計回り方向から接続される配線と、対応する第２の配線部における反時計回り方向から接続される配線と、前記接続配線部の配線とのいずれか２つを互いに接続するスイッチ部を備えること
を特徴とする請求項２記載の半導体装置。
【請求項４】
前記複数のブロックの各々は、ブロック内の配線を前記ルータ部または対応する第２の配線部に接続する入出力制御部を備え、
前記複数の配線切替部の各々は、
互いに対向する一対の第２の配線部上にそれぞれ配置される第１の切替部および第２の切替部と、
前記第１の切替部と前記第２の切替部とを互いに接続する配線を有する接続配線部と
を備え、
前記第１の切替部および前記第２の切替部の各々は、対応する第２の配線部における時計回り方向から接続される配線と、対応する第２の配線部における反時計回り方向から接続される配線と、前記接続配線部の配線とのいずれか２つを互いに接続するスイッチ部を備えること
を特徴とする請求項２記載の半導体装置。
【請求項５】
前記複数の第２の配線部、前記第１の切替部および前記第２の切替部は、前記複数のブロック内の要素を使用して再構成可能に設けられること
を特徴とする請求項３または請求項４項記載の半導体装置。
【請求項６】
前記複数のブロックの各々は、
機能回路の論理をブロック内に構築する回路情報を記憶する第１の記憶部と、
前記第１の切替部と前記第２の切替部とによる配線の接続仕様を示す接続情報を記憶する第２の記憶部と
を備え、
前記第１の切替部および前記第２の切替部は、前記第２の記憶部が保持する接続情報に基づいて配線の接続を切り替えること
を特徴とする請求項３ないし請求項５のいずれか１項記載の半導体装置。
【請求項７】
前記複数のブロックに搭載される機能回路は、情報の転送先のブロックを示す転送先情報と転送する情報とを含むパケットを生成する機能を有し、
前記複数のルータ部の各々は、パケットを転送する第１の配線部の経路をパケットに含まれる転送先情報に基づいて決定すること
を特徴とする請求項１ないし請求項６のいずれか１項記載の半導体装置。
【請求項８】
複数の前記第１の機能回路の論理の各々が、２以上のブロックをそれぞれ含む複数のブロック群の各々のブロックに分割して搭載され、
前記第１の配線部および前記複数のルータ部は、前記複数のブロック群の各々におけるブロック間での情報の転送に共通に使用され、
前記複数の第２の配線部および前記複数の配線切替部は、前記第２の機能回路の論理が分割して搭載された２以上のブロック間での情報の転送に専用に使用されること
を特徴とする請求項１ないし請求項７のいずれか１項記載の半導体装置。
【請求項９】
論理を再構成可能な複数のブロックを含む半導体装置と、
前記複数のブロックの論理を再構成する回路情報を記憶する記憶装置と、
前記記憶装置に記憶された回路情報を前記半導体装置に書き込む制御装置と
を備える情報処理装置において、
前記半導体装置は、
前記複数のブロックの間に配置され、複数の交差部を有する第１の配線部と、
前記複数の交差部に配置され、第１の機能回路の論理が分割して搭載される２以上のブロック間で情報を転送する前記第１の配線部の経路を決定する複数のルータ部と、
前記複数のブロックの周囲に配置される複数の第２の配線部と、
前記複数の第２の配線部の間に配置され、第２の配線部間の接続を切り替えることで、第２の機能回路の論理が分割して搭載される２以上のブロックを相互に接続する複数の配線切替部と
を備えることを特徴とする情報処理装置。
【請求項１０】
論理を再構成可能な複数のブロックと、前記複数のブロックの間に配置され、複数の交差部を有する第１の配線部と、前記複数の交差部に配置され、２以上のブロック間で情報を転送する前記第１の配線部の経路を決定する複数のルータ部と、前記複数のブロックの周囲に配置される複数の第２の配線部と、前記複数の第２の配線部の間に配置され、第２の配線部間の接続を切り替える複数の配線切替部とを含む半導体装置の論理の再構成方法において、
前記半導体装置の論理を再構成する制御装置が、
前記複数のブロックのうち空いているブロックの中から機能回路の論理を搭載するブロックを選択し、
選択したブロックに機能回路の回路情報を書き込み、
機能回路の論理を２以上のブロックに分割して搭載する場合、前記第１の配線部または前記複数の第２の配線部のいずれを使用してブロック間で情報を転送するかを決定し、
前記複数の第２の配線部の使用を決定した場合、情報を転送する第２の配線部の経路を決定し、決定した経路上にある配線切替部を制御して第２の配線部間の接続を切り替えることで、機能回路の論理を搭載した２以上のブロックを相互に接続すること
を特徴とする半導体装置の論理の再構成方法。
【請求項１１】
前記制御装置が、
前記複数の第１の配線部のいずれかを使用中の機能回路との競合により、２以上のブロックに分割して搭載した新たな機能回路が前記複数の第１の配線部を使用できない場合であって、かつ、前記複数の第２の配線部のいずれかを使用中の他の機能回路との競合により、前記新たな機能回路が前記複数の第２の配線部を使用できない場合、前記他の機能回路が使用中の第２の配線部の経路が変更可能かを判定し、
前記他の機能回路が使用中の第２の配線部の経路が変更可能な場合、前記他の機能回路に、第２の配線部の代わりに前記第１の配線部を使用して情報を転送させ、
前記第１の配線部の使用中に、前記他の機能回路が使用した第２の配線部の経路を第２の配線部の他の経路に切り替え、
第２の配線部の前記他の経路への切り替え後、前記他の機能回路に、前記第１の配線部を使用した情報の転送を停止させ、前記第２の配線部の前記他の経路を使用した情報の転送を開始させ、
前記他の機能回路が使用する第２の配線部の前記他の経路への切り替え後、新たな機能回路を搭載した２以上のブロック間を第２の配線部を介して接続すること
を特徴とする請求項１０記載の半導体装置の論理の再構成方法。
【請求項１２】
論理を再構成可能な複数のブロックと、前記複数のブロックの間に配置され、複数の交差部を有する第１の配線部と、前記複数の交差部に配置され、２以上のブロック間で情報を転送する前記第１の配線部の経路を決定する複数のルータ部と、前記複数のブロックの周囲に配置される複数の第２の配線部と、前記複数の第２の配線部の間に配置され、第２の配線部間の接続を切り替える複数の配線切替部とを含む半導体装置の論理を再構成する再構成プログラムにおいて、
前記複数のブロックのうち空いているブロックの中から機能回路の論理を搭載するブロックを選択し、
選択したブロックに機能回路の回路情報を書き込み、
機能回路の論理を２以上のブロックに分割して搭載する場合、前記第１の配線部または前記複数の第２の配線部のいずれを使用してブロック間で情報を転送するかを決定し、
前記複数の第２の配線部の使用を決定した場合、情報を転送する第２の配線部の経路を決定し、決定した経路上にある配線切替部を制御して第２の配線部間の接続／非接続を切り替え、機能回路の論理を搭載した２以上のブロックを相互に接続する
処理をコンピュータに実行させる半導体装置の論理の再構成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムに関する。
【背景技術】
【０００２】
ＦＰＧＡ等のプログラマブルデバイスにおいて、論理をプログラムするプログラム領域内に埋め込まれた固定の論理回路を、専用の通信ラインを介して外部端子に接続可能な入出力部に接続する手法が知られている（例えば、特許文献１参照）。ここで、ＦＰＧＡは、Field-Programmable Gate Arrayの略称である。
【０００３】
また、ＭＰＬＤにおいて、複数のＭＬＵＴ（MPLD Look Up Table）セルをそれぞれ含むブロック間を、専用配線により接続する手法が提案されている（例えば、特許文献２参照）。ここで、ＭＰＬＤは、Memory-based Programmable Logic Deviceの略称である。ＭＰＬＤでは、メモリに入力されるアドレスを論理入力とし、メモリから出力されるデータを論理出力として、メモリに記憶された値により論理が構築される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００５−５１５６８２号公報
【特許文献２】国際公開第２０１０／１３７１３号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＦＰＧＡが、共通の転送経路に接続された複数のプログラム可能なブロックを有し、１つの機能回路が複数のブロックに分割してプログラムされる場合、機能回路を搭載したブロック間で情報が転送経路を介して転送される。しかしながら、複数の機能回路の各々が複数のブロックに分割してプログラムされ、複数の機能回路で処理する情報が転送経路を介して転送される場合、情報の転送能力が仕様に対して不足し、各機能回路の性能が低下するおそれがある。転送能力の不足により、機能回路の性能が目標性能を下回るおそれがある場合、ブロックが空いていても、機能回路のブロックへの搭載を断念せざるを得ない。
【０００６】
１つの側面では、本件開示の半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムは、ブロック間での情報の転送速度を低下させることなく、ブロックの配置の自由度を高めることを目的とする。
【課題を解決するための手段】
【０００７】
一つの観点によれば、半導体装置は、論理を再構成可能な複数のブロックと、前記複数のブロックの間に配置され、複数の交差部を有する第１の配線部と、前記複数の交差部に配置され、第１の機能回路の論理が分割して搭載される２以上のブロック間で情報を転送する前記第１の配線部の経路を決定する複数のルータ部と、前記複数のブロックの周囲に配置される複数の第２の配線部と、前記複数の第２の配線部の間に配置され、第２の配線部間の接続を切り替えることで、第２の機能回路の論理が分割して搭載される２以上のブロックを相互に接続する複数の配線切替部とを有する。
【０００８】
別の観点によれば、論理を再構成可能な複数のブロックを含む半導体装置と、前記複数のブロックの論理を再構成する回路情報を記憶する記憶装置と、前記記憶装置に記憶された回路情報を前記半導体装置に書き込む制御装置とを有する情報処理装置において、前記半導体装置は、前記複数のブロックの間に配置され、複数の交差部を有する第１の配線部と、前記複数の交差部に配置され、第１の機能回路の論理が分割して搭載される２以上のブロック間で情報を転送する前記第１の配線部の経路を決定する複数のルータ部と、前記複数のブロックの周囲に配置される複数の第２の配線部と、前記複数の第２の配線部の間に配置され、第２の配線部間の接続を切り替えることで、第２の機能回路の論理が分割して搭載される２以上のブロックを相互に接続する複数の配線切替部とを有する。
【０００９】
別の観点によれば、論理を再構成可能な複数のブロックと、前記複数のブロックの間に配置され、複数の交差部を有する第１の配線部と、前記複数の交差部に配置され、２以上のブロック間で情報を転送する前記第１の配線部の経路を決定する複数のルータ部と、前記複数のブロックの周囲に配置される複数の第２の配線部と、前記複数の第２の配線部の間に配置され、第２の配線部間の接続を切り替える複数の配線切替部とを含む半導体装置の論理の再構成方法において、前記半導体装置の論理を再構成する制御装置が、前記複数のブロックのうち空いているブロックの中から機能回路の論理を搭載するブロックを選択し、選択したブロックに機能回路の回路情報を書き込み、機能回路の論理を２以上のブロックに分割して搭載する場合、前記第１の配線部または前記複数の第２の配線部のいずれを使用してブロック間で情報を転送するかを決定し、前記複数の第２の配線部の使用を決定した場合、情報を転送する第２の配線部の経路を決定し、決定した経路上にある配線切替部を制御して第２の配線部間の接続を切り替えることで、機能回路の論理を搭載した２以上のブロックを相互に接続する。
【００１０】
さらなる別の観点によれば、論理を再構成可能な複数のブロックと、前記複数のブロックの間に配置され、複数の交差部を有する第１の配線部と、前記複数の交差部に配置され、２以上のブロック間で情報を転送する前記第１の配線部の経路を決定する複数のルータ部と、前記複数のブロックの周囲に配置される複数の第２の配線部と、前記複数の第２の配線部の間に配置され、第２の配線部間の接続を切り替える複数の配線切替部とを含む半導体装置の論理を再構成する再構成プログラムにおいて、前記複数のブロックのうち空いているブロックの中から機能回路の論理を搭載するブロックを選択し、選択したブロックに機能回路の回路情報を書き込み、機能回路の論理を２以上のブロックに分割して搭載する場合、前記第１の配線部または前記複数の第２の配線部のいずれを使用してブロック間で情報を転送するかを決定し、前記複数の第２の配線部の使用を決定した場合、情報を転送する第２の配線部の経路を決定し、決定した経路上にある配線切替部を制御して第２の配線部間の接続／非接続を切り替え、機能回路の論理を搭載した２以上のブロックを相互に接続する処理をコンピュータに実行させる。
【発明の効果】
【００１１】
本件開示の半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムは、ブロック間での情報の転送速度を低下させることなく、ブロックの配置の自由度を高めることができる。
【図面の簡単な説明】
【００１２】
【図１】半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの一実施形態を示す図である。
【図２】図１に示す半導体装置が搭載される情報処理装置の一例を示す図である。
【図３】図２に示す情報処理装置の動作の一例を示す図である。
【図４】図３に示す処理により機能ブロック間に転送経路を設定する動作の一例を示す図である。
【図５】半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態を示す図である。
【図６】図５に示すＦＰＧＡの一例を示す図である。
【図７】図６に示すＦＰＧＡの要部の一例を示す図である。
【図８】図７に示すルータ部の一例を示す図である。
【図９】図７に示す配線切替部の一例を示す図である。
【図１０】図９に示す配線切替部による配線の切り換え制御の一例を示す図である。
【図１１】図６に示すＦＰＧＡに機能回路を搭載する動作の一例を示す図である。
【図１２】半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態における動作の一例を示す図である。
【図１３】図１２の動作を実行するサーバにより、機能ブロックに機能回路を搭載する動作の一例を示す図である。
【図１４】図１３の動作の続きを示す図である。
【図１５】半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態におけるＦＰＧＡの要部の一例を示す図である。
【図１６】図１５に示す入出力制御部の一例を示す図である。
【図１７】図１５に示す配線切替部の一例を示す図である。
【図１８】半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態における動作の一例を示す図である。
【図１９】半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を用いて実施形態を説明する。
【００１４】
図１は、半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの一実施形態を示す。図１に示す半導体装置ＳＥＭは、ＦＰＧＡ等の論理を動的に再構成可能なプログラマブルデバイスである。
【００１５】
半導体装置ＳＥＭは、論理を動的に再構成可能な複数の機能ブロックＢＬＫ、共通配線部ＣＭＷ、複数のルータ部ＲＴ、複数の専用配線部ＥＸＷおよび複数の配線切替部ＷＳＷを有する。図１では、情報を転送する配線は太い線で示される。共通配線部ＣＭＷは太い点線で示され、専用配線部ＥＸＷは太い一点鎖線で示される。機能ブロックＢＬＫは、ブロックの一例であり、共通配線部ＣＭＷは、第１の配線部の一例であり、専用配線部ＥＸＷは、第２の配線部の一例である。
【００１６】
共通配線部ＣＭＷは、機能ブロックＢＬＫの間に配置される。例えば、機能ブロックＢＬＫは、縦横に配列され、共通配線部ＣＭＷは、機能ブロックＢＬＫの間に格子状に配置される。ルータ部ＲＴは、格子状の共通配線部ＣＭＷにおける交差部ＣＲＳにそれぞれ配置され、機能ブロックＢＬＫのいずれかにそれぞれ接続される。ルータ部ＲＴは、情報の宛先毎に予め設定された経路情報に基づいて、機能ブロックＢＬＫから出力される情報を宛先の機能ブロックＢＬＫに転送する。例えば、情報の宛先は、転送する情報とともに機能ブロックＢＬＫから出力される。そして、所定の機能を実現する機能回路の論理が２以上の機能ブロックＢＬＫに分割して搭載される場合、ルータ部ＲＴは、２以上の機能ブロックＢＬＫ間で情報を転送する共通配線部ＣＭＷの経路を決定する。
【００１７】
専用配線部ＥＸＷは、各機能ブロックＢＬＫの周囲にそれぞれ配置され、対応する機能ブロックＢＬＫに接続される。配線切替部ＷＳＷは、共通配線部ＣＭＷを挟んで互いに対向する一対の専用配線部ＥＸＷの間に配置され、一対の専用配線部ＥＸＷ間の接続／非接続を切り替える。図１に示す例では、配線切替部ＷＳＷは、矩形状の機能ブロックＢＬＫの周囲に配置される矩形環状の専用配線部ＥＸＷの４辺にそれぞれ接続される。そして、配線切替部ＷＳＷは、所定の機能を実現する他の機能回路の論理が２以上の機能ブロックＢＬＫに分割して搭載される場合、配線切替部ＷＳＷにより専用配線部ＥＸＷを順に接続することで、２以上の機能ブロックを相互に接続する。なお、専用配線部ＥＸＷは、転送される情報（信号）の転送能力を維持するために、リピータ（バッファ）またはフリップフロップ等が挿入されてもよい。機能ブロックＢＬＫ間での専用配線部ＥＸＷを介した情報の転送速度は、機能ブロックＢＬＫ間での共通配線部ＣＭＷを介した情報の転送速度と同等である。これにより、機能回路を搭載した２以上の機能ブロックＢＬＫ間での情報を、共通配線部ＣＭＷまたは専用配線部ＥＸＷのいずれを使用しても転送することができる。
【００１８】
また、専用配線部ＥＸＷの４辺のそれぞれに配線切替部ＷＳＷを配置することで、図１より配線切替部ＷＳＷの数が少ない他の半導体装置に比べて、機能回路を搭載した機能ブロックＢＬＫ間の接続経路を短くすることができる。この結果、他の半導体装置に比べて、機能ブロックＢＬＫ間での情報の転送効率を向上することができ、複数の機能ブロックＢＬＫに搭載される機能回路の性能を向上することができる。
【００１９】
図２は、図１に示す半導体装置が搭載される情報処理装置の一例を示す。図２に示す情報処理装置ＩＰＥは、図１に示す半導体装置ＳＥＭ、制御装置ＣＮＴＬおよび記憶装置ＭＥＭを有する。半導体装置ＳＥＭ、制御装置ＣＮＴＬおよび記憶装置ＭＥＭは、バスＢＵＳを介して互いに接続される。制御装置ＣＮＴＬは、ＣＰＵ（Central Processing Unit）等のプロセッサである。例えば、情報処理装置ＩＰＥは、複数の動画像データ等を並列に処理する画像処理装置として機能する。
【００２０】
記憶装置ＭＥＭは、半導体装置ＳＥＭの機能ブロックＢＬＫに搭載する機能回路の回路情報を保持する。記憶装置ＭＥＭが保持する回路情報は、情報処理装置ＩＰＥの外部から書き込まれる。また、制御装置ＣＮＴＬが、プログラムを実行することにより機能回路を機能ブロックＢＬＫに搭載する場合、記憶装置ＭＥＭは、制御装置ＣＮＴＬが実行するプログラムを保持する。なお、プログラムは、制御装置ＣＮＴＬに搭載される内蔵メモリに格納されてもよい。
【００２１】
制御装置ＣＮＴＬは、記憶装置ＭＥＭに保持された回路情報を半導体装置ＳＥＭの所定の機能ブロックＢＬＫに書き込む。例えば、制御装置ＣＮＴＬは、空いている機能ブロックＢＬＫの中から回路情報を書き込む機能ブロックＢＬＫを選択し、選択した機能ブロックＢＬＫに回路情報を書き込む。また、制御装置ＣＮＴＬは、回路情報を２以上の機能ブロックＢＬＫに分割して書き込む場合であって、専用配線部ＥＸＷと配線切替部ＷＳＷとを使用して機能ブロックＢＬＫ間を接続する場合、機能ブロックＢＬＫ間を接続する専用配線部ＥＸＷの経路を決定する。そして、制御装置ＣＮＴＬは、決定した経路上に存在する配線切替部ＷＳＷを制御して専用配線部ＥＸＷの接続を切り替えることで、機能ブロックＢＬＫ間を専用配線部ＥＸＷを介して接続する。専用配線部ＥＸＷを介して機能ブロックＢＬＫ間を接続する例は、図４で説明される。
【００２２】
図３は、図２に示す情報処理装置ＩＰＥの動作の一例を示す。図３に示す動作は、図２に示す制御装置ＣＮＴＬに搭載されるハードウェアにより実現され、あるいは、図２に示す制御装置ＣＮＴＬが実行するプログラムにより実現される。すなわち、図３は、半導体装置ＳＥＭの論理の再構成方法および半導体装置ＳＥＭの論理の再構成プログラムの一例を示す。
【００２３】
図３に示すフローが開始される前、機能回路を搭載する機能ブロックＢＬＫに対応する回路情報が記憶装置ＭＥＭに格納される。機能回路が２つの機能ブロックＢＬＫに分割して搭載される場合、２つの機能ブロックＢＬＫに対応する２つに分割された回路情報が記憶装置ＭＥＭに格納される。そして、制御装置ＣＮＴＬは、半導体装置ＳＥＭに機能回路をプログラムする指示を情報処理装置ＩＰＥの外部から受信したことに基づいて、図３に示す動作を開始する。なお、機能回路を実現する回路情報を複数の機能ブロックＢＬＫに対応して分割する処理は、制御装置ＣＮＴＬにより実行されてもよい。
【００２４】
まず、ステップＳ１０において、制御装置ＣＮＴＬは、機能回路を半導体装置ＳＥＭに搭載可能か否かを判定する。半導体装置ＳＥＭ内で空いている機能ブロックＢＬＫの数が、機能回路を搭載する機能ブロックＢＬＫの数以上の場合、処理はステップＳ２０に移行される。半導体装置ＳＥＭ内で空いている機能ブロックＢＬＫの数が、機能回路を搭載する機能ブロックＢＬＫの数より少ない場合、図３に示す処理は終了する。そして、制御装置ＣＮＴＬは、機能ブロックＢＬＫの数が足りないことを示すエラー情報を、例えば、情報処理装置ＩＰＥに接続されたディスプレイ等に表示する。
【００２５】
ステップＳ２０において、制御装置ＣＮＴＬは、半導体装置ＳＥＭ内で空いている機能ブロックＢＬＫのうち、機能回路を搭載する機能ブロックＢＬＫを決定する。例えば、制御装置ＣＮＴＬは、空いている機能ブロックＢＬＫのうち、使用していない共通配線部ＣＭＷまたは使用していない専用配線部ＥＸＷが周囲に多い機能ブロックＢＬＫを優先的に選択する。さらに、選択した機能ブロックＢＬＫの数が、機能回路を搭載する機能ブロックＢＬＫの数より多い場合、制御装置ＣＮＴＬは、選択した機能ブロックＢＬＫの中から、互いに近い機能ブロックＢＬＫを優先的に選択する。
【００２６】
次に、ステップＳ３０において、制御装置ＣＮＴＬは、ステップＳ２０で使用を決定した機能ブロックＢＬＫに機能回路の回路情報を書き込む。すなわち、制御装置ＣＮＴＬは、回路情報を記憶装置ＭＥＭから読み出し、読み出した回路情報を、機能回路を搭載する機能ブロックＢＬＫにプログラムする。例えば、回路情報は、機能ブロック内において、回路の論理を設定するルックアップテーブル等に書き込まれる。ルックアップテーブルは、ＳＲＡＭ（Static Random Access Memory）等の記憶部により実現される。
【００２７】
次に、ステップＳ４０において、制御装置ＣＮＴＬは、複数の機能ブロックＢＬＫに機能回路を搭載した場合、処理をステップＳ５０に移行する。制御回路ＣＮＴＬは、１つの機能ブロックＢＬＫに機能回路を搭載した場合、共通配線部ＣＭＷおよび専用配線部ＥＸＷによる機能ブロックＢＬＫ間の接続処理を実行しないため、処理を終了する。
【００２８】
ステップＳ５０において、制御装置ＣＮＴＬは、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間の接続に共通配線部ＣＭＷが使用可能か否かを判定する。制御装置ＣＮＴＬは、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間を接続する共通配線部ＣＭＷの経路および経路中に存在するルータ部ＲＴが他の機能ブロックＢＬＫで使用されていない場合、処理をステップＳ９０に移行する。また、制御装置ＣＮＴＬは、機能ブロックＢＬＫ間を接続する共通配線部ＣＭＷの経路および経路中に存在するルータ部ＲＴが他の機能ブロックＢＬＫで使用されている場合、以下の＜条件＞を判定する。そして、制御装置ＣＮＴＬは、＜条件＞を満足する場合、共通配線部ＣＭＷを使用可能なため、処理をステップＳ９０に移行し、＜条件＞を満足しない場合、専用配線部ＥＸＷを使用するため、処理をステップＳ６０に移行する。
＜条件＞「機能ブロックＢＬＫ間でのデータ転送速度の最大値と、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間でのデータ転送速度の最大値との和が、共通配線部ＣＭＷおよびルータ部ＲＴの最大データ転送速度以下である。」例えば、データ転送速度は、”ｂｐｓ（bits per second）”等、所定時間に転送されるデータ量を示す。
【００２９】
ステップＳ６０において、制御装置ＣＮＴＬは、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間の接続に専用配線部ＥＸＷが使用可能な否かを判定する。制御装置ＣＮＴＬは、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間を接続する専用配線部ＥＸＷの経路が他の機能ブロックＢＬＫで使用されていない場合、処理をステップＳ７０に移行する。一方、制御装置ＣＮＴＬは、機能ブロックＢＬＫ間を接続する専用配線部ＥＸＷの経路が他の機能ブロックＢＬＫで使用されている場合、共通配線部ＣＭＷを使用するため、処理をステップＳ９０に移行する。
【００３０】
なお、処理をステップＳ６０からステップＳ９０に移行する場合、制御装置ＣＮＴＬは、共通配線部ＣＭＷの複数の機能回路での共用により、機能回路が実行する処理の性能が、共通配線部ＣＭＷを共用しない場合に比べて低下する旨をディスプレイ等に表示する。図３のフローには示していないが、性能の低下が許容されない場合、情報処理装置ＩＰＥの管理者または情報処理装置ＩＰＥを使用するユーザ等は、ステップＳ３０で搭載した機能回路を消去する指示を、情報処理装置ＩＰＥに入力する。消去の指示を受けた情報処理装置ＩＰＥの制御装置ＣＮＴＬは、ステップＳ３０で搭載した機能回路を消去し、ステップＳ９０を実行することなく処理を終了する。
【００３１】
ステップＳ７０において、制御装置ＣＮＴＬは、他の機能ブロック間の接続に使用していない専用配線部ＥＸＷを用いて、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間を接続する専用配線部ＥＸＷの経路を決定する。次に、ステップＳ８０において、制御装置ＣＮＴＬは、配線切替部ＷＳＷを切り替えて、ステップＳ７０で決定した経路上に存在する専用配線部ＥＸＷを順に接続し、処理を終了する。
【００３２】
一方、ステップＳ９０において、制御装置ＣＮＴＬは、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間での情報の転送を、共通配線部ＣＭＷを使用して実行することを決定し、処理を終了する。ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫは、制御回路ＣＮＴＬの決定に基づいて、共通配線部ＣＭＷを使用して情報を転送する。
【００３３】
図４は、図３に示す処理により機能ブロックＢＬＫ間に転送経路を設定する動作の一例を示す。図４では、機能ブロックＢＬＫ間を接続する経路は極太の実線で示される。
【００３４】
状態（Ａ）では、機能回路Ｂ、Ｃ、Ｄの各々が、機能ブロックＢＬＫを使用して半導体装置ＳＥＭに搭載されている。機能回路Ｂは、中央に縦方向に並ぶ２つの機能ブロックＢＬＫに搭載され、機能ブロックＢＬＫの一方で生成される情報は、共通配線部ＣＭＷおよびルータ部ＲＴを介して機能ブロックＢＬＫの他方に転送される。機能回路Ｃは、左下の１つの機能ブロックＢＬＫに搭載され、機能回路Ｄは、右上の１つの機能ブロックＢＬＫに搭載される。状態（Ａ）では、左上の機能ブロックＢＬＫと右下の機能ブロックＢＬＫとは、使用されずに空いている。
【００３５】
状態（Ａ）において、制御装置ＣＮＴＬは、新たな機能回路Ａを半導体装置ＳＥＭに搭載する指示を情報処理装置ＩＰＥの外部から受ける。機能回路Ａの搭載に使用される機能ブロックＢＬＫの数は２つである。
【００３６】
次に、状態（Ｂ）において、制御装置ＣＮＴＬは、空いている２つの機能ブロックＢＬＫを選択し、選択した機能ブロックＢＬＫに機能回路Ａを搭載する。機能回路Ａを搭載した機能ブロックＢＬＫを、共通配線部ＣＭＷを介して接続する場合、機能回路Ｂを搭載した機能ブロックＢＬＫ間での情報の転送に使用されるルータ部ＲＴの１つは、機能回路Ａを搭載した機能ブロックＢＬＫ間での情報の転送にも使用される。ここで、制御装置ＣＮＴＬは、機能回路Ａを搭載した２つの機能ブロックＢＬＫを、共通配線部ＣＭＷを介して接続する場合、上述した＜条件＞を満足しないと判定する。
【００３７】
そこで、状態（Ｃ）に示すように、制御装置ＣＮＴＬは、複数の専用配線部ＥＸＷおよび複数の配線切替部ＷＳＷを介して、機能回路Ａを搭載した２つの機能ブロックＢＬＫを互いに接続し、機能回路Ａの半導体装置ＳＥＭへの搭載動作を完了する。状態（Ｃ）では、機能回路Ａと機能回路Ｂとは、互いに独立した経路で情報を転送するため、転送する情報がルータ部ＲＴで競合することにより機能ブロックＢＬＫ間での情報の転送速度が低下することを抑止することができる。また、＜条件＞を満足しない場合にも、機能回路Ａを機能ブロックＢＬＫに搭載できるため、専用配線部ＥＸＷを持たない他の半導体装置に比べて、機能ブロックＢＬＫの配置の自由度を高めることができる。
【００３８】
なお、状態（Ａ）において、機能回路Ｃを右下の機能ブロックＢＬＫに再構成し、機能回路Ａを左上と左下の機能ブロックＢＬＫに搭載することで、機能回路Ａを搭載した２つの機能ブロックＢＬＫを、共通配線部ＣＭＷを介して接続することができる。但し、この場合、機能回路Ｃを右下の機能ブロックＢＬＫに再構成する期間、機能回路Ｃの動作は停止する。すなわち、機能回路Ａの半導体装置ＳＥＭへの搭載により、機能回路Ａと無関係の機能回路Ｃの動作に影響を与えてしまう。また、機能回路Ｃの動作が停止するまで待ち、機能回路Ｃの動作が停止している期間に、機能回路Ｃを右下の機能ブロックＢＬＫに再構成することも可能である。しかしながら、この場合、機能回路Ｃの動作が停止するまでの期間と、機能回路Ｃを右下の機能ブロックＢＬＫに再構成するまでの期間とを合わせた期間、機能回路Ａの半導体装置ＳＥＭへの搭載は待たされてしまう。
【００３９】
図４の右下の括弧内は、専用配線部ＥＸＷおよび配線切替部ＷＳＷを持たない他の半導体装置に機能回路Ｂ、Ａを順に搭載する例を示す。機能回路Ｂを搭載した機能ブロックＢＬＫ間での情報の転送と、機能回路Ａを搭載した機能ブロックＢＬＫ間での情報の転送とは、共通配線部ＣＭＷおよびルータ部ＲＴを介して実行される。この例では、太枠で示すルータ部ＲＴは、機能回路Ｂを搭載した２つの機能ブロックＢＬＫ間で転送される情報と、機能回路Ａを搭載した２つの機能ブロックＢＬＫ間で転送される情報との両方のルーティングを処理する。
【００４０】
このため、太枠で示すルータ部ＲＴの負荷は、状態（Ａ）に比べて増大し、機能回路Ｂを搭載した２つの機能ブロックＢＬＫ間での情報の転送速度は低下し、機能回路Ｂの処理性能は低下するおそれがある。例えば、機能回路Ｂが、符号化された動画像データを復号する処理を実行する場合、２つの機能ブロックＢＬＫ間での情報の転送速度が所定の転送速度より低くなると、単位時間当たりの画像の表示数を示すフレームレートが低下するおそれがある。この結果、動画像の品質が低下するおそれがある。また、機能回路Ｂが、動画像データを符号化する処理を実行する場合、２つの機能ブロックＢＬＫ間での情報の転送速度が低くなるほど、符号化時間が長くなるおそれがある。機能回路Ｂを搭載した２つの機能ブロックＢＬＫ間での情報の転送速度が仕様を満足しない場合、半導体装置ＳＥＭへの機能回路Ａの搭載は断念される。
【００４１】
以上、図１から図４に示す実施形態では、機能ブロックＢＬＫ間での情報の転送速度を低下させることなく、機能ブロックＢＬＫの配置の自由度を高めることできる。換言すれば、機能ブロックＢＬＫに搭載された回路機能の動作を停止することなく、新たな回路機能を機能ブロックＢＬＫに搭載することができる。また、例えば、図４において、機能回路Ｂの性能を低下させることなく、機能回路Ａを半導体装置ＳＥＭに搭載することができる。さらに、機能回路Ｃを他の空いている機能ブロックＢＬＫに再構成することなく、機能回路Ａを半導体装置ＳＥＭに搭載することができる。
【００４２】
また、図１に示すように、専用配線部ＥＸＷの４辺のそれぞれに配線切替部ＷＳＷを配置することにより、図１より配線切替部ＷＳＷの数が少ない場合に比べて、機能回路を搭載した機能ブロックＢＬＫ間の接続経路を短くすることができる。これにより、図１より配線切替部ＷＳＷの数が少ない場合に比べて、機能ブロックＢＬＫ間での情報の転送効率を向上することができ、複数の機能ブロックＢＬＫに搭載される機能回路の性能を向上することができる。
【００４３】
図５は、半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態を示す。図１に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【００４４】
図１に示すサーバＳＶは、バスＢＵＳに接続されたＣＰＵ、記憶装置ＭＥＭ、ＦＰＧＡ、ＨＤＤ（Hard Disk Drive）、入出力インタフェースＩＯＩＦ、メディアインタフェースＭＩＦおよび通信インタフェースＣＩＦを有する。サーバＳＶは情報処理装置の一例であり、ＣＰＵは制御装置の一例であり、ＦＰＧＡは、半導体装置の一例である。
【００４５】
ＣＰＵは、ＦＰＧＡに機能回路の論理を書き込む再構成プログラムを実行するとともに、サーバＳＶの全体の動作を制御する。ＦＰＧＡは、図１に示す半導体装置ＳＥＭと同様に、論理を再構成可能な複数の機能ブロックＢＬＫを有する。ＦＰＧＡの例は、図６および図７に示される。サーバＳＶは、複数のＣＰＵを有してもよく、複数のＦＰＧＡを有してもよい。サーバＳＶが複数のＦＰＧＡを有する場合、複数のＦＰＧＡは、コネクタ等を介してバスＢＵＳに接続されるＦＰＧＡ基板に搭載されてもよい。
【００４６】
記憶装置ＭＥＭは、ＦＰＧＡに搭載する機能回路の回路情報を保持する記憶領域と、ＣＰＵが実行する再構成プログラムを保持する記憶領域とを有する。なお、再構成プログラムは、ＣＰＵに搭載される内蔵メモリに保持されてもよい。例えば、記憶装置ＭＥＭは、複数のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）が搭載されたＤＩＭＭ（Dual Inline Memory Module）である。なお、サーバＳＶは、ＨＤＤの代わりにＳＳＤ（Solid State Drive）を有してもよく、ＨＤＤとＳＳＤの両方を有してもよい。
【００４７】
ＨＤＤは、メディアインタフェースＭＩＦまたは通信インタフェースＣＩＦを介してサーバＳＶの外部から供給される情報（回路情報、データ、プログラム等）を保持する。例えば、再構成プログラムおよび機能回路の回路情報は、ＨＤＤに保持された後、ＨＤＤから記憶装置ＭＥＭに転送される。
【００４８】
入出力インタフェースＩＯＩＦは、マウスＭＳおよびキーボードＫＢＤ等の入力装置と、ディスプレイＤＩＳＰ等の出力装置にそれぞれ接続される。メディアインタフェースＭＩＦは、ＤＶＤ（Digital Versatile Disc）等の記録メディアＲＭが装着される光学ドライブ装置等のメディアドライブ装置ＭＤＶに接続され、記録メディアＲＭとの間で情報を入出力する。通信インタフェースＣＩＦは、インターネットまたはイントラネット等のネットワークＮＷに接続され、ネットワークＮＷとの間で情報を入出力する。
【００４９】
図６および図７は、図５に示すＦＰＧＡの一例を示す。図７は、図６に示すＦＰＧＡの要部を示す。
【００５０】
ＦＰＧＡは、縦横に配列される複数の機能ブロックＢＬＫと、機能ブロックＢＬＫの間に格子状に配置された共通配線部ＣＭＷと、共通配線部ＣＭＷの交点に配置されたルータ部ＲＴとを有する。図６に示す例では、ＦＰＧＡは、縦方向と横方向にそれぞれ５個ずつ配置された２５個のブロックＢＬＫを有するが、横方向および縦方向に配列されるブロックＢＬＫの数は、図６に限定されない。
【００５１】
また、ＦＰＧＡは、各機能ブロックＢＬＫの周囲に配置された専用配線部ＥＸＷと、隣接する一対の専用配線部ＥＸＷの間に配置された配線切替部ＷＳＷとを有する。例えば、配線切替部ＷＳＷは、矩形形状を有する各機能ブロックＢＬＫの四辺に対応する位置にそれぞれ配置される。
【００５２】
さらに、ＦＰＧＡは、各ブロックＢＬＫをＦＰＧＡの外部に接続する入出力部ＩＯとを有する。入出力部ＩＯに隣接する共通配線部ＣＭＷは、入出力部ＩＯに信号を入出力可能であり、入出力部ＩＯに隣接する配線切替部ＷＳＷは、入出力部ＩＯに信号を入出力可能である。図７に示すように、配線切替部ＷＳＷは、隣接する一対の専用配線部ＥＸＷを互いに接続する複数の配線を含む橋渡し配線部ＢＷを有する。橋渡し配線部ＢＷは、接続配線部の一例である。
【００５３】
各機能ブロックＢＬＫは、複数の論理ブロックＬＢＬＫと、論理ブロックＬＢＬＫ間を接続する配線およびスイッチマトリックス（図示せず）とを有する。各論理ブロックＬＢＬＫは、ＳＲＡＭ等を用いた複数のルックアップテーブルＬＵＴと複数のフリップフロップＦＦとを含む。例えば、ルックアップテーブルＬＵＴ（ＳＲＡＭ）に論理を書き込み、ルックアップテーブルＬＵＴ間を内部配線で接続することで、組み合わせ回路が構築され、ルックアップテーブルＬＵＴ間にフリップフロップＦＦを挿入することで順序回路が構築される。ルックアップテーブルＬＵＴは、機能回路の論理を機能ブロックＢＬＫ内に構築する回路情報を記憶する第１の記憶部の一例である。
【００５４】
ＦＰＧＡに搭載する機能回路が１つの機能ブロックＢＬＫに収まらない場合、機能回路の回路情報は、複数の機能ブロックＢＬＫに分けてプログラムされる。この場合、機能回路が搭載された複数の機能ブロックＢＬＫは、共通配線部ＣＭＷまたは専用配線部ＥＸＷを介して情報を転送する。例えば、ＦＰＧＡに搭載される機能回路は、画像処理に使用されるエンコーダまたはデコーダ等の所定の機能を実現するための回路である。機能回路は、ＩＰ（Intellectual Property）コアとして提供されてもよい。
【００５５】
ルータ部ＲＴは、機能ブロックＢＬＫまたは隣接する共通配線部ＣＭＷのいずれかから転送される情報を、他の機能ブロックＢＬＫまたは隣接する共通配線部ＣＭＷの他のいずれかに転送するルーティングの機能を有する。ルータ部ＲＴの例は、図８に示される。
【００５６】
各共通配線部ＣＭＷは、機能回路が搭載された複数の機能ブロックＢＬＫ間で入出力される情報を転送する複数の配線を有する。特に限定されないが、共通配線部ＣＭＷに設けられる配線は、３２ビット、６４ビットまたは１２８ビットである。情報を転送する共通配線部ＣＭＷは、ルータ部ＲＴにより選択される。なお、複数の機能回路の各々が、複数の機能ブロックＢＬＫに分けてプログラムされる場合、共通配線部ＣＭＷは、複数の機能回路に共通に使用可能である。そして、機能ブロックＢＬＫ、ルータ部ＲＴおよび共通配線部ＣＭＷにより、いわゆるＮｏＣ（Network on Chip）アーキテクチャが構築される。
【００５７】
例えば、各機能回路が搭載された機能ブロックＢＬＫは、転送する情報を含むパケットを、機能ブロックＢＬＫに接続されたルータ部ＲＴに送信する。ルータ部ＲＴは、受信したパケットを調停し、調停により選択したパケットを、パケットに含まれる宛先が示す機能ブロックＢＬＫに向けて、共通配線部ＣＭＷのいずれかに送信する。共通配線部ＣＭＷを介してパケットを受信したルータ部ＲＴは、パケットに含まれる宛先が示す機能ブロックＢＬＫに向けてパケットを共通配線部ＣＭＷのいずれかに送信する。そして、宛先の機能ブロックＢＬＫに接続されたルータ部ＲＴは、受信したパケットを機能ブロックＢＬＫに送信する。パケット方式により、異なる機能回路がプログラムされた複数の機能ブロックＢＬＫは、共通配線部ＣＭＷおよびルータ部ＲＴを共通に使用することができる。なお、機能ブロックＢＬＫが生成する情報は、パケット方式以外の手法を用いて、共通配線部ＣＭＷおよびルータ部ＲＴを介して他の機能ブロックＢＬＫに転送されてもよい。
【００５８】
各専用配線部ＥＸＷは、各機能ブロックＢＬＫの周囲に配置される複数の環状の配線を有する。特に限定されないが、専用配線部ＥＸＷに設けられる配線は、３２ビット、６４ビットまたは１２８ビットである。そして、機能回路が搭載された複数の機能ブロックＢＬＫ間で入出力される情報は、配線切替部ＷＳＷより接続された所定数の専用配線部ＥＸＷを介して相互に転送される。但し、配線切替部ＷＳＷは、パケットを保持し、保持したパケットを順に転送する機能を持たないため、各専用配線部ＥＸＷは、１つの機能回路で処理される情報の転送に専用に使用される。配線切替部ＷＳＷの例は、図９に示される。
【００５９】
図６に示す入出力部ＩＯは、機能回路が搭載された機能ブロックＢＬＫに共通配線部ＣＭＷまたは専用配線部ＥＸＷを介して接続される複数のバッファと、バッファにそれぞれ接続される複数の外部端子（パッド）とを有する。バッファは、入力バッファ、出力バッファまたは入出力バッファのいずれかである。バッファと専用配線部ＥＸＷとは橋渡し配線部ＢＷを介して接続される。
【００６０】
図８は、図７に示すルータ部ＲＴの一例を示す。ルータ部ＲＴは、ルータ部ＲＴの左方向Ｌ、右方向Ｒ、上方向Ｕ、下方向Ｄおよび機能ブロックＢＬＫから受信するパケットをそれぞれ保持する５個のパケットキューＰＱＵＥ、調停部ＡＲＢ、スイッチ制御部ＳＷＣＮＴおよびクロスバースイッチＸＢＡＲを有する。例えば、パケットキューＰＱＵＥは、ＦＩＦＯ（First-In First-Out）構造を有し、受信したパケットを受信した順に調停部ＡＲＢに出力する。パケットは、機能回路が分割して搭載された複数の機能ブロックＢＬＫの１つから他の１つに転送する情報（データ）と、情報の転送先の機能ブロックＢＬＫを示す転送先情報とを含む。
【００６１】
調停部ＡＲＢは、パケットキューＰＱＵＥからそれぞれ出力されるパケットを調停し、調停により選択したパケットに含まれる転送先情報をスイッチ制御部ＳＷＣＮＴに出力し、調停により選択したパケットをクロスバースイッチＸＢＡＲに出力する。スイッチ制御部ＳＷＣＮＴは、調停部ＡＲＢからの転送先情報に基づいて、クロスバースイッチＸＢＡＲの接続を切り替える切り替え信号ＳＳＷを出力する。
【００６２】
クロスバースイッチＸＢＡＲは、切り替え信号ＳＳＷに基づいて、調停部ＡＲＢから受信するパケットを、ルータ部ＲＴの左方向Ｌ、右方向Ｒ、上方向Ｕ、下方向Ｄおよび機能ブロックＢＬＫのいずれかに転送するために切り替わる。なお、転送経路が重複しない場合、クロスバースイッチＸＢＡＲは、複数のパケットを並列に転送可能である。転送経路が重複するか否かは、調停部ＡＲＢにより判断される。
【００６３】
パケットにより情報を機能ブロックＢＬＫ間で転送することで、機能ブロックＢＬＫにそれぞれ搭載された複数の機能回路が生成する情報を、衝突させることなく共通配線部ＣＭＷを介して機能ブロックＢＬＫ間で転送することができる。
【００６４】
図９は、図７に示す配線切替部ＷＳＷの一例を示す。配線切替部ＷＳＷは、一対の専用配線部ＥＸＷ（ＣＷ、ＣＣＷ）のそれぞれに接続された一対のスイッチ群ＳＷＧと、一対のスイッチ群ＳＷＧを互いに接続する複数の配線を含む橋渡し配線部ＢＷとを有する。一対のスイッチ群ＳＷＧの一方および他方は、互いに対向する一対の専用配線部ＥＸＷ上にそれぞれ配置される第１の切替部および第２の切替部の一例である。
【００６５】
各スイッチ群ＳＷＧは、機能ブロックＢＬＫ内の配線、専用配線部ＥＸＷの時計回り方向ＣＷから接続される配線、専用配線部ＥＸＷの反時計回り方向ＣＣＷから接続される配線および橋渡し配線部ＢＷの配線に接続された複数のスイッチ部ＳＷを有する。なお、図６に示す入出力部ＩＯに隣接する配線切替部ＷＳＷは、１つのスイッチ群ＳＷＧを有し、橋渡し配線部ＢＷは、入出力部ＩＯに接続される。
【００６６】
配線切替部ＷＳＷは、各スイッチ部ＳＷの動作を制御するスイッチ制御信号ＳＣＮＴの論理を保持するＳＲＡＭを有する。スイッチ制御信号ＳＣＮＴの論理は、スイッチ群ＳＷＧによる配線の接続仕様を示す接続情報の一例であり、ＳＲＡＭは、接続情報を記憶する第２の記憶部の一例である。ＳＲＡＭは、配線切替部ＷＳＷの外部に配置されてもよい。また、ＳＲＡＭは、ルックアップテーブルＬＵＴ（図７）として構築されてもよい。ＳＲＡＭをルックアップテーブルＬＵＴとして構築することで、図５に示すＣＰＵは、機能ブロックＢＬＫに回路情報を書き込む場合と同様の手法によりＳＲＡＭにスイッチ部ＳＷの接続情報を書き込むことで、スイッチ部ＳＷの接続を切り替えることができる。
【００６７】
各スイッチ部ＳＷは、機能ブロックＢＬＫと橋渡し配線部ＢＷとを接続するスイッチＳＷ１、機能ブロックＢＬＫと時計回り方向ＣＷとを接続するスイッチＳＷ２および機能ブロックＢＬＫと反時計回り方向ＣＣＷとを接続するスイッチＳＷ３を有する。また、各スイッチ部ＳＷは、時計回り方向ＣＷと反時計回り方向ＣＣＷとを接続するスイッチＳＷ４（ＳＷ４１、ＳＷ４２）および橋渡し配線部ＢＷと時計回り方向ＣＷとを接続するスイッチＳＷ５を有する。さらに、各スイッチ部ＳＷは、橋渡し配線部ＢＷと反時計回り方向ＣＣＷとを接続するスイッチＳＷ６を有する。図９の太い矢印は、スイッチＳＷ２を介して、機能ブロックＢＬＫ内の配線と専用配線部ＥＸＷの時計回り方向ＣＷから接続される配線とが互いに接続される状態を示す。
【００６８】
図９に示す構成の配線切替部ＷＳＷにより、ブロックＢＬＫ内の配線を、時計回り方向ＣＷの配線、反時計回り方向ＣＣＷの配線または橋渡し配線部ＢＷの配線のいずれかに接続することができる。専用配線部ＥＸＷの時計回り方向ＣＷからの配線を、ブロックＢＬＫ内の配線、反時計回り方向ＣＣＷの配線または橋渡し配線部ＢＷの配線いずれかに接続することができる。専用配線部ＥＸＷの反時計回り方向ＣＣＷからの配線を、ブロックＢＬＫ内の配線、時計回り方向ＣＷの配線または橋渡し配線部ＢＷの配線のいずれかに接続することができる。さらに、橋渡し配線部ＢＷからの配線を、時計回り方向ＣＷの配線、反時計回り方向ＣＣＷの配線またはブロックＢＬＫ内の配線に接続することができる。この結果、所定数の機能ブロックＢＬＫを挟んで配置される互いに離れた機能ブロックＢＬＫ間を、任意の経路の専用配線部ＥＸＷを使用して互いに接続することができる。
【００６９】
図９では、各スイッチＳＷ１−ＳＷ６は、ｎチャネルＭＯＳ（Metal Oxide Semiconductor）トランジスタで示される。しかしながら、各スイッチＳＷ１−ＳＷ６は、ｎチャネルＭＯＳトランジスタとｐチャネルＭＯＳトランジスタとを並列に接続したＣＭＯＳ伝達ゲートで構築されてもよい。各スイッチＳＷ１−ＳＷ６は、ＳＲＡＭの出力に接続されたトランジスタのゲートの電圧を変化させることでオン状態（導通状態）またはオフ状態（遮断状態）に設定される。
【００７０】
なお、専用配線部ＥＸＷおよびスイッチ群ＳＷＧは、機能ブロックＢＬＫ内の外周部の要素を使用して再構成可能に構築されてもよい。この場合、図４の括弧内に示すようなＮｏＣ（Network on Chip）アーキテクチャが構築された既存のＦＧＰＡを使用して、図６および図７に示す構造を構築することができる。また、専用配線部ＥＸＷおよびスイッチ群ＳＷＧを、機能ブロックＢＬＫ内の外周部に再構成可能に構築する場合、ＦＰＧＡは、専用配線部ＥＸＷおよびスイッチ群ＳＷＧを構築しない所定数の機能ブロックＢＬＫを有してもよい。例えば、図６に示すＦＰＧＡにおいて、他の機能ブロックＢＬＫに比べて専用配線部ＥＸＷおよびスイッチ群ＳＷＧを使用する可能性が低い４隅の４つの機能ブロックＢＬＫは、専用配線部ＥＸＷおよびスイッチ群ＳＷＧが構築されない。
【００７１】
専用配線部ＥＸＷおよびスイッチ群ＳＷＧを持たない機能ブロックＢＬＫは、専用配線部ＥＸＷおよびスイッチ群ＳＷＧを持つ機能ブロックＢＬＫに比べて、搭載する機能回路の回路規模を大きくすることができる。これにより、図６の構成に比べて、２つの機能ブロックＢＬＫに分割して搭載する機能回路を１つの機能ブロックＢＬＫに搭載できる可能性を高くすることができ、ＦＰＧＡへの機能回路の搭載効率を高くすることができる。さらに、専用配線部ＥＸＷおよびスイッチ群ＳＷＧを再構成可能にすることで、例えば、４隅の機能ブロックＢＬＫに専用配線部ＥＸＷおよびスイッチ群ＳＷＧを構築するか否かを、ＦＰＧＡに搭載する機能回路の回路規模に応じて選択することができる。
【００７２】
図１０は、図９に示す配線切替部ＷＳＷによる配線の切り換え制御の一例を示す。図１０に示す例では、スイッチＳＷ１をオン状態ＯＮに設定し、他のスイッチＳＷ２−ＳＷ６をオフ状態に設定することで、機能ブロックＢＬＫと橋渡し配線部ＢＷとが互いに接続される。スイッチＳＷ２をオン状態ＯＮに設定し、他のスイッチＳＷ１、ＳＷ３−ＳＷ６をオフ状態に設定することで、機能ブロックＢＬＫと時計回り方向ＣＷとが互いに接続される。スイッチＳＷ３をオン状態ＯＮに設定し、他のスイッチＳＷ１−ＳＷ２、ＳＷ４−ＳＷ６をオフ状態に設定することで、機能ブロックＢＬＫと反時計回り方向ＣＣＷとが互いに接続される。
【００７３】
スイッチＳＷ４をオン状態ＯＮに設定し、他のスイッチＳＷ１−ＳＷ３、ＳＷ５−ＳＷ６をオフ状態に設定することで、時計回り方向ＣＷと反時計回り方向ＣＣＷとが互いに接続される。スイッチＳＷ５をオン状態ＯＮに設定し、他のスイッチＳＷ１−ＳＷ４、ＳＷ６をオフ状態に設定することで、橋渡し配線部ＢＷと時計回り方向ＣＷとが互いに接続される。スイッチＳＷ６をオン状態ＯＮに設定し、他のスイッチＳＷ１−ＳＷ５をオフ状態に設定することで、橋渡し配線部ＢＷと反時計回り方向ＣＣＷとが互いに接続される。
【００７４】
図５に示すサーバＳＶが、ＦＰＧＡに機能回路を搭載する動作の例は、図３と同じである。図５に示すサーバＳＶでは、図３に示す処理は、サーバＳＶがマウスＭＳまたはキーボードＫＢＤを介して機能回路の搭載の指示を受信したことに基づいて、ＣＰＵが再構成プログラムを実行することで実行される。なお、機能回路の搭載が指示される前に、記録メディアＲＭまたはネットワークＮＷを介して、機能回路の回路情報がＨＤＤまたは記憶装置ＭＥＭに格納される。機能回路が２つの機能ブロックＢＬＫに分割して搭載される場合、機能回路の回路情報は、２つの機能ブロックＢＬＫに対応する回路情報に分割された後、ＨＤＤまたは記憶装置ＭＥＭに格納される。
【００７５】
なお、サーバＳＶは、機能回路の回路情報を、機能回路を搭載する機能ブロックＢＬＫの数に応じて分割する機能を有してもよい。この場合、サーバＳＶは、記録メディアＲＭまたはネットワークＮＷを介して、分割される前の機能回路の回路情報を受信し、受信した回路情報をＨＤＤまたは記憶装置ＭＥＭに格納する。そして、ＣＰＵは、図３に示す処理を実行するプログラムとは別に、機能回路の回路情報を分割する分割プログラムを、図３に示す処理を実行する前に実行する。
【００７６】
図１１は、図６に示すＦＰＧＡに機能回路を搭載する動作の一例を示す。図１１では、機能ブロックＢＬＫ間を接続する共通配線部ＣＭＷは太い点線で示され、機能ブロックＢＬＫ間を接続する専用配線部ＥＸＷは太い実線で示される。また、説明を分かりやすくするために、機能ブロックＢＬＫにおけるＸ方向の並び順とＹ方向の並び順を用いて、各機能ブロックＢＬＫの位置が、アドレスＸＹとして示される。
【００７７】
状態（Ａ）において、機能回路Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍの各々が、１以上の機能ブロックＢＬＫを使用してＦＰＧＡに搭載されている。アドレスＸＹが”１１”、”４２”、”５３”、”４５”の機能ブロックＢＬＫは空いている。なお、図１１は、機能回路が最大で３つの機能ブロックＢＬＫに分割して搭載される例を示すが、機能回路は、４つ以上の機能ブロックＢＬＫに分割して搭載されてもよい。
【００７８】
機能回路Ｃを搭載する２つの機能ブロックＢＬＫ間で情報を転送する共通配線部ＣＭＷおよびルータ部ＲＴと、機能回路Ｄを搭載する２つの機能ブロックＢＬＫ間で情報を転送する共通配線部ＣＭＷおよびルータ部ＲＴとの一部は重複する。すなわち、図６に示す共通配線部ＣＭＷおよびルータ部ＲＴは、機能回路Ｃ、Ｄをそれぞれ搭載する複数の機能ブロック群の各々における機能ブロック間での情報の転送に共通に使用される。ここで、機能回路Ｃを搭載する機能ブロックＢＬＫ（アドレスＸＹ＝３２、４３）が、機能ブロック群の１つであり、機能回路Ｄを搭載する機能ブロックＢＬＫ（アドレスＸＹ＝５１、３３）が、機能ブロック群の他の１つである。
【００７９】
情報を転送する共通配線部ＣＭＷの経路を決定するルータ部ＲＴのルーティング仕様は、機能回路が機能ブロックＢＬＫに搭載される前に、予め各ルータ部ＲＴに設定される。このため、ＣＰＵは、機能回路を複数の機能ブロックＢＬＫに搭載するだけで、機能ブロックＢＬＫ間で情報を転送することできる。なお、機能回路Ｃ、Ｄにより生成される情報の共通配線部ＣＭＷ上での衝突は、図８に示すルータ部ＲＴが調停部ＡＲＢによりパケットを選択することで回避される。共通配線部ＣＭＷおよびルータ部ＲＴは、複数の機能ブロック群で共通に使用可能である。このため、複数の機能ブロックＢＬＫに分割された各機能回路のデータ転送速度が仕様を満足する場合、各機能回路を分割して搭載する複数の機能ブロックＢＬＫは、共通配線部ＣＭＷを介して情報を転送することができる。
【００８０】
一方、専用配線部ＥＸＷは、機能回路を分割して搭載する複数の機能ブロックＢＬＫ間の情報の転送に専用に使用される。専用配線部ＥＸＷを使用することにより、ルータ部ＲＴを介さずに情報が転送されるため、ルータ部ＲＴを介して情報を転送する場合に比べて、情報の転送時間を短くすることができる。このため、例えば、他の機能回路より高い性能が要求される機能回路が複数の機能ブロックＢＬＫに分割して搭載される場合、専用配線部ＥＸＷを介して機能ブロックＢＬＫ間を接続することで、機能回路の性能を十分に発揮させることができる。
【００８１】
状態（Ａ）において、サーバＳＶは、新たな機能回路ＡをＦＰＧＡに配置する指示を受ける。機能回路Ａの搭載に使用される機能ブロックＢＬＫの数は２つである。
【００８２】
次に、状態（Ｂ）において、サーバＳＶは、使用していない共通配線部ＣＭＷまたは使用していない専用配線部ＥＸＷが周囲に多い、空いている機能ブロックＢＬＫを選択する。サーバＳＶは、機能回路Ａの搭載に使用される機能ブロックＢＬＫの数より多い機能ブロックＢＬＫが空いている場合、さらに、使用する専用配線部ＥＸＷが最も短くて済む機能ブロックＢＬＫを選択する。状態（Ｂ）では、サーバＳＶは、太枠で示すアドレスＸＹ＝１１、４２の機能ブロックＢＬＫの使用を決定し、決定した機能ブロックＢＬＫに機能回路Ａを搭載する。機能ブロックＢＬＫに機能回路Ａを搭載する間、他の機能回路Ｂ、Ｃ、Ｄ等は、動作を継続することができる。すなわち、ＦＰＧＡは、機能ブロックＢＬＫに構築される回路を動的に再構成可能である。
【００８３】
次に、状態（Ｃ）において、サーバＳＶは、機能回路Ａと他の機能回路とをそれぞれ搭載する機能ブロック群の機能ブロックＢＬＫ間で最大データ転送速度に基づいて、機能回路Ａを搭載する機能ブロックＢＬＫ間を共通配線部ＣＭＷで接続可能か否かを判定する。図１１では、サーバＳＶは、データ転送速度の仕様に基づいて、機能回路Ａと他の機能回路とにより共通配線部ＣＭＷを共用することが困難と判定する。そして、サーバＳＶは、機能回路Ａを搭載する機能ブロックＢＬＫ間を、専用配線部ＥＸＷを介して接続する。そして、機能回路ＡのＦＰＧＡへの配置が完了する。
【００８４】
なお、サーバＳＶは、データ転送速度の仕様に基づいて、機能回路Ａと他の機能回路とにより共通配線部ＣＭＷを共用することが可能と判定した場合、機能回路Ａを搭載する機能ブロックＢＬＫ間での情報の転送を、共通配線部ＣＭＷを介して実行させてもよい。
【００８５】
以上、図５から図１１に示す実施形態においても、図１から図４に示す実施形態と同様に、機能ブロックＢＬＫ間での情報の転送速度を低下させることなく、機能ブロックＢＬＫの配置の自由度を高めることできる。換言すれば、機能ブロックＢＬＫに搭載された回路機能の動作を停止することなく、新たな回路機能を機能ブロックＢＬＫに搭載することができる。配線切替部ＷＳＷを専用配線部ＥＸＷの４辺に配置することで、機能回路を搭載した機能ブロックＢＬＫ間の接続経路を短くして情報の転送効率を向上することが可能になり、複数の機能ブロックＢＬＫに搭載される機能回路の性能を向上することができる。
【００８６】
さらに、図５から図１１に示す実施形態では、一対のスイッチ群ＳＷＧと橋渡し配線部ＢＷとを含む配線切替部ＷＳＷにより、互いに離れた機能ブロックＢＬＫ間を、任意の経路の専用配線部ＥＸＷを使用して互いに接続することができる。
【００８７】
専用配線部ＥＸＷおよびスイッチ群ＳＷＧを、機能ブロックＢＬＫ内に再構成可能に構築することで、ＮｏＣアーキテクチャが構築された既存のＦＧＰＡを使用して、図６および図７に示す構造を構築することができる。また、専用配線部ＥＸＷおよびスイッチ群ＳＷＧを持たない機能ブロックＢＬＫをＦＰＧＡに構築することで、機能ブロックＢＬＫに搭載可能な機能回路の回路規模を大きくすることができる。この結果、図６の構成に比べて２つの機能ブロックＢＬＫに分割して搭載する機能回路を１つの機能ブロックＢＬＫに搭載できる可能性を高くすることができ、ＦＰＧＡへの機能回路の搭載効率を高くすることができる。
【００８８】
図９に示すＳＲＡＭにスイッチ部ＳＷの接続情報を書き込むことで、機能ブロックＢＬＫに回路情報を書き込む場合と同様の手法によりスイッチ部ＳＷの接続を切り替えることができる。パケットにより情報を機能ブロックＢＬＫ間で転送することで、機能ブロックＢＬＫにそれぞれ搭載された複数の機能回路が生成する情報を、衝突させることなく、共通配線部ＣＭＷを介して機能ブロックＢＬＫ間で転送することができる。
【００８９】
図１２は、半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態における動作の一例を示す。図３と同一または同様の処理については、同一の符号を付し、詳細な説明は省略する。図１２に示す動作は、図５に示すＣＰＵが実行するプログラムにより実現される。すなわち、図１２は、ＦＰＧＡの論理の再構成方法およびＦＰＧＡの論理の再構成プログラムの一例を示す。
【００９０】
図１２に示す動作を実行するサーバＳＶは、ＣＰＵが実行する再構成プログラムが異なることを除き、図５に示すサーバＳＶと同じである。すなわち、サーバＳＶは、再構成プログラムを実行するＣＰＵと、論理を動的に構成可能な複数の機能ブロックＢＬＫを含むＦＰＧＡと、機能ブロックＢＬＫに搭載する機能回路の回路情報を保持する記憶装置ＭＥＭとを有する。
【００９１】
ステップＳ１０からステップＳ６０までの処理は、図３と同じである。但し、図１２では、ステップＳ６０において、機能ブロックＢＬＫ間を接続する共通配線部ＣＭＷの経路が他の機能ブロックＢＬＫで使用されている場合、処理はステップＳ９０ではなくステップＳ１００に移行される。ステップＳ１００からＳ１４０では、ＣＰＵは、ステップＳ３０で新たな機能回路を搭載した機能ブロックＢＬＫ間を専用配線部ＥＸＷにより接続するために、既に機能ブロックＢＬＫ間を接続している専用配線部ＥＸＷの切り替えが可能な否かを判定する。そして、専用配線部ＥＸＷの切り替えが可能な場合、ＣＰＵは、共通配線部ＣＭＷを一時的に使用することで、専用配線部ＥＸＷの切り替えを実行する。
【００９２】
まず、ステップＳ１００において、ＣＰＵは、既に機能ブロックＢＬＫ間を接続している専用配線部ＥＸＷの切り替えが可能か否かを判定する。専用配線部ＥＸＷの切り替えが可能な場合、処理はステップＳ１１０に移行され、専用配線部ＥＸＷの切り替えが困難な場合、処理はステップＳ９０に移行する。
【００９３】
ステップＳ１１０において、ＣＰＵは、新たな機能回路を搭載した機能ブロックＢＬＫ間を接続する専用配線部ＥＸＷとの重複を避けて、専用配線部ＥＸＷを再配線する新たな経路を決定する。
【００９４】
次に、ステップＳ１２０において、ＣＰＵは、機能回路が分割して搭載された機能ブロックＢＬＫであって、専用配線部ＥＸＷを再配線する機能ブロックＢＬＫの各々に、専用配線部ＥＸＷの代わりに共通配線部ＣＭＷを使用して情報を転送する指示を発行する。
【００９５】
例えば、機能回路が分割して搭載された複数の機能ブロックＢＬＫの各々は、情報の転送経路を共通配線部ＣＭＷまたは専用配線部ＥＸＷのいずれかに切り替える切替部を有する。ＣＰＵから共通配線部ＣＭＷを使用する指示を受けた各機能ブロックは、切替部を制御して、情報の転送経路を専用配線部ＥＸＷから共通配線部ＣＭＷに切り替える。
【００９６】
なお、転送経路の切り替えにより、共通配線部ＣＭＷまたはルータ部ＲＴが他の機能回路と共用される場合で、図３のステップＳ５０で説明した＜条件＞を満足しない場合、データ転送速度は低下する。なお、＜条件＞が満足しないことが許容されない場合、処理はステップＳ１００からステップＳ９０に移行されるため、ステップＳ１２０の処理は実行されない。
【００９７】
次に、ステップＳ１３０において、ＣＰＵは、図１２に示すステップＳ８０と同様に、ステップＳ１１０で決定した経路上に存在する配線切替部ＷＳＷのスイッチＳＷ１−ＳＷ６（図９）のいずれかをオン状態ＯＮに設定し、専用配線部ＥＸＷを再配線する。
【００９８】
次に、ステップＳ１４０において、ＣＰＵは、専用配線部ＥＸＷを再配線した機能ブロックＢＬＫの各々に、共通配線部ＣＭＷの使用を停止して、専用配線部ＥＸＷを使用して情報を転送する指示を発行する。ＣＰＵから専用配線部ＥＸＷを使用する指示を受けた各機能ブロックは、切替部を制御して、情報の転送経路を共通配線部ＣＭＷから専用配線部ＥＸＷに切り替え、処理をステップＳ７０に移行する。ステップＳ７０、Ｓ８０では、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間の専用配線部ＥＸＷによる接続が実行される。
【００９９】
ステップＳ１３０で配線切替部ＷＳＷの接続を切り替える時間は、図９に示すＳＲＡＭのデータの書き替え時間とほぼ同じであり、例えば、数クロックサイクルである。このため、ステップＳ１２０からステップＳ１４０までの間に共通配線部ＣＭＷを一時的に使用する時間は、最短で数クロックサイクルである。このため、共通配線部ＣＭＷを一時的に使用する時間を最小限にすることができる。
【０１００】
図１３および図１４は、図１２の動作を実行するサーバＳＶにより、機能ブロックＢＬＫに機能回路を搭載する動作の一例を示す。図１１と同一または同様の要素および状態については、詳細な説明は省略する。
【０１０１】
図１３の状態（Ａ）は、アドレスＸＹが”３１”の機能ブロックＢＬＫが空いていることを除き、図１１の状態（Ｃ）と同じである。すなわち、状態（Ａ）は、機能回路Ａが専用配線部ＥＸＷを使用してＦＰＧＡに搭載された状態を示す。状態（Ａ）において、サーバＳＶは、新たな機能回路ＮをＦＰＧＡに配置する指示を受ける。機能回路Ｎの搭載に使用される機能ブロックＢＬＫの数は２つである。
【０１０２】
次に、状態（Ｂ）において、サーバＳＶは、空いている２つの機能ブロックＢＬＫの選択を試みる。しかしながら、アドレスＸＹが（３１、５３）、（３１、４５）、（５３、４５）の３組の機能ブロックＢＬＫを共通配線部ＣＭＷでそれぞれ接続した場合、図１１のステップＳ５０で説明した条件を満足しないことが判明する。さらに、３組の機能ブロックＢＬＫを専用配線部ＥＸＷでそれぞれ接続した場合、専用配線部ＥＸＷの新たな経路は、使用中の専用配線部ＥＸＷと重複することが判明する。
【０１０３】
一方、機能回路Ａを搭載した機能ブロックＢＬＫ間を接続する専用配線部ＥＸＷを他の専用配線部ＥＸＷに再配線することで、アドレスＸＹが（３１、５３）の機能ブロックＢＬＫ間を専用配線部ＥＸＷで接続できることが判明する。そこで、サーバＳＶは、回路機能Ｎを、アドレスＸＹが（３１、５３）の機能ブロックＢＬＫに搭載する。状態（Ｂ）の処理は、図１２に示すステップＳ１０、Ｓ２０、Ｓ３０の処理に対応する。
【０１０４】
次に、状態（Ｃ）において、サーバＳＶは、機能回路Ａを搭載した機能ブロックＢＬＫに、専用配線部ＥＸＷの代わりに共通配線部ＣＭＷを使用して情報を転送する指示を発行する。ＣＰＵから共通配線部ＣＭＷを使用する指示を受けた機能ブロックＢＬＫは、情報の転送経路を専用配線部ＥＸＷから共通配線部ＣＭＷに切り替える。すなわち、機能回路Ａを搭載したアドレスＸＹが（１１、４２）の機能ブロックＢＬＫ間での情報の転送は、新たに点線で示した共通配線部ＣＭＷの転送経路を介して実行される。なお、状態（Ｃ）では、機能回路Ａを搭載した機能ブロックＢＬＫ間が、新たな共通配線部ＣＭＷ（点線）で接続されたように見える。しかしながら、実際には、機能回路Ａは、既に存在する共通配線部ＣＭＷとルータ部ＲＴとを介して情報を転送するため、共通配線部ＣＭＷの接続の切り替え等の処理は発生しない。状態（Ｃ）の処理は、図１２に示すステップＳ１２０の処理に対応する。
【０１０５】
次に、図１４の状態（Ａ）において、サーバＳＶは、機能回路Ａを搭載した機能ブロックＢＬＫ間を接続する専用配線部ＥＸＷを再配線する。例えば、サーバＳＶは、図１３の状態（Ｃ）に示すアドレスＸＹが（３１、４１）の機能ブロックＢＬＫの周囲の専用配線部ＥＸＷによる配線経路を、アドレスＸＹが（３１、３２）の機能ブロックＢＬＫの周囲の専用配線部ＥＸＷの配線経路に切り替える。状態（Ａ）の処理は、図１２に示すステップＳ１３０の処理に対応する。
【０１０６】
次に、状態（Ｂ）において、サーバＳＶは、機能回路Ａを搭載した機能ブロックＢＬＫの各々に、共通配線部ＣＭＷの使用を停止して、専用配線部ＥＸＷを使用して情報を転送する指示を発行する。状態（Ｂ）では、共通配線部ＣＭＷの使用の停止は、アドレスＸＹが（１１、４２）の機能ブロックＢＬＫ間を接続する共通配線部ＣＭＷの転送経路（状態（Ａ）の点線）がなくなることで示される。状態（Ｂ）の処理は、図１２に示すステップＳ１４０の処理に対応する。なお、図１２で説明したように、機能回路Ａが共通配線部ＣＭＷを使用することにより、ルータ部ＲＴを一時的に共有する機能回路Ａ、Ｂ、Ｄの性能が低下する場合、共通配線部ＣＭＷを使用することによる配線切替部ＷＳＷの接続の切り替えは実行されない。
【０１０７】
次に、状態（Ｃ）において、サーバＳＶは、機能回路Ｎを搭載した機能ブロックＢＬＫ間を専用配線部ＥＸＷで接続する。そして、専用配線部ＥＸＷが競合する機能回路Ａの他の機能ブロックＢＬＫに再構成することなく、機能回路ＮのＦＰＧＡへの搭載が完了する。状態（Ｃ）の処理は、図１２に示すステップＳ７０、Ｓ８０の処理に対応する。
【０１０８】
以上、図１２から図１４に示す実施形態においても、図１から図１１に示す実施形態と同様の効果を得ることができる。例えば、機能ブロックＢＬＫ間での情報の転送速度を低下させることなく、機能ブロックＢＬＫの配置の自由度を高めることできる。換言すれば、機能ブロックＢＬＫに搭載された回路機能の動作を停止することなく、新たな回路機能を機能ブロックＢＬＫに搭載することができる。
【０１０９】
さらに、図１２から図１４に示す実施形態では、以下の効果を得ることができる。すなわち、回路機能Ｎで使用する専用配線部ＥＸＷが、回路機能Ａで使用する専用配線部ＥＸＷと競合する場合にも、回路機能Ａを他の機能ブロックＢＬＫに再構成することなく、回路機能ＮをＦＰＧＡに搭載することができる。共通配線部ＣＭＷを一時的に使用することで、回路機能Ａの動作を停止することなく、回路機能Ａで使用する専用配線部ＥＸＷを他の専用配線部ＥＸＷに切り替えることができる。共通配線部ＣＭＷの一時的な使用は、数クロックサイクル程度であるため、共通配線部ＣＭＷを使用している他の機能回路の性能への影響を最小限に抑えることができる。回路機能ＮをＦＰＧＡに搭載する場合に、回路機能Ａを他の機能ブロックＢＬＫに再構成しなくてよいため、回路機能Ａが停止する時間を最小限にすることができる。
【０１１０】
図１５は、半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態におけるＦＰＧＡの要部の一例を示す。図５および図７に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１１１】
図１５に示すＦＰＧＡは、各機能ブロックＢＬＫにおけるルータ部ＲＴ側に入出力制御部ＩＯＣを有する。入出力制御部ＩＯＣは、各機能ブロックＢＬＫ内に再構成可能に構築されてもよい。配線切替部ＷＳＷは、機能ブロックＢＬＫ内の配線を専用配線部ＥＸＷまたは橋渡し配線部ＢＷに接続する機能を持たない。すなわち、橋渡し配線ＢＷは、機能ブロックＢＬＫに接続されない。ＦＰＧＡのその他の構成は、図７と同様である。入出力制御部ＩＯＣの例は図１６に示され、配線切替部ＷＳＷの例は図１７に示される。
【０１１２】
図１６は、図１５に示す入出力制御部ＩＯＣの一例を示す。入出力制御部ＩＯＣは、複数のスイッチを含むスイッチ部ＣＷＳＷと、複数のスイッチを含むスイッチ部ＥＷＳＷとを有する。スイッチ部ＣＷＳＷの各スイッチは、イネーブル信号ＣＷＥＮに応じてオン状態またはオフ状態に設定され、スイッチ部ＥＷＳＷの各スイッチは、イネーブル信号ＥＷＥＮに応じてオン状態またはオフ状態に設定される。入出力制御部ＩＯＣは、ＣＰＵからの指示に基づいて、イネーブル信号ＣＷＥＮ、ＥＷＥＮの一方を選択レベルに設定する。図１６では、スイッチ部ＣＷＳＷ、ＥＷＣＷの各スイッチは、ｎチャネルＭＯＳトランジスタで示されるが、ＣＭＯＳ伝達ゲートで構築されてもよい。
【０１１３】
スイッチ部ＣＷＳＷは、イネーブル信号ＣＷＥＮが選択レベルの期間、各スイッチをオン状態（導通状態）に設定し、機能ブロックＢＬＫの出力バッファ部ＯＢＵＦから出力される出力データＤＯＵＴを、ルータ部ＲＴを介して共通配線部ＣＭＷに出力する。また、スイッチ部ＣＷＳＷは、イネーブル信号ＣＷＥＮが選択レベルの期間、各スイッチをオン状態（導通状態）に設定し、ルータ部ＲＴを介して共通配線部ＣＭＷから受信する入力データＤＩＮを機能ブロックＢＬＫの入力バッファ部ＩＢＵＦに供給する。
【０１１４】
スイッチ部ＥＷＳＷは、イネーブル信号ＥＷＥＮが選択レベルに設定された場合、機能ブロックＢＬＫの出力バッファ部ＯＢＵＦから出力される出力データＤＯＵＴを専用配線部ＥＸＷに出力する。また、スイッチ部ＣＷＳＷは、イネーブル信号ＥＷＥＮが選択レベルに設定された場合、専用配線部ＥＸＷから受信する入力データＤＩＮを機能ブロックＢＬＫの入力バッファ部ＩＢＵＦに供給する。
【０１１５】
図１６に示す入出力制御部ＩＯＣにより、機能ブロックＢＬＫの内部配線を共通配線部ＣＭＷまたは専用配線部ＥＸＷのいずれかに接続することができる。機能ブロックＢＬＫと専用配線部ＥＸＷとを入出力制御部ＩＯＣの１箇所のみで接続できるため、出力バッファ部ＯＢＵＦから出力される出力データＤＯＵＴを各配線切替部ＷＳＷまで伝達する配線を機能ブロックＢＬＫ内に引き回さなくて済む。同様に、各配線切替部ＷＳＷから受信する入力データＤＩＮを入力バッファ部ＩＢＵＦまで伝達する配線を機能ブロックＢＬＫ内に引き回さなくて済む。この結果、図７に示す構成に比べて機能ブロックＢＬＫ内でデータ線を効率的に配線することができる。
【０１１６】
図１７は、図１５に示す配線切替部ＷＳＷの一例を示す。配線切替部ＷＳＷは、図９に示す構成に対してスイッチＳＷ２、ＳＷ３を削除した複数のスイッチ部ＳＷを有する。すなわち、スイッチ部ＳＷは、専用配線部ＥＸＷの時計回り方向ＣＷからの配線と、専用配線部ＥＸＷの反時計回り方向ＣＣＷからの配線と、橋渡し配線部ＢＷの配線とのいずれか２つを相互に接続する。機能ブロックＢＬＫの内部配線は、入出力制御部ＩＯＣを介して専用配線部ＥＸＷに接続される。図１７に示す配線切替部ＷＳＷでは、図９に示したスイッチＳＷ２、ＳＷ３を削除できるため、配線切替部ＷＳＷの回路規模を図９に比べて削減することができる。
【０１１７】
以上、図１５から図１７に示す実施形態においても、図１から図１４に示す実施形態と同様の効果を得ることができる。例えば、機能ブロックＢＬＫ間での情報の転送速度を低下させることなく、機能ブロックＢＬＫの配置の自由度を高めることできる。換言すれば、機能ブロックＢＬＫに搭載された回路機能の動作を停止することなく、新たな回路機能を機能ブロックＢＬＫに搭載することができる。
【０１１８】
さらに、図１５から図１７に示す実施形態では、機能ブロックＢＬＫに入出力制御部ＩＯＣを設けることにより、情報を転送する信号線を、機能ブロックＢＬＫ内に引き回すことなく、機能ブロックＢＬＫ内で効率的に配線することができる。また、機能ブロックＢＬＫに入出力制御部ＩＯＣを設けることにより、機能ブロックＢＬＫの配線を配線切替部ＷＳＷに接続する経路を省略できるため、配線切替部ＷＳＷの回路規模を図９に比べて削減することができる。
【０１１９】
図１８は、半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態における動作の一例を示す。図３と同一または同様の処理については、同一の符号を付し、詳細な説明は省略する。図１８に示す動作は、図５に示すＣＰＵが実行するプログラムにより実現される。すなわち、図１８は、ＦＰＧＡの論理の再構成方法およびＦＰＧＡの論理の再構成プログラムの一例を示す。
【０１２０】
図１８に示す動作を実行するサーバＳＶは、ＣＰＵが実行する再構成プログラムが異なること、および機能ブロックＢＬＫに搭載される機能回路の機能の一部が異なることを除き、図５に示すサーバＳＶと同じである。図１８に示す処理は、ステップＳ９０の後にステップＳ９２が追加されることを除き、図３と同様である。
【０１２１】
ステップＳ９０により共通配線部ＣＭＷの使用を決定したＣＰＵは、ステップＳ９２において、ステップＳ３０で機能回路を搭載した機能ブロックＢＬＫ間での情報の転送を、共通配線部ＣＭＷだけでなく、専用配線部ＥＸＷを使用して可能か否かを判定する。専用配線部ＥＸＷが使用可能な場合、処理はステップＳ７０に移行し、共通配線部ＣＭＷと並行して機能ブロックＢＬＫ間に専用配線部ＥＸＷが接続される。ステップＳ９２において、専用配線部ＥＸＷを使用しない場合、処理は終了する。共通配線部ＣＭＷと専用配線部ＥＸＷとを並列に使用することで、共通配線部ＣＭＷと専用配線部ＥＸＷとの一方を使用する場合に比べて、機能ブロックＢＬＫ間のデータ転送速度の最大値を２倍にすることができる。
【０１２２】
例えば、共通配線部ＣＭＷまたは専用配線部ＥＸＷの最大データ転送速度より高いデータ伝送速度が、機能回路が搭載された機能ブロックＢＬＫ間に要求される場合、共通配線部ＣＭＷと専用配線部ＥＸＷとが並列に使用される。あるいは、使用する共通配線部ＣＭＷが、他の機能回路が搭載された機能ブロックＢＬＫ間での情報の転送に使用されている場合、転送する情報を種類に応じて、共通配線部ＣＭＷと専用配線部ＥＸＷとが使い分けられる。例えば、画像データ等のメディアデータは、専用配線部ＥＸＷを使用して転送され、メディアデータよりデータ量が小さい管理データや統計情報等のデータは、共通配線部ＣＭＷを使用して転送される。これにより、メディアデータ等を共通配線部ＣＭＷに転送する場合に比べて、上述した共通配線部ＣＭＷのデータ転送速度の＜条件＞を満足する可能性を高くすることができる。
【０１２３】
なお、共通配線部ＣＭＷと専用配線部ＥＸＷとを並列に使用する場合、図３のステップＳ１２０で説明した各機能ブロックＢＬＫの切替部は、共通配線部ＣＭＷと専用配線部ＥＸＷとを両方を情報の転送経路にする機能を有する。すなわち、各機能ブロックＢＬＫの切替部は、ＣＰＵからの指示に基づいて、情報の転送経路を、共通配線部ＣＭＷまたは専用配線部ＥＸＷのいずれか、または共通配線部ＣＭＷと専用配線部ＥＸＷとの両方に設定する機能を有する。さらに、各機能ブロックＢＬＫに搭載される機能回路は、例えば、３２ビットの直列データを６４ビットの並列データに変換して出力する機能と、受信した６４ビットの並列データを３２ビットの直列データに変換する機能とを有してもよい。
【０１２４】
以上、図１８に示す実施形態においても、図１から図１７に示す実施形態と同様の効果を得ることができる。例えば、機能ブロックＢＬＫ間での情報の転送速度を低下させることなく、機能ブロックＢＬＫの配置の自由度を高めることできる。換言すれば、機能ブロックＢＬＫに搭載された回路機能の動作を停止することなく、新たな回路機能を機能ブロックＢＬＫに搭載することができる。
【０１２５】
さらに、図１８に示す実施形態では、共通配線部ＣＭＷと専用配線部ＥＸＷとを並列に使用することで、共通配線部ＣＭＷと専用配線部ＥＸＷとの一方を使用する場合に比べて、機能ブロックＢＬＫ間のデータ転送速度の最大値を２倍にすることができる。
【０１２６】
図１９は、半導体装置、情報処理装置、半導体装置の論理の再構成方法および半導体装置の論理の再構成プログラムの別の実施形態を示す。図１および図５に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１２７】
図１９に示す情報処理システムＳＹＳは、複数のサーバＳＶと、サーバＳＶの動作を管理する管理サーバＭＳＶとを有する。各サーバＳＶは、図２に示す情報処理装置ＩＰＥまたは図５に示すサーバＳＶと同一または同様の構成を有する。すなわち、各サーバＳＶは、バスを介して接続されたＣＰＵ、記憶装置ＭＥＭ、ＨＤＤおよびＦＰＧＡを有する。
【０１２８】
管理サーバＭＳＶは、ＦＰＧＡの代わりに複数のＩＰコア（機能回路の回路情報）が格納されたＨＤＤを有することを除き、図５に示すサーバＳＶと同様の構成を有する。以下の説明では、ＩＰコアが格納されたＨＤＤは、ＩＰプールと称される。なお、ＩＰプールは、管理サーバＭＳＶの外部に配置されてもよい。
【０１２９】
管理サーバＭＳＶは、インターネット等のネットワークＮＷを介して、複数の端末装置ＴＭに接続される。各端末装置ＴＭは、ネットワークＮＷを介してサーバＳＶを使用する利用者により操作される。例えば、利用者が、端末装置ＴＭを介して、情報処理に使用するＩＰコアをＩＰプールから選択した場合、管理サーバＭＳＶは、選択されたＩＰコア（回路情報）をサーバＳＶのいずれかに転送する。
【０１３０】
ＩＰコアが転送されたサーバＳＶのＣＰＵは、図３、図１２または図１８と同様に動作し、ＩＰコアをＦＰＧＡに搭載する処理を実行する。なお、図１１と同様に、各ＦＰＧＡには、複数の端末装置ＴＭ（すなわち、複数のユーザ）から指示された複数の機能回路（ＩＰコア）が搭載される。そして、ＦＰＧＡは、機能回路の搭載を指示した端末装置ＴＭのそれぞれから転送されるデータを使用して、機能回路毎に情報処理を実行する。情報処理により得られたデータは、管理サーバＭＳＶを介して、機能回路の搭載を指示した端末装置ＴＭに転送される。このように、情報処理システムＳＹＳは、クラウドサービスを提供するデータセンタとして機能する。以上、図１９に示す実施形態においても、図１から図１８に示す実施形態と同様の効果を得ることができる。
【０１３１】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１３２】
ＡＲＢ…調停部；ＢＬＫ…機能ブロック；ＢＵＳ…バス；ＢＷ…橋渡し配線部；ＣＣＷ…反時計回り方向；ＣＩＦ…通信インタフェース；ＣＮＴＬ…制御装置；ＣＲＳ…交差部；ＣＷ…時計回り方向；ＣＭＷ…共通配線部；ＣＷＥＮ…イネーブル信号；ＣＷＳＷ…スイッチ部；ＤＩＮ…入力データ；ＤＩＳＰ…ディスプレイ；ＤＯＵＴ…出力データ；ＥＸＷ…専用配線部；ＥＷＥＮ…イネーブル信号；ＥＷＳＷ…スイッチ部；ＦＦ…フリップフロップ；ＩＢＵＦ…入力バッファ部；ＩＯ…入出力部；ＩＯＣ…入出力制御部；ＩＯＩＦ…入出力インタフェース；ＩＰＥ…情報処理装置；ＫＢＤ…キーボード；ＬＢＬＫ…論理ブロック；ＬＵＴ…ルックアップテーブル；ＭＤＶ…メディア駆動装置；ＭＥＭ…記憶装置；ＭＩＦ…メディアインタフェース；ＭＳ…マウス；ＭＳＶ…管理サーバ；ＯＢＵＦ…出力バッファ部；ＰＱＵＥ…パケットキュー；ＲＭ…記録メディア；ＲＴ…ルータ部；ＳＣＮＴ…スイッチ制御信号；ＳＥＭ…半導体装置；ＳＳＷ…切り替え信号；ＳＶ…サーバ；ＳＷ…スイッチ部；ＳＷ１−ＳＷ６…スイッチ；ＳＷＣＮＴ…スイッチ制御部；ＳＷＧ…スイッチ群；ＴＭ…端末装置；ＷＳＷ…配線切替部；ＸＢＡＲ…クロスバースイッチ
【図１】
0006699249.tif 000002
【図２】
0006699249.tif 000003
【図３】
0006699249.tif 000004
【図４】
0006699249.tif 000005
【図５】
0006699249.tif 000006
【図６】
0006699249.tif 000007
【図７】
0006699249.tif 000008
【図８】
0006699249.tif 000009
【図９】
0006699249.tif 000010
【図１０】
0006699249.tif 000011
【図１１】
0006699249.tif 000012
【図１２】
0006699249.tif 000013
【図１３】
0006699249.tif 000014
【図１４】
0006699249.tif 000015
【図１５】
0006699249.tif 000016
【図１６】
0006699249.tif 000017
【図１７】
0006699249.tif 000018
【図１８】
0006699249.tif 000019
【図１９】
0006699249.tif 000020