(57)【特許請求の範囲】
【請求項１】
論理回路の設計単位に対応した階層形式で表現された論理回路モデルを複数のコンピュータのメモリ上に複数に分割して展開し、前記コンピュータ間で互いに通信を行いながら前記論理回路の電気特性のシミュレーションを行う並列化論理シミュレーション方法であって、
予め、前記論理回路モデルを第１の記憶装置に格納すると共に、前記論理回路モデルの予め定められた分割位置情報を第２の記憶装置に格納し、
前記複数のコンピュータの内、任意のコンピュータが、メモリ上に前記第２の記憶装置から分割位置情報を読み出して格納すると共に、第１の記憶装置から読み出した論理回路モデルを論理回路の設計単位に最上位階層から下位階層に向かって順次読み出して展開処理を開始し、
前記読み出した論理回路の設計単位が、前記第２の記憶装置から読み出した分割位置情報と一致した場合、該分割位置における論理回路の接続情報を作成し、該接続情報を他のコンピュータに伝達した後、元の階層に戻って展開処理を継続し、
前記他のコンピュータが、前記任意のコンピュータから伝達された接続情報を基に前記分割位置より下位階層の論理回路モデルの読み出しとメモリへの展開を行って論理回路の設計単位の展開処理を開始することを特徴とする並列化論理シミュレーション方法。
【請求項２】
前記任意のコンピュータが、他のコンピュータの処理状況を監視し、処理可能な他のコンピュータに対してのみ論理回路の分割位置における接続情報を伝達し、処理可能でない他のコンピュータに対する論理回路の接続情報を他のコンピュータが処理可能になるまでスタックしておくことを特徴とする請求項１記載の並列論理シミュレーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置の論理シミュレーション方法に係り、特にＬＳＩ当の論理回路モデルを複数のコンピュータ上のメモリに分割して割り当て、各コンピュータ間で通信をしながら論理回路の電気特性のシミュレーション（疑似動作）を並列的に実行する並列化論理シミュレーション方法に関する。
【０００２】
【従来の技術】
従来、ＬＳＩ等の複雑且つ多量の回路構成をメモリ上で展開して動作のシミュレーションを行う並列化論理シミュレータでは、論理回路モデルの展開処理及びシミュレーションに非常に多くの時間を要していた。この原因としては、処理の並列度の低下が挙げられる。
【０００３】
即ち従来の並列化論理シミュレータでは、論理回路モデルを読み込む際、まず１台のコンピュータで全ての論理回路モデルの展開処理を行い、この展開した論理回路モデルを複数に分割し、この後に他のコンピュータに分割した単位での論理回路モデルの読み込み乃至シミュレーションを依頼しているため、シミュレーションに非常に多くの時間を要していた。
【０００４】
特に近年においては、論理回路の大規模化により従来の方式ではシミュレーションの前処理である論理回路モデルの展開処理に非常に多くの時間を要し、シミュレーション全体の処理時間も長くなってしまうため、論理回路モデルの展開処理を高速化した並列化論理シミュレータが必要となっている。
【０００５】
【発明が解決しようとする課題】
従来技術による並列化論理シミュレータは、論理回路モデルの展開処理を複数のコンピュータで並列的に実行する並列論理シミュレーション方式について考えると、まず最初に論理回路モデルを割り当てる任意のコンピュータは、論理回路モデルの展開処理、論理回路の分割位置における接続情報の作成、および他のコンピュータへの該接続情報の伝達をすべて並行して実行しなければならず、また、上記以外のコンピュータも分割位置以降の論理回路の展開処理と他のコンピュータからのデータ受信処理があり、これらがすべて複雑にからみあっているため、これらすべてを並列に実行することは非常に困難であると言う不具合があった。  本発明の目的は、前記従来技術の不具合を除去することであり、シミュレーション全体の処理時間を短くすることができる並列化論理シミュレータシステムを提供することである。本発明の他の目的は、論理回路モデルの展開処理を並列的に実行することにより、高速なシミュレーション前処理が可能な並列化論理シミュレータを提供することである。
【０００６】
【課題を解決するための手段】
前記目的を解決するため本発明は、論理回路の設計単位に対応した階層形式で表現された論理回路モデルを複数のコンピュータのメモリ上に複数に分割して展開し、前記コンピュータ間で互いに通信を行いながら前記論理回路の電気特性のシミュレーションを行う並列化論理シミュレーション方法において、
前記論理回路モデルを格納する第１の記憶装置と、前記論理回路モデルの予め定められた分割位置情報を格納する第２の記憶装置とを設け、
前記複数のコンピュータの内、任意のコンピュータが、メモリ上に前記第２の記憶装置から分割位置情報を読み出して格納すると共に、第１の記憶装置から読み出した論理回路モデルを論理回路の設計単位に最上位階層から下位階層に向かって順次読み出して展開処理を開始し、
前記読み出した論理回路の設計単位が、前記第２の記憶装置から読み出した分割位置情報と一致した場合、該分割位置情報に関する論理回路の接続情報と、前記分割位置より下位階層の論理回路モデルの読み出しとメモリへの展開依頼を他のコンピュータに伝達した後、元の階層に戻って展開処理を継続し、
前記他のコンピュータが、前記任意のコンピュータから伝達された接続情報を基に前記分割位置より下位階層の論理回路モデルの読み出しとメモリへの展開を行って論理回路の設計単位の展開処理を開始することを第１の特徴とする。
【０００７】
更に本発明は、前記特徴の並列論理シミュレーション方法において、前記任意のコンピュータが、他のコンピュータの処理状況を監視し、処理可能な他のコンピュータに対してのみ論理回路の分割位置における接続情報を伝達し、処理可能でない他のコンピュータに対する論理回路の接続情報を他のコンピュータが処理可能になるまでスタックしておくことを第２の特徴とする。
【０００９】
【発明の実施の形態】
以下、本発明の一実施形態による論理シミュレータシステムを図面を参照して詳細に説明する。図１は本実施形態による並列化論理シミュレータシステムの全体構成図である。
【００１０】
図１に示す並列化論理シミュレータシステムは、ＬＳＩ等の論理回路の設計単位に対応した階層形式で表現された論理回路モデルを記憶する記憶装置１０１と、該論理回路モデルの予め定められた分割位置（情報）定義ファイルを格納する記憶装置１０２と、前記論理回路モデルを構成する多数の論理回路の電気特性のシミュレーションを実行するコンピュータ１０３〜１０６と、これらを接続するネットワーク１０７とから構成される。前記コンピュータ１０３〜１０６は、並列化論理シミュレータのプログラムおよび論理回路モデルを展開するための十分なメモリを搭載しているものとする。但し、メモリ量の少ないコンピュータには少量の論理回路モデルを展開し、メモリ量の多いコンピュータには多量の論理回路モデルを展開するように分割位置の定義を行うものとする。
【００１１】
図２は前述の論理回路モデル及び分割位置定義ファイルの構成を示す図である。本実施形態の対象となる論理回路モデル２０１は、図２に示す如く、楕円形で示す複数の論理回路の設計単位を木構造で階層的に構築したものであり、図中の２０１ａ〜２０１ｃが後述する分割位置であるとする。
【００１２】
また分割位置定義ファイル２０２は、前記論理回路の設計単位に対応した分割位置２０１ａ〜２０１ｃと、該分割位置に対応して使用するコンピュータ２〜４（コンピュータ１０４〜１０６）を予め定義したものである。
【００１３】
この様に構成した論理シミュレータシステムは、シミュレーションを実行する各コンピュータ１０３〜１０６に並列化論理シミュレータのプログラムを読みこみ、任意の１台のコンピュータ、ここではコンピュータ１０３に論理回路モデル２０１の最上位階層を割り当て、論理回路モデルの分割位置情報を記述した分割定義ファイル２０２を読み込む。ここではまずコンピュータ１０３に論理回路モデルの最上位階層の割り当てを行い、他のコンピュータ（１０４〜１０６）は通信待ち状態とする。
【００１４】
前記コンピュータ１０３は、論理回路モデルを前記論理回路の設計単位（図中の楕円で示す単位）で下位階層に向かって読み込み、当該コンピュータのメモリ上に展開してシミュレーションを開始する。図２に示した例では最上位の設計単位（楕円）のシミュレーションを開始し、次に図面左下方向に向かう２つの設計単位にシミュレーションを行う。
【００１５】
次にコンピュータ１０３は、左端の符号１０２ａで指示された設計単位を展開し、この論理回路モデル（設計単位）の位置が、分割位置定義ファイル２０２に指定された分割位置に一致した場合（ここでは２０１ａ）、後述する分割位置における論理回路の接続情報を生成し、該接続情報をコンピュータ１０４に伝達する。
【００１６】
この接続情報を受け取ったコンピュータ１０４は、分割位置より下位の階層の論理回路モデル（設計単位）を読み出してコンピュータ１０４のメモリ上に展開して前記同様にシミュレーションを行う。
【００１７】
前記コンピュータ１０３は上記接続情報を転送したら、相手のコンピュータ１０４の応答を待たずに論理回路モデルの展開処理を継続する。次に、コンピュータ１０３が他の分割位置（２０１ｂ）を認識したら前記と同様に論理回路の接続情報を作成し、コンピュータ１０５に対して送信する。分割位置２０１ｃでも同様の処理をコンピュータ１０６対して行う。
【００１８】
以上のように本実施形態による並列化論理シミュレータシステムは、論理回路の分割位置における接続情報をそれぞれ該当するコンピュータに転送し、分割位置以降の処理を各コンピュータに任せることにより、最初のコンピュータ１０３以外のコンピュータが並行して分割した論理回路モデルの展開処理を行うものであり、これを図３に示すフローチャートを参照して、論理回路モデル展開処理における各コンピュータの処理を詳細に説明する。
【００１９】
図３は本実施形態の並列化論理シミュレータの各コンピュータにおける処理の一例を示すフローチャートである。
図３に示されるように、本実施形態の並列化論理シミュレータは、最初に論理回路モデルの最上位データを割り当てるコンピュータ１０３が、ステップＳ３０１により論理回路モデルの読み込みを開始し、上記以外の各コンピュータ（１０４〜１０６）は、ステップＳ４０１の通信待ちの状態で待機する。
【００２０】
次にコンピュータ１０３は、ステップＳ３０２により現在読み込んだ論理回路モデルが論理回路の分割位置に一致するかどうかの判定を行う。ここで、分割位置でないと判定されると、ステップＳ３０３に進み、コンピュータ１０３のメモリ上に論理回路モデルの内容を展開する。
【００２１】
前記ステップＳ３０２で論理回路の分割位置と一致すると判別した場合は、ステップＳ３０４に進み、分割位置における論理回路の接続情報（自己及び他のコンピュータ対応の接続情報）を作成した後、ステップＳ３０５で該接続情報を分割位置定義ファイル２０２に記述されたコンピュータに送信し、ステップＳ３０６に進む。ステップＳ３０６では、論理回路モデルの展開処理が終了したかどうかの判定を行い、まだ展開する論理回路モデルがある場合は、ステップＳ３０１に進み、再び論理回路モデルの読み込みを行うが、論理回路モデルの展開処理が終了した場合は、ステップＳ３０７に進み、他のコンピュータに論理回路モデル展開処理の終了を伝達する。その後ステップＳ３０８のシミュレーション実行処理へと進む。
【００２２】
次に、ステップＳ４０１で待機していた他のコンピュータの処理について説明する。最初に論理回路モデルを割り当てられなかったコンピュータ（１０４〜１０６）は、プログラムをスタートすると受信待ちの状態で待機する。ここで、何かデータを受信するとステップＳ４０２に進み、受け取ったデータが論理回路の接続情報であるかの判定処理を行う。ここで接続情報を受信したと判別されると、論理モデルを読み込んだ後（図示せず）にステップＳ４０３に進み、分割位置より下位の階層の論理回路モデルを該コンピュータシステムのメモリ上に展開する。その後割り当てられた論理回路モデルの展開処理が終了するまで、ステップＳ４０３とステップＳ４０４を繰り返す。割り当てられた論理回路モデルの処理が終了したらステップＳ４０１に進み、再び受信待ちの状態で待機する。
【００２３】
ここで論理回路モデルの設計単位の展開処理がすべて終了するとコンピュータ１０３は、ステップＳ３０７で終了通知を他のコンピュータに送信する。データを受け取った全てのコンピュータは、ステップＳ４０２に進み、ステップＳ４０２で接続情報ではないと判定されるため、論理回路モデルの展開処理を終了し、ステップＳ４０５のシミュレーション実行に進み、コンピュータ（１０４〜１０６）で並列的に処理される。尚、Ｓ３０８及びｓ４０５のシミュレーション実行は、本発明に直接関係が無いため説明を省略する。
【００２４】
図４は前述のフローにおける各コンピュータで並列的に処理が実行される様子を時系列に示したものである。ここで、縦方向は時間軸とし、各コンピュータにおける論理回路モデルの展開処理を各コンピュータの線上に網掛けで表すものとする。
図４を参照すれば明らかな如く本実施形態によるシステムは、コンピュータ１０３は論理回路モデルの最上位が割り当てられると、論理回路モデルの展開処理を始め、コンピュータ１０３は論理回路の分割位置を検出すると分割位置における論理回路の接続情報を作成し、非同期に他のコンピュータに転送する。接続情報を受け取った各コンピュータ（１０４〜１０６）は受け取った分割位置以降の論理回路モデルの展開処理を実行する。コンピュータ１０３は論理回路モデル展開処理が終了したら各コンピュータにデータ展開処理の終了を通知し、全てのコンピュータの処理が終了するまで待ち、その後シミュレーションを実行する。この図４に示すように本実施形態によれば、論理回路モデルの展開処理を並列的に実行することにより高速に実行することができる。
【００２５】
次に本発明の他の実施形態を図５を参照して説明する。この図５は、図３で説明した並列化シミュレータに通信制御を追加し、通信待ちができるだけ発生しないように工夫した例である。即ち、図３の実施形態例ではコンピュータ１０３は、論理回路の接続情報を作成したら他のコンピュータの状態を気にせずに送信しているため、受信側のコンピュータが、すでに割り当てられた論理回路モデルの展開処理を実行中の場合、上記接続情報を受け取ることができないため通信用バッファ等（図示せず）に長い時間データが残ることになる。このようなデータが多くなると、遂には通信用バッファのサイズを超えてしまい、通信ができなくなる可能性がある。
【００２６】
そこで本実施形態においては、図３のステップＳ３０５の処理（接続情報の送信）を図５に示す処理に変更し、通信の制御を行う。
図５において、コンピュータ１０３は、ステップＳ５０１で他の全てのコンピュータに対し、現在受信待ち状態かどうかを尋ね、ステップＳ５０２で応答待ちをする。他のコンピュータは、上記のコンピュータ１０３からの通信を受け取ると、現在受信待ちかどうかをコンピュータ１０３に転送する。コンピュータ１０３では、応答の帰ってきたコンピュータが受信待ちであるかどうかをステップＳ５０３で判別し、受信待ちであると判別した場合は、ステップＳ５０５に進み、応答のあったコンピュータに対する接続情報があれば、該接続情報を送信する。ステップＳ５０３で受信待ちでないと判別した場合は、ステップＳ５０４に進み、応答のあったコンピュータに対するデータがあればスタックしておく。以下、すべてのコンピュータの応答があるまでステップＳ５０２からステップＳ５０６を繰り返す。以上のように論理回路モデルにおける論理回路の分割位置の情報を他のコンピュータに送信する際、他のコンピュータが処理可能な状態であるかどうかを先に確認し、処理可能であるコンピュータにのみ接続情報の伝達を行うことにより、通信の待ち時間を低減し、論理回路モデルの展開処理を高速化することができる。
【００２７】
尚、本発明は次に述べる実施形態としても表すことができる。
＜実施態様１＞  メモリ及び演算装置を各々有する複数のコンピュータを同時に動作させ、論理回路のモデルを該コンピュータの数以内に適当に分割し、該コンピュータ群に接続されたディスク装置から該論理回路モデルを分割された単位毎に各々のコンピュータのメモリ上に展開し、コンピュータ同士で互いに通信をし合いながら該論理回路の電気特性のシミュレーションを行う並列化論理シミュレータであって、
論理回路の設計単位に対応した階層形式で表現された論理回路モデルに対し別途定められた分割位置の情報を任意の１台のコンピュータのメモリ上に展開し、更に該コンピュータはディスク装置から該論理回路モデルを最上位階層から下位階層に向かって順次読み出して該コンピュータのメモリ上に展開し、
展開中の論理回路の位置を該分割位置情報と照合し、
分割位置を認識した場合は該分割位置に関する論理回路の接続情報を生成し、
該接続情報をコンピュータ間の通信により他の未使用のコンピュータに伝達し、該分割位置より下位階層の論理回路モデルの読み出しとメモリへの展開を該コンピュータに依頼し、
その間に最初のコンピュータは元の階層に戻って他の分割位置の探索を継続し、該コンピュータが他の分割位置を認識した場合は他の未使用のコンピュータに対して同様の処理を行うことを繰り返すことによって最初のコンピュータ以外のコンピュータが並列的に分割された論理回路モデルの読み出しを行うことを特徴とする並列化論理シミュレータ。
【００２８】
＜実施態様２＞  前記実施形態１に示す並列化論理シミュレータにおいて、最初に論理回路モデルを割り当てた任意の１台のコンピュータが、他のコンピュータの処理状況を監視し、処理可能なコンピュータに対してだけ論理回路の分割位置における接続情報を通信によって伝達し、処理可能でないコンピュータに対する論理回路の接続情報は、該当コンピュータが処理可能になるまでスタックしておくことにより通信の待ち時間を低減し、分割された論理回路モデルの読み出しを高速に行うことを特徴とする並列論理シミュレータ。
【００２９】
＜実施態様３＞  前記実施形態１に示す並列化論理シミュレータにおいて、論理回路モデルの分割処理を独立させ、まず前処理として分割位置の情報を任意の１台のコンピュータですべて処理し、結果をファイルまたは記憶装置に保存し、分割位置における論理回路の接続情報をすべて作成した後で、シミュレーションを実行する各コンピュータに対し該接続情報を転送し、論理回路モデルの展開処理を並列的に実行することを特徴とした並列化論理シミュレータ。
【００３０】
【発明の効果】
以上説明したように本発明によれば、論理シミュレータにおいて、論理回路を複数のコンピュータのメモリ上に分割して論理シミュレーションを実行する場合に、論理回路モデルの展開処理を並列的に実行することによりシミュレーションの準備である論理回路モデルの展開処理にかかる時間を低減することができる。
【００３１】
これにより高速なシミュレーション前処理が可能な並列化論理シミュレータを提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態による論理シミュレータシステムの構成例を示す図。
【図２】本実施形態に適用される論理シミュレーションの対象となる論理回路モデルおよび論理回路の分割位置定義ファイルの一例を示す構成図。
【図３】本実施形態における各コンピュータの処理のフローチャート。
【図４】本発明の他の実施形態における各コンピュータのデータ展開処理例を示す図。
【図５】本発明の一実施例におけるコンピュータ間の通信制御を示す図である。
【符号の説明】
１０１：論理回路モデル、１０２：論理回路分割位置定義ファイル、１０３〜１０６：コンピュータ、２０１：論理回路モデル構成図、２０２：論理回路分割位置定義ファイル構成図。
【図１】
0003772578.tif 000002
【図２】
0003772578.tif 000003
【図３】
0003772578.tif 000004
【図４】
0003772578.tif 000005
【図５】
0003772578.tif 000006