(57)【特許請求の範囲】
【請求項１】
所定のハードウエアから構成され、シミュレーション対象物間の反応によるシミュレーション対象物の変化量をシミュレーションするハードウエアシミュレータであって、
シミュレーション対象物ごとに設けられ、当該シミュレーション対象物に関する値を演算する複数の演算素子と、
前記シミュレーション対象物間の反応に応じて演算素子の値を変化させる反応回路と、
前記シミュレーション対象物間の反応に応じて前記反応回路と前記演算素子との接続を切り換える切り換え回路と、
前記演算素子ごとに設けられ、前記演算素子が演算した値を記憶する複数の記憶装置と、
前記演算素子ごとに設けられ、前記演算素子の値を前記記憶装置へ転送するように前記演算素子を制御し、前記記憶装置に記憶された演算値を前記演算素子に再度設定する転送制御回路とを備え、
前記記憶装置は、前記演算素子が演算した値を複数記憶し、
前記転送制御回路は、前記記憶装置が記憶している複数の値の中から一の値を前記演算素子に設定するように前記記憶装置を制御することを特徴とするハードウエアシミュレータ。
【請求項２】
前記演算素子が演算した値が所定の範囲内にあるか否かを判断する判断回路をさらに備えることを特徴とする請求項１記載のハードウエアシミュレータ。
【請求項３】
前記判断回路は、前記演算素子が演算した値が所定の範囲内にないと判断した場合、前記記憶装置が記憶している複数の値の中から一の値を前記演算素子に設定するように前記転送制御回路を制御することを特徴とする請求項２記載のハードウエアシミュレータ。
【請求項４】
前記複数の演算素子のうち所定の演算素子が演算した値が所定の条件を満たすか否かを判断する第１判断回路と、
前記第１判断回路により所定の条件を満たすと判断された場合に、前記複数の演算素子のうち所定の演算素子が演算した値に基づく値が所定の範囲内にあるか否かを判断する第２判断回路とをさらに備えることを特徴とする請求項１記載のハードウエアシミュレータ。
【請求項５】
前記第２判断回路は、前記所定の演算素子が演算した値に基づく値が所定の範囲内にないと判断した場合、当該演算素子に対して設けられている記憶装置が記憶している複数の値の中から一の値を当該演算素子に設定するように前記転送制御回路を制御することを特徴とする請求項４記載のハードウエアシミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のハードウエアから構成され、シミュレーション対象物間の反応によるシミュレーション対象物の変化量をシミュレーションするハードウエアシミュレータに関するものである。
【背景技術】
【０００２】
従来の化学反応シミュレーション方法としては、例えば、シミュレーションプログラムを計算機で実行することにより、有限温度及び有限時間を設定し、これら有限温度及び有限時間における分子動力学計算を行い、分子動力学計算により求められた励起状態を含む構造のすべてを用いて物質の全原子に働く力がすべて緩和される安定構造を複数求める処理等を行うシミュレーション装置がある（特許文献１参照）。このとき、様々なパラメータの影響を調べるために、パラメータの値を種々変更してシミュレーションが行われる。
【特許文献１】特開２００２−２６０９７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、シミュレーション対象が大規模になると、シミュレーションをある特定の時点から再開する場合や複数のシミュレーションを同時に実行している場合に、特定の時点のデータや別のデータをシミュレーションデータとして転送するためには、膨大な時間が必要となる。
【０００４】
本発明の目的は、シミュレーション対象が大規模な場合でも、シミュレーションデータを高速に再設定することができるハードウエアシミュレータを提供することである。
【課題を解決するための手段】
【０００５】
本発明に係るハードウエアシミュレータは、所定のハードウエアから構成され、シミュレーション対象物間の反応によるシミュレーション対象物の変化量をシミュレーションするハードウエアシミュレータであって、シミュレーション対象物ごとに設けられ、当該シミュレーション対象物に関する値を演算する複数の演算素子と、前記シミュレーション対象物間の反応に応じて演算素子の値を変化させる反応回路と、前記シミュレーション対象物間の反応に応じて前記反応回路と前記演算素子との接続を切り換える切り換え回路と、前記演算素子ごとに設けられ、前記演算素子が演算した値を記憶する複数の記憶装置と、前記演算素子ごとに設けられ、前記演算素子の値を前記記憶装置へ転送するように前記演算素子を制御し、前記記憶装置に記憶された演算値を前記演算素子に再度設定する転送制御回路とを備え、前記記憶装置は、前記演算素子が演算した値を複数記憶し、前記転送制御回路は、前記記憶装置が記憶している複数の値の中から一の値を前記演算素子に設定するように前記記憶装置を制御する。
【０００６】
本発明に係るハードウエアシミュレータでは、シミュレーション対象物ごとに当該シミュレーション対象物に関する値を演算する演算素子が設けられ、反応回路によりシミュレーション対象物間の反応に応じて演算素子の値が変化されることにより、シミュレーション対象物間の反応によるシミュレーション対象物の変化量がシミュレーションされる。このとき、演算素子が演算した値を記憶する記憶装置が演算素子ごとに設けられているので、演算素子が演算した値を記憶装置に適宜記憶させ、必要に応じて記憶装置に記憶させている値を演算素子に再度設定することができ、シミュレーション対象が大規模な場合でも、シミュレーションデータを高速に再設定することができる。
【０００７】
また、演算素子の値を記憶装置へ転送するように演算素子を制御することができるので、演算素子が演算した値を記憶装置に適宜記憶させることができる。
【０００８】
また、記憶装置が記憶している複数の値の中から一の値を演算素子に設定することができるので、記憶装置に記憶させている値を必要に応じて演算素子に再度設定することができる。
【０００９】
前記演算素子が演算した値が所定の範囲内にあるか否かを判断する判断回路をさらに備えることが好ましい。この場合、演算素子が演算した値が所定の範囲内にあるか否かを判断することができるので、演算素子が演算した値に応じて、記憶装置に記憶させている値を演算素子に再度設定することができる。
【００１０】
前記判断回路は、前記演算素子が演算した値が所定の範囲内にないと判断した場合、前記記憶装置が記憶している複数の値の中から一の値を前記演算素子に設定するように前記転送制御回路を制御することが好ましい。
【００１１】
この場合、演算素子が演算した値が所定の範囲内にないと判断されたとき、記憶装置が記憶している複数の値の中から一の値を演算素子に設定することができるので、演算素子が演算した値がシミュレーション結果として不要な値になった場合等において、適正な値を用いて再度シミュレーションを継続することができる。
【００１２】
前記複数の演算素子のうち所定の演算素子が演算した値が所定の条件を満たすか否かを判断する第１判断回路と、前記第１判断回路により所定の条件を満たすと判定された場合に、前記複数の演算素子のうち所定の演算素子が演算した値に基づく値が所定の範囲内にあるか否かを判断する第２の判断回路とをさらに備えることが好ましい。
【００１３】
この場合、複数の演算素子のうち所定の演算素子が演算した値が所定の条件を満たすか否かを判断し、このような状態が発生した場合に、演算素子が演算した値に基づく値が所定の範囲内にあるか否かを判断することができるので、ある物質が所定の条件を満たすことを条件としてある物質が反応を行う場合等の複雑な条件を考慮しながら、演算素子が演算した値に基づく値に応じて、記憶装置に記憶させている値を演算素子に再度設定することができる。
【００１４】
前記第２判断回路は、前記所定の演算素子が演算した値に基づく値が所定の範囲内にないと判断した場合、当該演算素子に対して設けられている記憶装置が記憶している複数の値の中から一の値を当該演算素子に設定するように前記転送制御回路を制御することが好ましい。
【００１５】
この場合、演算素子が演算した値に基づく値が所定の範囲内にないと判断された場合、記憶装置が記憶している複数の値の中から一の値を演算素子に設定することができるので、上記の複雑な条件を考慮しながら、演算素子が演算した値がシミュレーション結果として不要な値になった場合等において、適正な値を用いて再度シミュレーションを継続することができる。
【発明の効果】
【００１６】
本発明によれば、シミュレーション対象物間の反応によるシミュレーション対象物の変化量がシミュレーションされているときに、演算素子が演算した値を記憶する記憶装置が演算素子ごとに設けられているので、演算素子が演算した値を記憶装置に適宜記憶させ、必要に応じて記憶装置に記憶させている値を演算素子に再度設定することができ、シミュレーション対象が大規模な場合でも、シミュレーションデータを高速に再設定することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明によるハードウエアシミュレータの一例として、生化学反応をシミュレーションし、シグナル伝達ネットワーク、遺伝子ネットワーク等の解明に好適に用いられる化学反応シミュレーション装置について図面を参照しながら説明する。
【００１８】
図１は、本発明の第１の実施の形態によるハードウエアシミュレータの構成を示すブロック図である。図１に示すハードウエアシミュレータは、複数の乱数発生器Ｒ１〜Ｒｎ（ｎは任意の正数）、複数の酵素カウンタＫ１〜Ｋｎ、複数の絞り回路Ｖ１〜Ｖｎ、複数の反応実行回路Ｈ１〜Ｈｎ、複数のカウンタ部Ｃ１〜Ｃｍ（ｍは任意の正数）及び接続切り換え回路ＳＷを備える。酵素カウンタＫ１〜Ｋｎ、絞り回路Ｖ１〜Ｖｎ及び反応実行回路Ｈ１〜Ｈｎは、シミュレーションに使用される生化学反応ごとに設けられ、カウンタ部Ｃ１〜Ｃｍは、シミュレーションに使用される物質ごとに設けられる。
【００１９】
乱数発生器Ｒ１は、絞り回路Ｖ１の入力側に接続され、反応実行回路Ｈ１は、絞り回路Ｖ１の出力側に接続され、酵素カウンタＫ１は、絞り回路Ｖ１に接続される。他の乱数発生器、酵素カウンタ、絞り回路及び反応実行回路も上記と同様に接続される。
【００２０】
接続切り換え回路ＳＷは、例えば、空間スイッチ等から構成され、複数の増加指令用の入力配線Ｉ１〜Ｉｎ及び減少指令用の入力配線Ｄ１〜Ｄｎと、複数の増加指令用の出力配線ｉ１〜ｉｍ及び減少指令用の出力配線ｄ１〜ｄｍを含み、各配線がマトリックス状に配置されている。反応実行回路Ｈ１は、接続切り換え回路ＳＷの増加指令用の入力配線Ｉ１及び減少指令用の入力配線Ｄ１に接続され、他の反応実行回路も同様に接続される。
【００２１】
図２は、図１に示すカウンタ部Ｃ１の一例の構成を示すブロック図である。図２に示すカウンタ部Ｃ１は、物質カウンタＣ１１、記憶装置Ｃ１２及び転送制御部Ｃ１３を備える。他のカウンタ部Ｃ２〜Ｃｍも同様に構成され、下記と同様に動作する。
【００２２】
物質カウンタＣ１１は、例えば、バイナリカウンタ等から構成され、接続切り換え回路ＳＷの増加指令用の出力配線ｉ１及び減少指令用の出力配線ｄ１に接続される。物質カウンタＣ１１は、反応前の各物質の数、すなわち分子数又は原子数を初期カウント値として設定され、反応実行回路Ｈ１〜Ｈｎの減少指令及び増加指令に応じて、そのカウント値を減少及び増加させる。なお、物質カウンタは、上記のバイナリカウンタに特に限定されず、シミュレーション対象物ごとに設けられ、当該シミュレーション対象物に関する値を演算する演算素子であれば、他のカウンタ等を用いてもよい。例えば、代謝経路におけるクエン酸回路のような生化学反応を状態遷移と捉え、状態遷移機械（有限状態オートマトン）を組み合わせて使用する場合、物質カウンタとしてジョンソンカウンタを用いることにより、コンパクトな回路により高速にシミュレーションすることができる。
【００２３】
転送制御部Ｃ１３は、外部から入力される転送制御信号に応じて、物質カウンタＣ１１から記憶装置Ｃ１２へのデータ転送及び記憶装置Ｃ１２から物質カウンタＣ１１へのデータ転送を制御する。具体的には、転送制御部Ｃ１３は、物質カウンタＣ１１から記憶装置Ｃ１２へのデータ転送を指示する転送制御信号を受けた場合、物質カウンタＣ１１のカウント値を記憶装置Ｃ１２の所定のアドレスに記憶させる。また、転送制御部Ｃ１３は、記憶装置Ｃ１２から物質カウンタＣ１１へのデータ転送を指示する転送制御信号を受けた場合、記憶装置Ｃ１２の指定されたアドレスのデータを物質カウンタＣ１１のカウント値として入れ替える。例えば、アドレスＡ１のデータＤ１を記憶装置Ｃ１２から物質カウンタＣ１１へ転送するように指示された場合、転送制御部Ｃ１３は、記憶装置Ｃ１２に対してアドレスＡ１のデータＤ１を物質カウンタＣ１１へ転送するように指示し、記憶装置Ｃ１２は、アドレスＡ１のデータＤ１を物質カウンタＣ１１へ転送する。
【００２４】
記憶装置Ｃ１２としては、上記のアドレス指定により動作するものに特に限定されず、種々の記憶装置を用いることができ、最後に転送されたデータが最初に取り出されるスタック型の記憶装置（ＬＩＦＯ）等を用いてもよい。また、アドレス部分をシミュレーション時間としてアドレスを使用する場合、連想メモリ（Content Addressable Memory）を用いることが好ましい。この場合、記憶装置のアドレス指定は、アドレス部分の内容を指定することになり、所望のデータを効率よく転送することができる。
【００２５】
再び、図１を参照して、接続切り換え回路ＳＷにおいて図中に黒丸で示す各配線の交点ＮＤには、時分割ゲート及び時分割ゲートのオン／オフを制御する保持メモリ等から構成されるスイッチ（図示省略）が配置されている。接続切り換え回路ＳＷは、各スイッチをオン／オフすることにより、増加指令用の入力配線Ｉ１〜Ｉｎと複数の増加指令用の出力配線ｉ１〜ｉｍとの接続状態及び減少指令用の入力配線Ｄ１〜Ｄｎと減少指令用の出力配線ｄ１〜ｄｍとの接続状態を制御し、各反応実行回路Ｈ１〜Ｈｎが表す生化学反応の反応前の物質を表す物質カウンタ及び反応後の物質を表す物質カウンタと対応する反応実行回路とを接続する。なお、接続切り換え回路ＳＷは、上記の空間スイッチに特に限定されず、反応実行回路と物質カウンタとの接続状態を切り換えることができるものであれば、他の接続切り換え回路を用いてもよい。
【００２６】
乱数発生器Ｒ１は、生化学反応の反応速度を制御するための所定の乱数を、絞り回路Ｖ１を介して反応実行回路Ｈ１に出力する。乱数発生器としては、擬似乱数を発生させる擬似乱数発生回路、カオス的な乱数を発生させるカオス発生回路、熱雑音に基づく乱数を発生させる熱雑音発生回路等を用いることができる。
【００２７】
例えば、擬似乱数発生回路としては、線形フィードバックシフトレジスタを用いることによって、線形フィードバックシフトレジスタがＬ個のレジスタから構成されると、２L−１の長周期を有するが、ほぼランダムな乱数を発生させることができる。カオス発生回路としては、コンデンサと可変抵抗回路とで構成される閉ループにより不規則な信号を発生させる回路等を用いることによって、カオス的な振る舞いを行う不規則な乱数を発生させることができる。熱雑音発生回路としては、短周期のパルスを長周期のパルスによりラッチし、ラッチされた短周期のパルスのレベルを乱数として出力する回路等を用いることによって、ホワイトノイズによる周期性のない乱数を発生させることができる。
【００２８】
酵素カウンタＫ１は、反応実行回路Ｈ１が表す生化学反応に使用される酵素物質の数、すなわち酵素物質の分子数をそのカウント値として設定され、設定されたカウント値に応じて絞り回路Ｖ１の絞り量が調整される。なお、一般の化学反応の場合は、酵素カウンタが触媒カウンタに変更され、生細胞内で作られる蛋白性の生体触媒である酵素の代わりに、触媒物質の数がそのカウント値として設定される。また、触媒（酵素）を使用しない化学反応の場合、触媒（酵素）カウンタ及び絞り回路は不要となる。
【００２９】
具体的には、乱数発生器Ｒ１が乱数として“１”又は“０”のデータをランダムに発生し、酵素カウンタＫ１がそのカウント値に応じて“０”に対する“１”の頻度を調整して“１”又は“０”のデータを出力する。このとき、絞り回路Ｖ１は両データの論理積を取り、その結果を反応実行回路Ｈ１へ出力する。したがって、酵素カウンタＫ１のカウント値に応じて反応実行回路Ｈ１へ入力される“１”の頻度が調整される。
【００３０】
反応実行回路Ｈ１は、データとして“１”が入力された場合、反応を実行させるため、増加指令用の入力配線Ｉ１にカウント値を１だけ増加させるための増加指令を出力するとともに、減少指令用の入力配線Ｄ１にカウント値を１だけ減少させるための減少指令を出力する。一方、反応実行回路Ｈ１は、データとして“０”が入力された場合、反応を行わないようにするため（不実行の状態）、増加指令及び減少指令を出力しない。
【００３１】
このとき、接続切り換え回路ＳＷは、減少指令用の入力配線Ｄ１と、反応実行回路Ｈ１が表す生化学反応における反応前の物質の数、すなわち分子数又は原子数を表す物質カウンタに接続されている減少指令用の出力配線とを接続している。したがって、反応実行回路Ｈ１から出力される減少指令が反応前の物質に対して設けられた物質カウンタへ入力され、当該物質カウンタが自身のカウント値を１だけ減少させる。また、接続切り換え回路ＳＷは、増加指令用の入力配線Ｉ１と、反応実行回路Ｈ１が表す生化学反応における反応後の物質の数、すなわち分子数又は原子数を表す物質カウンタに接続されている増加指令用の出力配線とを接続している。したがって、反応実行回路Ｈ１から出力される増加指令が反応後の物質に対して設けられた物質カウンタへ入力され、当該物質カウンタが自身のカウント値を１だけ増加させる。
【００３２】
他の乱数発生器、酵素カウンタ、絞り回路及び反応実行回路も、上記と同様に構成され、生化学反応に応じて上記と同様に動作する。なお、酵素カウンタに割り当てられる酵素の数が生化学反応等により増減する場合は、酵素カウンタも物質カウンタと同様に構成されて接続切り換え回路に接続され、対応する反応実行回路によりそのカウント値が増減される。
【００３３】
本実施の形態において、物質カウンタＣ１１が演算素子の一例に相当し、反応実行回路Ｈ１〜Ｈｎ、乱数発生器Ｒ１〜Ｒｎ、酵素カウンタＫ１〜Ｋｎ、絞り回路Ｖ１〜Ｖｎ及び接続切り換え回路ＳＷが反応回路の一例に相当し、記憶装置Ｃ１２が記憶装置の一例に相当し、転送制御部Ｃ１３が転送制御回路の一例に相当する。
【００３４】
次に、上記のように構成されたハードウエアシミュレータの動作について説明する。まず、シミュレーションの対象となる物質、生化学反応及び酵素等に関する必要なデータを用いて、各カウンタ部Ｃ１〜Ｃｍの物質カウンタＣ１１に各物質の数を表すカウンタの初期値が設定されるとともに、酵素カウンタＫ１〜Ｋｎに各酵素の数を表すカウンタの初期値が設定される。次に、乱数発生器Ｒ１〜Ｒｎは上記の乱数を発生させ、絞り回路Ｖ１〜Ｖｎは、酵素カウンタＫ１〜Ｋｎの酵素の数に応じて乱数を補正する。反応実行回路Ｈ１〜Ｈｎは、酵素数により補正された乱数の値に応じて反応が実行されるように、反応前の物質の分子数又は原子数を表す物質カウンタＣ１１のカウント値を１だけ減少させるとともに、反応後の物質の分子数又は原子数を表す物質カウンタＣ１１のカウント値を１だけ増加させる。
【００３５】
このようにして、各反応実行回路Ｈ１〜Ｈｎが表す生化学反応の反応速度が反応実行回路Ｈ１〜Ｈｎごとに調整され、各反応実行回路Ｈ１〜Ｈｎが表す生化学反応の反応前後の物質に対応する物質カウンタＣ１１が対応する反応実行回路Ｈ１〜Ｈｎに接続されるとともに、各反応実行回路Ｈ１〜Ｈｎが表す生化学反応に応じて反応前後の物質に対応する物質カウンタＣ１１のカウント値が減少又は増加され、複数の生化学反応が並列的にシミュレーションされる。
【００３６】
このように、反応前後の各物質の量をカウント値、すなわち数（整数）として捉え、生化学反応による物質の変化量をシミュレーションしているので、物質カウンタＣ１１の数を増加するだけでシミュレーションに使用する物質の種類を増加させることができる。また、未知の生化学反応が新たにわかった場合、病体等によりある生化学反応が欠損している場合及び野生種のために生化学反応が通常と異なる場合でも、新たな生化学反応、欠損した生化学反応及び通常と異なる生化学反応に応じて接続切り換え回路ＳＷにより反応実行回路Ｈ１〜Ｈｎとカウンタ部Ｃ１〜Ｃｍの物質カウンタＣ１１との接続状態を変更等することにより容易に対処することができる。
【００３７】
また、上記のシミュレーション中に、物質カウンタＣ１１から記憶装置Ｃ１２へのデータ転送を指示する転送制御信号が時刻を表すアドレスとともに所定のタイミングで外部から順次入力され、各カウンタ部Ｃ１〜Ｃｍの転送制御部Ｃ１３は、物質カウンタＣ１１のカウント値を記憶装置Ｃ１２の転送制御信号が入力された時刻を表すアドレスに順次記憶させる。その後、シミュレーション動作を停止させ、シミュレーションをある特定の時点から再開する場合、当該時刻を表すアドレスとともに記憶装置Ｃ１２から物質カウンタＣ１１へのデータ転送を指示する転送制御信号をカウンタ部Ｃ１〜Ｃｍへ入力すると、各カウンタ部の転送制御部Ｃ１３は、記憶装置Ｃ１２の指定されたアドレスのデータを物質カウンタＣ１１のカウント値として入れ替える。
【００３８】
このように、カウンタ部Ｃ１〜Ｃｍの物質カウンタＣ１１のカウント値を記憶する記憶装置Ｃ１２が物質カウンタＣ１１ごとに設けられているので、物質カウンタＣ１１のカウント値を記憶装置Ｃ１２に適宜記憶させ、必要に応じて記憶装置Ｃ１２に記憶させているカウント値を物質カウンタＣ１１に再度設定することができ、シミュレーション対象が大規模な場合でも、シミュレーションデータを高速に設定することができる。
【００３９】
なお、本実施の形態では、すべてのカウンタ部Ｃ１〜Ｃｍにおいて物質カウンタＣ１１のカウント値を記憶装置Ｃ１２に記憶しているが、この例に特に限定されず、一部のカウンタ部においてのみカウント値を記憶するようにしてもよく、また、記憶装置Ｃ１２に記憶するカウント値も複数記憶することなく、所定の値を一つのみ記憶するようにしてもよい。
【００４０】
図３は、図１に示すカウンタ部Ｃ１〜Ｃｍとして使用可能な他のカウンタ部Ｃ１ａの構成を示すブロック図である。図３に示すカウンタ部Ｃ１ａと図２に示すカウンタ部Ｃ１とで異なる点は、データ値範囲保持装置Ｃ１４及び比較器Ｃ１５が追加され、比較器Ｃ１５が出力する転送制御信号に応じて転送制御部Ｃ１３ａが動作する点であり、その他の点は図２に示すカウンタ部Ｃ１と同様であるので詳細な説明は省略する。
【００４１】
データ値範囲保持装置Ｃ１４は、所定のメモリ又はレジスタ等から構成され、物質カウンタＣ１１のデータ値範囲として、その最大値及び最小値を予め記憶している。比較器Ｃ１５は、データ値範囲保持装置Ｃ１４が保持している最大値及び最小値と物質カウンタＣ１１のカウント値とを比較し、データ値範囲保持装置Ｃ１４が保持している最大値と最小値との間に物質カウンタＣ１１のカウント値が入っているか否かを判断する。例えば、化学反応シミュレーションを行い、ある現象の再現を試みる場合、対象とする現象において各物質カウンタＣ１１がシミュレーションしている物質の量は判明しているため、最大値と最小値とをデータ値範囲として設定することにより効率的なシミュレーションを行うことができる。また、ある物質と他の物質との関係がある程度わかっている場合に、他の物質をシミュレーションしている物質カウンタＣ１１のカウント値との関係を記述することができる。
【００４２】
ここで、最大値と最小値との間にカウント値が入っていない場合、比較器Ｃ１５は、記憶装置Ｃ１２が記憶している複数のカウント値の中から所定のカウント値を物質カウンタＣ１１に代入するように指示する転送制御信号を転送制御部Ｃ１３ａへ出力する。転送制御部Ｃ１３ａは、指定された記憶装置Ｃ１２のカウント値を物質カウンタＣ１１のカウント値として入れ替える。本例では、転送制御部Ｃ１３ａが転送制御回路の一例に相当し、データ値範囲保持装置Ｃ１４及び比較器Ｃ１５が判断回路の一例に相当する。
【００４３】
例えば、任意の時刻Ｔ１において、物質カウンタＣ１１のカウント値を記憶装置Ｃ１２に記憶させ、その後、複数のパラメータセット１〜Ｎを用いてシミュレーションを時刻Ｔ２まで実行する。次に、時刻Ｔ２において、パラメータセット３以外のパラメータセットを用いたシミュレーションにおいて特定の化学物質の量が想定されるデータ値範囲内になくなった場合、パラメータセット３以外のパレメータセットが間違っていることがわかる。したがって、時刻Ｔ１において記憶装置Ｃ１２に記憶させたカウント値を物質カウンタＣ１１に設定し、別のパラメータセットを用いて時刻Ｔ１からのシミュレーションを再開することができる。このように、シミュレーションを最後まで実行するのではなく、シミュレーションに使用されるパラメータの値を絞りながら効率よくシミュレーションを実行することができ、シミュレーション時間を大幅に短縮することができる。
【００４４】
図４は、図１に示すハードウエアシミュレータによるシミュレーションの例を説明するための模式図である。図４に示す例は、ｇｌｕｃｏｓｅ（グルコース）を分解する代謝過程であるＧｌｙｃｏｌｙｓｉｓ（解糖）を示しており、ｈｅｘｏｋｉｎａｓｅ（ヘキソキナーゼ）が酵素となり、ｇｌｕｃｏｓｅ及びＡＴＰ（アデノシン三リン酸）からｇｌｕｃｏｓｅ６Ｐ（グルコース−６−リン酸）、ＡＤＰ（アデノシン二リン酸）及びＨ+ が生成される。
【００４５】
この例では、まず、乱数発生器Ｒから所定の乱数が絞り回路Ｖへ入力される。このとき、酵素カウンタＫには、ｈｅｘｏｋｉｎａｓｅの分子数がそのカウント値として設定され、ｈｅｘｏｋｉｎａｓｅの分子数に応じて絞り回路Ｖの出力が絞られ、乱数発生器Ｒの乱数及びｈｅｘｏｋｉｎａｓｅの分子数に応じて反応実行回路ＨによるＧｌｙｃｏｌｙｓｉｓの実行及び不実行が制御される。
【００４６】
反応実行回路Ｈは、反応前の物質であるｇｌｕｃｏｓｅ及びＡＴＰの分子数を表す物質カウンタＣ１１ａ，Ｃ１１ｂと、反応後の物質であるｇｌｕｃｏｓｅ６Ｐ、ＡＤＰ及びＨ+ の分子数又は原子数を表す物質カウンタＣ１１ｃ，Ｃ１１ｄ，Ｃ１１ｅとに接続切り換え回路（図示省略）により接続されている。
【００４７】
反応実行回路Ｈは、絞り回路Ｖを介して出力されるデータが“１”、すなわち反応を実行する場合、物質カウンタＣ１１ａ，Ｃ１１ｂにそのカウント値を１だけ減少するように指示するとともに、物質カウンタＣ１１ｃ，Ｃ１１ｄ，Ｃ１１ｅにそのカウント値を１だけ増加するように指示し、物質カウンタＣ１１ａ，Ｃ１１ｂは、１だけカウント値を減少させ、物質カウンタＣ１１ｃ，Ｃ１１ｄ，Ｃ１１ｅは、１だけカウント値を増加させる。
【００４８】
このようにして、図１に示すハードウエアシミュレータを用い、ｈｅｘｏｋｉｎａｓｅを酵素としてｇｌｕｃｏｓｅ及びＡＴＰからｇｌｕｃｏｓｅ６Ｐ、ＡＤＰ及びＨ+ を生成するＧｌｙｃｏｌｙｓｉｓによる各物質の変化量をシミュレーションすることができる。
【００４９】
このとき、時刻Ｔ１において、各物質カウンタＣ１１ａ〜Ｃ１１ｅから各記憶装置Ｃ１２ａ〜Ｃ１２ｅへのデータ転送を指示する転送制御信号が外部から転送制御部（図示省略）に入力され、各物質カウンタＣ１１ａ〜Ｃ１１ｅのカウント値Ａ〜Ｅが各記憶装置Ｃ１２ａ〜Ｃ１２ｅに記憶される。その後、時刻Ｔ１からシミュレーションを再開する場合、各記憶装置Ｃ１２ａ〜Ｃ１２ｅから各物質カウンタＣ１１ａ〜Ｃ１１ｅへのデータ転送を指示する転送制御信号が転送制御部に入力され、各記憶装置Ｃ１２ａ〜Ｃ１２ｅに記憶されているカウント値Ａ〜Ｅが各物質カウンタＣ１１ａ〜Ｃ１１ｅに設定され、時刻Ｔ１からシミュレーションを再開することができる。
【００５０】
次に、細胞内の各物質の濃度勾配を考慮して細胞内の生化学反応をシミュレーションする場合について説明する。図５は、細胞内の各物質の濃度勾配を考慮して細胞内の生化学反応をシミュレーションする方法を説明するための模式図である。
【００５１】
図５に示すように、細胞内の生化学反応をシミュレーションする場合、一つの細胞を複数のセルＣＥに空間分割し、セルＣＥごとに物質の量を保持させ、セルラーオートマトンにより各物質の濃度勾配をシミュレーションする。すなわち、対象とするセル内の各物質の濃度（量）と近傍の６個のセル内の物質の濃度（量）とからセル間での各物質の拡散をシミュレーションする。
【００５２】
例えば、隣接する２つのセルＣ１，Ｃ２に、濃度の異なる物質１、物質２及び物質３がそれぞれ含まれている場合、セルＣ１，Ｃ２間では、濃度の高い方から低い方へ各物質が拡散し、このセル間での拡散を以下のようにしてシミュレーションすることができる。
【００５３】
図６は、図５に示す２つのセルにおける物質の拡散をシミュレーションする場合のハードウエアシミュレータの構成を示すブロック図である。図６に示すハードウエアシミュレータは、セルＣ１用のハードウエアシミュレータＣＢ１、セルＣ２用のハードウエアシミュレータＣＢ２及び拡散回路ＫＣを備える。
【００５４】
図６に示すハードウエアシミュレータＣＢ１内の物質カウンタＣ１１１〜Ｃ１１３の各カウント値は、セルＣ１内の物質１〜物質３の分子数又は原子数を表し、ハードウエアシミュレータＣＢ２内の物質カウンタＣ１１１’〜Ｃ１１３’の各カウント値は、セルＣ２内の物質１〜物質３の分子数又は原子数を表し、各物質カウンタＣ１１１〜Ｃ１１３，Ｃ１１１’〜Ｃ１１３’は、拡散回路ＫＣを介して接続されている。
【００５５】
拡散回路ＫＣは、物質カウンタＣ１１１〜Ｃ１１３，Ｃ１１１’〜Ｃ１１３’のカウント値、すなわち各物質の分子数又は原子数に応じて各物質が拡散するように、物質カウンタＣ１１１〜Ｃ１１３，Ｃ１１１’〜Ｃ１１３’のカウント値を制御する。例えば、物質カウンタＣ１１１のカウント値が物質カウンタＣ１１１’のカウント値より大きい場合、平衡状態になるまで、所定の拡散速度に従い、物質カウンタＣ１１１のカウント値を順次減少させるとともに、これに対応させて物質カウンタＣ１１１’のカウント値を順次増加させる。
【００５６】
なお、図６では、セルＣ１，Ｃ２用のハードウエアシミュレータＣＢ１，ＣＢ２において物質カウンタＣ１１１〜Ｃ１１３、Ｃ１１１’〜Ｃ１１３’及び記憶装置Ｃ１２１〜Ｃ１２３、Ｃ１２１’〜Ｃ１２３’のみを図示しているが、各ハードウエアシミュレータＣＢ１，ＣＢ２も、図１に示すハードウエアシミュレータと同様に構成され、乱数発生器、酵素カウンタ、絞り回路、反応実行回路、接続切り換え回路及び転送制御部（図示省略）を有している。したがって、ハードウエアシミュレータＣＢ１，ＣＢ２も、図１に示すハードウエアシミュレータと同様に動作し、各セルＣ１，Ｃ２ごとに内部の生化学反応がシミュレーションされ、転送制御信号に応じて、物質カウンタＣ１１１〜Ｃ１１３，Ｃ１１１’〜Ｃ１１３’のカウント値が記憶装置Ｃ１２１〜Ｃ１２３、Ｃ１２１’〜Ｃ１２３’に記憶されるとともに、記憶装置Ｃ１２１〜Ｃ１２３、Ｃ１２１’〜Ｃ１２３’に記憶されているカウント値が物質カウンタＣ１１１〜Ｃ１１３，Ｃ１１１’〜Ｃ１１３’に設定される。
【００５７】
上記のように、細胞を複数のセルに分割し、セルごとに生化学反応による物質の変化量をシミュレーションするとともに、隣接するセル間での各物質の拡散をシミュレーションすることにより、細胞内の各物質の濃度勾配を考慮して細胞内の物質の変化量をシミュレーションすることができるとともに、物質カウンタのカウント値を記憶装置に適宜記憶させ、必要に応じて記憶装置に記憶させているカウント値を物質カウンタに再度設定することができる。
【００５８】
次に、多細胞の生化学反応をシミュレーションする場合について説明する。図７は、多細胞の生化学反応をシミュレーションする方法を説明するための概略図である。図７に示すように、図５と同様に各細胞を複数のセルＣＥ（図中のハッチングのないセル）に分割するとともに、細胞間に存在する細胞壁を複数の細胞壁セルＷＣ（図中のハッチングを施したセル）に分割する。この場合、各細胞内では、図５及び図６を用いて説明した細胞内のシミュレーションと同様に生化学反応がシミュレーションされる。
【００５９】
また、細胞壁を表す細胞壁セルＷＣの部分は、例えば、拡散が起こらない、すなわち細胞間で物質が拡散しないものとしてシミュレーションを行ってもよく、また、細胞壁でもある程度の拡散が行われるとして、細胞内の細胞セルと同様に拡散回路を用いて拡散をシミュレーションしてもよい。
【００６０】
上記のように、各細胞を複数のセルに分割するとともに、細胞壁を複数の細胞壁セルに分割し、セルごとに生化学反応による物質の変化量をシミュレーションするとともに、細胞内で隣接するセル間の各物質の拡散等をシミュレーションすることにより、多細胞についても、その生化学反応を同様にシミュレーションし、物質カウンタのカウント値を記憶装置に適宜記憶させ、必要に応じて記憶装置に記憶させているカウント値を物質カウンタに再度設定することができる。
【００６１】
次に、本発明の第２の実施の形態によるハードウエアシミュレータについて説明する。図８は、本発明の第２の実施の形態によるハードウエアシミュレータの構成を示すブロック図である。図８に示すハードウエアシミュレータと図１に示すハードウエアシミュレータとで異なる点は、データ値範囲保持装置ＤＨ、比較器ＣＭ、演算装置ＣＤ及び反応条件検出ネットワーク回路ＳＮが付加された点であり、その他の点は図１に示すハードウエアシミュレータと同様であるので詳細な説明は省略する。なお、カウンタ部Ｃ１〜Ｃｍは、図２に示すカウンタ部と同様に構成されている。
【００６２】
カウンタ部Ｃ２〜Ｃｍは、自身の物質カウンタＣ１１（図２参照）のカウント値をネットワーク回路ＳＮへ出力する。反応条件検出ネットワーク回路ＳＮは、所定の論理回路等から構成され、カウンタ部Ｃ２〜Ｃｍのカウント値を集計して所定の反応条件を満たしているか否かの判断を行い、反応条件を満たしていると判断した場合、反応可能信号を演算装置ＣＤへ出力する。反応条件検出ネットワーク回路ＳＮとして、例えば、平均経路長が短いというランダムネットワークの特徴とクラスター係数が大きいというレギュラーネットワークの特徴との双方を合わせ持つスモールワールドネットワークを用いることができるが、この例に特に限定されず、他のネットワークを用いてもよい。
【００６３】
カウンタ部Ｃ１は、自身の物質カウンタＣ１１のカウント値を演算装置ＣＤへ出力する。演算装置ＣＤは、反応条件検出ネットワーク回路ＳＮから反応可能信号を受けた場合、カウンタ部Ｃ１のカウント値に対して所定の演算を行い、カウント値から演算された演算値を比較器ＣＭへ出力する。なお、物質カウンタＣ１１のカウント値をそのまま用いる場合は、演算装置ＣＤは、物質カウンタＣ１１のカウント値をそのまま比較器ＣＭへ出力する。この場合、データ値範囲保持装置ＤＨは、カウンタ部Ｃ１のカウント値のデータ値範囲を記憶している。
【００６４】
データ値範囲保持装置ＤＨは、カウンタ部Ｃ１のカウント値から演算された値のデータ値範囲として、その最大値及び最小値を予め記憶している。比較器ＣＭは、データ値範囲保持装置ＤＨが保持している最大値及び最小値と演算装置ＣＤの演算値とを比較し、データ値範囲保持装置ＤＨが保持している最大値と最小値との間に演算装置ＣＤの演算値が入っているか否かを判断する。比較器ＣＭは、最大値と最小値との間に演算値が入っていない場合、カウンタ部Ｃ１の記憶装置Ｃ１２（図２参照）が記憶している複数のカウント値の中から所定のカウント値を物質カウンタＣ１１に代入するように指示する転送制御信号を転送制御部Ｃ１３（図２参照）へ出力する。転送制御部Ｃ１３は、指定された記憶装置Ｃ１２のカウント値を物質カウンタＣ１１のカウント値として入れ替える。本実施の形態では、反応条件検出ネットワーク回路ＳＮが第１判断回路の一例に相当し、演算装置ＣＤ、データ値範囲保持装置ＤＨ及び比較器ＣＭが第２判断回路の一例に相当する。
【００６５】
上記のように、本実施の形態では、カウンタ部Ｃ２〜Ｃｍの物質量が所定の反応条件を満たすか否かを判断し、反応条件を満たす場合にカウンタ部Ｃ１のカウント値から演算された値が想定されるデータ値範囲内にあるか否かを判断し、データ値範囲内になくなった場合、記憶装置Ｃ１２が記憶している所定時刻前のカウント値を物質カウンタＣ１１に設定しているので、複数の物質が所定の条件を満たすことを条件としてある物質が反応を行う場合等の複雑な条件を考慮しながら、カウンタ部Ｃ１のカウント値から演算された値が想定されるデータ値範囲内になくなり、物質カウンタＣ１１のカウント値がシミュレーション結果として不要な値になった場合等において、適正なカウント値を再度設定してシミュレーションを再開することができる。
【００６６】
なお、本実施の形態では、カウンタ部Ｃ２〜Ｃｍのカウント値から反応条件を満たしているか否かを判断したが、この例に特に限定されず、他のカウンタ部のカウント値から判断してもよく、また、カウント値が設定されるカウンタ部も、カウンタ部Ｃ１に特に限定されず、他のカウンタ部のカウント値を設定するようにしてもよい。
【００６７】
また、本発明が適用可能なハードウエアシミュレータは、上記の例に特に限定されず、所定のハードウエアから構成され、シミュレーション対象物間の反応によるシミュレーション対象物の変化量をシミュレーションするハードウエアシミュレータであれば、種々の分野に適用可能である。例えば、脳細胞及び神経回路網等の生物シミュレーション、遺伝子進化及び生物の個体進化シミュレーション、渡り鳥の移動等に関する生態系シミュレーション、移動物に関する交通システムシミュレーション、避難シミュレーション、数値流体シミュレーション、気象シミュレーション、ロジスティクスシミュレーション、電力供給シミュレーション、都市計画等に関する都市シミュレーション、企業間取引及び株式・先物取引等に関する経済システムシミュレーション、経営シミュレーション、電気回路及び集積回路等の電磁シミュレーション、半導体及び材料の電子レベルシミュレーションに適用することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施の形態によるハードウエアシミュレータの構成を示すブロック図である。
【図２】図１に示すカウンタ部の一例の構成を示すブロック図である。
【図３】図１に示すカウンタ部として使用可能な他のカウンタ部の構成を示すブロック図である。
【図４】図１に示すハードウエアシミュレータによるシミュレーションの例を説明するための模式図である。
【図５】細胞内の各物質の濃度勾配を考慮して細胞内の生化学反応をシミュレーションする方法を説明するための模式図である。
【図６】図５に示す２つのセルにおける物質の拡散をシミュレーションする場合のハードウエアシミュレータの構成を示すブロック図である。
【図７】多細胞の生化学反応をシミュレーションする方法を説明するための概略図である。
【図８】本発明の第２の実施の形態によるハードウエアシミュレータの構成を示すブロック図である。
【符号の説明】
【００６９】
Ｒ１〜Ｒｎ  乱数発生器
Ｋ１〜Ｋｎ  酵素カウンタ
Ｖ１〜Ｖｎ  絞り回路
Ｈ１〜Ｈｎ  反応実行回路
ＳＷ  接続切り換え回路
Ｃ１〜Ｃｍ，Ｃ１ａ  カウンタ部
Ｃ１１  物質カウンタ
Ｃ１２  記憶装置
Ｃ１３，Ｃ１３ａ  転送制御部
Ｃ１４，ＤＨ  データ値範囲保持装置
Ｃ１５，ＣＭ  比較器
ＣＤ  演算装置
ＳＮ  反応条件検出ネットワーク回路
【図１】
0004780544.tif 000002
【図２】
0004780544.tif 000003
【図３】
0004780544.tif 000004
【図４】
0004780544.tif 000005
【図５】
0004780544.tif 000006
【図６】
0004780544.tif 000007
【図７】
0004780544.tif 000008
【図８】
0004780544.tif 000009