JP2003330992A - モデル・シミュレーション - Google Patents

モデル・シミュレーション

Info

Publication number
JP2003330992A
JP2003330992A JP2003100239A JP2003100239A JP2003330992A JP 2003330992 A JP2003330992 A JP 2003330992A JP 2003100239 A JP2003100239 A JP 2003100239A JP 2003100239 A JP2003100239 A JP 2003100239A JP 2003330992 A JP2003330992 A JP 2003330992A
Authority
JP
Japan
Prior art keywords
coupler
model
sub
data
submodel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003100239A
Other languages
English (en)
Inventor
William K Mellors
ウィリアム・ケイ・メローズ
Marvin J Rich
マーヴィン・ジェイ・リッチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2003330992A publication Critical patent/JP2003330992A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 分割されたモデルのサブモデル群をコンカレ
ント分散サブモデル・シミュレーション実行できるよう
に緊密かつ機能的に結合する手法を提供する。 【解決手段】 分割されたモデルの複数のサブモデルを
緊密かつ機能的に結合することにより分割されたモデル
を分散処理する手法を提供する。この手法は、一例で
は、任意のシミュレータの任意のシミュレータ・インス
タンス上でサブモデル300の処理を可能にする汎用カ
プラー302を各サブモデル300に備えるステップを
備えている。汎用カプラー302に結合されたサブモデ
ル300は同じまたは異なるコンピューティング・ユニ
ットで処理することができる。汎用カプラー302は汎
用カプラー共有ライブラリ308の機能を使うことによ
り、共通通信ディレクトリ(CCD)を通じたサブモデ
ル300間の通信を容易にする。汎用カプラー302は
さらに、汎用カプラー共有ライブラリ308の機能を使
ってサブモデル300間で転送されるデータの一貫性を
保証する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にモデル・シ
ミュレーションに関し、特に分割されたモデルのサブモ
デル群をコンカレント分散サブモデル・シミュレーショ
ン実行用に緊密かつ機能的に結合する手法に関する。
【0002】
【従来の技術】モデル・シミュレーションは実システム
を設計しその性能を予測する際における相変わらず重要
な「ツール」である。モデル・シミュレーションは新た
なシステムの適用による性能予測を実装前に生成するの
にも役立つ。間違ったシステムを設計する危険性がきわ
めて大きい複雑なシステムでは、モデル・シミュレーシ
ョンは必須である。
【0003】分散シミュレーションとは、手元のシステ
ムを様々なコンピュータ・ワークステーションに割り当
てられ構成要素をなすサブモデルに分割して実行するシ
ミュレーション環境のことである。
【0004】一般に、分散シミュレーションでは、シス
テム・サブモデル群を実行している協働ワークステーシ
ョン群は最小限、各ワークステーションが実行すべき次
のイベントに加え当該実行用に予定された時間を指示す
る、タイムスタンプを押されたイベント情報を交換する
必要がある。従来技術では、分散シミュレーション用に
2種類のモデルを用いている。すなわち、(a)「オプ
ティミスティック(楽観的)」モデルと(b)「コンサ
ーバティブ(保守的)」モデルである。
【0005】オプティミスティック・モデルでは、様々
なプロセッサが処理するイベントの実行を順序付けな
い。その代わり、オプティミスティック・モデルでは、
各ワークステーションは自分自身のイベント・シーケン
スを別のワークステーションが処理するイベントとは無
関係であるとみなして実行することができる。同時に、
オプティミスティック・モデルには、因果関係エラーの
検出とロールバックによって行なう引き続く復旧のため
の機構が実装されている。
【0006】他方、コンサーバティブ・モデルは様々な
ワークステーションが実行するイベント間の相互依存関
係を特定する先読みアルゴリズムを実装することによ
り、因果関係エラーを完全に排除するという観点に立っ
ている。したがって、コンサーバティブ・モデルでは、
あるワークステーションがイベントを処理できるのは、
問題のイベントが、並行して処理されているイベントま
たは他のワークステーションが次に処理するはずのイベ
ントの結果に影響されないことが分かっている場合のみ
である。
【0007】オプティミスティック手法の欠点のうちで
最も顕著なものは、必要とされる検出・ロールバック機
構がきわめて複雑であり実装するのが困難であるという
事実である。
【0008】コンサーバティブ・モデルは、上述したオ
ーバーヘッドおよび不安定性とは無縁であるけれども、
良好な性能を達成するためにはイベントの並列性を特定
して利用する効率的で複雑な先読みアルゴリズムを必要
とする。多くのアプリケーションがそのように効率的な
アルゴリズムを開発できていない点を考えると、これは
深刻な問題である。コンサーバティブ・モデルに付随す
る別の問題は、ユーザはシミュレートしている特定のア
プリケーション/実験用のモデルを「微調整」できるよ
うに、使われているイベント同期方式を詳しく知ってい
る必要があるという事実に関わっている。
【0009】上述した2種類のモデルに共通する別の欠
点は、(既製の市販ソフトウェアと異なり)特定の研究
用または特定のアプリケーション・プログラム用に開発
された特別のソフトウェアに依存している点である。さ
らに別の共通の欠点は、すべてのワークステーションが
同じシミュレータのインスタンスを実行する必要がある
という点である。
【0010】上述した観点から、同じまたは異なるシミ
ュレータのインスタンスを実行しているワークステーシ
ョン群が通信するのを可能にするとともに、単純な検出
・ロールバック機構を実現できる一般的な機構が当技術
分野で求められている。
【0011】
【課題を解決するための手段】本発明は一側面におい
て、分割されたモデルの複数のサブモデルを処理する方
法を提供することにより、従来技術の欠点を克服しさら
なる利点を提供するものである。この方法はたとえば各
々が対応するサブモデルにインタフェースした複数のカ
プラーを用いて上記複数のサブモデルを結合するステッ
プと、上記複数のサブモデルを一括して処理するステッ
プとを備え、上記複数のサブモデルが上記複数のカプラ
ーおよび共通バッファを用いて通信するものである。
【0012】本発明の別の側面では、上記複数のサブモ
デルを一括して処理するステップが、様々なシミュレー
タの複数のインスタンスを用いシミュレーション・プロ
セスの目標に従って各サブモデルを個別に処理しうるよ
うにするステップを備えている。
【0013】本発明のさらに別の側面では、上記バッフ
ァ中のデータが正確であるか否かを自動的に調べ、必要
な場合には再送信する。
【0014】ここでは、上述した方法に対応するシステ
ムとコンピュータ・プログラム製品についても述べられ
ている。
【0015】本発明の諸側面によれば、共有カプラー・
ライブラリとライセンスを受けたハードウェア・シミュ
レータのAPI(アプリケーション・プログラミング・
インタフェース)とを用いることにより、ライセンスを
受けたハードウェア・シミュレータのソース・コードに
わざわざアクセスしなくともモデルの分散処理を効果的
に行なえる。本発明によれば、サブモデルが互いに直接
に通信しうるようにすることにより、ハブレス(中心な
し)分散処理、すなわち分散制御による処理が可能にな
る。さらに、ここに提示するモデル処理手法はコンピュ
ーティング・ユニット、そのアーキテクチャ、そのオペ
レーティング・システム、およびライセンスを受けたハ
ードウェア・シミュレータで使われるプログラミング言
語に関し特定の要件すなわち限定を必要としない。これ
は、共有カプラー・ライブラリの汎用機能を用いライセ
ンスを受けたハードウェア・シミュレータのAPIと直
接に通信することにより、かつ、様々なアーキテクチャ
および/またはオペレーティング・システムの特定の機
能に依存しないことにより実現されている。(「Aおよ
び/またはB」は「AおよびB、A、またはB」を表わ
す。)
【0016】本発明の手法によれば、さらなる機能と利
点を実現しうる。本発明の他の実例と側面をここで詳細
に説明するが、それらは特許請求の範囲に記載した本発
明の一部と考えられる。
【0017】
【発明の実施の形態】本発明の少なくとも1つの側面に
より、複数のサブモデルに分割された1つのモデルを一
括して処理する手法を提示する。この手法によれば、た
とえば同じライセンスを受けたハードウェア・シミュレ
ータまたは異なるライセンスを受けたハードウェア・シ
ミュレータまたは複数のサブモデルを処理するライセン
スを受けたプログラムのインスタンス群を接続する汎用
通信機構を備えることによりモデルを処理するのが容易
になる。
【0018】以下、本発明の諸側面を取り込んで使用し
ている、分散シミュレーション・システムの一実施形態
を図1を参照して説明する。この分散コンピューティン
グ環境はライセンスを受けたハードウェア・シミュレー
タのインスタンス104を実行するコンピューティング
・ユニット100と、ライセンスを受けたハードウェア
・シミュレータのインスタンス106を実行するコンピ
ューティング・ユニット102とを備えている。各コン
ピューティング・ユニットは、たとえばインターナショ
ナル・ビジネス・マシーンズ・コーポレーション(IB
M)が提供するUNIX(R)ベースのオペレーティング
・システムであるAIXを実行するIBM RISC/
6000コンピュータである。一実施形態では、インス
タンス104、106は異なるライセンスを受けたハー
ドウェア・シミュレータ、たとえばモデル・テクノロジ
ー社が提供するVSIMやインターナショナル・ビジネ
ス・マシーンズ・コーポレーションが提供するPSIM
などのインスタンスである。しかし、別の実施形態で
は、インスタンス104、106は同じライセンスを受
けたハードウェア・シミュレータのインスタンスであっ
てもよい。
【0019】インスタンス104はカプラー110がイ
ンタフェースしているサブモデル108を処理する。
(「インタフェースする」とはある構成要素が異質の他
の構成要素に接続することである。)一方、インスタン
ス106はカプラー114がインタフェースしているサ
ブモデル112を処理する。サブモデル108、112
は処理すべきハードウェアのモデルを分割することによ
り生成する。様々な分割手法のさらなる詳細は文献や本
願の同時米国出願に述べられている。ハードウェア・モ
デル分割の一例を下で図2(a)(b)(c)を参照し
て説明する。一方、本発明の一側面に係る汎用カプラー
の一実施形態、および当該カプラーでサブモデルにイン
タフェースする方法を下で図3を参照して説明する。
【0020】図1の参照を続ける。カプラー110、1
14にはバッファ116がインタフェースしている。バ
ッファ116は一般に、カプラー110、114がアク
セス可能でサブモデル108、112が通信するのを可
能にする通信媒体を備えている。一例を挙げると、この
通信媒体にはIBMが提供しているAFS(Andrew Fil
e System)を用いた記憶装置を用いることができる。A
FSとは、協働しているホスト群がLAN(local area
network)とWAN(widw area network)の双方をまた
いでファイルシステム資源を効率的に共有するのを可能
にする分散ファイルシステムのことである。この特徴に
より、本発明でAFSを使用することができる。さら
に、上記記憶装置には共通通信ディレクトリ(CCD)
を備えることができる。このCCDはカプラー110、
114が読み書きアクセス可能な複数ファイル118を
含んでいる。一実施形態では、この複数ファイルはモデ
ルまたは分割されたサブモデルの処理が始まる前にCC
D中に存在している。複数ファイル118はサブモデル
108と112の間でカプラー110と114を介して
データを転送するのに使うことができる。一例では、カ
プラー110がサブモデル108からデータを取得し、
それを複数ファイル118のうちの少なくとも1つのフ
ァイルに書き込む。次いで、カプラー114がこのファ
イルからデータを読み取り、当該データをサブモデル1
12に渡す。サブモデル112からサブモデル108へ
のデータの転送も同様の方法で行なう。一例として、フ
ァイルにデータを書き込むのに用いる論理の一実施形態
を下で図7を参照して詳述し、ファイルからデータを読
み取るのに用いる論理の一実施形態を下で図8を参照し
て詳述する。
【0021】一実施形態では、複数ファイル118は2
つのファイルから構成することができる。この実施形態
では、一方のファイルはサブモデル108からサブモデ
ル112にデータを転送するのに使用することができ、
他方のファイルはサブモデル112からサブモデル10
8にデータを転送するのに使用することができる。
【0022】別の実施形態では、入出力速度を速めるた
めに、複数のサブモデル間でデータを転送するのに一連
ファイルを用いることができる。一例として、一連ファ
イルに所定の順序でデータを書き込むことができる。次
いで、このデータは当該一連ファイルから同じ所定の順
序で読み取ることができる。したがって、書き込みの間
の間隔が保証されているから、データをバッファに書き
込もうとしているカプラーは当該バッファ中のファイル
が上書きされないかどうかを調べる必要がない。一例で
は、一連ファイルは決定論的なラウンド・ロビン方式で
読み書きされる。任意のカプラーが任意のファイルを再
書き込みしうるようになるには、その前にサブモデルの
一括処理全体がデータの交換を多数回結合することによ
り先行している必要がある。これにより、より速く処理
されるサブモデルが待機することなく少なくともいくつ
かのデータを出力しうることが保証される。同様に入力
側では、より遅く処理されるサブモデルが、読み取る入
力データを取得することが保証される。
【0023】上述したシステムとコンピューティング・
ユニットは例として提示しただけである。本発明の通信
インタフェースは、本発明の本旨のうちで、様々な種類
のコンピューティング・ユニット、コンピュータ、プロ
セッサ、ノード、システム、ワークステーション、およ
び/または環境に内蔵する、あるいはそれらとともに使
用することができる。たとえば、コンピューティング・
ユニットのうちの少なくとも1つはUNIX(R)アーキ
テクチャに基づいていてもよいし、あるいはインテルP
Cアーキテクチャを内蔵していてもよい。さらに、ここ
で説明するいくつかの実施形態は2つのサブモデルを処
理する2つのコンピューティング・ユニットしか備えて
いないが、任意個数のサブモデルを処理する任意個数の
コンピューティング・ユニットを用いることができる。
さらに、通信媒体としては、ここで説明する通信プロト
コルを順守する任意の型の通信媒体、たとえばパケット
またはメッセージの送受信を介したネットワークなどを
用いることができる。また、他の型のシステムも本発明
の利益を享受できるから、本発明の一部をなすと考えら
れる。さらに、上述した方法には、オペレーティング・
システム、あるいは、ライセンスを受けたハードウェア
・シミュレータもしくはインスタンス中のライセンスを
受けたプログラムで使用されている、またはそれに潜在
するプログラミング言語に対する特定の要件は付随しな
い(すなわちオペレーティング・システムまたはプログ
ラミング言語として任意のものを使用することができ
る)。
【0024】以下、上述したように、本発明の機能を用
いてシミュレーションを実行するあるモデルの一実施形
態を図2(a)(b)(c)を参照して説明する。未分
割のモデル200は、たとえば動作コンポーネント20
2とクロック/サイクル・エンティティ204を備えて
いる。クロック/サイクル・エンティティ204は動作
コンポーネント202が変化しうる時を決める。
【0025】ASIC(特定用途向け集積回路)のチッ
プ設計概念では、モデルの動作コンポーネントはラッ
チ、ゲート、および配線を備えている。一方、変化画定
エンティティはクロックが分布した配線上のクロック波
形値である。動作コンポーネントは新たな値を取得し、
クロック波形のサイクルに基づいて新たな値を出力す
る。イベント・ドリブン用途ではクロック・イベント、
たとえば波形の立ち上がりを利用する。一方、サイクル
・ドリブン用途ではクロック/サイクル遷移を利用す
る。上記2種類の用途はそれぞれのエンティティを用い
てモデルの動作コンポーネントが変化しうる時を決め
る。
【0026】一実施形態では、モデルは、たとえば図2
(b)に詳細に示すサブモデル206、208のよう
に、内部で互いに通信している複数のサブモデルを備え
ているように概念的に説明することができる。サブモデ
ル206、208の動作コンポーネントは入出力218
を備えているように表わすことができる。入出力218
はサブモデル間のデータ交換用に使われる。クロック/
サイクル・エンティティ214は両サブモデルに共通で
あるが、サブモデル206と208の間に分布してお
り、チャネル216を介して結合されているように表わ
すことができる。モデルはサブモデルに分割することが
できる。それには、サブモデル206の入力をサブモデ
ル208の出力から分離するとともにサブモデル208
の入力をサブモデル206の出力から分離する。そし
て、サブモデル間にまたがるクロック/サイクル・エン
ティティ214をチャネル216のところで分割する。
【0027】モデル200のサブモデルへの概念的な分
割を図2(c)に示す。分割の目的は各々が入力22
2、224と出力220、226を備えたサブモデルを
生成することであり、分割に由来するすべてのサブモデ
ルに共通のクロック/サイクル・エンティティを実現す
ることでもある。実現されたクロック/サイクル・エン
ティティは各サブモデルにおいてクロック/サイクル・
ポート228、230として表わすことができる。
【0028】実際の分割は良く定義されたインタフェー
スを目標とする人手によるプロセス、またはインタフェ
ースを構築する際に依拠するアルゴリズム・プロセスに
なる可能性がある。上述した同時特許出願には、自動分
割プロセスの例が記載されている。
【0029】本発明の一側面として、ここでは、各サブ
モデルにインタフェースしてたとえば異なるコンピュー
ティング・ユニットで実行されているサブモデル間の通
信を可能にする汎用カプラーを提示する。そのようなカ
プラーの一例、およびインタフェース動作の一例を図3
に示す。
【0030】一実施形態として、サブモデル300をV
HDL(VHSIC(Very High Speed Integrated Circuits)
Hardware Description Language)を用いて表わす。V
HDLはIEEE(Institute of Electrical and Elec
tronics Engineers)が開発した標準(VHDL-1076)であ
る。VHDLにおけるサブモデルは、ここで用いている
ように、少なくとも1つの出力310、少なくとも1つ
入力312、およびクロック/サイクル・ポート314
を備えたエンティティである。この実施形態では、カプ
ラー302はトップ・レベル・カプラー・エンティティ
304を備えている。そして、トップ・レベル・カプラ
ー・エンティティ304自体がVHDLトップ・レベル
・エンティティと汎用VHDLカプラー・エンティティ
を備えている。一接続形式では、VHDLトップ・レベ
ル・エンティティを用いてサブモデルの入力、出力、お
よびクロック/サイクル・ポートを汎用VHDLカプラ
ー・エンティティの標準ポートに接続することができ
る。標準ポートには出力ポート316、入力ポート31
8、およびクロック/サイクル・ポート320がある。
【0031】VHDLトップ・レベル・エンティティ内
では、サブモデルと汎用VHDLカプラー・エンティテ
ィをインスタンス化したのち、ポート・マップを介して
トップ・レベルの信号に接続する。サブモデル300の
一例を図4に示す。汎用VHDLカプラー・エンティテ
ィの一例を図5に示す。そして、VHDLトップ・レベ
ル・エンティティ、およびトップ・レベル・カプラー・
エンティティ304とサブモデル300との間の接続形
式を図6に示す。
【0032】図3の参照を続ける。トップ・レベル・カ
プラー・エンティティ304の入力ポート318と出力
ポート316はサブモデル300の入力312と出力3
10にそれぞれマップされている。これにより、カプラ
ー302とサブモデル300との間の通信が可能にな
る。クロック/サイクル・ポート320はサブモデル3
00のクロック/サイクル・ポート314にマップされ
ている。これにより、カプラー302がサブモデル30
0のクロック/サイクル・エンティティを検出するのが
可能になる。カプラー302はクロック/サイクル・ポ
ート314の信号を利用して、出力310から別のサブ
モデルへ送信するデータを集めたり、CCDから入力3
12へデータを渡したりする。さらに、カプラー302
はカプラー共有ライブラリ308を備えている。カプラ
ー共有ライブラリ308には、サブモデルが入出力する
データ・フローをカプラー302が制御するのを可能に
する機能が含まれている。
【0033】一実施形態では、クロック/サイクル・ポ
ート314で変化が検出されると、カプラー共有ライブ
ラリ308が呼び出される。カプラー302はカプラー
共有ライブラリ308が備えている機能(図7〜図10
参照)を使って、サブモデルから出力値を集めその情報
を出力送信先たとえばCCDに渡す、あるいは、入力源
たとえばCDDから入力情報を集めその情報をサブモデ
ルに渡す。
【0034】一例では、カプラー共有ライブラリはCプ
ログラミング言語を用いて実装することができる。この
実施形態では、カプラー302はさらに、トップ・レベ
ル・カプラー・エンティティとカプラー共有ライブラリ
をインタフェースする、VHDLへのAPI(applicat
ion programming interface)306を備えている。
【0035】以下、カプラー共有ライブラリが備え、カ
プラーがCCDからデータを入力するとき、およびCC
Dへデータを出力するときに使ういくつかの論理を図7
〜図10を参照して詳細に説明する。
【0036】あるサブモデルから別のサブモデルにデー
タを送信するには、送信すべきデータをまずCDDに出
力する。一実施形態では、このデータを図7に示す論理
に従ってファイルに書き込む。
【0037】まず、カプラーが書き込むべきデータを検
索・取得、すなわちサブモデルからデータを取得する
(500)。一実施形態では、カプラーがこのデータの
コピーをローカル記憶装置(図示せず)に格納する。こ
の格納したデータは再送信機能を実行する次のサイクル
で必要になる可能性がある。次いで、カプラーは書き込
み用のあるファイルを読み取り用にオープンし(50
2)、当該ファイルを読み取って再送信要求がないかど
うか各レコードを調べる(504)。再送信要求がある
としたら、それは上記ファイル中のデータが正しくない
ことを見いだした先行読み取り者が上記ファイルに書き
込んだものである。ところで、高信頼性環境では、デー
タを再送信する機能はシステム全体を高速化するために
任意実行事項として無効にしうる。再送信要求をファイ
ルに書き込むのに使う論理の例を下で図10を参照して
詳述する。
【0038】図7の参照を続ける。再送信要求が存在す
る場合(506)、カプラーは再送信が有効であるか否
かを調べる(520)。Yesの場合、ファイルをクロ
ーズし、カプラーは再送信機能を呼び出す(526)。
再送信機能の一実施形態は下で図8を参照して詳述す
る。再送信機能は先行サイクルでローカル記憶装置に格
納したデータをカプラーに供給し、ファイルへのデータ
の書き込みを直ちに継続する(514)。データの再送
信が有効でない場合、ファイルをクローズし、カプラー
は書き込み手順を終了する(524)。一実施形態で
は、発生した問題点を記載したログ・ファイルを生成し
てもよい。
【0039】再送信要求が存在しない場合、カプラーは
レコードにINVALID(無効)キャラクタがないか
どうか調べる(508)。すべてのレコードにこのキャ
ラクタが存在しない場合、このファイルは最後まで読み
取られていないから、上書きしてはいけない。この場
合、カプラーはファイルをクローズし(510)、書き
込み手順を初めから開始する(502)。すべてのレコ
ードがINVALIDとマークされている場合には、当
該ファイルは上書きできる状態にある。カプラーは読み
取り用の当該ファイルをクローズしたのち、それを書き
込み用にオープンする(512)。
【0040】次に、カプラーはデータを当該ファイルに
書き込む(514)。一実施形態では、カプラーは当該
ファイルの各レコードにVALID(有効)キャラク
タ、順序レコード番号、正確かつ同一のサイクル番号、
およびレコード固有データを書き込む。サイクル番号は
データに付随するクロック・サイクルを特定するもので
ある。順序レコード番号は一実施形態では、当該ファイ
ル中の各レコードの序数を表しており、エラー検出用に
使うことができる。チェックサムを計算し、当該ファイ
ルの最終レコードにレコード固有データとして書き込む
のが望ましい(516)。一実施形態では、チェックサ
ムの計算は当該ファイルのすべてのレコードに排他的O
R操作を16進形式で適用することにより行なってい
る。このあと、当該ファイルをクローズした(518)
のち、書き込み手順は終了する(528)。
【0041】以下、カプラーが再送信機能を実行するの
に使用する論理の一実施形態を図8を参照して説明す
る。
【0042】まず、カプラーは書き込み用にファイルを
オープンする(602)。次いで、カプラーは先行サイ
クルで格納されたデータを取得し(604)、それを上
記ファイルに書き込む準備をする(606)。このあ
と、カプラーは書き込み手順を開始する。
【0043】データ再送信の第2の部分はCCDからデ
ータを検索・取得して、付随するカプラーがサブモデル
に入力するのに備えることである。一実施形態では、こ
のデータはたとえば図9に示す論理に従ってファイルか
ら読み取る。
【0044】まず、カプラーがクロック/サイクル・ポ
ートを介してそのサブモデルがデータを必要としている
ことを検出したのち、読み取り手順を開始する(70
0)。カプラーは上記サブモデルに入力すべきデータを
格納しているCCD中のファイルを読み取り用としてオ
ープンする(702)。次いで、カプラーが当該データ
を上記ファイルからロードする(704)。
【0045】次に、VALIDキャラクタ、正確な順序
レコード番号、および正確かつ同一のサイクル番号をあ
るかどうか上記ファイルのレコード群を調べる(70
8)。あるサブモデルが他のサブモデルよりも速く処理
される可能性があるから、上記ファイル中のデータが読
み取りに適した状態にないことがありうる。もしも、あ
るレコード中に不正確なデータが存在する場合には、当
該ファイルをクローズした(710)のち、読み取り手
順を繰り返す(702)。
【0046】すべてのレコードが読み取りに適した状態
にあるとともに正確なデータを含んでいる場合、カプラ
ーは当該すべてのレコードに対して16進形式で累積的
排他ORを計算することによりチェックサム値を算出す
る(712)。ただし、最終レコードはチェックサム値
を格納しているから、この計算から除外する。次いで、
算出したチェックサム値と最終レコードに格納されてい
るチェックサム値とを比較する(714)。
【0047】2つのチェックサム値が一致しない場合、
カプラーはエラーを報告した(716)のち、再送信が
有効であるか否かを調べる(718)。Yesの場合、
当該読み取り用ファイルをクローズした(720)の
ち、カプラーは再送信要求手順を開始する(722)。
再送信要求機能で使われる論理の一例を下で図10を参
照して説明する。再送信を要求したのち、読み取り手順
を繰り返す(702)。読み取り手順は次の書き込み者
が再送信を実行するまで繰り返すことになる。再送信が
有効でない場合には、カプラーは当該ファイルをクロー
ズしたのち、デバッグ・ログ機能を実行する(72
4)。
【0048】2つのチェックサム値が一致する場合、カ
プラーは次のサイクルのために最終チェックサム値の格
納を開始する。次いで、当該ファイルを読み取り用には
クローズしたのち、書き込み用にオープンして(73
0)、当該ファイルの将来の読み取り者に当該ファイル
がすでに読み取られていることを知らせることができる
ようにする。そうするために、カプラーは各レコードに
INVALID(無効)とマーク付ける。次いで、当該
ファイルをクローズした(734)のち、カプラーは読
み取り手順を終了する(736)。この時点で、カプラ
ーは当該ファイルから読み取ったデータを保持している
から、それをサブモデルに当該サブモデルの入力を介し
て渡すことができる。
【0049】以下、カプラーが再送信を要求するのに使
用しうる論理の一例を図10を参照して説明する。
【0050】カプラーが読み取りプロセスの間にチェッ
クサム・エラーに遭遇すると、図10の手順が開始する
(800)。まず、カプラーはファイルを書き込み用に
オープンし(802)、当該ファイルの各レコードに再
送信要求を書き込んだ(804)のち、当該ファイルを
クローズする(806)。これにより、次の書き込み者
は再送信機能を(図7、図8に示したように)実行すべ
きことを知らされることになる。以後、カプラーは読み
取り手順を開始する。
【0051】一実施形態では、処理システムの信頼性が
十分に高い場合には、当業者にとって明らかなように、
ファイルの一貫性を保証する論理を上述したプロセス・
フローから取り除いてシステム全体の速度を高めること
ができる。そのような実施形態では、書き込み手順は検
査プロセスを含んでおらず、読み取り手順はサイクル番
号しか検査しない。速く処理されるサブモデルは遅く処
理されるサブモデルを待つとともに、集合体の同期性を
維持するためにファイルを再読み取りすることを強制さ
れる。これに対して、最も遅いサブモデルはつねに入力
に適した状態の入力データを取得するとともに、再読み
取りは全く行なわない。したがって、再読み取り回数は
処理コンピューティング・ユニットに課される負荷の尺
度である。たとえば、再読み取り回数が少ないというこ
とは負荷が大きい、すなわちコンピューティング・ユニ
ットが遅いということを表わしている。
【0052】一実施形態では、シミュレーション実行間
でサブモデルを静的に再分割するのに再読み取り回数の
統計を利用することができる。別の実施形態では、たと
えば遅いアプリケーション・インスタンスの優先順位を
引き上げることにより、コンピューティング資源をこの
遅いアプリケーション・インスタンスに動的に割り当て
るのに再読み取り回数の統計を利用することができる。
この実施形態では、1つの遅いポイント(遅いインスタ
ンス)をインスタンスの集合と取り替えても、モデル集
合体としては計算が進行する速度が低下することはな
い。さらに別の実施形態では、ある集合体中のすべての
コンピューティング・ユニットにわたる再読み取り回数
の統計は、当該集合体全体の性能の尺度として利用する
ことができる。
【0053】さらに別の実施形態では、ファイルに書き
込むのに適した状態にあるデータを連結して1つのレコ
ードにすることができるから、当該データを出力するの
にたった1回の書き込みしか必要としない。同様に、フ
ァイルから読み取るのに適した状態にあるデータを当該
ファイルから入力するには、たった1回の読み取りしか
必要としない。たった1回の読み取りでファイルから取
得したデータは、入力側で分解することができる。
【0054】さらに別の実施形態では、サブモデルを処
理するハードウェア・シミュレータまたはアプリケーシ
ョン・プログラムの各インスタンスを一連のコンピュー
タにわたり非同期に開始することができる。各インスタ
ンスが先に進むのを止められるのは、入力資源または出
力資源がそれを強制的に待たせる場合のみである。この
ように、インスタンス群は全体として非接続で(すなわ
ち互いに無関係に)開始することができ、集合体中の他
の構成要素がCCD中のファイルを更新するまでずっと
先に進むことができる。同様に、集合体全体を所定の時
点まで進ませる、あるいは所定の時点で停止させるの
に、キーボード入力を用いたフォアグラウンド(前景)
セッションを利用することができる。
【0055】ここで開示した結合機構によって、最も遅
いサブモデルのインスタンスは、より速いインスタンス
から必要な情報を取得するのに自身が費やす時間を最小
限にすることにより、可能な限り最大の速度で実行する
ことが可能になる。より速いインスタンスは情報を待つ
ように強制されるとともに、自身が継続しうるように次
に必要な情報が取得可能であるか否かを判断するのに自
身のコンピューティング資源を費やすように強制され
る。これにより、再計算を伴う予測と引き続くバックア
ップに資源を費やすのを避けることが可能になる。
【0056】以上、本発明に従いモデル処理の様々な側
面を説明した。分割されたモデルを分散処理する方法、
および異なるコンピューティング・ユニットで処理され
るサブモデルを結合かつ制御する手法を提示した。ここ
で説明した様々な手法は単一システム、同種システム、
および異機種システムに適用することができる。一例と
して、同じ物理マシン上の異なるハードウェア・シミュ
レータ群によって複数のサブモデルを処理することがで
きる。
【0057】本発明はたとえばコンピュータ利用可能な
媒体を備えた製品(たとえば少なくとも1つのコンピュ
ータ・プログラム製品)中に含めることができる。上記
媒体はその中にたとえば本発明の機能を提供するととも
に容易にするコンピュータ読み取り可能なプログラム・
コード手段を組み込んでいる。上記製品はコンピュータ
・システムの一部に含めることもできるし、別売するこ
ともできる。
【0058】さらに、本発明によれば、マシンによって
読み取り可能であるとともに、マシンによって実行可能
であり本発明の機能を実行する命令群から成る少なくと
も1つのプログラムを有形的に記録した少なくとも1つ
のプログラム記憶装置を提供することができる。
【0059】ここに示したフローチャートは単なる例に
すぎない。本発明の本旨のうちで、これらのフローチャ
ートまたはここで説明したステップ(すなわち操作)群
には多くの変形例がありうる。たとえば、ステップ群は
異なる順序で実行しうるし、あるいはステップを付加、
削除、または変形することができる。これらの変形例は
すべて特許請求の範囲の一部をなすものと考えられる。
【0060】以上、ここでは好適な実施形態を示すとと
もに説明したけれども、当業者にとって明らかなよう
に、本発明の本旨のうちで様々な変形、付加、置換など
をなすことができる。したがって、これらのものは特許
請求の範囲で定義された本発明の範囲の内にあると考え
られる。
【0061】まとめとして以下の事項を開示する。 (1)分割されたモデルの、第1のサブモデルおよび第
2のサブモデルを含む複数のサブモデルを処理する方法
であって、分割されたモデルの第1のサブモデルと第2
のサブモデルとを結合するステップであって、前記第1
のサブモデルがインタフェースする第1のカプラーを準
備するステップと、前記第2のサブモデルがインタフェ
ースする第2のカプラーを準備するステップと、前記第
1のカプラーと前記第2のカプラーとをインタフェース
させるステップであって、前記第1のカプラーと前記第
2のカプラーとの間にバッファを準備するステップとを
備えたステップと、前記第1のサブモデルおよび前記第
2のサブモデルを一括して処理するステップであって、
前記第1のサブモデルおよび前記第2のサブモデルが前
記第1のカプラー、前記バッファ、および前記第2のカ
プラーを用いて通信する、ステップとを備えたステップ
を備えた方法。 (2)前記モデルが論理設計である、上記(1)に記載
の方法。 (3)前記一括して処理するステップが前記第1のサブ
モデルおよび前記第2のサブモデルを分散処理するステ
ップを備え、前記分散処理するステップが分散プロセス
制御を備えている、上記(1)に記載の方法。 (4)前記一括して処理するステップがさらに前記第1
のサブモデルを第1のシミュレータ・インスタンス上で
処理するステップと前記第2のサブモデルを第2のシミ
ュレータ・インスタンス上で処理するステップとを備
え、前記第1のシミュレータ・インスタンスは前記第2
のシミュレータ・インスタンスと異なり、前記第1のシ
ミュレータ・インスタンスは前記バッファを用いて前記
第2のシミュレータ・インスタンスと通信する、上記
(1)に記載の方法。 (5)前記第1のシミュレータ・インスタンスは第1の
コンピューティング・ユニットに常駐し、前記2のシミ
ュレータ・インスタンスは第2のコンピューティング・
ユニットに常駐する、上記(4)に記載の方法。 (6)少なくとも1つのサブモデルおよび付随するカプ
ラーが少なくとも1つのマップされたデータ・ポートお
よびクロック/サイクル・ポートを備え、前記クロック
/サイクル・ポートは少なくとも1つのクロック/サイ
クル信号を供給し、前記少なくとも1つのクロック/サ
イクル信号は前記少なくとも1つのサブモデルと付随す
るカプラーとの間で前記少なくとも1つのマップされた
データ・ポートを通じてデータを転送するのに使用され
る、上記(1)に記載の方法。 (7)前記第1のカプラーおよび前記第2のカプラーの
うちの少なくとも一方がトップ・レベル・カプラー・エ
ンティティとカプラー共有ライブラリとを備え、前記第
1のカプラーおよび前記第2のカプラーのうちの前記少
なくとも一方が前記トップ・レベル・カプラー・エンテ
ィティを用いて前記第1のサブモデルおよび前記第2の
サブモデルと個別に接続し、前記トップ・レベル・カプ
ラー・エンティティが少なくとも1つの入力と、少なく
とも1つの出力と、前記第1のサブモデルおよび前記第
2のサブモデルのうちの少なくとも一方の前記クロック
/サイクル・ポートにマップされた複数のポートとを備
え、前記第1のカプラーおよび前記第2のカプラーのう
ちの少なくとも一方が前記カプラー共有ライブラリを用
いて前記カプラーと前記バッファとの間でデータを転送
する、上記(6)に記載の方法。 (8)前記バッファが通信媒体を備え、前記通信媒体は
前記第1のカプラーと前記第2のカプラーとの間でデー
タを渡すとともに監視する少なくとも1つのプロトコル
を備えている、上記(1)に記載の方法。 (9)前記一括して処理するステップがさらに、前記第
1のカプラーが前記第1のサブモデルから取得したデー
タを前記バッファに送信し、前記第2のカプラーが前記
データを前記バッファから取得し、前記データを前記第
2のサブモデルに供給するステップと、前記送信と前記
取得とを対応させることにより、前記データの一貫性を
保証するステップとを備えた、上記(1)に記載の方
法。 (10)前記一貫性を保証するステップが、前記データ
にチェックサム値を挿入するステップと、前記第1のカ
プラーおよび前記第2のカプラーのうちの一方が前記バ
ッファ中の前記データを調べて前記データの正確性を判
断するステップと、前記データが不正確な場合、前記第
1のカプラーおよび前記第2のカプラーのうちの少なく
とも一方が、前記データの前記バッファへの再送信およ
び前記データの前記バッファからの再読み取りのうちの
少なくとも一方を行なうステップとを備えた、上記
(9)に記載の方法。 (11)前記挿入するステップが、前記チェックサム値
を計算するステップを備え、前記計算するステップが、
少なくとも1つの論理操作を前記データに適用するステ
ップを備えている、上記(10)に記載の方法。 (12)前記調べるステップが、前記データの新たなチ
ェックサム値を計算するステップと、前記新たなチェッ
クサム値と前記チェックサム値とを比較するステップと
備えた、上記(10)に記載の方法。 (13)前記一貫性を保証するステップがさらに、前記
バッファに、前記第1のカプラーが書き込みアクセス可
能であるとともに前記第2のカプラーが読み取りアクセ
ス可能な第1の一連ファイルを準備するステップと、前
記バッファに、前記第1のカプラーが読み取りアクセス
可能であるとともに前記第2のカプラーが書き込みアク
セス可能な第2の一連ファイルを準備するステップと、
所定の順序で、前記第1のカプラーが前記第1の一連フ
ァイルに書き込み、前記第2のカプラーが前記第1の一
連ファイルから読み取るステップと、前記所定の順序
で、前記第2のカプラーが前記第2の一連ファイルに書
き込み、前記第1のカプラーが前記第2の一連ファイル
から読み取るステップとを備えた、上記(9)に記載の
方法。 (14)前記インタフェースさせるステップがさらに、
前記バッファ中のデータを監視して監視統計を供給する
ステップを備え、前記監視統計が前記第1のサブモデル
および前記第2のサブモデルを統計的に再分割して前記
一括処理を最適化するのを容易にする、上記(1)に記
載の方法。 (15)前記モデルがVHDLで表されている、上記
(1)に記載の方法。 (16)分割されたモデルの、第1のサブモデルおよび
第2のサブモデルを含む複数のサブモデルを処理するシ
ステムであって、分割されたモデルの第1のサブモデル
と第2のサブモデルとを結合する手段であって、前記第
1のサブモデルがインタフェースする第1のカプラーを
準備する手段と、前記第2のサブモデルがインタフェー
スする第2のカプラーを準備する手段と、前記第1のカ
プラーと前記第2のカプラーとをインタフェースさせる
手段であって、前記第1のカプラーと前記第2のカプラ
ーとの間にバッファを準備する手段とを備えた手段と、
前記第1のサブモデルおよび前記第2のサブモデルを一
括して処理する手段であって、前記第1のサブモデルお
よび前記第2のサブモデルが前記第1のカプラー、前記
バッファ、および前記第2のカプラーを用いて通信す
る、手段とを備えた手段を備えた方法。 (17)前記モデルが論理設計である、上記(16)に
記載のシステム。 (18)前記一括して処理する手段が前記第1のサブモ
デルおよび前記第2のサブモデルを分散処理する手段を
備え、前記分散処理する手段が分散プロセス制御を備え
ている、上記(16)に記載のシステム。 (19)前記一括して処理する手段がさらに前記第1の
サブモデルを第1のシミュレータ・インスタンス上で処
理する手段と前記第2のサブモデルを第2のシミュレー
タ・インスタンス上で処理する手段とを備え、前記第1
のシミュレータ・インスタンスは前記第2のシミュレー
タ・インスタンスと異なり、前記第1のシミュレータ・
インスタンスは前記バッファを用いて前記第2のシミュ
レータ・インスタンスと通信する、上記(16)に記載
のシステム。 (20)前記第1のシミュレータ・インスタンスは第1
のコンピューティング・ユニットに常駐し、前記2のシ
ミュレータ・インスタンスは第2のコンピューティング
・ユニットに常駐する、上記(19)に記載のシステ
ム。 (21)少なくとも1つのサブモデルおよび付随するカ
プラーが少なくとも1つのマップされたデータ・ポート
およびクロック/サイクル・ポートを備え、前記クロッ
ク/サイクル・ポートは少なくとも1つのクロック/サ
イクル信号を供給し、前記少なくとも1つのクロック/
サイクル信号は前記少なくとも1つのサブモデルと付随
するカプラーとの間で前記少なくとも1つのマップされ
たデータ・ポートを通じてデータを転送するのに使用さ
れる、上記(16)に記載のシステム。 (22)前記第1のカプラーおよび前記第2のカプラー
のうちの少なくとも一方がトップ・レベル・カプラー・
エンティティとカプラー共有ライブラリとを備え、前記
第1のカプラーおよび前記第2のカプラーのうちの前記
少なくとも一方が前記トップ・レベル・カプラー・エン
ティティを用いて前記第1のサブモデルおよび前記第2
のサブモデルと個別に接続し、前記トップ・レベル・カ
プラー・エンティティが少なくとも1つの入力と、少な
くとも1つの出力と、前記第1のサブモデルおよび前記
第2のサブモデルのうちの少なくとも一方の前記クロッ
ク/サイクル・ポートにマップされた複数のポートとを
備え、前記第1のカプラーおよび前記第2のカプラーの
うちの少なくとも一方が前記カプラー共有ライブラリを
用いて前記カプラーと前記バッファとの間でデータを転
送する、上記(21)に記載のシステム。 (23)前記バッファが通信媒体を備え、前記通信媒体
は前記第1のカプラーと前記第2のカプラーとの間でデ
ータを渡すとともに監視する少なくとも1つのプロトコ
ルを備えている、上記(16)に記載のシステム。 (24)前記一括して処理する手段がさらに、前記第1
のカプラーが前記第1のサブモデルから取得したデータ
を前記バッファに送信し、前記第2のカプラーが前記デ
ータを前記バッファから取得し、前記データを前記第2
のサブモデルに供給する手段と、前記送信と前記取得と
を対応させることにより、前記データの一貫性を保証す
る手段とを備えた、上記(16)に記載のシステム。 (25)前記一貫性を保証する手段が、前記データにチ
ェックサム値を挿入する手段と、前記第1のカプラーお
よび前記第2のカプラーのうちの一方が前記バッファ中
の前記データを調べて前記データの正確性を判断する手
段と、前記データが不正確な場合、前記第1のカプラー
および前記第2のカプラーのうちの少なくとも一方が、
前記データの前記バッファへの再送信および前記データ
の前記バッファからの再読み取りのうちの少なくとも一
方を行なう手段とを備えた、上記(24)に記載の方
法。 (26)前記挿入する手段が、前記チェックサム値を計
算する手段を備え、前記計算する手段が、少なくとも1
つの論理操作を前記データに適用する手段を備えてい
る、上記(25)に記載のシステム。 (27)前記調べる手段が、前記データの新たなチェッ
クサム値を計算する手段と、前記新たなチェックサム値
と前記チェックサム値とを比較する手段と備えた、上記
(25)に記載のシステム。 (28)前記一貫性を保証する手段がさらに、前記バッ
ファに、前記第1のカプラーが書き込みアクセス可能で
あるとともに前記第2のカプラーが読み取りアクセス可
能な第1の一連ファイルを準備する手段と、前記バッフ
ァに、前記第1のカプラーが読み取りアクセス可能であ
るとともに前記第2のカプラーが書き込みアクセス可能
な第2の一連ファイルを準備する手段と、所定の順序
で、前記第1のカプラーが前記第1の一連ファイルに書
き込み、前記第2のカプラーが前記第1の一連ファイル
から読み取る手段と、前記所定の順序で、前記第2のカ
プラーが前記第2の一連ファイルに書き込み、前記第1
のカプラーが前記第2の一連ファイルから読み取る手段
とを備えた、上記(24)に記載のシステム。 (29)前記インタフェースさせる手段がさらに、前記
バッファ中のデータを監視して監視統計を供給する手段
を備え、前記監視統計が前記第1のサブモデルおよび前
記第2のサブモデルを統計的に再分割して前記一括処理
を最適化するのを容易にする、上記(16)に記載のシ
ステム。 (30)前記モデルがVHDLで表されている、上記
(16)に記載のシステム。 (31)分割されたモデルの、第1のサブモデルおよび
第2のサブモデルを含む複数のサブモデルを処理するシ
ミュレーション・システムであって、分割されたモデル
の第1のサブモデルと第2のサブモデルとを、前記第1
のサブモデルにインタフェースした第1のカプラーおよ
び前記第2のサブモデルにインタフェースした第2のカ
プラーを準備し、前記第1のカプラーと前記第2のカプ
ラーとの間に設けたバッファによって前記第1のカプラ
ーと前記第2のカプラーとをインタフェースさせること
により、結合するように適合した少なくとも1つのコン
ピューティング・ユニットを備え、前記少なくとも1つ
のコンピューティング・ユニットがさらに前記第1のサ
ブモデルおよび前記第2のサブモデルを一括して処理す
るように適合しており、前記第1のサブモデルおよび前
記第2のサブモデルが前記第1のカプラー、前前記バッ
ファ、および記第2のカプラーを用いて通信するシミュ
レーション・システム。 (32)前記少なくとも1つのコンピューティング・ユ
ニットが複数のシミュレータ・インスタンスを備え、前
記複数のシミュレータ・インスタンスが第1のシミュレ
ータ・インスタンスおよび第2のシミュレータ・インス
タンスを含み、前記第1のシミュレータ・インスタンス
が前記第1のサブモデルを処理し、前記第2のシミュレ
ータ・インスタンスが前記第2のサブモデルを処理し、
前記第1のシミュレータ・インスタンスが前記第2のシ
ミュレータ・インスタンスとは異なる、上記(31)に
記載のシミュレーション・システム。 (33)前記第1のシミュレータ・インスタンスが第1
のコンピューティング・ユニットに常駐し、前記第2の
シミュレータ・インスタンスが第2のコンピューティン
グ・ユニットに常駐する、上記(32)に記載のシミュ
レーション・システム。 (34)分割されたモデルの、第1のサブモデルおよび
第2のサブモデルを含む複数のサブモデルを処理する方
法であって、分割されたモデルの第1のサブモデルと第
2のサブモデルとを結合するステップであって、前記第
1のサブモデルがインタフェースする第1のカプラーを
準備するステップと、前記第2のサブモデルがインタフ
ェースする第2のカプラーを準備するステップと、前記
第1のカプラーと前記第2のカプラーとをインタフェー
スさせるステップであって、前記第1のカプラーと前記
第2のカプラーとの間にバッファを準備するステップと
を備えたステップと、前記第1のサブモデルおよび前記
第2のサブモデルを一括して処理するステップであっ
て、前記第1のサブモデルおよび前記第2のサブモデル
が前記第1のカプラー、前記バッファ、および前記第2
のカプラーを用いて通信する、ステップとを備えたステ
ップを備えた方法を実行する、機械によって実行可能な
命令から成る少なくとも1つのプログラムを有形的に記
録した、機械読み取り可能なプログラム記憶装置。 (35)前記モデルが論理設計である、上記(34)に
記載のプログラム記憶装置。 (36)前記一括して処理するステップが前記第1のサ
ブモデルおよび前記第2のサブモデルを分散処理するス
テップを備え、前記分散処理するステップが分散プロセ
ス制御を備えている、上記(34)に記載のプログラム
記憶装置。 (37)前記一括して処理するステップがさらに前記第
1のサブモデルを第1のシミュレータ・インスタンス上
で処理するステップと前記第2のサブモデルを第2のシ
ミュレータ・インスタンス上で処理するステップとを備
え、前記第1のシミュレータ・インスタンスは前記第2
のシミュレータ・インスタンスと異なり、前記第1のシ
ミュレータ・インスタンスは前記バッファを用いて前記
第2のシミュレータ・インスタンスと通信する、上記
(34)に記載のプログラム記憶装置。 (38)前記第1のシミュレータ・インスタンスは第1
のコンピューティング・ユニットに常駐し、前記2のシ
ミュレータ・インスタンスは第2のコンピューティング
・ユニットに常駐する、上記(37)に記載のプログラ
ム記憶装置。 (39)少なくとも1つのサブモデルおよび付随するカ
プラーが少なくとも1つのマップされたデータ・ポート
およびクロック/サイクル・ポートを備え、前記クロッ
ク/サイクル・ポートは少なくとも1つのクロック/サ
イクル信号を供給し、前記少なくとも1つのクロック/
サイクル信号は前記少なくとも1つのサブモデルと付随
するカプラーとの間で前記少なくとも1つのマップされ
たデータ・ポートを通じてデータを転送するのに使用さ
れる、上記(34)に記載のプログラム記憶装置。 (40)前記第1のカプラーおよび前記第2のカプラー
のうちの少なくとも一方がトップ・レベル・カプラー・
エンティティとカプラー共有ライブラリとを備え、前記
第1のカプラーおよび前記第2のカプラーのうちの前記
少なくとも一方が前記トップ・レベル・カプラー・エン
ティティを用いて前記第1のサブモデルおよび前記第2
のサブモデルと個別に接続し、前記トップ・レベル・カ
プラー・エンティティが少なくとも1つの入力と、少な
くとも1つの出力と、前記第1のサブモデルおよび前記
第2のサブモデルのうちの少なくとも一方の前記クロッ
ク/サイクル・ポートにマップされた複数のポートとを
備え、前記第1のカプラーおよび前記第2のカプラーの
うちの少なくとも一方が前記カプラー共有ライブラリを
用いて前記カプラーと前記バッファとの間でデータを転
送する、上記(39)に記載のプログラム記憶装置。 (41)前記バッファが通信媒体を備え、前記通信媒体
は前記第1のカプラーと前記第2のカプラーとの間でデ
ータを渡すとともに監視する少なくとも1つのプロトコ
ルを備えている、上記(34)に記載のプログラム記憶
装置。 (42)前記一括して処理するステップがさらに、前記
第1のカプラーが前記第1のサブモデルから取得したデ
ータを前記バッファに送信し、前記第2のカプラーが前
記データを前記バッファから取得し、前記データを前記
第2のサブモデルに供給するステップと、前記送信と前
記取得とを対応させることにより、前記データの一貫性
を保証するステップとを備えた、上記(34)に記載の
プログラム記憶装置。 (43)前記一貫性を保証するステップが、前記データ
にチェックサム値を挿入するステップと、前記第1のカ
プラーおよび前記第2のカプラーのうちの一方が前記バ
ッファ中の前記データを調べて前記データの正確性を判
断するステップと、前記データが不正確な場合、前記第
1のカプラーおよび前記第2のカプラーのうちの少なく
とも一方が、前記データの前記バッファへの再送信およ
び前記データの前記バッファからの再読み取りのうちの
少なくとも一方を行なうステップとを備えた、上記(4
2)に記載のプログラム記憶装置。 (44)前記挿入するステップが、前記チェックサム値
を計算するステップを備え、前記計算するステップが、
少なくとも1つの論理操作を前記データに適用するステ
ップを備えている、上記(43)に記載のプログラム記
憶装置。 (45)前記調べるステップが、前記データの新たなチ
ェックサム値を計算するステップと、前記新たなチェッ
クサム値と前記チェックサム値とを比較するステップと
備えた、上記(43)に記載のプログラム記憶装置。 (46)前記一貫性を保証するステップがさらに、前記
バッファに、前記第1のカプラーが書き込みアクセス可
能であるとともに前記第2のカプラーが読み取りアクセ
ス可能な第1の一連ファイルを準備するステップと、前
記バッファに、前記第1のカプラーが読み取りアクセス
可能であるとともに前記第2のカプラーが書き込みアク
セス可能な第2の一連ファイルを準備するステップと、
所定の順序で、前記第1のカプラーが前記第1の一連フ
ァイルに書き込み、前記第2のカプラーが前記第1の一
連ファイルから読み取るステップと、前記所定の順序
で、前記第2のカプラーが前記第2の一連ファイルに書
き込み、前記第1のカプラーが前記第2の一連ファイル
から読み取るステップとを備えた、上記(42)に記載
のプログラム記憶装置。 (47)前記インタフェースさせるステップがさらに、
前記バッファ中のデータを監視して監視統計を供給する
ステップを備え、前記監視統計が前記第1のサブモデル
および前記第2のサブモデルを統計的に再分割して前記
一括処理を最適化するのを容易にする、上記(34)に
記載のプログラム記憶装置。 (48)前記モデルがVHDLで表されている、上記
(34)に記載のプログラム記憶装置。
【図面の簡単な説明】
【図1】 本発明の諸側面に従いサブモデル群を一括し
て処理する通信環境の一実施形態を示す図である。
【図2】 (a)本発明の一側面に従ってシミュレート
する1つのモデルの一実施形態を示す図である。(b)
図2(a)のモデルの分割を示す図である。(c)本発
明の一側面に従い結果のサブモデルの一例を示す図であ
る。
【図3】 本発明の一側面に従い汎用カプラーおよびそ
のサブモデルへのインタフェースの一例を示す図であ
る。
【図4】 本発明の一側面に従いVHDLを用いて表し
たサブモデルの一例を示す図である。
【図5】 本発明の一側面に従いVHDLを用いて表し
た汎用カプラー・エンティティの一例を示す図である。
【図6】 本発明の一側面に従いVHDLトップ・レベ
ル・エンティティの一例を示す図である。
【図7】 本発明の一側面に従いカプラー共有ライブラ
リが出力をファイルに書き込むのに使用する論理の一例
を示す図である。
【図8】 本発明の一側面に従いカプラー共有ライブラ
リが再送信機能を実行するのに使用する論理の一例を示
す図である。
【図9】 本発明の一側面に従いカプラー共有ライブラ
リがファイルから入力を読み取るのに使用する論理の一
例を示す図である。
【図10】 本発明の一側面に従いカプラー共有ライブ
ラリがデータの再送信を要求するのに使用する論理の一
例を示す図である。
【符号の説明】
100 コンピューティング・ユニット 102 コンピューティング・ユニット 104 ライセンスを受けたハードウェア・シミュレー
タのインスタンス 106 ライセンスを受けたハードウェア・シミュレー
タのインスタンス 108 サブモデル 110 カプラー 112 サブモデル 114 カプラー 116 バッファ 118 複数ファイル 200 未分割のモデル 202 動作コンポーネント 204 クロック/サイクル・エンティティ 206 サブモデル 208 サブモデル 210 サブモデル1の動作コンポーネント 212 サブモデル2の動作コンポーネント 214 クロック/サイクル・エンティティ 216 チャネル 218 入出力 222 入力 224 入力 220 出力 226 出力 228 クロック/サイクル・ポート 230 クロック/サイクル・ポート 300 サブモデル 302 カプラー 304 トップ・レベル・カプラー・エンティティ 306 VHDLへのAPI 308 カプラー共有ライブラリ 310 出力 312 入力 314 クロック/サイクル・ポート 316 出力ポート 318 入力ポート 320 クロック/サイクル・ポート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウィリアム・ケイ・メローズ アメリカ合衆国 ニューヨーク州 12514、 クリントン コーナーズ、トレッスル レ ーン 67 (72)発明者 マーヴィン・ジェイ・リッチ アメリカ合衆国 ニューヨーク州 12603、 ポキプシー、バード レーン 7 Fターム(参考) 5B046 AA08 BA03 CA06 JA05

