(57)【要約】【課題】  セルインデックス法の計算を効率よく行う専用計算機を実現する。【解決手段】  座標データと物理量データとを格納する粒子記憶手段１５０と、その先頭アドレスと粒子数または最終アドレスをセル毎に格納するセルインデックス記憶手段１４２と、各粒子に対して座標データおよび物理量データを粒子記憶手段から読み込んで、中心セルの粒子の力またはポテンシャルエネルギーを並行して計算する複数のパイプライン計算手段１６０と、周辺セルの相対座標データを格納するセル相対位置記憶手段１０４と、周辺セルのセル番号を生成するセル番号生成手段１３０Ａ、Ｂとを備える計算処理装置。パイプライン計算手段は、セル番号生成手段からのセル番号に対応させてセルインデックス記憶手段から読み出される先頭アドレスと粒子数または最終アドレスとによって、粒子記憶手段の記憶領域からデータを読み込んで数値計算を実行する。【選択図】        図３
2006236256.tif 000002
【特許請求の範囲】
【請求項１】
所定の空間内に配置される複数の粒子間に作用する力またはポテンシャルエネルギーを、該空間を分割した複数のセルを用いるセルインデックス法によって計算する計算処理装置であって、
前記粒子のそれぞれについて、前記空間内での座標データと前記力またはポテンシャルエネルギーの算出に必要な物理量データとを、同一のセル内にある粒子について連続するアドレスの記憶領域に格納する粒子記憶手段と、
各セルに属する粒子についての該粒子記憶手段における先頭アドレスと該セル内の粒子数または最終アドレスとを、セルを特定するセル番号に対応させて格納するセルインデックス記憶手段と、
前記複数のセルのうち、力またはポテンシャルエネルギーを算出すべき粒子を含む中心セルと該中心セルに対して所定の相対位置にある少なくとも一つの周辺セルとに含まれる各粒子に対して、座標データおよび物理量データを前記粒子記憶手段から読み込んで、該中心セルの粒子に作用する力またはポテンシャルエネルギーを数値計算して積算する少なくとも１つのパイプライン計算手段と、
中心セルに対する前記周辺セルの相対座標データを連続するアドレスの記憶領域に格納するセル相対位置記憶手段と、
中心セルの座標データを受け付けて、中心セルの該座標データに、前記セル相対位置記憶手段の連続するアドレスに格納されている周辺セルの相対座標データを加算して各周辺セルの座標を生成し、各周辺セルの該座標から、該周辺セルの前記セル番号を生成するセル番号生成手段と
を備え、
前記パイプライン計算手段は、前記粒子記憶手段の記憶領域のうち、前記セル番号生成手段からのセル番号に対応させて前記セルインデックス記憶手段から読み出される先頭アドレスと粒子数または最終アドレスとによってアドレス指定される記憶領域から、粒子の座標データと物理量データとを読み込んで前記数値計算を実行するものである、計算処理装置。
【請求項２】
各周辺セルの座標データが前記空間内の座標データであるか前記空間外の座標データであるかの判定を行って境界判定信号を出力する境界処理手段をさらに備え、
前記パイプライン計算手段は、該境界判定信号に応じて異なる演算処理を行う、請求項１に記載の計算処理装置。
【請求項３】
前記境界処理手段は、前記周辺セルの座標データを前記空間外のものであると判定した場合には、前記空間の大きさを与える大きさデータを前記座標データに加算または減算して、前記空間内に平行移動された前記周辺セルの座標を算出するものである、請求項２に記載の計算処理装置。
【請求項４】
前記パイプライン計算手段それぞれは、複数の積算データ記憶手段を有し、前記力またはポテンシャルの計算結果を、前記境界判定信号に応じて異なる積算データ記憶手段に積算させるものである、請求項２に記載の計算処理装置。
【請求項５】
前記力またはポテンシャルエネルギーの積算から排除すべき粒子の前記粒子記憶手段におけるアドレスを保持する排除粒子アドレス記憶手段と、該排除すべき粒子を排除すべきか否かをパイプライン計算手段毎に指定するフラグを保持する排除粒子フラグ記憶手段とを含む排除粒子リスト手段をさらに複数含み、
該排除粒子リスト手段は、前記セル番号生成手段からのセル番号に対応して前記セルインデックス記憶手段から読み出される先頭アドレスと粒子数または最終アドレスとによって指定される前記粒子記憶手段のアドレスを、前記排除粒子アドレス記憶手段に格納されるアドレスと比較して、両アドレスが一致する粒子について、前記排除フラグ記憶手段に格納されるフラグと組み合わせて積算制御信号を出力するものであり、
前記パイプライン計算手段は、該積算制御信号に応じて積算を実行するか実行しないかを切り替える、請求項１に記載の計算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は数値計算処理装置に関する。特に、本発明は、計算技術シミュレーション計算において数値演算を行なう専用計算処理装置に関する。
【背景技術】
【０００２】
従来より、コンピュータの高速化が要望されている。特に計算負荷の高い科学技術シミュレーションなどの分野において、数値計算を高速に処理する演算処理装置が求められている。
【０００３】
このような科学技術シミュレーションのうち、分子動力学シミュレーション、重力多体問題シミュレーションなどの古典粒子シミュレーションは、物質の性質や宇宙の成り立ちを研究する上で重要な計算手法である。これらのシミュレーションにおいては、粒子間に働く古典的な力の計算が計算時間の大部分を占める。このため、この力の計算を高速に実行するための専用計算機が開発されている。
【０００４】
特許文献１には、重力多体系および電気力多体系用相互作用力計算用処理装置が開示されている。特許文献１は、粒子間に働く重力および電気力およびそれらのポテンシャルを計算する専用計算機を開示している。この専用計算機は、内部の計算処理をパイプライン化してこれに連続して座標・質量・電荷を与えることにより計算を加速するという特徴を有している（例えば、特許文献１の請求項１および２を参照）。
【０００５】
上記従来の専用計算機においては、計算処理の過程において、多数存在する粒子それぞれの座標・質量・電荷を連続して与えて計算が行われている。この従来の専用計算機では、分子動力学シミュレーションを例とすれば、互いに化学結合によって結合している粒子の間も、互いに化学結合によっては結合していない粒子の間も同様に力を計算する。化学結合によって結合している粒子間における力を除いて力の和を正しく計算する場合のように、連続する粒子の座標・質量・電荷から本来含めるべきではない力を取り除いて計算したい場合には、上記従来の専用計算機においては、計算途中で記憶装置上の座標・質量・電荷を書き換えるか、計算終了後別の手法でこれを差し引くかのいずれかを行う必要がある。これらの処理は、いずれも計算時間を要し、従来技術における速度低下の大きな要因となっている。
【０００６】
また、計算に用いる力が到達距離の短い力（例えば、分子動力学シミュレーションの場合であれば、ファンデルワールス力）である場合には、近くの粒子からの影響のみを計算する「セルインデックス法」と呼ばれる手法によって高い計算効率が実現されることが知られている。そして、この手法を上記特許文献１に記載されているような専用計算機上に実装する手法についても既に非特許文献１に公開されている。しかし、セルインデックス法の従来の実装方法では、粒子の存在する空間をセルと呼ばれる箱を単位となるように分割し、各セル内の粒子に関するデータを記憶装置の連続した領域に記憶させる。これを呼び出すためには、各セル内の粒子をおさめた先頭アドレスとセル内の粒子数との組について、全ての計算対象セル分のリストを作成し、このリストに基づいて粒子を読み出す必要がある。この実装手法では、計算の対象となるセル（中心セル）を変更するたびにこのリストを演算装置へと転送する必要があり、計算処理の効率を低下させている。
【特許文献１】特開平５−８９１５７号公報
【非特許文献１】T. Fukushige, M. Taiji, J. Makino, T. Ebisuzaki, D. Sugimoto, Astrophysical J. 468 (1996) 51.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、力の到達距離が短い場合の計算効率を高めること、または、特定の粒子からの力を計算に含めない処理を行っても計算効率を高めることの少なくともいずれかを解決することを課題とする。
【課題を解決するための手段】
【０００８】
本発明は、古典力学的な力やポテンシャルエネルギーの計算をパイプライン方式により連続して計算する計算装置において、転送するデータ量を小さくできるようにハードウェアに実装する。すなわち、本発明においては、所定の空間内に配置される複数の粒子間に作用する力またはポテンシャルエネルギーを、該空間を分割した複数のセルを用いるセルインデックス法によって計算する計算処理装置であって、粒子のそれぞれについて、空間内での座標データと力またはポテンシャルエネルギーの算出に必要な物理量データとを、同一のセル内にある粒子について連続するアドレスの記憶領域に格納する粒子記憶手段と、各セルに属する粒子についての該粒子記憶手段における先頭アドレスと該セル内の粒子数または最終アドレスとを、セルを特定するセル番号に対応させて格納するセルインデックス記憶手段と、複数のセルのうち、力またはポテンシャルエネルギーを算出すべき粒子を含む中心セルと該中心セルに対して所定の相対位置にある少なくとも一つの周辺セルとに含まれる各粒子に対して、座標データおよび物理量データを粒子記憶手段から読み込んで、該中心セルの粒子に作用する力またはポテンシャルエネルギーを数値計算して積算する少なくとも１つのパイプライン計算手段と、中心セルに対する周辺セルの相対座標データを連続するアドレスの記憶領域に格納するセル相対位置記憶手段と、中心セルの座標データを受け付けて、中心セルの該座標データに、セル相対位置記憶手段の連続するアドレスに格納されている周辺セルの相対座標データを加算して各周辺セルの座標を生成し、各周辺セルの該座標から、該周辺セルのセル番号を生成するセル番号生成手段とを備え、パイプライン計算手段は、粒子記憶手段の記憶領域のうち、セル番号生成手段からのセル番号に対応させてセルインデックス記憶手段から読み出される先頭アドレスと粒子数または最終アドレスとによってアドレス指定される記憶領域から、粒子の座標データと物理量データとを読み込んで数値計算を実行するものである、計算処理装置が提供される
【０００９】
本発明における所定の空間は、シミュレーションされる粒子が配置される空間であり、コンピュータの内部において所定の大きさの立体領域として定義される空間である。
【００１０】
粒子とは、重力多体シミュレーションの対象となる質点（重力の原因となる質量を有する星などの天体）や、分子動力学シミュレーションの対象となり、クーロン力やファンデルワールス力の原因となる電荷を有する原子やイオンなどを一般にいう。この粒子は、シミュレーションにおいては複数用いられて、個々の粒子には、空間における座標と、そのシミュレーション目的に応じた物理量（質量、電荷など）が対応付けされている。
【００１１】
セルインデックス法は、空間に存在する粒子を、複数のセルに帰属させ、ある粒子に与える力を、その到達距離内にあるセルのみからの影響を計算することにより、計算効率を高める手法である。
【００１２】
粒子記憶手段とは、粒子の座標データと物理量データとを格納する任意の記憶手段である。本発明の計算処理装置においては、パイプライン計算手段によって、計算に必要な最低限の頻度だけアクセスされる。
【００１３】
パイプライン計算手段は、シミュレーションにおける計算のうち、２粒子間の古典力学的な力またはポテンシャルエネルギーの計算を高速に実行し、計算対象となる粒子の一方を順次変更しながらパイプライン処理を行って、多数の粒子間での古典力学的な力やポテンシャルエネルギーを積算する処理を行う。このパイプライン計算手段は、浮動小数点数値計算を行うために、浮動小数点による加算器、乗算器、除算器を備えている。また、このパイプライン計算手段は複数備えられていて、並行（並列）処理によって数値演算のスループットを高めるように構成されている。
【００１４】
本発明においては、各周辺セルの座標データが空間内の座標データであるか空間外の座標データであるかの判定を行って境界判定信号を出力する境界処理手段をさらに備え、パイプライン計算手段は、該境界判定信号に応じて異なる演算処理を行うこととするとさらに好適である。本発明の境界処理手段は、中心セルの座標を受け取って計算処理が進む際に、周辺セルが空間外になる可能性がある点を適切に処理するために用いられる。これにより、本発明の計算処理装置によって境界処理を実行することができる。
【００１５】
境界処理手段を用いる場合の好適な一例としては、境界処理手段は、周辺セルの座標データを空間外のものであると判定した場合には、空間の大きさを与える大きさデータを座標データに加算または減算して、空間内に平行移動された周辺セルの座標を算出するものとすることができる。これにより、シミュレーションで多用される周期境界条件の処理も本発明の計算処理装置によって実行することができる。
【００１６】
また、境界処理手段を用いる場合の好適な一例としては、パイプライン計算手段それぞれは、複数の積算データ記憶手段を有し、力またはポテンシャルの計算結果を、境界判定信号に応じて異なる積算データ記憶手段に積算させるものとすることができる。積算データ記憶手段は、例えば適当なレジスタであり、力やポテンシャルエネルギーの値が空間内の周辺セルからのものであるか、空間外の周辺セルのものであるかを別々に積算することができる。例えば、積算されたデータがＸ，Ｙ，Ｚの座標軸別に空間内か空間外かが識別できるように、８種類の別々の積算データ記憶手段に計算結果の力やポテンシャルエネルギーを積算することができる。
【００１７】
本発明の計算処理装置では、さらに、所定の粒子について、力やポテンシャルエネルギーの計算から取り除く（排除する）処理を行うことができる。これを行うために、本発明の計算処理装置は、力またはポテンシャルエネルギーの積算から排除すべき粒子の粒子記憶手段におけるアドレスを保持する排除粒子アドレス記憶手段と、該排除すべき粒子を排除すべきか否かをパイプライン計算手段毎に指定するフラグを保持する排除粒子フラグ記憶手段とを含む排除粒子リスト手段をさらに複数含み、該排除粒子リスト手段は、セル番号生成手段からのセル番号に対応してセルインデックス記憶手段から読み出される先頭アドレスと粒子数または最終アドレスとによって指定される粒子記憶手段のアドレスを、排除粒子アドレス記憶手段に格納されるアドレスと比較して、両アドレスが一致する粒子について、排除フラグ記憶手段に格納されるフラグと組み合わせて積算制御信号を出力するものであり、パイプライン計算手段は、該積算制御信号に応じて積算を実行するか実行しないかを切り替えるものとされると好適である。これにより、排除される粒子がある場合には積算から除外する動作を行うことにより、力やポテンシャルエネルギーの計算において所望の粒子からの影響を取り除く処理が、積算処理を実行しながら行うことができ、排除粒子による計算処理装置の計算効率の低下が防止できる。
【発明の効果】
【００１８】
本発明の計算処理装置では、計算の進行に伴って中心セルが移動するたびに従来セルのリスト全てを外部から送信する必要があったものを、中心セルの座標を送信するのみで計算できるようになり、計算処理効率が向上する。
また、本発明の計算処理装置で排除粒子リストを含む場合には、排除したい粒子のアドレスと、パイプラインごとのフラグを送るだけで特定の粒子からの力やポテンシャルを計算から取り除くことができるようになり、計算処理効率が向上する。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して、本発明の専用計算機を含む計算システムの実施の形態について説明し、さらに、そのシステムにおいて用いられている専用計算機部１０を構成する集積回路の構成について説明する。
【００２０】
本実施の形態は、分子動力学シミュレーションを行うための計算システムの実施の形態である。図１は、本実施の形態の計算システム１の全体の構成を概念的に示す説明図である。この計算システム１は、ホスト計算機部２０と専用計算機部１０からなる。ホスト計算機部２０は粒子の間に働く力の計算に必要な粒子の座標データや、電荷、質量などの物理量データを専用計算機部１０に送る。専用計算機部１０はこのデータに基づいて、例えば粒子間の古典力学的な力の計算やポテンシャルエネルギーの計算のなどの特定の計算を高速に行ない、ホスト計算機部２０に力、ポテンシャルエネルギーなどの計算結果を返す。シミュレーションに必要なその他の部分の計算は全てホスト計算機部２０で実行する。つまり、専用計算機部１０は、計算システム１が目的としているシミュレーション計算のうち、古典力学的な計算に特化した処理を専ら実行するような、ホスト計算機部２０の加速装置として機能する。本実施の形態の計算システム１は、従来必要であったホスト計算機部２０と専用計算機部１０の間の通信量を大幅に削減して通信に要する時間を削減することによって、計算システム１全体の計算効率を向上させる。
【００２１】
この専用計算機部１０を計算機として実装した場合の詳細なブロック構成を図２に示す。図２に示したように、ホスト計算機部２０には、中央演算処理装置（ホストＣＰＵ）２２０が備えられており、図示しない記憶手段が備えられている。専用計算機部１０を動作させて目的のシミュレーションを実行するための各種プログラムやデータは、その記憶手段に格納されている。
【００２２】
専用計算機部１０は、一般には専用計算機ボード１０1〜１０Nによって構成される。専用計算機ボード１０1〜１０Nには、ホスト計算機部２０との間で高速に設定データや計算結果データをやり取りするためのインターフェースＬＳＩ３２０が備えられている。そして、ＭＤＧ３-ＬＳＩと記されている専用処理部１００がこのインターフェースＬＳＩ３２０と通信可能に構成されている。この専用処理部１００は、本発明を実装した集積回路である。
【００２３】
専用処理部１００には、後述する粒子メモリ（粒子記憶手段）１５０、パイプライン部（パイプライン計算手段）１６０等、本発明の処理に必要な要素全てが実装されている。実装例では、専用計算機部１０は、１つの専用計算機ボード１０1により構成され、その専用計算機ボード１０1には１２個の専用処理部１００のＬＳＩが搭載されている。各専用処理部１００は、図２に示したように、リング状に連結されて、最初のものと最後のものがインターフェースＬＳＩ３２０に接続されている。ホスト計算機部２０には、インターフェース部２８０が適当なバスを通じてホストＣＰＵ２２０と通信可能に接続されており、これにより、ホスト計算機部２０は、専用計算機部１０のインターフェースＬＳＩ３２０と高速インターフェース回線３００によって接続されている。
【００２４】
本実施形態の計算システム１においては、ホスト計算機部２０が計算のためのデータを送ると、インターフェースＬＳＩ３２０は専用処理部１００に向けてデータを受け渡し、専用処理部１００は、内部のメモリやレジスタにそのデータを格納する。専用処理部１００が計算を終えると、インターフェースＬＳＩ３２０は計算結果データを各専用処理部１００から読み出してホスト計算機部２０に送信する。
【００２５】
図３は、専用処理部１００の詳細な構成を示すブロック構成図である。本実施の形態において用いる専用処理部１００では、各粒子の情報を格納するメインメモリ（粒子メモリ、粒子記憶手段）１５０を用いる。この粒子メモリ１５０は、各粒子について、座標を１２０ビット（ｘ，ｙ，ｚ各４０ビット）、電荷・粒子種・質量などの力またはポテンシャルの計算に必要なデータ４０ビットの合計１６０ビットを１ワードとして格納している。そして、粒子メモリ１５０は、３２，７６８ワードの容量を有しており、同時に扱える粒子数が３２，７６８個である。粒子をアドレス指定するためには、１５ビット幅のアドレスを用いることができる。
【００２６】
図４を用いて分子動力学シミュレーションにおけるセルインデックス法について説明する。図４は、セルインデックス法を用いる場合において、計算機上にシミュレーション系が設定される空間と、その空間内におけるセルの配置の例を示す説明図である。分子動力学シミュレーションは、所定の大きさの空間７０を計算機上に設定し、この空間にシミュレーションの対象の粒子を配置させて、シミュレーション系として行う。この空間７０は、その中の各位置が（Ｘ，Ｙ，Ｚ）の座標値により指定可能であり、典型的には、境界面Ｂ1〜Ｂ6の境界までの広がりを有している。ここで、Ｂ1、Ｂ2はそれぞれ、Ｘ座標の最小値と最大値によって定まる境界であり、同様に、Ｂ3、Ｂ4はＹ座標の最小値と最大値によって、Ｂ5、Ｂ6はＺ座標の最小値と最大値によって定まる境界である。シミュレーションにおいては、典型的には、各境界面Ｂ1〜Ｂ6において適当な境界条件（たとえば、周期境界条件）が設定される。セルインデックス法においては、空間７０内がさらにセルに区分されて計算が進められる。このセルのそれぞれは、到達距離の短い力を対象とする計算に適するような適当な大きさに区切られた立体空間領域であり、計算の際に注目するセル（中心セルＣ0）と、その周りに設定される周辺セルからなる。図４では、図示の都合で立方体形状の中心セルＣ0の各面に隣接する最隣接セルＣ1〜Ｃ6を周辺セルとして明示しているが、計算に考慮する周辺セルの範囲は、中心セルの頂点から力の到達距離内に領域を持つセルであるので、通常最隣接セルに隣接するセル（第２最隣接セル）まで広がっているか、また、さらに細かい分割を行うこともできる。セルインデックス法の計算においては、空間７０中に散らばる粒子（図示しない）を多数設定し、その空間７０のセルを順次中心セルとして定め、さらに、到達距離の短い力が及びうる範囲を含むように周辺セルを設定して、その中心セルと周辺セルとを含めた局所空間において力やポテンシャルエネルギーの計算を実行する。ある中心セルの設定のもとでの計算が１ステップ分終了すると、次に、中心セルおよび周辺セルを移動させて同様の計算を行う。空間７０内の全セルを中心セルとして計算し終わると、次の計算を１ステップ分同様に実行し、多数ステップの計算を実行してゆく。
【００２７】
再び、図３に戻って、本実施の形態の計算システムに用いる専用処理部１００の構成を説明する。中心セルの指定は、座標（Ｘ０，Ｙ０，Ｚ０）によって行うことができる。この座標は、それぞれ各１２ビット幅の整数で表現する。中心セルに対し、計算する対象となる周辺セルの相対位置（ΔＸ，ΔＹ，ΔＺ）のリストは相対セル位置メモリ１０４に記録されている。このメモリは、本実施の形態の専用処理部１００では、各ワードが１２ビット幅であり、１０２４ワードの容量とされている。各ワードにおいては、通常は、ΔＸ，ΔＹ，ΔＺに４ビットずつ割り当てられるが、計算の目的に応じて、１２ビットの幅内でΔＸ，ΔＹ，ΔＺの割り当てを変更することができる。中心セルの座標（Ｘ０，Ｙ０，Ｚ０）は、中心セルが変更されるたびにホスト計算機部２０から専用処理部１００に入力されるが、相対セル位置メモリ１０４における周辺セルの相対位置（ΔＸ，ΔＹ，ΔＺ）のリストは、計算の開始時等の適当な時点でホスト計算機部２０から書き込まれており、中心セルの座標（Ｘ０，Ｙ０，Ｚ０）が変更されても保持されている。
【００２８】
専用処理部１００には計算セルカウンタ１０２が備えられている。計算セルカウンタ１０２は、計算に用いるべき相対セル位置メモリ１０４のアドレスを生成する。例えば、計算に用いるべき周辺セルの数が図４に示した例のように合計６である場合には、計算セルカウンタ１０２は６つのアドレスを生成し、そのアドレスによって、相対セル位置メモリ１０４に格納されている相対位置（ΔＸ，ΔＹ，ΔＺ）のリストから、６つの相対位置が選択される。計算セルカウンタ１０２の幅は１０ビットであり、初期値は設定可能である。また終了値のレジスタ（図示しない）が別にあり、終了値に到達すると計算を終了する。  専用処理部１００には、セル番号生成部１３０が備えられている。このセル番号生成部１３０は、第１部分１３０Ａと第２部分１３０Ｂにより構成されている。セル番号生成部１３０の第１部分１３０Ａには加算器１０８ａ〜１０８ｃが備えられている。これにより、相対セル位置メモリ１０４から出力されたセルの相対位置（ΔＸ，ΔＹ，ΔＺ）には、ホスト計算機部２０から送信される中心セルの座標（Ｘ０，Ｙ０，Ｚ０）位置が加算されて、各セルの絶対位置（Ｘ，Ｙ，Ｚ）が計算される。計算結果は符号つきで１３ビットとなる。
【００２９】
次に、各セルの絶対位置（Ｘ，Ｙ，Ｚ）は境界条件処理部１１０に入力されて、境界条件の処理が行われる。図５に、境界条件処理部１１０の詳細な構成を示す。境界条件処理部１１０に入力されたＸのデータは、比較器１１２ａおよび１１２ｂによって、空間７０の境界面Ｂ1を与えるＸｍｉｎの値および境界面Ｂ1を与えるＸｍａｘの値に対して比較される。各比較器１１２ａおよび１１２ｂの比較結果ビットの論理和の出力は、Ｘｏｖｅｒとして後述するパイプライン部１６０のそれぞれに出力される。なお、このＸｏｖｅｒの出力は、本発明の境界判定信号となる。また、この論理和の出力は、周期境界モードに設定するかどうかを制御する入力Ｃｙｃｌｉｃと論理積がとられて、平行移動フラグとしてセル平行移動ユニット１５２に出力される。
【００３０】
境界条件処理部１１０では、ＸがＸｍｉｎ未満の場合にはＸにＸｓｉｚｅを加算し、ＸがＸｍａｘ以上の場合にはＸからＸｓｉｚｅを減算する。なお、Ｘｓｉｚｅは、空間７０のＸ方向のサイズを現し、Ｘｍａｘ−Ｘｍｉｎにより算出される。このために、加減算器１１４は、比較器１１２ａおよび１１２ｂからの出力を受け取って動作を変更するように構成される。加減算器１１４の出力は、入力されたＸとともにマルチプレクサ１１６に入力される。マルチプレクサ１１６は、平行移動フラグによって制御されて、平行移動フラグが１のときには加減算器１１４の出力を選択し、平行移動フラグが０のときには入力されたＸを選択し、平行移動処理が行われた絶対位置Ｘ´として出力する。比較器１１２ｂの出力は、平行移動フラグと組み合わせて、平行移動方向を示す出力となるため、セル平行移動ユニット１５２に出力される。なお、境界からはみ出た場合を処理することを示すフラグ（Ｉｇｎｏｒｅ、図示しない）が１にされている際には、ＸがＸｍｉｎ未満となったり、ＸがＸｍａｘ以上となったりした場合にそのセルを計算から除外する。以上の処理は、Ｙ、Ｚについても同様に行われる。ここで、計算目的に応じて柔軟に専用処理部１００を動作させることができるように、Ｘ，Ｙ，Ｚに対して独立に入力ＣｙｃｌｉｃやＩｇｎｏｒｅフラグが設定できる。Ｘｍｉｎ，Ｘｍａｘ，Ｘｓｉｚｅは全て１２ビットの値であり、Ｃｙｃｌｉｃ、Ｉｇｎｏｒｅは１ビットの入力である。Ｘｍｉｎ，Ｘｍａｘ，Ｘｓｉｚｅ、Ｃｙｃｌｉｃ、Ｉｇｎｏｒｅは、計算の初期設定として設定される値であるために、中心セルの移動によって変更する必要がない。
【００３１】
再度図３に戻って専用処理部１００の処理を説明する。本実施の形態に用いる専用処理部１００においては、パイプライン部１６０が備えられている。このパイプライン部１６０には、パイプラインＰＬ1〜ＰＬ20が備えられている。各パイプラインＰＬ1〜ＰＬ20には、セルの絶対位置（Ｘ，Ｙ，Ｚ）から、そのセルが境界面Ｂ1〜Ｂ6をまたいだかどうかの判定を行い、力を分割して積算することができるように、８個のレジスタＦ（０）〜Ｆ（７）（図示しない）が備えられている。したがって、力を分割して積算するかどうかも、ＸＹＺの成分ごとにパイプラインＰＬ1〜ＰＬ20に設けられ得るフラグ（図示しない）によって切り替えることができる。具体的には、これらのフラグがすべて１とされている場合には、Ｘ，Ｙ，Ｚ方向で境界をまたいだかどうかを示す各出力Ｘｏｖｅｒ，Ｙｏｖｅｒ，Ｚｏｖｅｒ（またいだときに値１、またがないときに値０となる本発明の境界判定信号）を用いて、力の番号Ｎｆｄｉｖ＝Ｘｏｖｅｒ＋２＊Ｙｏｖｅｒ＋４＊Ｚｏｖｅｒを算出して、このセルからの寄与を、力を積算するレジスタＦ（Ｎｆｄｉｖ）に加える。
【００３２】
セル平行移動ユニット１５２は、粒子の座標（ｘ，ｙ，ｚ）を周期境界条件の適用に応じて平行移動させる。境界条件処理部１１０より出力された、ｘ、ｙ、ｚの成分ごとの平行移動フラグおよび平行移動する方向フラグ（２ビット３方向で計６ビット）のフラグを参照し、平行移動する方向フラグの内容に応じて、基本セルの物理的大きさをｘ、ｙ、ｚそれぞれに加算または減算する。
【００３３】
専用処理部１００には、セルの絶対位置（Ｘ，Ｙ，Ｚ）から各セルに固有のセル番号（ＣＩＤ：ＣｅｌｌＩＤ）を生成するセル番号生成部１３０の第２部分１３０Ｂが備えられている。セル番号生成部１３０の第２部分１３０Ｂには、乗算器１３２ａおよび１３２ｂと加算器１３４が備えられ、これらによって、ＣＩＤ＝Ｘ＋Ｙ＊Ｘｄ＋Ｚ＊Ｘｄ＊Ｙｄという演算を行って、ＣＩＤが算出される。ここで、Ｘｄ，ＹｄはそれぞれＸ，Ｙ方向の最大セル数に対応する数であり、別々のレジスタで与える。幅は１２ビットである。
【００３４】
このセル番号ＣＩＤは、セルインデックスメモリ１４２に入力される。セルインデックスメモリ１４２は、セル番号ＣＩＤに対応するアドレスに、セル内の粒子が粒子メモリ１５０内のどのアドレスから格納されているかを示す１５ビットの開始アドレスと、セル内の粒子数（１５ビット）とを記憶しておく。セル番号ＣＩＤは１２ビットであるので、セルインデックスメモリ１４２は４０９６ワード、３０ビット幅のメモリにより構成される。
【００３５】
開始アドレスを粒子メモリ番地カウンタ１４４の初期値とし、粒子メモリ１５０の読み出しを始める。セル内の粒子数を粒子数カウンタ１４６の初期値とする。サイクルごとに粒子メモリ番地カウンタ１４４を１増やし、粒子数カウンタ１４６を１減らす。粒子メモリ番地カウンタ１４４、粒子数カウンタ１４６の幅は１５ビットである。この処理を粒子数カウンタ１４６が０になるまで続ける。粒子数カウンタ１４６が０になったら、次のセルの処理に移行するために、計算セルカウンタ１０２をインクリメントするための信号が出力される。なお、実際の処理では、あるセルについての粒子メモリ１５０の読み出し中に、次のセルの処理をできるだけ先に進めておくように構成されている。また、計算するセル内の粒子数が非常に少ないときには、次のセルの準備ができる前に粒子メモリ１５０の読み出しが終わってしまう。この場合には、計算を一時停止して次の粒子メモリ１５０の読み出しが始まるのを待つ。
【００３６】
本実施の形態の専用処理部１００には、排除粒子処理部１７０が備えられている。その排除粒子処理部１７０には、１６個の排除粒子リストＥＰＬ1〜ＥＰＬ16が備えられている。排除粒子リストＥＰＬ1〜ＥＰＬ16のそれぞれは、排除されるべき粒子の粒子メモリ１５０におけるアドレスを格納する排除粒子アドレスレジスタ１７２と、各パイプラインに対して粒子を排除するかどうかのフラグを格納する排除粒子フラグレジスタ１７４を有している。本実施の形態の専用処理部１００には２０本のパイプラインＰＬ1〜ＰＬ20があり、各パイプラインは時分割動作させて論理的に２本のパイプラインとして識別される。したがって、排除粒子フラグレジスタ１７４は４０ビット幅のレジスタにより構成される。排除粒子アドレスレジスタ１７２は１５ビット幅のレジスタにより構成される。排除粒子リストＥＰＬ1〜ＥＰＬ16のそれぞれは、粒子メモリ番地カウンタ１４４から出力される粒子メモリ１５０のアドレス値と、排除粒子アドレスレジスタ１７２の出力とが等しい場合には、排除粒子フラグレジスタ１７４からの出力を出力し、そうでなければ０を出力するように、一致検出器１７６ａと論理積回路１７６ｂが備えられている。全ての排除粒子リストＥＰＬ1〜ＥＰＬ16からの出力は、さらに論理和回路１７８に入力されてビットごとに論理和が計算されて、各パイプラインに出力される。この論理和回路１７８からの出力は、本発明の積算制御信号となる。対応するパイプラインは、各ビットのフラグが１である場合には、計算した力をレジスタＦ（０）〜Ｆ（８）に積算しないように動作し、各ビットのフラグが０である場合には、計算した力をレジスタＦ（０）〜Ｆ（８）に積算するように動作する。
【００３７】
以上、本発明の実施の形態につき述べたが、これらの実施の形態および実施例は本発明の思想を具体化する一例に過ぎない。すなわち、本発明は既述の実施の形態に限定されるものではなく、本発明の技術的思想に基づいて各種の変形、変更および組み合わせが可能である。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施の形態の計算システムの全体構成を示す説明図である。
【図２】本発明の実施の形態における専用計算機部の詳細を示すブロック構成図である。
【図３】本発明の実施の形態における専用処理部の詳細な構成を示すブロック構成図である。
【図４】本発明の実施の形態において用いられるセルインデックス法において、計算機上にシミュレーション系が設定される空間と、その空間内におけるセルの配置の例を示す説明図である。
【図５】本発明の実施の形態における境界条件処理部の詳細な構成を示すブロック構成図である。
【符号の説明】
【００３９】
１     計算システム
１０   専用計算機部
１０1-１０N   専用計算機ボード
７０   空間
１００ 専用処理部
１０２ 計算セルカウンタ
１０４ 相対セル位置メモリ
１１０ 境界条件処理部
１１２ａ、１１２ｂ  比較器
１１４ 加減算器
１１６ マルチプレクサ
１３０Ａ、１３０Ｂ  セル番号生成部
１３２ａ  乗算器
１３４ 加算器
１４２ セルインデックスメモリ
１４４ 粒子メモリ番地カウンタ
１４６ 粒子数カウンタ
１５０ 粒子メモリ
１５２ セル平行移動ユニット
１６０ パイプライン計算手段
１７０ 排除粒子処理部
１７２ 排除粒子アドレスレジスタ
１７４ 排除粒子フラグレジスタ
１７６ａ  一致検出器
１７６ｂ  論理積回路
１７８ 論理和回路
２０   ホスト計算機部
２２０ ホストＣＰＵ
２８０ インターフェース部
３００ 高速インターフェース回線
３２０ インターフェースＬＳＩ
Ｂ1-Ｂ6       境界面
ＥＰＬ1-ＥＰＬ16 排除粒子リスト
ＰＬ1-ＰＬ20 パイプライン
Ｃ0    中心セル
Ｃ1-Ｃ6       最隣接セル
ＣＩＤ セル番号
【図１】
2006236256.tif 000003
【図２】
2006236256.tif 000004
【図３】
2006236256.tif 000005
【図４】
2006236256.tif 000006
【図５】
2006236256.tif 000007