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