Claims (48)

    【特許請求の範囲】
  1. 【請求項1】分割されたモデルの、第1のサブモデルお
    よび第2のサブモデルを含む複数のサブモデルを処理す
    る方法であって、 分割されたモデルの第1のサブモデルと第2のサブモデ
    ルとを結合するステップであって、 前記第1のサブモデルがインタフェースする第1のカプ
    ラーを準備するステップと、 前記第2のサブモデルがインタフェースする第2のカプ
    ラーを準備するステップと、 前記第1のカプラーと前記第2のカプラーとをインタフ
    ェースさせるステップであって、前記第1のカプラーと
    前記第2のカプラーとの間にバッファを準備するステッ
    プとを備えたステップと、 前記第1のサブモデルおよび前記第2のサブモデルを一
    括して処理するステップであって、前記第1のサブモデ
    ルおよび前記第2のサブモデルが前記第1のカプラー、
    前記バッファ、および前記第2のカプラーを用いて通信
    する、ステップとを備えたステップを備えた方法。
  2. 【請求項2】前記モデルが論理設計である、請求項1に
    記載の方法。
  3. 【請求項3】前記一括して処理するステップが前記第1
    のサブモデルおよび前記第2のサブモデルを分散処理す
    るステップを備え、 前記分散処理するステップが分散プロセス制御を備えて
    いる、請求項1に記載の方法。
  4. 【請求項4】前記一括して処理するステップがさらに前
    記第1のサブモデルを第1のシミュレータ・インスタン
    ス上で処理するステップと前記第2のサブモデルを第2
    のシミュレータ・インスタンス上で処理するステップと
    を備え、 前記第1のシミュレータ・インスタンスは前記第2のシ
    ミュレータ・インスタンスと異なり、 前記第1のシミュレータ・インスタンスは前記バッファ
    を用いて前記第2のシミュレータ・インスタンスと通信
    する、請求項1に記載の方法。
  5. 【請求項5】前記第1のシミュレータ・インスタンスは
    第1のコンピューティング・ユニットに常駐し、前記2
    のシミュレータ・インスタンスは第2のコンピューティ
    ング・ユニットに常駐する、請求項4に記載の方法。
  6. 【請求項6】少なくとも1つのサブモデルおよび付随す
    るカプラーが少なくとも1つのマップされたデータ・ポ
    ートおよびクロック/サイクル・ポートを備え、 前記クロック/サイクル・ポートは少なくとも1つのク
    ロック/サイクル信号を供給し、 前記少なくとも1つのクロック/サイクル信号は前記少
    なくとも1つのサブモデルと付随するカプラーとの間で
    前記少なくとも1つのマップされたデータ・ポートを通
    じてデータを転送するのに使用される、請求項1に記載
    の方法。
  7. 【請求項7】前記第1のカプラーおよび前記第2のカプ
    ラーのうちの少なくとも一方がトップ・レベル・カプラ
    ー・エンティティとカプラー共有ライブラリとを備え、 前記第1のカプラーおよび前記第2のカプラーのうちの
    前記少なくとも一方が前記トップ・レベル・カプラー・
    エンティティを用いて前記第1のサブモデルおよび前記
    第2のサブモデルと個別に接続し、 前記トップ・レベル・カプラー・エンティティが少なく
    とも1つの入力と、少なくとも1つの出力と、前記第1
    のサブモデルおよび前記第2のサブモデルのうちの少な
    くとも一方の前記クロック/サイクル・ポートにマップ
    された複数のポートとを備え、 前記第1のカプラーおよび前記第2のカプラーのうちの
    少なくとも一方が前記カプラー共有ライブラリを用いて
    前記カプラーと前記バッファとの間でデータを転送す
    る、請求項6に記載の方法。
  8. 【請求項8】前記バッファが通信媒体を備え、 前記通信媒体は前記第1のカプラーと前記第2のカプラ
    ーとの間でデータを渡すとともに監視する少なくとも1
    つのプロトコルを備えている、請求項1に記載の方法。
  9. 【請求項9】前記一括して処理するステップがさらに、 前記第1のカプラーが前記第1のサブモデルから取得し
    たデータを前記バッファに送信し、前記第2のカプラー
    が前記データを前記バッファから取得し、前記データを
    前記第2のサブモデルに供給するステップと、 前記送信と前記取得とを対応させることにより、前記デ
    ータの一貫性を保証するステップとを備えた、請求項1
    に記載の方法。
  10. 【請求項10】前記一貫性を保証するステップが、 前記データにチェックサム値を挿入するステップと、 前記第1のカプラーおよび前記第2のカプラーのうちの
    一方が前記バッファ中の前記データを調べて前記データ
    の正確性を判断するステップと、 前記データが不正確な場合、前記第1のカプラーおよび
    前記第2のカプラーのうちの少なくとも一方が、前記デ
    ータの前記バッファへの再送信および前記データの前記
    バッファからの再読み取りのうちの少なくとも一方を行
    なうステップとを備えた、請求項9に記載の方法。
  11. 【請求項11】前記挿入するステップが、 前記チェックサム値を計算するステップを備え、 前記計算するステップが、 少なくとも1つの論理操作を前記データに適用するステ
    ップを備えている、請求項10に記載の方法。
  12. 【請求項12】前記調べるステップが、 前記データの新たなチェックサム値を計算するステップ
    と、 前記新たなチェックサム値と前記チェックサム値とを比
    較するステップと備えた、請求項10に記載の方法。
  13. 【請求項13】前記一貫性を保証するステップがさら
    に、 前記バッファに、前記第1のカプラーが書き込みアクセ
    ス可能であるとともに前記第2のカプラーが読み取りア
    クセス可能な第1の一連ファイルを準備するステップ
    と、 前記バッファに、前記第1のカプラーが読み取りアクセ
    ス可能であるとともに前記第2のカプラーが書き込みア
    クセス可能な第2の一連ファイルを準備するステップ
    と、 所定の順序で、前記第1のカプラーが前記第1の一連フ
    ァイルに書き込み、前記第2のカプラーが前記第1の一
    連ファイルから読み取るステップと、 前記所定の順序で、前記第2のカプラーが前記第2の一
    連ファイルに書き込み、前記第1のカプラーが前記第2
    の一連ファイルから読み取るステップとを備えた、請求
    項9に記載の方法。
  14. 【請求項14】前記インタフェースさせるステップがさ
    らに、前記バッファ中のデータを監視して監視統計を供
    給するステップを備え、 前記監視統計が前記第1のサブモデルおよび前記第2の
    サブモデルを統計的に再分割して前記一括処理を最適化
    するのを容易にする、請求項1に記載の方法。
  15. 【請求項15】前記モデルがVHDLで表されている、
    請求項1に記載の方法。
  16. 【請求項16】分割されたモデルの、第1のサブモデル
    および第2のサブモデルを含む複数のサブモデルを処理
    するシステムであって、 分割されたモデルの第1のサブモデルと第2のサブモデ
    ルとを結合する手段であって、 前記第1のサブモデルがインタフェースする第1のカプ
    ラーを準備する手段と、 前記第2のサブモデルがインタフェースする第2のカプ
    ラーを準備する手段と、 前記第1のカプラーと前記第2のカプラーとをインタフ
    ェースさせる手段であって、前記第1のカプラーと前記
    第2のカプラーとの間にバッファを準備する手段とを備
    えた手段と、 前記第1のサブモデルおよび前記第2のサブモデルを一
    括して処理する手段であって、前記第1のサブモデルお
    よび前記第2のサブモデルが前記第1のカプラー、前記
    バッファ、および前記第2のカプラーを用いて通信す
    る、手段とを備えた手段を備えた方法。
  17. 【請求項17】前記モデルが論理設計である、請求項1
    6に記載のシステム。
  18. 【請求項18】前記一括して処理する手段が前記第1の
    サブモデルおよび前記第2のサブモデルを分散処理する
    手段を備え、 前記分散処理する手段が分散プロセス制御を備えてい
    る、請求項16に記載のシステム。
  19. 【請求項19】前記一括して処理する手段がさらに前記
    第1のサブモデルを第1のシミュレータ・インスタンス
    上で処理する手段と前記第2のサブモデルを第2のシミ
    ュレータ・インスタンス上で処理する手段とを備え、 前記第1のシミュレータ・インスタンスは前記第2のシ
    ミュレータ・インスタンスと異なり、 前記第1のシミュレータ・インスタンスは前記バッファ
    を用いて前記第2のシミュレータ・インスタンスと通信
    する、請求項16に記載のシステム。
  20. 【請求項20】前記第1のシミュレータ・インスタンス
    は第1のコンピューティング・ユニットに常駐し、前記
    2のシミュレータ・インスタンスは第2のコンピューテ
    ィング・ユニットに常駐する、請求項19に記載のシス
    テム。
  21. 【請求項21】少なくとも1つのサブモデルおよび付随
    するカプラーが少なくとも1つのマップされたデータ・
    ポートおよびクロック/サイクル・ポートを備え、 前記クロック/サイクル・ポートは少なくとも1つのク
    ロック/サイクル信号を供給し、 前記少なくとも1つのクロック/サイクル信号は前記少
    なくとも1つのサブモデルと付随するカプラーとの間で
    前記少なくとも1つのマップされたデータ・ポートを通
    じてデータを転送するのに使用される、請求項16に記
    載のシステム。
  22. 【請求項22】前記第1のカプラーおよび前記第2のカ
    プラーのうちの少なくとも一方がトップ・レベル・カプ
    ラー・エンティティとカプラー共有ライブラリとを備
    え、 前記第1のカプラーおよび前記第2のカプラーのうちの
    前記少なくとも一方が前記トップ・レベル・カプラー・
    エンティティを用いて前記第1のサブモデルおよび前記
    第2のサブモデルと個別に接続し、 前記トップ・レベル・カプラー・エンティティが少なく
    とも1つの入力と、少なくとも1つの出力と、前記第1
    のサブモデルおよび前記第2のサブモデルのうちの少な
    くとも一方の前記クロック/サイクル・ポートにマップ
    された複数のポートとを備え、 前記第1のカプラーおよび前記第2のカプラーのうちの
    少なくとも一方が前記カプラー共有ライブラリを用いて
    前記カプラーと前記バッファとの間でデータを転送す
    る、請求項21に記載のシステム。
  23. 【請求項23】前記バッファが通信媒体を備え、 前記通信媒体は前記第1のカプラーと前記第2のカプラ
    ーとの間でデータを渡すとともに監視する少なくとも1
    つのプロトコルを備えている、請求項16に記載のシス
    テム。
  24. 【請求項24】前記一括して処理する手段がさらに、 前記第1のカプラーが前記第1のサブモデルから取得し
    たデータを前記バッファに送信し、前記第2のカプラー
    が前記データを前記バッファから取得し、前記データを
    前記第2のサブモデルに供給する手段と、 前記送信と前記取得とを対応させることにより、前記デ
    ータの一貫性を保証する手段とを備えた、請求項16に
    記載のシステム。
  25. 【請求項25】前記一貫性を保証する手段が、 前記データにチェックサム値を挿入する手段と、 前記第1のカプラーおよび前記第2のカプラーのうちの
    一方が前記バッファ中の前記データを調べて前記データ
    の正確性を判断する手段と、 前記データが不正確な場合、前記第1のカプラーおよび
    前記第2のカプラーのうちの少なくとも一方が、前記デ
    ータの前記バッファへの再送信および前記データの前記
    バッファからの再読み取りのうちの少なくとも一方を行
    なう手段とを備えた、請求項24に記載の方法。
  26. 【請求項26】前記挿入する手段が、 前記チェックサム値を計算する手段を備え、 前記計算する手段が、 少なくとも1つの論理操作を前記データに適用する手段
    を備えている、請求項25に記載のシステム。
  27. 【請求項27】前記調べる手段が、 前記データの新たなチェックサム値を計算する手段と、 前記新たなチェックサム値と前記チェックサム値とを比
    較する手段と備えた、請求項25に記載のシステム。
  28. 【請求項28】前記一貫性を保証する手段がさらに、 前記バッファに、前記第1のカプラーが書き込みアクセ
    ス可能であるとともに前記第2のカプラーが読み取りア
    クセス可能な第1の一連ファイルを準備する手段と、 前記バッファに、前記第1のカプラーが読み取りアクセ
    ス可能であるとともに前記第2のカプラーが書き込みア
    クセス可能な第2の一連ファイルを準備する手段と、 所定の順序で、前記第1のカプラーが前記第1の一連フ
    ァイルに書き込み、前記第2のカプラーが前記第1の一
    連ファイルから読み取る手段と、 前記所定の順序で、前記第2のカプラーが前記第2の一
    連ファイルに書き込み、前記第1のカプラーが前記第2
    の一連ファイルから読み取る手段とを備えた、請求項2
    4に記載のシステム。
  29. 【請求項29】前記インタフェースさせる手段がさら
    に、前記バッファ中のデータを監視して監視統計を供給
    する手段を備え、 前記監視統計が前記第1のサブモデルおよび前記第2の
    サブモデルを統計的に再分割して前記一括処理を最適化
    するのを容易にする、請求項16に記載のシステム。
  30. 【請求項30】前記モデルがVHDLで表されている、
    請求項16に記載のシステム。
  31. 【請求項31】分割されたモデルの、第1のサブモデル
    および第2のサブモデルを含む複数のサブモデルを処理
    するシミュレーション・システムであって、 分割されたモデルの第1のサブモデルと第2のサブモデ
    ルとを、前記第1のサブモデルにインタフェースした第
    1のカプラーおよび前記第2のサブモデルにインタフェ
    ースした第2のカプラーを準備し、前記第1のカプラー
    と前記第2のカプラーとの間に設けたバッファによって
    前記第1のカプラーと前記第2のカプラーとをインタフ
    ェースさせることにより、結合するように適合した少な
    くとも1つのコンピューティング・ユニットを備え、 前記少なくとも1つのコンピューティング・ユニットが
    さらに前記第1のサブモデルおよび前記第2のサブモデ
    ルを一括して処理するように適合しており、 前記第1のサブモデルおよび前記第2のサブモデルが前
    記第1のカプラー、前前記バッファ、および記第2のカ
    プラーを用いて通信するシミュレーション・システム。
  32. 【請求項32】前記少なくとも1つのコンピューティン
    グ・ユニットが複数のシミュレータ・インスタンスを備
    え、 前記複数のシミュレータ・インスタンスが第1のシミュ
    レータ・インスタンスおよび第2のシミュレータ・イン
    スタンスを含み、 前記第1のシミュレータ・インスタンスが前記第1のサ
    ブモデルを処理し、前記第2のシミュレータ・インスタ
    ンスが前記第2のサブモデルを処理し、 前記第1のシミュレータ・インスタンスが前記第2のシ
    ミュレータ・インスタンスとは異なる、請求項31に記
    載のシミュレーション・システム。
  33. 【請求項33】前記第1のシミュレータ・インスタンス
    が第1のコンピューティング・ユニットに常駐し、前記
    第2のシミュレータ・インスタンスが第2のコンピュー
    ティング・ユニットに常駐する、請求項32に記載のシ
    ミュレーション・システム。
  34. 【請求項34】分割されたモデルの、第1のサブモデル
    および第2のサブモデルを含む複数のサブモデルを処理
    する方法であって、 分割されたモデルの第1のサブモデルと第2のサブモデ
    ルとを結合するステップであって、 前記第1のサブモデルがインタフェースする第1のカプ
    ラーを準備するステップと、 前記第2のサブモデルがインタフェースする第2のカプ
    ラーを準備するステップと、 前記第1のカプラーと前記第2のカプラーとをインタフ
    ェースさせるステップであって、前記第1のカプラーと
    前記第2のカプラーとの間にバッファを準備するステッ
    プとを備えたステップと、 前記第1のサブモデルおよび前記第2のサブモデルを一
    括して処理するステップであって、前記第1のサブモデ
    ルおよび前記第2のサブモデルが前記第1のカプラー、
    前記バッファ、および前記第2のカプラーを用いて通信
    する、ステップとを備えたステップを備えた方法を実行
    する、機械によって実行可能な命令から成る少なくとも
    1つのプログラムを有形的に記録した、機械読み取り可
    能なプログラム記憶装置。
  35. 【請求項35】前記モデルが論理設計である、請求項3
    4に記載のプログラム記憶装置。
  36. 【請求項36】前記一括して処理するステップが前記第
    1のサブモデルおよび前記第2のサブモデルを分散処理
    するステップを備え、 前記分散処理するステップが分散プロセス制御を備えて
    いる、請求項34に記載のプログラム記憶装置。
  37. 【請求項37】前記一括して処理するステップがさらに
    前記第1のサブモデルを第1のシミュレータ・インスタ
    ンス上で処理するステップと前記第2のサブモデルを第
    2のシミュレータ・インスタンス上で処理するステップ
    とを備え、 前記第1のシミュレータ・インスタンスは前記第2のシ
    ミュレータ・インスタンスと異なり、 前記第1のシミュレータ・インスタンスは前記バッファ
    を用いて前記第2のシミュレータ・インスタンスと通信
    する、請求項34に記載のプログラム記憶装置。
  38. 【請求項38】前記第1のシミュレータ・インスタンス
    は第1のコンピューティング・ユニットに常駐し、前記
    2のシミュレータ・インスタンスは第2のコンピューテ
    ィング・ユニットに常駐する、請求項37に記載のプロ
    グラム記憶装置。
  39. 【請求項39】少なくとも1つのサブモデルおよび付随
    するカプラーが少なくとも1つのマップされたデータ・
    ポートおよびクロック/サイクル・ポートを備え、 前記クロック/サイクル・ポートは少なくとも1つのク
    ロック/サイクル信号を供給し、 前記少なくとも1つのクロック/サイクル信号は前記少
    なくとも1つのサブモデルと付随するカプラーとの間で
    前記少なくとも1つのマップされたデータ・ポートを通
    じてデータを転送するのに使用される、請求項34に記
    載のプログラム記憶装置。
  40. 【請求項40】前記第1のカプラーおよび前記第2のカ
    プラーのうちの少なくとも一方がトップ・レベル・カプ
    ラー・エンティティとカプラー共有ライブラリとを備
    え、 前記第1のカプラーおよび前記第2のカプラーのうちの
    前記少なくとも一方が前記トップ・レベル・カプラー・
    エンティティを用いて前記第1のサブモデルおよび前記
    第2のサブモデルと個別に接続し、 前記トップ・レベル・カプラー・エンティティが少なく
    とも1つの入力と、少なくとも1つの出力と、前記第1
    のサブモデルおよび前記第2のサブモデルのうちの少な
    くとも一方の前記クロック/サイクル・ポートにマップ
    された複数のポートとを備え、 前記第1のカプラーおよび前記第2のカプラーのうちの
    少なくとも一方が前記カプラー共有ライブラリを用いて
    前記カプラーと前記バッファとの間でデータを転送す
    る、請求項39に記載のプログラム記憶装置。
  41. 【請求項41】前記バッファが通信媒体を備え、 前記通信媒体は前記第1のカプラーと前記第2のカプラ
    ーとの間でデータを渡すとともに監視する少なくとも1
    つのプロトコルを備えている、請求項34に記載のプロ
    グラム記憶装置。
  42. 【請求項42】前記一括して処理するステップがさら
    に、 前記第1のカプラーが前記第1のサブモデルから取得し
    たデータを前記バッファに送信し、前記第2のカプラー
    が前記データを前記バッファから取得し、前記データを
    前記第2のサブモデルに供給するステップと、 前記送信と前記取得とを対応させることにより、前記デ
    ータの一貫性を保証するステップとを備えた、請求項3
    4に記載のプログラム記憶装置。
  43. 【請求項43】前記一貫性を保証するステップが、 前記データにチェックサム値を挿入するステップと、 前記第1のカプラーおよび前記第2のカプラーのうちの
    一方が前記バッファ中の前記データを調べて前記データ
    の正確性を判断するステップと、 前記データが不正確な場合、前記第1のカプラーおよび
    前記第2のカプラーのうちの少なくとも一方が、前記デ
    ータの前記バッファへの再送信および前記データの前記
    バッファからの再読み取りのうちの少なくとも一方を行
    なうステップとを備えた、請求項42に記載のプログラ
    ム記憶装置。
  44. 【請求項44】前記挿入するステップが、 前記チェックサム値を計算するステップを備え、 前記計算するステップが、 少なくとも1つの論理操作を前記データに適用するステ
    ップを備えている、請求項43に記載のプログラム記憶
    装置。
  45. 【請求項45】前記調べるステップが、 前記データの新たなチェックサム値を計算するステップ
    と、 前記新たなチェックサム値と前記チェックサム値とを比
    較するステップと備えた、請求項43に記載のプログラ
    ム記憶装置。
  46. 【請求項46】前記一貫性を保証するステップがさら
    に、 前記バッファに、前記第1のカプラーが書き込みアクセ
    ス可能であるとともに前記第2のカプラーが読み取りア
    クセス可能な第1の一連ファイルを準備するステップ
    と、 前記バッファに、前記第1のカプラーが読み取りアクセ
    ス可能であるとともに前記第2のカプラーが書き込みア
    クセス可能な第2の一連ファイルを準備するステップ
    と、 所定の順序で、前記第1のカプラーが前記第1の一連フ
    ァイルに書き込み、前記第2のカプラーが前記第1の一
    連ファイルから読み取るステップと、 前記所定の順序で、前記第2のカプラーが前記第2の一
    連ファイルに書き込み、前記第1のカプラーが前記第2
    の一連ファイルから読み取るステップとを備えた、請求
    項42に記載のプログラム記憶装置。
  47. 【請求項47】前記インタフェースさせるステップがさ
    らに、前記バッファ中のデータを監視して監視統計を供
    給するステップを備え、 前記監視統計が前記第1のサブモデルおよび前記第2の
    サブモデルを統計的に再分割して前記一括処理を最適化
    するのを容易にする、請求項34に記載のプログラム記
    憶装置。
  48. 【請求項48】前記モデルがVHDLで表されている、
    請求項34に記載のプログラム記憶装置。
