(57)【要約】【課題】個人用に使える安価で高性能な大規模演算用のコンピュータを提供する。【解決手段】演算対象について所定の演算を行うアプリケーション・プログラムを記憶するメモリと、演算対象の各々の問題領域に対応して隣接する演算装置間で直接データ通信可能に接続されて配置され、またアプリケーション・プログラムの実行に用いられ各々の問題領域に対応した演算を行う演算回路が再構成され、隣接する演算装置間で問題領域についての演算結果データを送受信する複数の演算装置からなる演算装置アレイ４０と、アプリケーション・プログラムを実行し、演算装置アレイ４０を構成する各演算装置から各問題領域についての演算結果データを取得し、演算対象について演算結果を算出するホストプロセッサと、メモリ、ホストプロセッサおよび演算装置アレイ４０との間で、データを通信するバスを備える。【選択図】図４
2010026607.tif 000002
【特許請求の範囲】
【請求項１】
演算対象について所定の演算を行うアプリケーション・プログラムを記憶するメモリと、
前記演算対象の各々の問題領域に対応して隣接する演算装置間で直接データ通信可能に接続されて配置され、また前記アプリケーション・プログラムの実行に用いられ前記各々の問題領域に対応した演算を行う演算回路が再構成され、隣接する演算装置間で前記問題領域についての演算結果データを送受信する複数の演算装置からなる演算装置アレイと、
前記アプリケーション・プログラムを実行し、前記演算装置アレイを構成する各演算装置から各問題領域についての演算結果データを取得し、前記演算対象について演算結果を算出するホストプロセッサと、
前記メモリ、前記ホストプロセッサおよび前記演算装置アレイとの間で、データを通信するバスと、を含む
情報処理装置。
【請求項２】
前記複数の演算装置は、ホストプロセッサによって予め決められた演算結果の転送先に従い、当該演算装置の演算結果データを隣接する所定の演算装置に転送する
請求項１に記載の情報処理装置。
【請求項３】
前記演算装置アレイを構成する前記複数の演算装置に対して、前記ホストプロセッサの指示に基づいて、前記演算回路を書き込むための仮想回路データ書き込み回路を所定の順序で書き込む
請求項２に記載の情報処理装置。
【請求項４】
前記演算装置アレイを構成する前記複数の演算装置において、全ての演算装置について前記仮想回路データ書き込み回路の書き込みが終了後、前記仮想回路データ書き込み回路が最後に書き込まれた演算装置から最初に書き込まれた演算装置まで前記全ての演算装置について前記演算回路を書き込む
請求項３に記載の情報処理装置。
【請求項５】
前記演算装置は、前記演算回路が書き込まれる演算ボードと、前記仮想回路データ書き込み回路が書き込まれる書き込みボードから一対の演算装置が構成される
請求項４に記載の情報処理装置。
【請求項６】
前記演算装置アレイを構成する前記複数の演算装置において、前記演算回路の書き込みとともに、前記ホストプロセッサと送受信するデータを転送するためのデータ入出力回路を書き込む
請求項５に記載の情報処理装置。
【請求項７】
前記演算装置の前記演算ボードは、上下左右前後の隣接する演算ボードと接続するための第１のコネクタおよび対をなす前記書き込みボードと接続するための第２のコネクタを備え、また前記書き込みボードは、対をなす前記演算ボードと接続するための第３のコネクタを備え、
前記演算ボードの演算回路は、第１のコネクタを介して隣接する演算ボードの演算回路と前記演算結果データの送受信を行うとともに、第２および第３のコネクタを介して前記書き込みボードの前記書き込み回路および前記データ入出力回路とデータの送受信を行う
請求項６に記載の情報処理装置。
【請求項８】
前記ホストプロセッサは、前記演算装置アレイを構成する複数の演算ボードのうち所定の演算ボード同士を第１のコネクタを介して電気的に接続するように制御する
請求項７に記載の情報処理装置。
【請求項９】
前記演算対象が周期境界条件を満たす場合、前記ホストプロセッサは、前記演算装置アレイを構成する複数の演算装置のうち周期境界に該当する演算装置同士を第１のコネクタを介して電気的に接続するように制御する
請求項７に記載の情報処理装置。
【請求項１０】
演算対象の各々の問題領域に対応して隣接する演算装置間で直接データ通信可能に接続されて配置された複数の演算装置の各々に対して、ホストプロセッサの指示に基づき演算回路を書き込むための仮想回路データ書き込み回路を所定の順序で書き込むステップと、
全ての演算装置について前記仮想回路データ書き込み回路の書き込みが終了後、前記仮想回路データ書き込み回路が最後に書き込まれた演算装置から最初に書き込まれた演算装置まで前記全ての演算装置について前記演算回路を書き込むステップと、
を含む仮想回路書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法に関し、特に、書き換え可能なプログラマブル・ロジック・デバイス（PLD：Programmable Logic Device）を用いて膨大な計算量の処理を行うコンピュータに適用して好適な情報処理装置および仮想回路書き込み方法に関する。
【背景技術】
【０００２】
近年、大規模演算の環境が高度に整備されてきたのを受け、生物・化学・天文・工学などの広い分野においてＨＰＣ(high-performance computing) による演算手法が利用されている。ＨＰＣ は複数の計算機システムを結合し、一つのシステムとして演算環境を提供するものである。一つの計算機システムの性能が低くとも、システム全体としては高速に演算が可能となる。
【０００３】
例えば、ＨＰＣの一例としてスーパーコンピュータがある。スーパーコンピュータは従来、専用のプロセッサを及び専用アーキテクチャで構成されてきたが、図１に示すように、バス２を介して汎用のマイクロ・プロセッサ１を多数接続して並列実行するアーキテクチャで構成されたものが現れている。
【０００４】
また、ＨＰＣには、汎用ＰＣ（Personal Computer）によるグリッド構成のものや、ＧＰＧＰＵ(General Purpose Graphics Processing Unit)を利用したグリッド構成など、ＩＣ（Integrated Circuit）を並べた構成のものもある。
【０００５】
さらにＦＰＧＡ（Field Programmable Gate Array）等のリコンフィギャラブル（再構成可能）な半導体集積回路（LSI：Large Scale Integration）を用いて並列実行するアーキテクチャで構成されたものなど、高性能な演算を行う研究も見られるようになった。特に大規模演算向けに構成されているクラスタ型のものは、ＲＨＰＣ(Reconfigurable High Performance Computing)やＨＰＲＣｓ（High-Performance Reconfigurable Computers）などと呼ばれている。このような回路をリコンフィギャラブルなハードウェアは、総称してプログラマブル・ロジック・デバイス（PLD：Programmable Logic Device）と呼ばれており、少数の製品から量産品まで幅広く流通している。
【０００６】
例えば、本出願人は、ハードウェア・モジュール（hwModule）と呼ばれる ＰＣＩ型ＦＰＧＡボードを利用した、ハードウェア／ソフトウェア（hw/sw）複合体を提案している（例えば、特許文献１を参照。）。
【０００７】
hw/sw複合体とは、ハードウェア・モジュールのＦＰＧＡを仮想回路(hwNet)として利用し、ハードウェア・オブジェクト（hwObject）と呼ばれる仮想回路の詳細な制御を隠蔽するクラスを継承することにより、回路資源を容易に利用できるシステムである。このハードウェア／ソフトウェア複合体の特長として、汎用性、並列分散処理や外部機器との接続などがあげられる。
【０００８】
すなわち、ソフトウェアから直接、ＦＰＧＡ内の仮想回路を制御でき、対象となるアプリケーション対応して作成された適切な仮想回路をＦＰＧＡに書き込むことで、最速な仮想回路により、アプリ毎の問題を計算することが可能である。
【０００９】
一般に、同一の演算をソフトウェアとハードウェア回路で実行した場合、ハードウェア回路による実行はソフトウェアの場合と比較して３０倍から数百倍、高速であることが経験的に知られている。例えば、現行のマイクロ・プロセッサは、３ＧＨｚの周波数で動作するが、安価なＦＰＧＡでは２００ＭＨｚ動作が普通に得られる最良の速度である。したがって、マイクロ・プロセッサによるソフトウェア実行に対して、ＦＰＧＡによる仮想回路では、実効的に６ＧＨｚ（２００ＭＨｚ×３０）から２０−４０ＧＨｚで動作するマイクロ・プロセッサに対応する。さらに、ＦＧＰＡ内に複数個の演算回路を入れることで、１０数倍の性能向上が可能となり、６０ＧＨｚ〜４００ＧＨｚ相当の性能が見込まれる。
【特許文献１】特許第３８４５０２１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述したＨＰＣに共通した特徴は、アプリケーション・プログラムを並列実行可能な形態に分割し、並列実行可能な演算装置に割り当てて実行するというものである。このような構成のＨＰＣは高価であり、かつ、多人数が異なる問題領域に使用するため、ＨＰＣは汎用的な構成、すなわち、汎用のマイクロ・プロセッサ間で任意のデータ転送路が実現できるように設計される。概念的には、図１に示したバス２のような共通の通信路を介して、マイクロ・プロセッサ１が接続される形態である。しかし、いずれの演算結果もバス２を介して分散した各マイクロ・プロセッサ２に転送され、そのバスネックが性能のボトルネックとなっている。
【００１１】
上述のとおり、図１に示したような形態では、共通の通信路であるバス２のオーバーヘッドが大きくなる。そこで、バス２のオーバーヘッドをなくすために、図２に示すようなスイッチボックス５で高速化を図るものが普通である。スイッチボックス５において、任意のマイクロ・プロセッサからのデータを最適なマイクロ・プロセッサを選択して送るというものである。マイクロ・プロセッサの代わりにＦＰＧＡを用いたものもあるが、バス２を用いることやスイッチボックス５等の構成は同じである。
【００１２】
しかし、これらの方式では、消費電力が膨大なものになり、これ以上の高速化を実現することは困難であった。また、通信路での高速性と低消費電力を実現するために広帯域のデータ通信が可能な光通信を使用することが考えられているが高価なものになる。また、高価なスーパーコンピュータとなるので金銭面から多くの台数を用意することは、難しく多人数の利用者が予約して時分割で使用するため、利用できるまでの待ち時間が長くなるという問題も生じている。
【００１３】
また特許文献１に記載されたhw/sw複合体のアプリケーション例には、これまでhwModuleのネットワーク対応に関する研究がなされてきた。しかし、大規模並列化を要求する、数値シミュレーションなどのアプリケーションには、計算機間を非常に高速にデータ転送することを必要とするものもあり、その際にバスネックがボトルネックとなって必ずしもＨＰＣとしての要求性能を満たせなかった。すなわち、内部演算速度の向上に対してデータ転送は、通信路の電気特性に律束されるので、安価で高速の通信路を得ることができなかった。
【００１４】
本発明は、このような状況に鑑みてなされたものであり、個人用に使える安価で高性能な大規模演算用のコンピュータを提供できるようにする。
【課題を解決するための手段】
【００１５】
本発明の情報処理装置は、演算対象の構造に合わせて複数の演算装置を配置し、演算実行時はバスを介在させず演算装置間で直接データ転送し、各演算装置から演算結果を取り出してホストプロセッサへ送出またはホストプロセッサからデータを入力するときのみバスを使用するようにしたものである。
具体的には、本発明の一側面の情報処理装置は、メモリと、演算装置アレイと、ホストプロセッサと、バスを備えるように構成する。
メモリは、演算対象について所定の演算を行うアプリケーション・プログラムを記憶する。
演算装置アレイは、複数の演算装置から構成される。この複数の演算装置は、前記演算対象の各々の問題領域に対応して隣接する演算装置間で直接データ通信可能に接続されて配置され、また前記アプリケーション・プログラムの実行に用いられ前記各々の問題領域に対応した演算を行う演算回路が再構成され、隣接する演算装置間で前記問題領域についての演算結果データを送受信する。
ホストプロセッサは、前記アプリケーション・プログラムを実行し、前記演算装置アレイを構成する各演算装置から各問題領域についての演算結果データを取得し、前記演算対象について演算結果を算出する。
前記バスは、前記メモリ、前記ホストプロセッサおよび前記演算装置アレイとの間で、データを通信する。
【００１６】
本発明の一側面の情報処理装置によれば、演算対象の構造に合わせて複数の演算装置が配置され、演算実行時はバスを介在させず演算装置間で直接データ転送が行われる。そして、各演算装置で演算された演算結果は、取り出してバスを介してホストプロセッサへ送出される。全ての演算装置は隣接演算装置に対してのみデータを転送する処理を実行すればよく、データ転送区間が短くなる。
【００１７】
また、本発明の一側面の仮想回路書き込み方法は、演算対象の各々の問題領域に対応して隣接する演算装置間で直接データ通信可能に接続されて配置された複数の演算装置の各々に対して、ホストプロセッサの指示に基づき演算回路を書き込むための仮想回路データ書き込み回路を所定の順序で書き込むステップを行う。次に、全ての演算装置について前記仮想回路データ書き込み回路の書き込みが終了後、前記仮想回路データ書き込み回路が最後に書き込まれた演算装置から最初に書き込まれた演算装置まで前記全ての演算装置について前記演算回路を書き込むステップを行う。
【００１８】
また、本発明の一側面の仮想回路書き込み方法によれば、演算装置アレイを構成する複数の演算装置に対して、まず演算回路を書き込むための仮想回路データ書き込み回路が書き込まれた後、前記仮想回路データ書き込み回路が最後に書き込まれた演算装置から最初に書き込まれた演算装置まで全ての演算装置について前記演算回路が書き込まれる。そのため、演算回路が途中で書き込めなくなるということが生じる恐れがない。
【発明の効果】
【００１９】
以上のように、本発明によれば、個人用に使える安価で高性能な大規模演算用のコンピュータを実現することができる。それにより、個人でも用途に応じて手軽に大規模演算可能なコンピュータを利用でき、待ち時間も減らすことができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を実施するための最良の形態の例について、添付図面を参照しながら説明する。説明は下記項目に従って順に行うとする。
１．本発明の一実施の形態に係る演算装置アレイの概念
２．隣接する演算装置との接続
３．情報処理装置の概要
４．情報処理装置の全体構成
５．ホストプロセッサの構成
６．演算装置（演算ボード、書き込み・入出力ボード）の構成
７．演算装置アレイによる演算処理
８．演算装置への書き込み処理
９．本発明の他の実施の形態に係る演算装置アレイ
１０．本発明のさらに他の実施の形態に係る演算装置アレイ
【００２１】
［１．本発明の一実施の形態に係る演算装置アレイの概念］
本発明に係る情報処理装置は、特許文献１（特開２００３−２０８３１１号公報）に記載の技術をスーパーコンピュータ等のＨＰＣに適用し、大規模演算をスケーラブルに行える基盤として、演算対象（対象問題）の構造を反映させて多数のＰＬＤ同士を相互接続したＰＬＤアレイ（演算装置アレイ）を構成したものである。演算装置アレイは、ＰＬＤとして例えば大規模ＦＰＧＡを搭載し、外部ＩＯ（入出力部）を大量に装備した小型のＦＰＧＡカード（演算装置）を、格子状に並べた構成を取る。
【００２２】
すなわち、演算対象が１次元、２次元、３次元の構造である場合、それらの構造に合わせて隣接する演算装置を直接接続して１次元、２次元、３次元に配置し、演算対象において生じる数値あるいはそのデータ変化を隣接した演算装置に直接転送する。したがって、全ての演算装置は隣接演算装置に対してのみデータを転送する処理を実行すればよく、データ転送区間が短くなり、データ転送処理が情報処理装置の処理能力のボトルネックになることを回避する。また電力消費が少なくなる。
【００２３】
ＦＰＧＡ等のＲＣ−ＬＳＩ（Reconfigurable LSI）は、演算対象に合わせて回路を構成することができるため、専用回路を用いた高性能な演算手段を比較的安価に手に入れることができる。なお、以下に述べる実施の形態の例では、演算装置にＦＰＧＡを利用した例を説明するが、広義の再構成可能なＰＬＤであればこの例に限られるものでなく、ＣＰＬＤ（Complex Programmable Logic Device）等を適用できる。
【００２４】
図３は、演算対象の物理的または論理的な構造の一例を示すものである。
演算対象６は、流体モデルや液体モデルなどであり、１次元、２次元および３次元の任意の構造を取り得る。演算対象の具体例としては、例えば天文学や物理学分野において現在進められているALMAプロジェクトや重力波検出、さらには、次世代核融合実証炉等における炉設計、高エネルギー物理学分野においては、次世代加速器の内部反応予測シミュレーション、地球科学分野における様々な可視化シミュレーション（具体的には断層モデルの可視化等）、気象学的には中長期予報のためのシミュレーション分野の拡充等が要望として上がってきている。また、宇宙航空分野においては、人工衛星の機能設計や国際宇宙ステーションにおけるシミュレーション、将来の月への基地建設、有人火星探査におけるリスクシミュレーション等の分野からの要望も生じている。
【００２５】
例えば、電磁気学や半導体工学などでよく利用される方程式の一つにポアソン方程式があるが、これは楕円型の偏微分方程式である。この方程式を差分法で解く場合、領域内の格子点数だけの連立方程式を解く必要がある。格子幅については任意でよいが、精度に反映されるため、いかに効率よく大型の連立方程式を解くかが問題となる。解きたい問題の領域について、格子点間隔を狭めれば格子点が増加し、それゆえ大規模な演算が必要となる。
【００２６】
図３に示した演算対象６は３次元構造の例であり、本発明の情報処理装置を用いて当該演算対象６について演算処理を行うにあたり、この演算対象６を格子状の複数の問題領域６−１に分割する。この例では、演算対象６を、４（Ｘ方向）×３（Ｙ方向）×３（Ｚ方向）＝３６の問題領域に分割している。そして、図４に示すように、演算対象６に対し複数の演算装置４０−１を、当該演算対象６の各々の問題領域６−１に対応するように配置して演算装置アレイ４０を構成する。例えば斜線で表した個別の問題領域６−１の演算は、同じく斜線で表した対応する位置の演算装置４０−１が担当する。したがって、この例では演算装置アレイ４０は、問題領域６−１と同じ３６個の演算装置４０−１を用いて構成される。
【００２７】
各々の問題領域においては、隣接した問題領域と相互作用が行われ、物理量が隣接の問題領域に伝搬されるので、その物理現象に対応して隣接した演算装置間で対応するデータ転送が行われる。具体的には、一つの問題領域内には演算の対象となる多数のデータが格子点６−１Ａ，６−１Ｂ，６−１Ｃ，・・・上にあり、対応する演算装置による演算が領域境界に達した場合にその演算結果が、当該演算装置から隣接する演算装置へ転送される。
【００２８】
このように、本発明では、分割した問題領域の物理形状や特性に対応して、演算装置を割り当て、隣接する演算装置間で直接データ転送することで、高性能なデータ処理能力を維持している。
【００２９】
これに対し、従来の方式では、固定的に物理構成のままであり通信路でのデータ転送がネックとなり、演算対象に対して演算装置の性能を十分に発揮することができない。また、通常の場合には、演算装置間のデータ転送がボトルネックとなり通信路の高速性能を使用できずにいる。それを改善するために光ケーブル等の最高性能の通信路を用意すると、システム全体が高価なものとならざるを得ない。
【００３０】
本発明では、演算対象に応じて演算装置間を連接接続する通信路がスケーラブルに増大するので、高性能・高価格の通信路を用いる必要がない。また、データ転送先が隣接する演算装置までのため、通信路に掛かる処理負荷も小さく、消費電力も少なくすることができる。
【００３１】
［２．隣接する演算装置との接続］
本発明の情報処理装置においては、上記のとおり隣接する演算装置間で直接データ転送できるように構成している。以下、この隣接する演算装置との接続の形態について、図５〜図７を参照して説明する。
【００３２】
図５、演算装置（演算ボード）のコネクタ配置を示す図である。図６は、演算装置（演算ボード）の相互接続を示す図である。さらに、図７は、演算装置の分解斜視図である。
【００３３】
本実施の形態における演算装置４０−１は、図５〜図７に示すように、上下に配置された１対の演算ボード５０と書き込み・入出力ボード６０（特許請求の範囲に記載された書き込みボードの一例）から構成される。
演算ボード５０は、主に演算処理を担当する演算回路等（特許請求の範囲に記載された演算回路に相当）が書き込まれるＦＰＧＡ５１、主記憶装置として機能するメモリ５２、および複数のコネクタ（接続端子）が設置された基板５０Ａを備える。また、書き込み・入出力ボード６０は、演算ボード５０のＦＰＧＡに演算回路等を書き込むための書き込み回路およびデータ転送用の入出力回路等が書き込まれるＦＰＧＡ６１、主記憶装置として機能するメモリ６２、および複数のコネクタ（接続端子）が設置された基板６０Ａを備える。各コネクタは、演算ボード５０の基板５０Ａおよび書き込み・入出力ボード６０の基板６０Ａ上の各辺の所定位置に設けられる。演算ボード５０と書き込み・入出力ボード６０の機能等の詳細については後述する。
【００３４】
演算ボード５０は、これらの複数のコネクタにより相互に接続することが可能である。例えば、図６に示すように、演算ボード５０は前接続用のコネクタ５３Ｆを当該演算ボード５０の前に配置されている演算ボード５０の後用接続用のコネクタ５３Ｂと直結することによって、前に配置された演算ボード５０と直接データ転送可能になる。同様にして、後接続用のコネクタ５３Ｂ、左接続用のコネクタ５３Ｌ、右接続用のコネクタ５３Ｒ、上接続用のコネクタ５３Ｕ、下接続用のコネクタ５３Ｄにより、それぞれ当該演算ボード５０の後ろ、左、右、上、下に位置する演算ボード５０と直接データ転送可能に接続できる。
【００３５】
また、演算ボード５０は、書き込み・入出力ボード６０と接続するためのコネクタ５４を備え、コネクタ５４を対応する書き込み・入出力ボード６０のコネクタ６４と直結することで、２つのボード間を直接データ転送可能にする。
【００３６】
演算ボード５０は、前後左右方向の接続についてはコネクタ直結とし、高速転送を可能とする。また隣接接続端子の上下端子すなわちコネクタは、積層に適するよう対応する同一の場所にレイアウトする。ただし、各ボードの廃熱を考えると、上下端子の接続は直結とはせずにケーブルを介して接続するのが好ましい。
【００３７】
なお、書き込み・入出力ボード６０の基板６０Ａにおいて、対応する演算ボード５０の下接続用のコネクタ５３Ｄに対応する位置に、コネクタ５３Ｄの形状に合わせて切り欠き６０Ａ１が形成してある。書き込み・入出力ボード６０の切り欠き６０Ａ１が形成された辺は、コネクタ６３Ｂ，６３Ｆが設けられた辺の長さと比較して短い。この切り欠き６０Ａ１を通して、演算ボード５０の下接続用のコネクタ５３Ｄが対応する書き込み・入出力ボード６０の基板５０Ａを貫通し、その下に配置された演算ボード５０と接続することができる。
【００３８】
書き込み・入出力ボード６０に切り欠き６０Ａ１を形成した場合、コネクタ６３Ｂ，６３Ｆが設けられた辺が短いので基板６０Ａの面積が小さくなり、材料の節約、コスト削減に繋がる。なお、演算ボード５０のコネクタ５３Ｄが書き込み・入出力ボード６０を貫通できればよいので、例えば演算ボード５０と同面積・同形状の書き込み・入出力ボード６０に、切り欠き６０Ａ１に代えて貫通用の孔を設けてもよい。
【００３９】
図７に示した例では、コネクタ５３Ｆ，５３Ｒ，５４は芯線の接続部が凸であるオス型コネクタとし、コネクタ５３Ｂ，５３Ｌ，６４は芯線の接続部が凹であるメス型コネクタとしているが、この例に限られるものではない。
【００４０】
［３．情報処理装置の概要］
次に、上述のような構成の演算装置アレイを用いた情報処理装置の概要について説明する。
【００４１】
既述のとおり、本発明の情報処理装置は、特許文献１に記載された半導体回路制御装置を応用して構成する。つまり、本発明においては、ＦＰＧＡ等のＰＬＤの内部構成には関与しないが、動的に回路（いわゆる「仮想回路」）が書き換え可能なＲＣ−ＬＳＩを用いる。そして、複数のＲＣ−ＬＳＩ（演算装置に相当）を演算対象の構造に合わせて配置し、かつ、隣接するＲＣ−ＬＳＩを相互に直接接続して演算装置アレイを構成することにより、ＲＣ−ＬＳＩ間でバスを用いず直接データ転送可能に構成する。
【００４２】
このように構成することにより、本発明においても、特許文献１に記載された半導体回路制御装置と同様に、仮想回路をオブジェクトでラッピングしたハードウェア・オブジェクトモデルは通常のソフトウェア・オブジェクトと外見は同様であり、自由にプログラムの中で使用できる。オブジェクト・ライブラリ中のオブジェクトから派生する方法を踏襲し、ハードウェア・オブジェクト・ライブラリを用意する。並列性が重視される画像認識、音声認識などの処理、常時観測が必要な処理など、専用回路に適した処理はハードウェア・オブジェクトとしてライブラリからＲＣ−ＬＳＩに読み出して処理する。ただし、ハードウェア・オブジェクトは回路であるので、所定の同期信号に基づいてタイミングや同期の制御は行わなければならない。また、仮想回路を包み込むオブジェクトを演算対象に合わせて必要数だけ確保できるように、メモリやＲＣ−ＬＳＩを演算装置に用意する。
【００４３】
図８は、本発明の一実施の形態に係る情報処理装置の概要を示す図である。
本実施の形態における情報処理装置は、例えば、ＣＰＵなどからなるホストプロセッサ１１と、実際のメモリ空間を構築するメモリ１２と、仮想回路空間を構築するＰＬＤ１３とを備える。
【００４４】
アプリケーション（アプリケーション・プログラム）２１は、ソフトウェアで実現してあるオブジェクトの他に最適な性能を実現する回路を含んだハードウェア・オブジェクト２６も含まれている。アプリケーション２１を実行する計算機は、メモリ空間を実現するメモリ（メモリ素子）１２上にアプリケーションのソフトウェア・プログラム部分を配置し、これとソフトウェアを実行するホストプロセッサ１１をシステムバスで接続している。同時にホストプロセッサ１１には複数のＰＬＤ１３を接続した標準バスが接続されている。これらのバスを総称してバス１４と表記する。
【００４５】
このＰＬＤ１３はアプリケーションが起動され、動作中にハードウェア・オブジェクト２６が起動されると、その回路部分のハードウェア・ネット２９が書き込まれる実ハードウェア部品である。メモリ素子と同様に多数のＬＳＩで回路空間を構成する。ＰＬＤ１３は、後述するハードウェア・モジュール３０に搭載されるＦＰＧＡおよび演算装置アレイ４０を構成する演算装置４０−１に搭載されたＦＰＧＡ（図７参照）に相当する。
【００４６】
アプリケーション２１が起動されるとメモリ１２内にアプリケーション２１がまず配置される。プログラムの処理が進みハードウェア・オブジェクト（hwObject）２６を生成するコンストラクタ文が実行されると、メモリ１２とＰＬＤ１３とに跨って（両方でセットとして）ハードウェア・オブジェクト２６が配置される。ここでは、hwObject−１とhwObject−２のコンストラクタ文が実行されて二つのハードウェア・オブジェクト２６が生成されている。アプリケーション２１は、hwObject−１及びhwObject−２を含む。各ハードウェア・オブジェクト２６に対応して、ハードウェア・ドライバ（hwDD）２７及びハードウェア・ネット２９が存在する。ハードウェア・ドライバ２７は、メモリ１２内に生成される。一方、ハードウェア・ネット２９は、仮想回路空間であるＰＬＤ１３内に、直接データ転送可能に生成され且つ消去可能とされる。
【００４７】
図９は、ホストプロセッサとハードウェア・ネット間の制御概要の流れを示す図である。
ここでは、ハードウェア・オブジェクト２６に対する読み書きの要求がアプリケーション２１から、順次、要求を伝えてハードウェア・ネット２９にまで伝えて応答を返すまで処理が続く。この時、ハードウェア・ネット２９は並列動作を行う。アプリケーション２１はハードウェア・オブジェクト２６に実行を命令して、返答を待たずに、次の処理、例えば、別のハードウェア・オブジェクト２６の実行を行っていく。ハードウェア・ネット２９の処理が終了したかどうかを調べる処理を行いハードウェア・オブジェクト２６のメンバー変数の値を読み取る。このように、アプリケーション２１のレベルでの並列処理にあった形で、ハードウェア・オブジェクト２６すなわち演算回路を含む組み込み回路の並列性を適切に利用することができる。
【００４８】
以下に、情報処理装置の基本的な動作を説明する。
まず、アプリケーション２１が起動されると、ＯＳはアプリケーション２１の実行に必要な領域をアプリケーション２１が排他的に使用できるように確保して制御をアプリケーション２１に渡す。アプリケーション２１の起動・初期化プログラムは、プログラムで使用されるイベント管理、メッセージ管理等のＯＳとの通信やアプリケーション２１内での管理に必要な基盤部分の立ち上げを行う。なお、ハードウェア・オブジェクト２６の管理に必要な管理制御部分もこの時にアプリケーション部に組み込まれる。
【００４９】
アプリケーションの動作中にハードウェア・オブジェクト２６を生成する文が実行されると、ハードウェア・オブジェクト２６がメモリ領域にＩＯ処理部であるハードウェア・ドライバ２７を含んで生成される。ＰＬＤ１３には同時に回路としてのハードウェア・ネット２９が書き込まれ、ハードウェア・オブジェクト２６が排他的に使用できるように設定される。このハードウェア・ネット２９の回路データは、例えば、このハードウェア・ネット２９の動作仕様を動作記述言語により記述し、設計自動化ツールである高位・論理合成、配置・配線ツールを使いＰＬＤ１３に書き込まれる回路データを事前に作成して、回路ライブラリに登録しておくことができる。ここで、事前にハードウェア・ネット２９を書き込んでおき、ハードウェア・オブジェクト２６の生成時に回路を単に活性化させ、回路の書き込み時間を短縮させることは容易に考えられる。
【００５０】
ハードウェア・オブジェクト２６は一度生成されると、ハードウェア・オブジェクト２６を消滅させる文が実行されるかアプリケーション２１が終了するまで存在し続ける。アプリケーション２１の動作中にハードウェア・オブジェクト２６に対する読み書きを行う文が実行されると、それがハードウェア・ネット２９に関係するメンバー変数やメンバー関数に対する場合には、ハードウェア・ドライバ２７を介してハードウェア・ネット２９に対するＩＯ処理を行う。
【００５１】
［４．情報処理装置の全体構成」
図１０は、情報処理装置の全体構成を示す図である。
本実施の形態における情報処理装置は、例えば、ホストプロセッサ１１と、主記憶装置としてのメモリ１２と、仮想回路空間であるハードウェア・モジュール３０と、演算対象の各問題領域について演算を行う演算装置アレイ４０とを備える。
演算装置アレイ４０はハードウェア・モジュールの一種であり、図４に示した例では３次元構造であるが、ここでは説明の便宜のため２次元構造で表現してある。また、ホストプロセッサ１１、メモリ１２、およびハードウェア・モジュール３０は、所定の規格（ＰＣＩ規格等）のバス１４を通じて高速なデータ転送が可能となっている。
【００５２】
図に示すように、ソフトウェア・プログラムの大半はメモリ１２に置かれ、ホストプロセッサ１１により実行される。各種制御・処理のための回路は仮想化され、ハードウェア・ネット（hwNet）として、バス１４上に置かれたハードウェア・モジュール３０と名付けたハードウェア部品中に設けられ、ホストプロセッサ１１が必要となった時点に一時的に書き込まれる。そして、ハードウェア・モジュール３０に書き込まれた仮想回路によって、演算装置アレイ４０の各演算装置４０−１内のＦＰＧＡに演算回路等の仮想回路が書き込まれる。ハードウェア・モジュール３０および各演算装置４０−１に書き込まれた仮想回路は、不要になれば消去または再利用のために初期化される。
【００５３】
この生成・消去の手順の詳細は後述するが、ソフトウェアのオブジェクトと同じようにコンストラクタとデストラクタ演算子で行われる。ハードウェア・モジュール３０および演算装置アレイ４０はメモリ型のデバイスとして認識され、ハードウェア・オブジェクト２６への読み書きはメモリ１２上に作られたオブジェクトと同じように行われる。メモリ空間上に自由にオブジェクトが作れるのと同じように、ハードウェア・オブジェクト２６が自由に作られる仮想回路空間を実部品として提供するのがハードウェア・モジュール３０および演算装置アレイ４０である。したがって、特に演算装置アレイ４０は演算対象に合わせて大きな仮想回路空間を張るように多数の演算装置４０−１を事前に用意する。ハードウェア・オブジェクト２６を使った計算モデルは仮想回路をオブジェクトとして扱い、アプリケーション２１にハードウェア・ネット２９を埋め込むインターフェースを提供するものである。
【００５４】
本実施の形態では、再構成可能システムを構成する一要素として、図１０に示したようなハードウェアボードである、ハードウェア・モジュール３０を導入している。ハードウェア・モジュール３０は、例えば、標準バス・インターフェース（ＢＩ）３１、ローカルメモリ（ＬＭ）３２、ローカルプロセッサ（ＬＰ）３３、ＦＰＧＡ３４、入出力インターフェース３５をデータ転送可能に接続する構成になっている。
【００５５】
ＬＰ３３は、ＦＰＧＡ等のＲＣ−ＬＳＩで構成され、ハードウェア・モジュール３０内の制御を行う。すなわちＬＰ３３によってＬＭ３２を利用しつつハードウェア・ネット（仮想回路データ書き込みのための書き込み回路の一例）がＪＴＡＧ方式でＦＰＧＡ３４に書き込まれる。ＦＰＧＡ３４は、入出力インターフェース３５および通信路３６を介して演算装置アレイ４０の各演算装置４０−１内のＦＰＧＡにハードウェア・ネット２９（演算回路等の仮想回路）を書き込む。演算装置アレイ４０の各演算装置４０−１に書き込まれた仮想回路のそれぞれが、ハードウェア・ネット２９として機能する。
【００５６】
ＢＩ３１は、後述するハードウェア・ドライバの制御命令によりホストプロセッサ１１とハードウェア・ネット２９（ＦＰＧＡ３４、演算装置アレイ４０）との通信を制御する。ハードウェア・モジュール３０（演算装置アレイ４０を含む）はメモリ・デバイスとして認識され、メモリと同じような形態でバス１４（例えば、ＰＣＩ）に接続して情報処理装置（計算機）に組み込まれる。この時、ＯＳによりハードウェア・モジュール・ドライバと呼ぶデバイス・ドライバが演算装置アレイ４０の各演算装置４０−１に組み込まれ、メモリ領域が割り当てられる。多数のメモリ・チップが一様且つ平坦なメモリ空間を構成するように多数のハードウェア・モジュール（演算装置４０−１）内のＲＣ−ＬＳＩは仮想回路空間を構成する。
【００５７】
なお、ＬＰ３３およびＦＰＧＡ３４は、ホストプロセッサ１１から送信されたデータを演算装置アレイ４０へ転送し、また、演算装置アレイ４０から送信されたデータをホストプロセッサ１１へ転送する入出力回路としての機能も備える。
【００５８】
図１０に示すようなハードウェア・モジュール３０を介してホストプロセッサ１１からの仮想回路データを演算装置アレイ４０の各演算装置４０−１のＦＰＧＡに転送することで、演算装置アレイ４０の各演算装置４０−１にそれぞれハードウェア・ネット２９を配置することができる。詳細は後述するが、例えば演算装置「００」のＦＰＧＡ５１に書き込まれた最初のhwNet−１の出力を演算装置「０１」に転送し、それを演算装置「０１」のＦＰＧＡ５１に書き込まれたhwNet−２が読み込む事で、hwNet−１とhwNet−２（図８参照）とは同時に動作してパイプライン処理を行う事ができる。
【００５９】
また、ＬＰ３３によりホストプロセッサ１１の負担を減らす事ができる。すなわち、各演算装置４０−１のＦＰＧＡ５１に書き込まれる使用頻度が高いハードウェア・ネット２９の書き込みは、ＢＩ３１を通してこのＬＰ３３に書き込み命令を送る事で可能である。
【００６０】
［５．ホストプロセッサの構成］
図１１に、ホストプロセッサの階層構成図を示す。
ホストプロセッサ１１は、アプリケーション２１、オブジェクト・マネジャー２２、ハードウェア・モジュール・ドライバ２３、ＯＳ２４、バス２５を備える。この例では、アプリケーション２１を３つ含む例を示しているが、適宜の数のアプリケーションを有することができる。各アプリケーション２１は、ひとつ又は複数のハードウェア・オブジェクト２６、ハードウェア・ドライバ２７、アプリケーション２１とハードウェア・ドライバ２７との入出力を制御するインターフェース２８の組を有する。
【００６１】
各ハードウェア・ドライバ２７は、ハードウェア・ネット２９毎に定義され、（ハードウェア・モジュール３０を介して）ハードウェア・ネット２９の入出力動作を制御する。ハードウェア・ドライバ２７には、例えば、hwNetの端子情報、書き込みや読み込み、イネーブル、アウトプット・イネーブルなどのhwNetの制御情報、hwObject番号、hwNet番号、hwModule（演算装置）番号、割り当てＰＬＤ番号（演算装置とhwModuleが一対一に対応する場合は不要）、hwNet割り当て端子番号、局所（ローカル）メモリ割り当てアドレス、局所メモリ割り当て領域サイズ、hwNet状態、hwNet命令、主メモリでのhwNet通信領域アドレス、hwNet通信領域サイズ、hwNet通信領域カレント・アドレスなどの通信制御情報が組み込まれている。これらの情報は、ハードウェア・ネットの回路情報と共にハードウェア・ネットライブラリに保存されている。ハードウェア・オブジェクト２６が生成されてハードウェア・ネット２９がロードされる時には、hwModule（演算装置）番号、hwNet番号、ＰＬＤ番号などを取得してハードウェア・ドライバ２７がハードウェア・オブジェクト２６の一部として生成される。
【００６２】
ハードウェア・モジュール３０および演算装置アレイ４０を情報処理装置（計算機）に組み込んだ時、図に示すハードウェア・モジュール・ドライバ２３は添付されたデバイス情報をもとにＯＳ２４にデバイス・ドライバとして永続的に登録される。このハードウェア・モジュール・ドライバ２３は、計算機のバスに接続されたハードウェア・モジュール３０に対する通信を制御している。例えば、バス１４としてＰＣＩバスを使う時にはＰＣＩデバイス情報などがＯＳから割り当てられる。情報処理装置を立ち上げる時には常にハードウェア・モジュール・ドライバ２３は、ＯＳに事前に組み込まれる。一方、このハードウェア・モジュール・ドライバ２３に反して、ハードウェア・オブジェクト２６のハードウェア・ドライバ２７は、ハードウェア・ネット２９が存在する時だけハードウェア・モジュール・ドライバ２３の中に組み込まれ、ＯＳ２４がハードウェア・ドライバ２７を感知することはない。他方、ハードウェア・オブジェクト２６側は、ハードウェア・ドライバ２７をＯＳに組み込まれたデバイス・ドライバのようにみなしてハードウェア・ネット２９に対するアクセスを行う。このとき、どのハードウェア・モジュール３０および演算装置アレイ４０に対するアクセスを行うかなどは考慮する必要がない。
【００６３】
このように、本発明では、ＯＳ２４側からは、ハードウェア・モジュール・ドライバ２３が常時組み込まれるデバイス・ドライバとして安定して制御及び監視を行う事ができるので、システムの安定性を保証する事ができる。他方、アプリケーション２１側からは、ハードウェア・ドライバ２７が必要なときにだけ割り当てられるので、ハードウェア・ネット２９を使う自由度が大幅に増すことになる。
【００６４】
［６．演算装置（演算ボード、書き込み・入出力ボード）の構成］
図１２は、演算装置（演算ボード、書き込み・入出力ボード）の仮想回路書き込み後の機能を示すブロック図である。以下、図１２を参照して、演算ボード５０、書き込み・入出力ボード６０の順に説明する。
【００６５】
演算ボード５０は少なくとも、仮想回路空間が形成されるＦＰＧＡ５１と、メモリ空間が形成されるメモリ５２を備える。メモリ５２には、ハードウェア・モジュール３０を介してホストプロセッサ１１から送信された演算対象の問題領域に対応する仮想回路データや演算対象データ、各回路による演算結果データ等が一時的に格納される。また、メモリ５２は、ある問題領域における演算中でない格子点に関する情報など、演算に必要ない情報を一時的に格納したりもする。
【００６６】
ＦＰＧＡの内部構造は周知であり、例えば、任意の論理を構成可能な４入力程度の組合せ回路と順序回路からなる論理ブロックが、格子状に多数配置され、その間の配線を簡易なスイッチブロックで接続し、スイッチを切り替えることで所望の機能を持つ仮想回路を再構成するようにしている。そして、仮想回路が再構成された論理ブロックにより、入出力ブロックＩ／Ｏを介してデータの入力および演算結果の出力等が行われる。
【００６７】
本実施の形態におけるＦＰＧＡ５１は、メモリ制御回路５５、並列演算回路５６（演算回路の一例）、演算対象データ入出力回路５７、演算結果データ入出力回路５８、隣接ＦＰＧＡデータ転送回路５９Ｘ，５９Ｙ，５９Ｚを含む回路が書き込まれる。並列演算回路５６を含む全ての回路は、書き込み・入出力ボード６０に搭載されたＦＰＧＡ６１により書き込まれる。なお、以降、演算回路を含むこれらの回路を総称して「演算回路等」という。
【００６８】
メモリ制御回路５５は、メモリ５２に記憶された各種データの読み出しおよび書き込みを行い、演算ボード５０上のメモリ５２と各仮想回路とのデータ転送を実現する回路である。
【００６９】
並列演算回路５６は、複数の論理ブロック５６Ａ，５６Ｂ・・・を備え、演算対象の問題領域に対応した演算を行う回路である。例えば、演算対象が連続系の物理問題のときには、問題領域の各格子点上に定義された微分方程式を離散化した連立方程式を計算する並列回路が再構成される。また、演算対象が多分岐とグラフ構造で示される場合には、ノード分岐を辿りながら計算を行う並列回路が再構成される。
【００７０】
問題領域内の格子点（ｉ，ｊ，ｋ）における物理量ｆは、演算対象が３次元の場合、次式で表され、隣接格子上の物理量で与えられる方程式が定義できる。
f(i, j, k) = F(i-1, j-1, k-1, i, j, k, i+1, j+1, k+1)
【００７１】
今、問題領域の１辺の格子点数をＮとすると、問題領域内の格子点数は３次元で増加するのに対し、境界面では２次元で増加するため、格子点での演算量はＮの３乗に比例（〜Ｎ３）し、境界面では６／Ｎ２に比例する。よって、演算量に関して格子点／境界面（〜Ｎ３／６Ｎ２）＝Ｎ／６である。したがって、両者の演算量と演算手段とのバランスをとるには、Ｎ個の格子点用の並列演算回路に対する境界面用のそれの数をＮ／６以上とすればよい。例えば、論理ブロック５６Ａが領域内の格子点に対応し、論理ブロック５６Ｂが境界面に対応するとすれば、論理ブロック５６Ａの数を論理ブロック５６Ｂの数のＮ／６以上とする。
【００７２】
演算対象データ入出力回路５７は、ホストプロセッサ１１の制御下でハードウェア・モジュール３０から送られる演算対象データが書き込み・入出力ボード６０を介して入力される回路である。入力された演算対象データは、メモリ制御回路５５を介してメモリ５２に記憶され、並列演算回路５６等による処理に利用される。演算対象データには、例えば演算対象の範囲、問題領域、演算結果の転送先、演算条件等、演算に使用するパラメータが含まれる。
【００７３】
なお、演算対象データのパラメータ（演算条件、演算対象、問題領域等）は、メモリ５２に記憶させている途中で、つまりホストプロセッサ１１から送られる段階で変更になることも考えられる。そのような場合、演算対象データ入出力回路５７は、メモリ５２に途中まで記憶させた演算対象データに、メモリ５２における当該演算対象データが格納されたアドレス情報を付加してホストプロセッサ１１へ送信するようにしてもよい。このようにした場合、ホストプロセッサ１１は、各演算装置の変更後の演算対象データと、各演算装置から戻ってきた演算対象データとを比較し、真に変更された演算対象データについてのみ該当演算装置へ再送すればよいので、通信路のリソースの節約および再送処理に要する時間を短縮できる。
【００７４】
演算結果データ入出力回路５８は、当該演算ボード５０の並列演算回路５６等による演算完了後の演算結果データ、あるいは演算に使用するパラメータ等のデータを、メモリ制御回路５５を介してメモリ５２に記憶したり、対応する書き込み・入出力ボード６０へ送信したりする回路である。この演算結果データには、並列演算回路５６による演算結果に加え、当該演算ボード（演算装置）の番号、問題領域の各格子点情報とそれに対応する演算結果データ等が含まれる。なお、演算結果データは、演算対象データに含まれる「演算結果の転送先」に基づいて隣接する所定の演算ボードへ転送される。
【００７５】
なお、演算中の演算対象データのパラメータ変更やシミュレーション方法の変更などの理由により、演算を途中で停止することがある。このような場合、演算結果データ入出力回路５８は、メモリ５２に途中まで記憶させた演算結果データに、メモリ５２における当該演算結果データが格納されたアドレス情報を付加してホストプロセッサ１１へ送信するようにしてもよい。このようにした場合、ホストプロセッサ１１は、各演算装置による途中までの演算結果を利用して演算対象の解析を行うことができる。さらに、その途中までの演算結果をホストプロセッサ１１（メモリ１２）から読み込むようにしてもよい。それにより、途中まで実施した演算結果を流用することができるので、新たに演算が必要な部分のみ演算を行えばよく、演算に要する時間を短縮できる。
【００７６】
隣接ＦＰＧＡデータ転送回路５９Ｘは、各コネクタを介してＸ方向（前後）に隣接する演算ボード５０との間でデータの送受信を行い、並列演算回路５６へ転送する回路である。この隣接する演算ボード５０との間でやり取りするデータには、隣接する演算ボード５０による演算結果に加え、領域境界を跨ぐデータの送受信を実現するため、送信元の演算ボード（演算装置）の番号、各々の格子点情報とそれに対応する演算結果データ等が含まれる。同様にして、隣接ＦＰＧＡデータ転送回路５９ＹはＹ方向（左右）に隣接する演算ボード５０と、隣接ＦＰＧＡデータ転送回路５９ＺはＺ方向（上下）に隣接する演算ボード５０とデータの送受信を行う。なお、各隣接ＦＰＧＡデータ転送回路５９Ｘ，５９Ｙ，５９Ｚから隣接する演算装置４０−１へのデータ転送は、ハードウェア・モジュール３０を介してホストプロセッサ１１から送られるクロック信号（ＣＬＫ）に基づき全演算装置４０−１でタイミングを合わせて行われる。
【００７７】
次に、書き込み・入出力ボード６０について説明する。図６に示したように隣接する演算ボード５０同士を接続し、書き換え可能な半導体装置に演算回路等を書き込むためには、書き込みを行う書き込み回路が必要である。
【００７８】
書き込み・入出力ボード６０は少なくとも、仮想回路空間が形成されるＦＰＧＡ６１と、メモリ空間が形成されるメモリ６２を備える。メモリ６２には、ハードウェア・モジュール３０を介してホストプロセッサ１１から送信された演算対象の問題領域に対応する仮想回路データや演算対象データ、また演算ボード５０から送られてくる演算結果データや各回路の演算結果データ等が一時的に格納される。
【００７９】
本実施の形態におけるＦＰＧＡ６１は、ハードウェア・モジュール３０のＦＰＧＡ３４の制御の下、メモリ制御回路６５、書き込み回路６６（仮想回路データ書き込み回路の一例）、仮想回路データ入出力回路６７、各種データ入出力回路６８が書き込まれる。以降において、各種データ入出力回路６８を「演算回路等」に含める場合もある。
【００８０】
メモリ制御回路６５は、メモリ６２に記憶された各種データの読み出しおよび書き込みを行い、書き込み・入出力ボード６０上のメモリ６２と各仮想回路とのデータ転送を実現する回路である。
【００８１】
書き込み回路６６は、ホストプロセッサ１１の制御下でハードウェア・モジュール３０から送信される演算対象の問題領域に対応する仮想回路データに基づいて、演算ボード５０のＦＰＧＡ５１に各仮想回路を書き込む回路である。ホストプロセッサ１１からの指示内容によって、問題領域ごとに各演算ボード５０のＦＰＧＡ５１に書き込む仮想回路を変える場合もあれば、仮想回路の論理構成は同一で演算対象パラメータを変えることで問題領域ごとに異なる演算結果を得るような場合もある。
【００８２】
仮想回路データ入出力回路６７は、ハードウェア・モジュール３０から送信される仮想回路データの入力、および当該仮想回路データを指定された書き込み・入出力ボード６０へ転送するべく制御する回路である。
【００８３】
各種データ入出力回路６８は、ハードウェア・モジュール３０から送られてきた仮想回路データや演算対象データを受信し、メモリ制御回路６５を介してメモリ６２に記憶したり、対応する演算ボード５０へ転送したりする回路である。また、対応する演算ボード５０から送られてくる問題領域の演算結果データや各回路の演算結果データ等を、ハードウェア・モジュール３０を介してホストプロセッサ１１へ送信する回路である。
【００８４】
なお、書き込み・入出力ボード６０の書き込み回路６６および仮想回路データ入出力回路６７は、対応する演算ボード５０への演算回路等の書き込みが終了した時点で消去してもよい。このようにした場合、書き込み・入出力ボード６０のＦＰＧＡ６１のリソースを節約することができる。勿論、ＦＰＧＡ６１へ各種データ入出力回路６８を書き込んでもなおリソースに余裕があれば、書き込み回路６６および仮想回路データ入出力回路６７を残しておいてもよい。
【００８５】
［７．演算装置アレイによる演算処理］
次に、図１０に示した演算装置アレイ４０を例に演算処理の概要を説明する。
前提として、演算装置アレイ４０を構成する各演算装置４０−１の演算ボード５０および書き込み・入出力ボード６０に、各々が担当する演算対象の問題領域に合わせてhwNet29である仮想回路（図１２参照）が書き込まれた状態であるとする。演算を行う順番は、演算対象の物理現象や特性等に基づいて決定される。ここでは演算装置「００」，演算装置「１０」，演算装置「２０」から演算を開始して横方向へ順に移動していき、末端の演算装置「０３」，演算装置「１３」，演算装置「２３」で演算を終了する場合を想定する。
【００８６】
演算装置アレイ４０を構成する１２個の演算装置、演算装置「００」〜演算装置「２３」の各々の演算ボード５０に、それぞれが担当する演算対象の問題領域ごとの演算対象パラメータの初期値が入力されメモリ５２に一時記憶される。また、メモリ５２は、当該演算装置が転送すべき「演算結果の転送先」の情報を記憶している。
【００８７】
演算装置「００」，「１０」，「２０」の演算ボード５０における並列演算回路５６（図１２参照）は、ハードウェア・モジュール３０を介して入力されるホストプロセッサ１１からの指示を受けて、あるいは所定の信号や条件をトリガとするタイミングで、各々の対応する問題領域について演算を開始する。生成された各演算結果データはそれぞれのメモリ５２に記憶する。
【００８８】
続いて、演算装置「００」，「１０」，「２０」はメモリ５２に格納した各々の演算結果データを、ホストプロセッサ１１（または図示せぬクロック発生部）が発信するクロック信号（ＣＬＫ）に同期して、隣接ＦＰＧＡデータ転送回路５９Ｘ（図１２参照）からコネクタ５３Ｒ（図７参照）を介してそれぞれ「演算結果の転送先」である演算装置「０１」，「１１」，「２１」へ転送する。
【００８９】
演算装置「０１」，「１１」，「２１」では、各隣接ＦＰＧＡデータ転送回路５９Ｘがコネクタ５３Ｌを介して演算装置「００」，「１０」，「２０」からそれぞれ演算結果データを受信する。そして、受信した演算結果データと演算対象パラメータ値、及び各演算装置に保存された過去の演算時点での演算結果を用いて、演算装置「０１」，「１１」，「２１」の並列演算回路５６が新たな演算結果データを生成し、それぞれのメモリ５２に記憶する。
【００９０】
同様にして、演算装置「０１」，「１１」，「２１」は各々の演算結果データを、「演算結果の転送先」の情報に従って演算装置「０２」，「１２」，「２２」に転送する。演算装置「０２」，「１２」，「２２」では、演算装置「０１」，「１１」，「２１」から受信した各々の演算結果データと演算対象パラメータ値、及び各演算装置に保存された過去の演算時点での演算結果を用いて、並列演算回路５６が新たな演算結果データを生成し、それぞれのメモリ５２に記憶する。
【００９１】
また、演算装置「０２」，「１２」，「２２」は各々の演算結果データを、「演算結果の転送先」の情報に従って演算装置「０３」，「１３」，「２３」に転送する。演算装置「０３」，「１３」，「２３」では、演算装置「０２」，「１２」，「２２」から受信した各々の演算結果データと演算対象パラメータ値、及び各演算装置に保存された過去の演算時点での演算結果を用いて、演算装置「０３」，「１３」，「２３」の並列演算回路５６が新たな演算結果データを生成し、それぞれのメモリ５２に記憶する。
【００９２】
演算装置「００」〜演算装置「２３」の全ての演算装置で演算処理が終了した後、演算結果データをホストプロセッサ１１へ送信する処理を実行する。まず演算装置「００」〜演算装置「２３」の各々の演算ボード５０における並列演算回路５６は、担当する問題領域について演算結果データを生成した後、当該演算結果データを演算結果データ入出力回路５８からコネクタ５４を介して対応する書き込み・入出力ボード６０へ転送する。
【００９３】
演算装置「００」〜演算装置「２３」の各々の書き込み・入出力ボード６０において、各種データ入出力回路６８がコネクタ６４を介して、対応する演算ボード５０から演算結果データを受信する。そして、各種データ入出力回路６８は、受信した演算結果データを、通信路３６を通じてハードウェア・モジュール３０へクロック信号（ＣＬＫ）に同期して転送する。
【００９４】
ハードウェア・モジュール３０においては、演算装置アレイ４０の演算装置「００」〜演算装置「２３」から受信した各演算結果データをＦＰＧＡ３４からローカルプロセッサ３３へ送る。ローカルプロセッサ３３は、標準バス・インターフェース３１からバス１４を介して、ホストプロセッサ１１へ演算結果データを転送する。
【００９５】
演算装置アレイ４０を構成する各演算装置４０−１から個々の問題領域に対する演算結果データを取得したホストプロセッサ１１は、当該演算結果データと対応する演算装置の番号を基に演算対象全体の演算を実行する。そして、図３に示したような演算対象全体の物理的構造や論理的構造、特性などを解析し、表示装置（図示せず）に出力する。
【００９６】
上記構成の演算ボード５０と書き込み・入出力ボード６０を備える演算装置４０−１によれば、任意の演算装置４０−１の演算ボード５０による演算結果データを隣接する演算装置４０−１の演算ボード５０へ直接転送することができる。つまり、演算のためのデータ転送にはバスを介さない。
【００９７】
また、演算装置アレイ４０の各演算装置４０−１による演算結果データ等を取り出してホストプロセッサ１１宛てに送信するとき、および、ホストプロセッサ１１から仮想回路データや演算対象データ等を受信するときのみバス（例えばバス１４）を利用する。
このように構成したことにより、隣接する演算装置４０−１間のデータ転送処理が情報処理装置の処理能力のボトルネックになることを回避することができる。
【００９８】
なお、演算装置アレイ４０の各演算装置からホストプロセッサ１１への演算結果データの転送は、各演算装置において問題領域の演算が終了後、演算結果データをメモリに記憶する処理と併せて実行するようにするとよい。このようにした場合、演算が終了した演算装置から順に演算結果データがホストプロセッサ１１へ向けて転送されるので、データの輻輳が抑制され、バス１４を始めとする各通信路におけるオーバーヘッドを小さくすることができる。
【００９９】
本出願人の試作した情報処理装置によれば、１２８セットの演算装置を用いて演算装置アレイを構成したところ、約０．７テラフロップス（ＴＦＬＯＰＳ）を達成している。
【０１００】
［８．演算装置への書き込み処理］
次に、図１３および図１４を参照して、演算装置アレイを構成する各演算装置に対する演算回路等の書き込み処理を説明する。図１３は、演算回路等書き込み処理を示すフローチャートである。図１４は、演算回路等書き込み処理時の状態遷移を示すものである。
【０１０１】
図１０に示したように、最初の書き込み回路はホストプロセッサ１１上にあり、ホストプロセッサ１１から段階的に、演算装置アレイ４０の各演算装置４０−１に演算回路等の仮想回路を書き込んでいく。しかし、仮想回路の中に書き込み回路が構成されていないと、次段（隣接）の演算装置４０−１に仮想回路を書き込むことができない。他方、演算時には、書き込み回路は不用であるので、仮想回路の書き込みが終了したときには削除するのが望ましい。したがって、書き込みが可能なように、全ての演算装置４０−１に対して、書き込み回路あるいは書き込み用の接続回路を書き込み、その後に末端の演算装置４０−１から演算回路等に置き換えていく必要がある。この処理は、ホストプロセッサ１１上で動作するソフトウェアが図１３に示す流れに沿って行う。
【０１０２】
まず、ホストプロセッサ１１がバス１４および標準バス・インターフェース３１を介して、メモリ１２に記憶してある演算対象に基づく仮想回路書き込みデータをハードウェア・モジュール３０へ送信する（ステップＳ１）。この仮想回路書き込みデータには少なくとも、演算対象の各問題領域に対応する「演算装置の番号」と、それに対応する「仮想回路データ」と、「書き込み順番」の情報が含まれる。現段階では、演算装置４０−１を構成する演算ボード５０および書き込み・入出力ボード６０には仮想回路が書き込まれていない初期状態である（図１４Ａ）。
【０１０３】
ホストプロセッサ１１は、ハードウェア・モジュール３０内のＦＰＧＡからなるローカルプロセッサ３３に、仮想回路書き込みデータを書き込む（ステップＳ２）。
【０１０４】
そして仮想回路書き込みデータが書き込まれたローカルプロセッサ３３は、ハードウェア・モジュール３０内の演算装置アレイ制御用のＦＰＧＡ３４に、仮想回路書き込みデータを書き込む（ステップＳ３）。
【０１０５】
仮想回路書き込みデータが書き込まれたＦＰＧＡ３４は、入出力インターフェース３５および通信路３６を通じて、演算装置アレイ４０の所定の演算装置４０−１に仮想回路書き込みデータを送信する（ステップＳ４）。
【０１０６】
ＦＰＧＡ３４は、演算装置４０−１の書き込み・入出力ボード６０のＦＰＧＡ６１に、仮想回路データに基づく書き込み回路６６および仮想回路データ入出力回路６７を再構成する。さらに、各種データ入出力回路６８を再構成する。そして、書き込み回路６６および仮想回路データ入出力回路６７が書き込まれた書き込み・入出力ボード６０では、入力された仮想回路データを当該仮想回路データに含まれる書き込み順番に従って、隣接する演算装置４０−１の書き込み・入出力ボード６０へ転送する（ステップＳ５）。このとき、書き込み・入出力ボード６０に書き込み回路６６および仮想回路データ入出力回路６７が書き込まれた状態となる（図１４Ｂ）。
【０１０７】
図１０を例に説明すると、一例として演算装置「００」→演算装置「１０」，「０１」→演算装置「２０」，「１１」，「２２」→・・・の順番に書き込み回路６６等を書き込んでいく。なお、図１０に示した例では、演算装置が２次元に配置してあるが、演算装置が３次元に配置されていれば書き込み処理を３次元で展開してもよい。
【０１０８】
ホストプロセッサ１１は、書き込み・入出力ボード６０へ書き込み回路６６等を書き込むと、その都度、動作確認のため書き込み・入出力ボード６０から書き込み完了を示す終了信号（フラグ）を取得する。そして、ホストプロセッサ１１は、全ての演算装置４０−１の書き込み・入出力ボード６０について、書き込み回路等の再構成が終了したか否かを判定する（ステップＳ６）。
【０１０９】
全ての書き込み・入出力ボード６０について書き込み回路６６等の書き込みが終了していない場合、ステップＳ５の処理に戻り、書き込み処理を継続する。
【０１１０】
一方、全ての書き込み・入出力ボード６０について書き込みが終了した場合、演算装置アレイ４０の末端の書き込み・入出力ボード６０の書き込み回路６６が、対応する演算ボード５０のＦＰＧＡ５１に並列演算回路５６等の仮想回路（図１２参照）を書き込んでいく（ステップＳ７）。
【０１１１】
そして、全ての書き込み・入出力ボード６０に対応する書き込み回路６６が、入力された仮想回路データに含まれる書き込み順番情報に従って、対応する書き込み演算ボード５０のＦＰＧＡ５１に並列演算回路５６等の仮想回路を書き込んでいく（ステップＳ８）。
【０１１２】
例えば、演算装置「２３」→演算装置「２２」，「１３」→演算装置「２１」，「１２」，「０３」→・・・の順番に並列演算回路５６へ置き換えていく。なお、図１０に示した例では、演算装置が２次元に配置してあるが、演算装置が３次元に配置されていれば書き込み処理も３次元で展開してもよい。
【０１１３】
ホストプロセッサ１１は、演算ボード５０へ並列演算回路５６等が書き込まれると、その都度、演算ボード５０から書き込み完了を示す終了信号（フラグ）を取得する。ホストプロセッサ１１は終了信号に基づき、全ての演算装置４０−１の演算ボード５０について、並列演算回路５６等の書き込みが終了したか否かを判定する（ステップＳ９）。
【０１１４】
全ての演算ボード５０について書き込みが終了していない場合、ステップＳ８の処理に戻り、並列演算回路５６等の書き込み処理を継続する。
【０１１５】
一方、全ての演算ボード５０について書き込みが終了した場合、演算装置アレイ４０の演算装置４０−１に対する仮想回路の書き込みを終了する。このとき、書き込み・入出力ボード６０には書き込み回路６６と仮想回路データ入出力回路６７等が、演算ボード５０には並列演算回路５６等が書き込まれた状態となる（図１４Ｃ）。
【０１１６】
１つの演算装置を書き換えるのにおおよそ４０ｍｓであるので、演算装置アレイ全体でも数秒で書き換えることができる。
【０１１７】
なお、ＦＰＧＡはゲートアレイであるからゲート数のリソースには限りがある。また、演算時には、書き込み回路は不用であるので、仮想回路の書き込みが終了したときには削除するのが望ましい。そこで、演算ボード５０に並列演算回路５６等を書き込むその一方で、仮想回路データ書き込み回路が最後に書き込まれた演算装置４０−１から最初に書き込まれた演算装置４０−１まで順に、書き込み・入出力ボード６０のＦＰＧＡ６１に書き込んだ書き込み回路６６と仮想回路データ入出力回路６７を消去する。このとき、書き込み・入出力ボード６０には各種データ入出力回路６８が、また演算ボード５０には並列演算回路５６等が書き込まれた状態となる（図１４Ｄ）。
【０１１８】
また、仮想回路データ書き込み回路が最後に書き込まれた演算装置４０−１から最初に書き込まれた演算装置４０−１まで順に、書き込み・入出力ボード６０のＦＰＧＡ６１に書き込んだ書き込み回路６６と仮想回路データ入出力回路６７を消去するとしたが、この例に限られない。すなわち、ホストプロセッサ１１が全ての演算装置４０−１について演算回路等の書き込み動作が正常かどうかを確認できればよく、適切な順番で、書き込み・入出力ボード６０の書き込み回路６６と仮想回路データ入出力回路６７を消去していけばよい。
【０１１９】
さらに上述した例では、仮想回路データ入出力回路６７と各種データ入出力回路６８を別々に構成したが、データ転送回路などとして一体に構成してもよい。
【０１２０】
図１５は、演算回路等の仮想回路を書き込んだ後の演算装置アレイの状態を示したものである。
この例では、第１の演算装置の演算ボード５０−１と隣接する第２の演算装置の演算ボード５０−２が接続し、第１の演算装置の書き込み・入出力ボード６０−１と隣接する第２の演算装置の書き込み・入出力ボード６０−２が接続している。第１の演算装置はハードウェア・モジュールを介してハードウェア・モジュール３０（ホストプロセッサ１１側）と接続しているとする。
【０１２１】
第１の演算装置の演算ボード５０−１の並列演算回路５６で生成された演算結果データは、対応する書き込み・入出力ボード６０−１の各種データ入出力回路６８からハードウェア・モジュール３０へ送信され、ハードウェア・モジュール３０からバス１４を介してホストプロセッサ１１へ転送される。
【０１２２】
一方、第２の演算装置の演算ボード５０−２の並列演算回路５６で生成された演算結果データは、対応する書き込み・入出力ボード６０−２の各種データ入出力回路６８からまずはホストプロセッサ１１側に近い第２の演算装置の書き込み・入出力ボード６０−２へ送信される。それから、書き込み・入出力ボード６０−２の各種データ入出力回路６８によって、第２の演算装置の当該演算結果データが通信路３６を介してハードウェア・モジュール３０へ送信され、ハードウェア・モジュール３０からバス１４を介してホストプロセッサ１１へ転送される。
【０１２３】
本例では、説明の便宜上、隣接する２個の演算装置間の演算結果データの転送処理について説明したが、それ以上の個数の演算装置間、あるいは３次元配置された複数の演算装置間においても技術思想の基本は同じである。
【０１２４】
上述のように構成された本実施の形態によれば、演算装置アレイを構成する全ての演算装置（ＦＰＧＡ等）は隣接演算装置に対してのみ演算結果等のデータを転送する処理を実行すればよく、データ転送処理が情報処理装置の処理能力のボトルネックになることを回避することができる。
【０１２５】
また、従来の演算装置は全てのデータ転送にバスを介して行っていたため消費電力が膨大なものになり、データ転送の高速化を実現する上で障害となっていたが、上記実施の形態では演算装置間のデータ転送にバスを用いずコネクタ直結によるデータ転送を行うようにしたので、バスを用いた場合と比較して消費電力を小さくできる。
【０１２６】
また、従来は通信路での高速性と低消費電力を実現するために光通信を利用することが行われていたが、本実施の形態では光通信を用いずに処理能力の向上および低消費電力を実現するので、大規模演算用の情報処理装置を安価に提供できる。したがって、個人であっても、予約待ちをすることなく、大規模演算用のコンピュータを利用できるようになる。
【０１２７】
［９．本発明の他の実施の形態に係る演算装置アレイ］
３次元構造の演算装置アレイ４０において、図１２に示したように、一つの演算装置４０−１の演算ボード５０には、隣接ＦＰＧＡデータ転送回路が３対ある。この隣接ＦＰＧＡデータ転送回路の接続先を電気的に変えることで、３次元領域の中に２次元領域を畳み込むことができる。すなわち、３次元に構成した演算装置アレイの各演算装置を電気的に制御することにより、２次元または３次元の演算装置アレイとして使用することが可能になる。
【０１２８】
例えば、図１６に示す演算装置アレイ７０は、ＸＹ領域に配列された４つの演算装置アレイ７１，７２，７３，７４が順に連接された構成である。末端の演算装置、例えばＸ端の演算装置においてＺ方向の演算装置に接続することでＸＹ領域はＺ方向に向きを変え、上層の演算装置アレイで逆方向に進むことが可能である。
【０１２９】
すなわち、演算装置アレイ７１のＸ端に位置する演算装置７１−１，７１−２，７１−３と、対応する下層の演算装置アレイ７２のＸ端に位置する演算装置７２−１０，７２−１１，７２−１２をそれぞれケーブル７６で接続している。一方、演算装置アレイ７２と演算装置アレイ７３との関係では、演算装置アレイ７１と演算装置アレイ７２の接続部分とは反対側のＸ端を接続する。同様にして、演算装置アレイ７３と演算装置アレイ７４との関係では、演算装置アレイ７２と演算装置アレイ７３の接続部分とは反対側のＸ端を接続する。
【０１３０】
結果として、最下層にある演算装置アレイ７４の演算装置７４−１，７１−２，７１−３から、演算装置アレイ７２および演算装置アレイ７３を経由して、最上層にある演算装置アレイ７１の演算装置７１−１０，７１−１１，７１−１２までが２次元に接続され、演算装置アレイ７０を２次元領域で構成することができる。
【０１３１】
これらの接続態様は、ホストプロセッサ１１が演算対象に合わせて決定する。つまり、演算装置アレイを構成する複数の演算装置のうちいずれの演算装置間を接続するかをホストプロセッサ１１が決定し、その決定事項を「演算結果の転送先」として各演算装置に送るようにする。
【０１３２】
このようにして、コネクタを用いて物理的に３次元に配置した演算装置アレイであっても、より低次（２次元、１次元）の演算対象となる問題領域を畳み込んで演算が行えるよう各演算装置に所望の演算回路等を書き込むことで、隣接する演算装置と物理的な接続を変えることなく電気的に接続を変更することができる。
【０１３３】
［１０．本発明のさらに他の実施の形態に係る演算装置アレイ］
次に、演算対象が周期境界条件を満たす場合の演算装置アレイについて説明する。
演算対象が周期境界条件を満たす場合、演算装置アレイを構成する複数のハードウェア・ネットすなわち演算装置のうち周期境界に位置する演算装置同士を電気的に接続し、トーラス状（円環）を形成する。
【０１３４】
例えば、図１７に示す２次元の演算装置アレイ８０において、周期境界に該当する最終段の演算装置８０−１０，８０−１１，８０−１２と、一方の周期境界に該当する初段の演算装置８０−１，８０−２，８０−３をコネクタ８１を介して電気的に接続する。この時、各演算装置間で発生する遅延時間が同一になるように各演算装置のコネクタはフレシキブルな配線を用いて適用する事も勿論である．このようにして、演算装置８０−１０，８０−１１，８０−１２の各々の演算結果データを、最初に演算を行う演算装置８０−１，８０−２，８０−３に戻すことにより、繰り返し処理が行える。なお、図１７に示す例では、２次元的周期境界条件を満たす場合を説明したが、３次元の周期境界条件を満たす場合にも適用できることは勿論である。
【０１３５】
以上に述べた実施の形態は、本発明を実施するための好適な形態の具体例であるから、技術的に好ましい種々の限定が付されている。ただし、本発明は、以上の実施の形態の説明において特に本発明を限定する旨の記載がない限り、これらの実施の形態に限られるものではない。したがって、例えば、以上の説明で挙げた使用材料とその使用量、処理時間、処理順序および各パラメータの数値的条件等は好適例に過ぎず、また、説明に用いた各図における寸法、形状および配置関係等も実施の形態の一例を示す概略的なものである。したがって、本発明は、上述した実施の形態の例に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【０１３６】
例えば、図１２に示す演算装置４１−１において、演算ボード５０と書き込み・入出力ボード６０に、それぞれメモリ５２とメモリ６２を備えるようにしたがこれらは一つで代用してもよい。例えば、メモリ６２は搭載せずメモリ５２だけを使用するようにしてもよい。また、メモリ５２とメモリ６２に代えて大規模なメモリボードを用意したり、ハードディスク等の大容量記録装置を設けるようにしたりしてもよい。
【図面の簡単な説明】
【０１３７】
【図１】従来のシステムの概要を示す構成図である。
【図２】スイッチボックスの説明に供する概略図である。
【図３】演算対象の一例を示す模式図である。
【図４】本発明の一実施の形態に係る演算装置アレイを示す概略図である。
【図５】本発明の一実施の形態に係る演算装置（演算ボード）のコネクタ配置を示す図である。
【図６】本発明の一実施の形態に係る演算装置（演算ボード）の相互接続の説明に供する図である。
【図７】本発明の一実施の形態に係る演算装置の分解斜視図である。
【図８】本発明の一実施の形態に係る情報処理装置の概要を示す図である。
【図９】本発明の一実施の形態に係るホストプロセッサとハードウェア・ネット間の制御概要を示す図である。
【図１０】本発明の一実施の形態に係る情報処理装置の全体構成を示す概略図である。
【図１１】本発明の一実施の形態に係るホストプロセッサの階層を示す構成図である。
【図１２】本発明の一実施の形態に係る演算装置（演算ボード、書き込み・入出力ボード）の機能を示すブロック図である。
【図１３】本発明の一実施の形態に係る演算回路等書き込み処理を示すフローチャートである。
【図１４】Ａ〜Ｄは、本発明の一実施の形態に係る演算回路等書き込み時の状態遷移を示す図である。
【図１５】本発明の一実施の形態に係る演算回路等書き込み後の状態を示す図である。
【図１６】本発明の他の実施の形態に係る３次元領域に２次元領域を畳み込む場合の演算装置アレイを示す図である。
【図１７】本発明のさらに他の実施の形態に係る周期境界条件を満たす場合の演算装置アレイを示す図である。
【符号の説明】
【０１３８】
６−１Ａ〜６−１Ｃ…格子点、１１…ホストプロセッサ、１２…メモリ、１３…ＰＬＤ、１４…バス、２１…アプリケーション、２２…オブジェクト・マネジャー、２３…ハードウェア・モジュール・ドライバ、２５…バス、２６…ハードウェア・オブジェクト、２７…ハードウェア・ドライバ、２８…インターフェース、２９…ハードウェア・ネット、３０…ハードウェア・モジュール、３１…標準バス・インターフェース、３２…ローカルメモリ、３３…ローカルプロセッサ、３４…ＦＰＧＡ、３５…入出力インターフェース、３６…通信路、４０…演算装置アレイ、４０−１…演算装置、５０…演算ボード、５１…ＦＰＧＡ、５２…メモリ、５３Ｆ，５３Ｂ，５３Ｌ，５３Ｒ，５３Ｕ，５３Ｄ，５４…コネクタ、５５…メモリ制御回路、５６…並列演算回路、５６Ａ，５６Ｂ…論理ブロック、５７…演算対象データ入出力回路、５８…演算結果データ入出力回路、５９Ｘ，５９Ｙ，５９Ｚ…隣接ＦＰＧＡデータ転送回路、６０…書き込み・入出力ボード、６０Ａ１…切り欠き、６１…ＦＰＧＡ、６２…メモリ、６３Ｆ，６３Ｂ，６４…コネクタ、６５…メモリ制御回路、６６…書き込み回路、６７…仮想回路データ入出力回路、６８…各種データ入出力回路
【図１】
2010026607.tif 000003
【図２】
2010026607.tif 000004
【図３】
2010026607.tif 000005
【図４】
2010026607.tif 000006
【図５】
2010026607.tif 000007
【図６】
2010026607.tif 000008
【図７】
2010026607.tif 000009
【図８】
2010026607.tif 000010
【図９】
2010026607.tif 000011
【図１０】
2010026607.tif 000012
【図１１】
2010026607.tif 000013
【図１２】
2010026607.tif 000014
【図１３】
2010026607.tif 000015
【図１４】
2010026607.tif 000016
【図１５】
2010026607.tif 000017
【図１６】
2010026607.tif 000018
【図１７】
2010026607.tif 000019