JP2003100239A 2002-04-18 2003-04-03 モデル・シミュレーション Pending JP2003330992A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/125,198 US7231334B2 (en) 2002-04-18 2002-04-18 Coupler interface for facilitating distributed simulation of a partitioned logic design
US10/125198 2002-04-18

Publications (1)

Publication Number Publication Date
JP2003330992A true JP2003330992A (ja) 2003-11-21

Family

ID=29214749

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003100239A Pending JP2003330992A (ja) 2002-04-18 2003-04-03 モデル・シミュレーション

Country Status (3)

Country Link
US (1) US7231334B2 (ja)
JP (1) JP2003330992A (ja)
TW (1) TWI235932B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524138A (ja) * 2006-01-20 2009-06-25 メンター グラフィックス コーポレイション モデル化およびシミュレーション方法
US7610569B2 (en) 2004-02-17 2009-10-27 Dong-goo YUN Chip design verification apparatus and data communication method for the same
JP2010055249A (ja) * 2008-08-27 2010-03-11 Internatl Business Mach Corp <Ibm> シミュレーション方法、システム及びプログラム
JP2013521583A (ja) * 2010-03-04 2013-06-10 シノプシイス インコーポレイテッド ハードウェア設計のコンカレント及びシリアル混在型論理シミュレーション
JP2020184301A (ja) * 2019-04-30 2020-11-12 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド シミュレータを実現するための方法、装置、デバイス及び媒体

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158925B2 (en) * 2002-04-18 2007-01-02 International Business Machines Corporation Facilitating simulation of a model within a distributed environment
KR102092921B1 (ko) 2013-06-28 2020-03-24 삼성전자주식회사 시뮬레이션 장치 및 분산 시뮬레이션 시스템
US11435735B2 (en) * 2017-03-30 2022-09-06 Toshiba Mitsubishi-Electric Industrial Systems Corporation Playback simulation test system
WO2021075927A1 (ko) * 2019-10-16 2021-04-22 (주)아인스에스엔씨 대상 시스템을 기술하는 모델을 구현하고 동작시키는 컴퓨팅 시스템 및 이를 이용한 대상 시스템의 동작 예측 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561787A (en) 1989-03-07 1996-10-01 Xerox Corporation User interface module
US5442772A (en) 1991-03-29 1995-08-15 International Business Machines Corporation Common breakpoint in virtual time logic simulation for parallel processors
US5621670A (en) 1991-08-01 1997-04-15 Fujitsu Limited Communication service simulator and a communication service specification verifying method
JPH05216712A (ja) 1991-10-23 1993-08-27 Internatl Business Mach Corp <Ibm> コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ
US5794005A (en) 1992-01-21 1998-08-11 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronous parallel emulation and discrete event simulation system with self-contained simulation objects and active event objects
GB2293900B (en) 1994-10-03 2000-01-19 Univ Westminster Data processing method and apparatus for parallel discrete event simulation
JPH08307442A (ja) * 1995-05-12 1996-11-22 Toshiba Corp データ伝送方式
US5862361A (en) 1995-09-07 1999-01-19 C.A.E. Plus, Inc. Sliced synchronous simulation engine for high speed simulation of integrated circuit behavior
US5881267A (en) * 1996-03-22 1999-03-09 Sun Microsystems, Inc. Virtual bus for distributed hardware simulation
US5933794A (en) 1997-02-25 1999-08-03 Hughes Electronics Corporation Scalable parallel processing apparatus and method for performing fast multipole scattering calculations
US6195628B1 (en) * 1997-03-13 2001-02-27 International Business Machines Corporation Waveform manipulation in time warp simulation
US5956261A (en) * 1997-03-13 1999-09-21 International Business Machines Corporation In-transit message detection for global virtual time calculation in parrallel time warp simulation
US6074427A (en) 1997-08-30 2000-06-13 Sun Microsystems, Inc. Apparatus and method for simulating multiple nodes on a single machine
US6110217A (en) * 1997-10-03 2000-08-29 International Business Machines Corporation System and method for synchronization of multiple analog servers on a simulation backplane
US6134514A (en) 1998-06-25 2000-10-17 Itt Manufacturing Enterprises, Inc. Large-scale network simulation method and apparatus
US6339836B1 (en) * 1998-08-24 2002-01-15 Mentor Graphics Corporation Automated design partitioning
EP1059593A3 (en) 1999-06-07 2003-09-10 Easics N.V. Deterministic level model and method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610569B2 (en) 2004-02-17 2009-10-27 Dong-goo YUN Chip design verification apparatus and data communication method for the same
JP2009524138A (ja) * 2006-01-20 2009-06-25 メンター グラフィックス コーポレイション モデル化およびシミュレーション方法
CN102156774A (zh) * 2006-01-20 2011-08-17 明导公司 建模和仿真方法
JP2010055249A (ja) * 2008-08-27 2010-03-11 Internatl Business Mach Corp <Ibm> シミュレーション方法、システム及びプログラム
JP2013521583A (ja) * 2010-03-04 2013-06-10 シノプシイス インコーポレイテッド ハードウェア設計のコンカレント及びシリアル混在型論理シミュレーション
JP2020184301A (ja) * 2019-04-30 2020-11-12 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド シミュレータを実現するための方法、装置、デバイス及び媒体
JP7101709B2 (ja) 2019-04-30 2022-07-15 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド シミュレータを実現するための方法、装置、デバイス及び媒体

Also Published As

Publication number Publication date
US20030200072A1 (en) 2003-10-23
TWI235932B (en) 2005-07-11
US7231334B2 (en) 2007-06-12
TW200305810A (en) 2003-11-01

Similar Documents

Publication Publication Date Title
US7206732B2 (en) C-API instrumentation for HDL models
US7069204B1 (en) Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements
US5493672A (en) Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution
US7359847B2 (en) Tracking converage results in a batch simulation farm network
US20060089827A1 (en) Method, system and program product for defining and recording minium and maximum event counts of a simulation utilizing a high level language
US20030101039A1 (en) Maintaining data integrity within a distributed simulation environment
CN113656227A (zh) 一种芯片验证方法、装置、电子设备及存储介质
JP2003330992A (ja) モデル・シミュレーション
US7925489B2 (en) Defining and recording threshold-qualified count events of a simulation by testcases
Garavel et al. Verification of GALS systems by combining synchronous languages and process calculi
Kurshan et al. Combining software and hardware verification techniques
US20090112552A1 (en) Method, System and Program Product for Reporting Temporal Information Regarding Count Events of a Simulation
Theelen et al. Performance modelling of a network processor using POOSL
Boigelot et al. Model checking in practice: An analysis of the access. bus™ protocol using spin
US20100161305A1 (en) Performance evaluation device, performance evaluation method and simulation program
US20150227661A1 (en) Computer product, simulation apparatus, simulation method, bus model, and bus circuit
US7027971B2 (en) Centralized disablement of instrumentation events within a batch simulation farm network
German Formal design of cache memory protocols in IBM
Van Eekelen et al. Analysis of a session-layer protocol in mcrl2: verification of a real-life industrial implementation
CN112083914A (zh) 实现对象模型嵌入式操作系统软总线的方法及系统
Gankevich et al. Novel approaches for distributing workload on commodity computer systems
US6880120B2 (en) Sequence-based verification method and system
Franks Simulating layered queueing networks with passive resources.
Schirner et al. System level modeling of an AMBA bus
CN116932415B (zh) 一种扫描仪应用开发方法、计算设备及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060411

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060710

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070926

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071009

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071122