JPH07281925A - マルチプロセッサシミュレーション装置 - Google Patents

マルチプロセッサシミュレーション装置

Info

Publication number
JPH07281925A
JPH07281925A JP6068648A JP6864894A JPH07281925A JP H07281925 A JPH07281925 A JP H07281925A JP 6068648 A JP6068648 A JP 6068648A JP 6864894 A JP6864894 A JP 6864894A JP H07281925 A JPH07281925 A JP H07281925A
Authority
JP
Japan
Prior art keywords
simulator
communication
simulation
simulators
processing
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
JP6068648A
Other languages
English (en)
Inventor
Masako Kodaira
昌子 小平
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6068648A priority Critical patent/JPH07281925A/ja
Publication of JPH07281925A publication Critical patent/JPH07281925A/ja
Priority to US08/863,557 priority patent/US5805867A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】ワークステーション上で複数のシミュレータを
独立に動作させて、プロセッサ単体の処理のシミュレー
ションと、プロセッサ間の通信処理のシミュレーション
を同時に行うマルチプロセッサシミュレーション装置を
提供する。 【構成】シミュレータA、シミュレータBは、共にマルチ
プロセス機能により生成され、それぞれプロセッサA、
プロセッサBのターゲットプログラムを疑似実行する。
シミュレータAは、プロセッサ間通信処理部分を検出す
ると、その詳細な結合内容を表すメッセージをシミュレ
ータB宛に送信した後、シグナル通信によりシミュレー
タBにメッセージ通信を開始したい旨を通知する。シミ
ュレータBは、他のシミュレータからのシグナルの有無
を常に監視しており、シグナルの受信を確認すると、シ
ミュレータAから送信されたメッセージを読み出し、結
合相手のシミュレータ及び結合内容を認識して、結合処
理を行う。結合処理における情報の送受信には、メッセ
ージ通信を用いる。結合処理が終了すると、シミュレー
タA及びシミュレータBは、疑似実行を続行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセス機能を
有する計算機システムに係り、マルチプロセッサシステ
ムにおけるプロセッサ間の通信機能をシミュレートする
シミュレーション装置及びシミュレーション方法に関す
る。
【0002】
【従来の技術】近年、計算機が処理すべき情報量の増加
と、情報処理の複雑化に伴い、マルチプロセッサ構成を
持つ情報処理装置が多く利用されるようになって来てい
る。マルチプロセッサシステムでは、並列性のある処理
を複数のプロセッサに同時に処理させることにより、シ
ステム全体の処理速度を向上させることができる。この
ようなシステムにおいては、各プロセッサ間の通信機能
の信頼性を高めることが重要な課題となる。特に、異な
る機種のプロセッサ間の通信を正確に行うためには、そ
れぞれのプロセッサ用のプログラムのテストとデバッグ
を繰り返し、プロセッサ間通信におけるエラーを最小に
する必要がある。
【0003】図18は、実機を用いたマルチプロセッサ
のプログラムのテスト/デバッグ方法を示している。図
18において、プロセッサX、プロセッサYには、それ
ぞれプロセッサX用のプログラム2−1、プロセッサY
用のプログラム2−2が搭載され、プロセッサXとプロ
セッサYは、通信用のハードウェア3−1及び3−2に
より結合している。プロセッサX用のプログラム2−1
のテスト/デバッグは、ターミナル1−1を用いて行わ
れ、プロセッサY用のプログラム2−2のテスト/デバ
ッグは、ターミナル1−2を用いて行われる。これによ
り、通信処理とハードウェア3−1及び3−2による結
合動作を含めた両プロセッサのプログラムのテスト/デ
バッグが行われる。
【0004】しかし、マルチプロセッサのプログラムの
テスト/デバッグを実機で行うと、現場における実機の
台数不足を生じ、工程の遅れ等の影響が出る。また、実
機テストでは、障害の原因がハードウェアにあるのかソ
フトウェアにあるのかを調査し、切り分けるのに多大な
時間を要する。
【0005】そこで、実機を用いずに、シミュレータに
よりテスト/デバッグを行う各種の方法が用いられてい
る。図19は、プロセッサの代替プログラムを用いたシ
ミュレーション方法を示している。シミュレータXは、
ワークステーション4−1上で実現されたシミュレータ
で、単一のプロセッサXの動作をシミュレートする。ワ
ークステーション4−1上には、プロセッサYとの結合
部分をテストするためのプログラムとして、プロセッサ
Yの代替5−1が搭載されている。プロセッサYの代替
5−1は、シミュレータXからテスト用のデータを受け
取ると、予め決められたデータを返す等の簡単な機能を
持つ。ワークステーション4−2上のシミュレータY及
びプロセッサXの代替5−2の機能についても同様であ
る。
【0006】図20は、疑似IO(入出力)プログラム
を用いたシミュレーション方法を示している。シミュレ
ータXは、ワークステーション6−1上で実現されたシ
ミュレータで、プロセッサXの動作をシミュレートす
る。ワークステーション6−1上に搭載された疑似IO
7−1は、システム内の入出力装置を模擬するプログラ
ムである。ワークステーション6−2上のシミュレータ
Y及び疑似IO7−2の機能についても同様である。
【0007】このように、図19及び図20のシミュレ
ーション方法では、マルチプロセッサシステムを構成す
る個々のプロセッサ毎に、プログラムのテストを行う。
しかし、これらの方法では、実際に行われるプロセッサ
間の通信処理をシミュレートしていないため、通信部分
のデバッグは実機テストに頼らざるを得ない。
【0008】これに対して、図21に示すような、1つ
のワークステーション上で複数のシミュレータを実現す
る方法も考案されている。図21の第1のシミュレータ
10−1、第2のシミュレータ10−2、第3のシミュ
レータ10−3は、それぞれ1つのプロセッサを模擬
し、バスシミュレータ9が通信路を模擬する。シミュー
タマネージャ8が各プロセッサのシミュレータを制御し
ながら、通信路のシミュレーションを行う。この方法に
よると、実機を用いずにプロセッサ相互の動作をシミュ
レートすることができる。
【0009】
【発明が解決しようとする課題】しかしながら上述のよ
うな従来のシミュレーション方法には、次のような問題
がある。
【0010】プロセッサの代替を用いた図19の方法で
は、シミュレータとプロセッサの代替の間でテスト用の
データをやりとりするだけで、実際に稼働している他の
プロセッサと通信するわけではないので、詳細な通信処
理のテスト/デバッグを行うことはできない。
【0011】また、疑似IOを用いた図20の方法で
は、シミュレータと周辺装置の間のデータの入出力の模
擬に限られ、プロセッサ間の通信処理はテストしていな
い。疑似IOによる応答のタイミングも、実際のシステ
ムにおける動作とは異なる。
【0012】従って、図19又は図20の方法では、プ
ロセッサ単体で動作するプログラムのシミュレーション
に限られ、プロセッサ間通信処理のテスト/デバッグは
別途実機を用いて行う必要がある。この場合には、テス
ト/デバッグのために実機を占有するため、工程の遅れ
等の不都合を生じる。また、実機テストでは、プロセッ
サ間の結合の微妙なタイミングや共有資源に対する競合
のテストを行うのが難しいという問題もある。さらに、
他のプロセッサの動作を補うために、プロセッサの代替
等のプログラムやデータを、テスト/デバッグのためだ
けに作成する必要がある。
【0013】複数のシミュレータを同時に動作させる図
21の方法では、シミュレータマネージャが、各プロセ
ッサのシミュレータと通信路との関係を定義しているた
め、シミュレータ間通信はシミュレータマネージャを介
して行われ、直接シミュレータ間で通信することができ
ない。またバスシミュレータとシミュレータマネージャ
を作成する必要がある。
【0014】本発明は、1つのワークステーション上で
マルチプロセッサシステムをシミュレートする複数のシ
ミュレータを動作させて、プロセッサ単体の処理のシミ
ュレーションと、プロセッサ間の通信処理及び結合動作
のシミュレーションを同時に行うマルチプロセッサシミ
ュレーション装置を提供することを目的とする。
【0015】また本発明は、各プロセッサのシミュレー
タの独立性を保ち、各シミュレータが他のシミュレータ
と柔軟に通信することができるマルチプロセッサシミュ
レーション装置を提供することを目的とする。
【0016】
【課題を解決するための手段】図1は本発明の原理構成
図である。本発明は、複数のプロセッサが結合して同時
に動作するシステムのシミュレーションを行う情報処理
装置におけるマルチプロセッサシミュレーション装置で
あって、シミュレータ生成手段11、プロセッサシミュ
レーション手段12、及び通信シミュレーション手段1
3を備える。
【0017】シミュレータ生成手段11は、互いに独立
して動作する複数のシミュレータを生成する。各々のシ
ミュレータは、各々のプロセッサが他のプロセッサとの
間で行う通信処理のシミュレーションに必要な通信相手
に関する識別情報を有する。
【0018】通信シミュレーション手段13は、各々の
シミュレータに上記通信処理のシミュレーションを行わ
せ、プロセッサシミュレーション手段12は、各々のプ
ロセッサが上記通信処理に依らずに行う内部処理のシミ
ュレーションを各々のシミュレータに行わせる。このと
き、プロセッサシミュレーション手段12と通信シミュ
レーション手段13は、互いに連携して、各々のシミュ
レータに上記内部処理と通信処理のシミュレーションを
同時に行わせる。
【0019】シミュレータ生成手段11は、例えば互い
に独立して動作する複数のプロセスを同時に生成する機
能を有するOS(operating system)を搭載したワーク
ステーション内のプロセッサにより実現される。
【0020】プロセッサシミュレーション手段12は、
例えば各々のプロセッサが実行するプログラムを、上記
ワークステーション上に生成された各々のシミュレータ
に実行させることにより実現される。
【0021】また通信シミュレーション手段13は、例
えば上記通信処理のシミュレーションを行うプログラム
をシミュレータ毎に用意しておき、必要に応じて上記ワ
ークステーション上で実行させることにより実現され
る。
【0022】
【作用】シミュレータ生成手段11が生成する複数のシ
ミュレータは、互いに独立して動作するので、各シミュ
レータの汎用性が保持される。各々のシミュレータに、
1つのプロセッサが実行するプログラムを並行してロー
ド・実行させれば、複数のプロセッサが同時に動作する
マルチプロセッサシステムをシミュレートすることがで
きる。従って、各プロセッサのプログラム毎に、テスト
/デバッグする手間が省かれる。
【0023】また各々のシミュレータが通信相手に関す
る識別情報を有するので、任意の2つのシミュレータ間
で通信処理のシミュレーションを行うことができる。従
って、全てのシミュレータの識別情報を有し、通信シミ
ュレーションを制御するシミュレータマネージャ等の特
別な制御部を設ける必要がない。
【0024】さらにプロセッサシミュレーション手段1
2と通信シミュレーション手段13は、各々のシミュレ
ータに、通信処理と内部処理のシミュレーションを同時
に行わせるので、プロセッサのプログラムの通信処理部
分と内部処理部分のテスト及びデバッグを一度に行うこ
とができる。従って、プロセッサの代替や疑似IOのよ
うなテスト用のプログラムを作成しなくてもよい。
【0025】実機を用いないので、工程の遅れ等の不都
合を生じることもなく、実機テストでは難しいプロセッ
サ間の結合の微妙なタイミングのテストも可能になる。
【0026】
【実施例】以下、図面を参照しながら、本発明の実施例
を説明する。図2は、本発明のシミュレーション装置の
一例を示す図である。図2では、同一のプラットフォー
ム(ワークステーション21)上で、プロセッサA、
B、及びCをそれぞれシミュレートするシミュレータ
A、B、及びCが同時に並行動作している。シミュレー
タA、B、及びCは、OS(operating system)、例え
ばUNIXシステム、が提供するマルチプロセス機能に
より生成される。OSは、最初にシミュレータAを起動
し、シミュレータAは、シミュレータB及びCを子プロ
セスとして生成・起動する。
【0027】このように、マルチプロセス機能を利用し
て複数のシミュレータを生成すれば、各プロセスの生成
と起動はシステムが行うので、ユーザはプロセスの切り
換えを意識する必要がない。また生成された各シミュレ
ータは独立して動作することができる。
【0028】シミュレータAのプロセッサAシミュレー
ション部22−1は、プロセッサAのメモリ領域を疑似
する疑似メモリ24−1を有し、テスト及びデバッグの
対象であるターゲットプログラム23−1を保持する。
シミュレータB、Cのプロセッサシミュレーション部2
2−2、22−3も同様に、それぞれ疑似メモリ24−
2、24−3を有し、ターゲットプログラム23−2、
23−3を保持する。
【0029】ターゲットプログラム23−1、23−
2、及び23−3は、実際にマルチプロセッサシステム
に搭載されて動作する各プロセッサA、B、及びC用の
プログラムである。
【0030】一般に、マルチプロセッサシステムを構成
する各プロセッサの種類は異なり、そのクロック周波数
やレジスタ構成等が異なるが、独立して動作する複数の
シミュレータにより、これをワークステーション21上
に実現することができる。このとき、各シミュレータで
用いるクロックやレジスタ構成は、シミュレート対象の
各プロセッサに合わせて定義される。
【0031】次に、図2の各シミュレータの構成と通信
方法について、図3、図4、及び図5を参照しながら説
明する。図3及び図4において、図2と同一の物若しく
はプロセスの一部分には図2と同一の符号が付されてい
る。
【0032】シミュレータA、Bは、それぞれ、プロセ
ッサAシミュレーション部22−1、プロセッサBシミ
ュレーション部22−2と、コマンド実行部25−1、
25−2と、通信部26−1、26−2を有する。また
プロセッサAシミュレーション部22−1、プロセッサ
Bシミュレーション部22−2は、それぞれ、プログラ
ムロード/実行部27−1、27−2と、疑似メモリ2
4−1、24−2と、通信開始トリガ検出部28−1、
28−2を有し、疑似メモリ24−1、24−2は、そ
れぞれ、共有メモリ29−1、29−2を有する。
【0033】コマンド実行部25−1、25−2は、そ
れぞれ、通信開始トリガ設定部30−1、30−2と、
他コマンド実行部31−1、31−2を有し、通信部2
6−1、26−2は、それぞれ、シミュレータ間非同期
通信部32−1、32−2と、シミュレータ間同期通信
部33−1、33−2と、プロセス非同期通信部34−
1、34−2と、プロセス同期通信部35−1、35−
2を有する。
【0034】シミュレータAのプログラムロード/実行
部27−1は、プロセッサA用に作成されたターゲット
プログラム23−1をワークステーション21にロード
し、実行する。シミュレータBのプログラムロード/実
行部27−2も、同様に、ターゲットプログラム23−
2をロードし、実行する。ターゲットプログラム23−
1の実行中に、通信開始トリガ検出部28−1が、プロ
セッサAとプロセッサBが結合する必要のある部分、つ
まりプロセッサ間通信処理部分を検出すると、シミュレ
ータAは、独立に動作しているシミュレータBと同期を
取って通信し、結合を疑似する。このときのプロセッサ
間の同期の取り方には、シミュレータAが直接シミュレ
ータBと通信する方法と、プロセスを介して間接的に通
信する方法がある。
【0035】図3は、2つのシミュレータが直接通信を
行う場合を示している。この場合、シミュレータAは、
シミュレータ間同期通信部33−1を用いて詳細な結合
内容をシミュレータBのシミュレータ間同期通信部33
−2宛に送信した後、シミュレータ間非同期通信部32
−1を用いて、シミュレータBのシミュレータ間非同期
通信部32−2に同期通信を開始したい旨を通知する。
【0036】このシミュレータ間同期通信は、例えばU
NIXシステムが提供しているプロセス間通信の1つの
メッセージ通信機能により実現できる。また、シミュレ
ータ間非同期通信は、同じくUNIXシステムが提供し
ているシグナル通信機能により実現できる。UNIXシ
ステムにおけるシグナルは、実行中のプロセスに対する
一種のソフトウェア割り込みであり、シグナル用のフラ
グにオン情報を書き込むことにより、強制的にシグナル
の受信を行わせることが可能である。
【0037】シミュレータBの通信開始トリガ検出部2
8−2は、他のシミュレータからの通信開始要求の有無
を常に監視している。シミュレータBは、通信開始要求
があることを検出すると、シミュレータ間同期通信部3
3−2を用いて、シミュレータAのシミュレータ間同期
通信部33−1から送信された結合内容を受信し、結合
相手のシミュレータ及び結合内容の詳細を認識し、それ
に基づいて結合処理を行う。
【0038】一般に、シグナルの機能により詳細な情報
を伝えることはできないので、結合内容はメッセージ通
信により、シミュレータBが受信可能な状態のときに伝
えられる。シミュレータBが、シミュレータAからシグ
ナルによる通知を受けて、メッセージの受信が可能にな
ったとき、両シミュレータ間で同期が取れたことにな
る。
【0039】図4は、2つのシミュレータがプロセスを
介して通信を行う場合を示している。図4のプロセス4
1は、シミュレータAにより生成され、シミュレータA
及びBの双方から呼び出すことができる。プロセス41
は、シミュレータ通信部42、通信トリガ処理部45、
共有メモリ管理部46、及びプロセス処理部48を有
し、シミュレータ通信部42は非同期通信部43及び同
期通信部44を有する。通信トリガ処理部45はトリガ
設定部とトリガ監視部を有し、共有メモリ管理部46は
共有メモリ47を有する。
【0040】この場合、シミュレータAは、プロセス同
期通信部35−1を用いて、結合内容をプロセス41宛
に送信した後、プロセス非同期通信部34−1を用い
て、プロセス41に同期通信を開始したい旨を伝える。
【0041】プロセス41は、通信トリガ処理部45に
よりシミュレータA、B等からの通信開始要求の有無を
常に監視しており、通信開始要求があることを検出する
と、同期通信部44を用いて、シミュレータAから送信
された結合内容を受信し、結合相手のシミュレータと結
合内容の詳細、及び結合内容の送信先を認識する。送信
先がシミュレータBであることがわかると、プロセス4
1は、同期通信部44を用いて、結合内容をシミュレー
タB宛に送信し、非同期通信部43を用いて、シミュレ
ータBに同期通信を開始したい旨を伝える。
【0042】シミュレータBは、通信開始トリガ検出部
28−2により、プロセス41からの通信開始要求の有
無を常に監視しており、通信開始要求があることを検出
すると、プロセス同期通信部35−2を用いて、プロセ
ス41から送信された結合内容を受信する。そして、結
合相手のプロセスがプロセス41であること及び結合内
容の詳細を認識し、結合処理を行う。このとき、プロセ
ス41のプロセス処理部48が、プロセッサA及びBの
ハードウェア間の結合動作をシミュレートする。例えば
プロセッサA、B、C等が共通バスにより結合されてい
る場合は、プロセス処理部48は、この共通バスによる
結合をシミュレートする。
【0043】図4の場合も、各シミュレータとプロセス
41の間の同期通信、非同期通信は、例えばUNIXシ
ステムのメッセージ通信、シグナル通信の各機能により
実現できる。
【0044】図5は、図3に示す直接通信及び図4に示
す間接通信を併用する場合のシミュレータ間通信処理を
まとめたフローチャートである。本実施例のシミュレー
タは、ターゲットプログラムをロードしてその疑似実行
を開始すると、まずターゲットプログラム中の1命令を
取り出してこれを実行する(ステップS1)。1命令実
行が終了すると、次に外部から非同期通信を受信してい
るかどうかを調べる(ステップS2)。ここでは、例え
ばシグナル用のフラグをチェックする。その結果、同期
通信の開始を要求する非同期通信があったことが判明す
ると、非同期通信の送信元が他のシミュレータかプロセ
スかを判定する(ステップS5)。
【0045】ステップS5で、同期通信の開始を要求し
ているのが他のシミュレータであることが分かると、そ
の送信元シミュレータと同期通信を開始する(ステップ
S7)。開始した同期通信が終了すると、他の非同期通
信を受信しているかどうかを調べる(ステップS2)。
【0046】ステップS5で、同期通信の開始を要求し
ているのが他のシミュレータではなく、プロセスである
ことが分かると、そのプロセスと同期通信を開始する
(ステップS6)。開始した同期通信が終了すると、他
の非同期通信を受信しているかどうかを調べる(ステッ
プS2)。
【0047】ステップS2で、非同期通信を受信してい
ないか、または受信した全ての非同期通信の処理を終え
たことが判明すると、次に、ステップS1で命令を実行
した結果が通信開始トリガに相当するかどうかを判定す
る(ステップS3)。この判定は通信開始トリガ検出部
(28−1、28−2)が行う。そして、通信開始トリ
ガとなる状態を検出すると、必要な通信相手を特定する
(ステップS8)。
【0048】通信相手が他のシミュレータの場合は、同
期通信により通信処理の内容をその相手シミュレータ宛
に送信すると共に、非同期通信により相手シミュレータ
に同期通信の開始を要求する(ステップS11)。相手
シミュレータが非同期通信の受信を確認して、同期通信
により応答することによって、シミュレータ間の同期通
信が開始される(ステップS12)。開始された同期通
信が終了すると、新たに通信開始トリガが発生したかど
うかを判定する(ステップS3)。
【0049】通信相手がプロセスの場合は、同期通信に
より通信処理の内容をそのプロセス宛に送信すると共
に、非同期通信によりプロセスに同期通信の開始を要求
する(ステップS9)。プロセスが非同期通信の受信を
確認して、同期通信により応答することによって、その
プロセスとの間で同期通信が開始される(ステップS1
0)。開始された同期通信が終了すると、新たに通信開
始トリガが発生したかどうかを判定する(ステップS
3)。
【0050】ステップS3で、通信開始トリガとなる状
態が検出されない場合、または検出された通信開始トリ
ガに基づく通信処理が終了したと判定された場合は、次
に疑似実行を終了するかどうかを判定する(ステップS
4)。このとき、実行すべきターゲットプログラム中の
命令がまだ残っていれば、次の命令を取り出して実行す
る(ステップS1)。全ての命令を実行し終えたことが
判明すれば、疑似実行を終了する。
【0051】このようなシミュレータ間通信処理を各プ
ロセッサに対応する全てのシミュレータが行う。実際の
マルチプロセッサシステムにおけるプロセッサ間の結合
動作を図6に示す。図6のプロセッサA、プロセッサB
は、それぞれ通信用のハードウェア51−1、51−2
を有し、これらを介して互いに接続されている。プロセ
ッサAは、プロセッサA用のターゲットプログラム23
−1を実行し、プロセッサBと通信の必要が生じると、
ハードウェア51−1を介してプロセッサBのハードウ
ェア51−2と結合する。
【0052】このプロセッサ間の結合動作をシミュレー
ション装置で疑似するには、シミュレータコマンドの実
行、共有メモリ、シミュレータ情報の伝達等の方法があ
る。これらの結合処理は、その実行時の通信方法がシミ
ュレータ間の直接通信であるかプロセスを介した間接通
信であるかに係わらず、行うことができる。
【0053】図7は、シミュレータコマンドの実行によ
る結合処理を示している。シミュレータAは、直接通
信、あるいはプロセス41を介した間接通信により、シ
ミュレータBにコマンドα、β、γの実行を要求する。
コマンドα、β、γは、例えば、初期化、プログラムの
ロード、メモリのマッピング、ロードしたプログラムに
よる疑似実行の開始、割り込みの設定、ブレークポイン
トの設定、メモリの参照・更新、レジスタの参照・更
新、ログの採取、コマンドファイル実行、通信開始トリ
ガの設定、プロセスの生成・実行等のシミュレータコマ
ンドである。シミュレータBは、コマンド実行部25−
2を用いてシミュレータAから送信されたコマンドα、
β、γを実行することにより、プロセッサA、B間の結
合を疑似する。
【0054】図8は、共有メモリによる結合処理を示し
ている。共有メモリM1及びM2はシミュレータAとシ
ミュレータBから共通にアクセス可能であり、シミュレ
ータAの疑似メモリ24−1及びシミュレータBの疑似
メモリ24−2内には、各共有メモリの格納領域がマッ
ピングされる。プロセス41の共有メモリ管理部46は
共有メモリM1及びM2を管理している。例えば、シミ
ュレータAにより共有メモリM1またはM2にデータが
書き込まれると、シミュレータBが書き込まれたデータ
を即座に利用することができる。この共有メモリによる
結合処理は、例えばUNIXシステムが提供している共
有メモリ機能により実現される。
【0055】図9はシミュレータ情報の伝達による結合
処理を示している。シミュレータAは、直接通信、ある
いはプロセス41を介した間接通信により、シミュレー
タBの状態を把握したい旨をシミュレータBに伝える。
シミュレータBは、シミュレータAから伝えられた通信
内容に従って、自シミュレータの状態や他の情報を、直
接通信、あるいはプロセス41を介した間接通信によ
り、シミュレータAに送信する。
【0056】結合処理においては、上記3種の結合処理
を組み合わせたり、プロセスを生成して、計算、状態判
定、OS資源を使った処理等を行わせることにより、よ
り実機に近い複雑な結合を疑似することができる。
【0057】このように、本発明では、マルチプロセッ
サシステムを意識した処理を必要とする時、つまり、プ
ロセッサ間の通信を意識する時のみ、シミュレータ間で
同期を取り結合処理を疑似する。各シミュレータは独立
して動作するため、シミュレータ毎の汎用性が保持され
る。また、マルチプロセッサシステムを意識した複雑な
結合処理は、ユーザがシミュレータコマンドのコマンド
列として作成することができる。あるいはまた、ユーザ
がプロセス処理部48の内容を作成して、プロセス41
に複雑な結合処理を疑似させることもできる。
【0058】次に図10から図17までを参照しなが
ら、本発明の実施例のシミュレーション装置の具体的な
動作を詳しく説明する。図10から図17の実施例で
は、本発明のシミュレーション装置は、UNIXシステ
ムを搭載したワークステーションにより実現される。シ
ミュレータ−シミュレータ間あるいはシミュレータ−プ
ロセス間の、非同期通信手段としてはシグナル通信機能
が用いられ、同期通信手段としてはメッセージ通信機能
が用いられる。しかしながら本発明のシミュレーション
装置は、同様のプロセス間通信機能を備える他のシステ
ムにより実現してもよい。
【0059】図10は、シミュレーション装置上での複
数のシミュレータの起動方法を示している。まず最初に
ターミナル61から、シミュレータAを起動する。シミ
ュレータAを起動した後、マルチプロセッサのシミュレ
ーションの開始を指示するコマンドを入力する。これを
受けてワークステーション21のマルチプロセス機能が
働き、シミュレータAはシミュレータBを子シミュレー
タ(子プロセス)として生成し動作させる。またシミュ
レータAは、同様にシミュレータC及び不図示の他のシ
ミュレータを子プロセスとして生成し動作させる。これ
により、シミュレータAは、シミュレータB、C及び他
のシミュレータの親シミュレータ(親プロセス)とな
る。
【0060】一般にマルチプロセス環境においては、互
いに親子関係にあるプロセス同士は、互いを認識する手
段として相手のプロセス識別子(プロセスID)を保持
することができ、これをシグナル通信の際に使用する。
図9では、シミュレータAが、シミュレータB及びCの
プロセスIDを保持しており、シミュレータB及びC
は、シミュレータAのプロセスIDを保持している。
【0061】またシミュレータAは、メッセージキュー
の識別子(キューID)取得のためのシステムコールを
用いて、シミュレータBとのメッセージ通信用のキュー
IDを獲得し、シミュレータBを起動する時にパラメー
タとして、このキューIDを通知する。シミュレータB
は通知されたキューIDを、シミュレータAとのメッセ
ージ通信用のキューIDとして保持する。同様にして、
シミュレータAとシミュレータC間のメッセージ通信に
用いられるキューIDが、シミュレータA及びCに保持
される。不図示の他のシミュレータについても同様であ
る。
【0062】生成された各子シミュレータ及びシミュレ
ータAは、それぞれがシミュレートするプロセッサのタ
ーゲットプログラムをロードし、それぞれ独立に実行す
る。このとき、各子シミュレータは、親シミュレータで
あるシミュレータAと、必要に応じてシグナル通信及び
メッセージ通信により通信することができる。またシミ
ュレータAは、他の全てのシミュレータと通信すること
が可能である。しかしこのままでは、シミュレータAが
生成した子シミュレータ同士で通信することができない
ので、シミュレータAは、保持している全ての子シミュ
レータの情報を各子シミュレータに送信する。
【0063】例えば、図11に示すように、シミュレー
タAはシミュレータBとのメッセージ通信用のキューI
Dを用いて、シミュレータCのプロセスIDとキューI
DをメッセージとしてシミュレータB宛に送信する。こ
のときキューIDに対応したメッセージ格納領域にメッ
セージが格納される。そしてシミュレータBのプロセス
IDを用いてシグナル通信により、メッセージを送信し
たことをシミュレータBに通知する。このとき、システ
ムによりシグナル用のフラグの値がインクリメントされ
る。このフラグは、シミュレータBに対する他のシミュ
レータからの通信要求の数を表している。
【0064】シミュレータAとは独立にプロセッサBの
ターゲットプログラム23−2を実行しているシミュレ
ータBは、実行中常時シグナル用のフラグをチェックし
ており、他のシミュレータからの通信要求があることを
認識する。そして、保持しているシミュレータAとのメ
ッセージ通信用のキューIDを用いて、送信されたメッ
セージを受信し、シミュレータCのプロセスIDとキュ
ーIDを取得する。通信処理が完了するとフラグはデク
リメントされ、フラグの値が0になるとシミュレータB
はターゲットプログラム23−2の実行に戻る。
【0065】同様にしてシミュレータAは、シミュレー
タBのプロセスIDとキューIDをシミュレータCに送
信する。シミュレータBとシミュレータCが、互いのプ
ロセスIDとキューIDを保持することにより、両シミ
ュレータ間の通信が可能になる。
【0066】システムが提供している共有メモリ機能や
セマフォ機能を使用するために、シミュレータAはさら
に共有メモリ識別子(共有メモリID)とセマフォ識別
子(セマフォID)をシステムコールにより獲得し、プ
ロセスIDやキューIDと同様にして各子シミュレータ
に送信する。全てのシミュレータが共通の共有メモリI
DとセマフォIDを保持するすることにより、これらの
識別子により指定される共通の共有メモリやセマフォに
アクセスすることができる。例えば、上記メッセージ格
納領域が使用可能かどうかをセマフォ機能により管理す
れば、2つのシミュレータ間におけるメッセージ送信の
衝突が避けられる。
【0067】各シミュレータがそれぞれのターゲットプ
ログラムを実行中に他のプロセッサとの結合を開始する
トリガ、すなわち他のシミュレータとの通信開始のトリ
ガは、通信開始トリガ設定部30−1、30−2等が実
行するコマンドにより設定される。シミュレータAにお
けるトリガ設定のの具体例を図12に示す。
【0068】図12のシミュレータAの疑似メモリ24
−1には、データとプログラムが格納されており、プロ
セッサAシミュレーション部22−1はデータを用いて
プログラムを実行する。コマンド実行部25−1の通信
開始トリガ設定部30−1は、実行アドレストリガ設定
部74、アクセスアドレストリガ設定部75、及び条件
トリガ設定部76を有する。
【0069】実行アドレストリガ設定部74は、疑似メ
モリ24−1の特定のプログラムアドレス、例えばxx
xx等を通信開始トリガとして指定し、実行アドレスト
リガテーブル71に登録する。アクセスアドレストリガ
設定部75は、疑似メモリ24−1の特定範囲のデータ
アドレス、例えばaaaaからbbbbまでの範囲等を
通信開始トリガとして指定し、アクセスアドレストリガ
テーブル72に登録する。
【0070】また条件トリガ設定部76は、プロセッサ
Aが特定の状態になった場合を通信開始トリガとして指
定し、条件トリガテーブル73に登録する。例えば図1
2では、データアドレスeeeeが0xffになったと
きに通信を開始することがトリガ条件として登録されて
いる。ある変数値が特定の値になることをトリガ条件と
して条件トリガテーブル73に登録してもよい。
【0071】また、タイムアウトをトリガ条件として条
件トリガテーブル73に登録しておくこともある。この
場合、コマンド実行や命令実行、あるいは他のシミュレ
ータからのメッセージ受信等のタイミングから、特定の
クロック数が経過するとトリガ条件が成立する。
【0072】通信開始トリガ検出部28−1は、プログ
ラム実行中常に実行アドレストリガテーブル71、アク
セスアドレストリガテーブル72、及び条件トリガテー
ブル73に登録された内容をチェックしており、いずれ
かの通信開始トリガに合致する状態を検出すると、通信
部26−1に通信開始を要請する。通信部26−1はこ
れを受けて、直接あるいは間接的に他のシミュレータと
の通信を行う。
【0073】例えば実行アドレストリガテーブル71に
はプログラムアドレスxxxxが登録されているので、
プログラムロード/実行部27−1が疑似メモリ24−
1のプログラムアドレスxxxxにアクセスすると、通
信開始トリガ検出部28−1が通信部26−1を起動す
る。またアクセスアドレストリガテーブル72にはデー
タアドレスの範囲aaaa−bbbbが登録されている
ので、プログラムロード/実行部27−1が疑似メモリ
24−1のデータアドレスaaaaにアクセスすると、
通信開始トリガ検出部28−1が通信部26−1を起動
する。さらに条件トリガテーブル73には、データアド
レスeeeeが0xffになった場合が登録されている
ので、プログラム実行中にこの条件に合致すれば、通信
開始トリガ検出部28−1が通信部26−1を起動す
る。
【0074】図13はシミュレータAとシミュレータB
間の通信処理と、これに伴う結合処理の流れを示してい
る。まずシミュレータAはプロセッサBとの結合開始の
トリガを検出すると、結合処理の要求内容をメッセージ
としてシミュレータB宛に送信する。しかしシミュレー
タAとシミュレータBは独立に動作しているため、この
ままではシミュレータBにメッセージが伝達されない。
そこでシミュレータAはシグナル通信による非同期通信
を行い、メッセージが届いていることをシミュレータB
に通知する。このとき、シミュレータBのシグナル用の
フラグがインクリメントされる。
【0075】シミュレータBの通信開始トリガ検出部2
8−2は、常時シグナル用のフラグをチェックしてお
り、他のシミュレータから何らかのメッセージが届いて
いることを認識する。そこでシミュレータBは、保持し
ている他のシミュレータのメッセージキューIDを用い
て、それぞれのキューIDに対応するメッセージが届い
ているかどうかを、他のシミュレータの情報を管理して
いるテーブル(不図示)内で確認する。その結果シミュ
レータAからメッセージが届いていることが分かり、対
応するメッセージ格納領域から送信されたメッセージを
読み出す。こうしてシミュレータBは、結合処理の内容
と結合相手がシミュレータAであることを認識する。
【0076】シミュレータBは受信した結合内容に応じ
て、メモリ内容の送受、シミュレータAから要求された
コマンドの実行、自シミュレータ情報の送信等を行う。
メモリ内容の送受やコマンド実行後の返答、自シミュレ
ータ情報の送信等にはメッセージ通信を用いる。結合処
理が終了すると、シグナル用のフラグがデクリメントさ
れ、フラグが0になった時点で、結合処理の前に実行し
ていた自シミュレータのシミュレーション処理に戻り、
これを続行する。このときシミュレータAも自シミュレ
ータのシミュレーション処理に戻る。
【0077】図14は、3つのシミュレータ間における
シグナル通信処理のフローチャートである。まずシミュ
レータAにおいて、シミュレータBとの通信開始トリガ
を検出すると(ステップS21)、シミュレータAはシ
ミュレータBにシグナルを発信した後(ステップS2
2)、トリガ検出前の処理を続行する(ステップS2
3)。
【0078】ただし、シミュレータAは、シグナルを発
信する前にシミュレータBに送ったメッセージの内容に
よっては、トリガ検出前の処理を続行せずに、シミュレ
ータBからのメッセージ待ちになることがある。例え
ば、シミュレータBの状態を知りたいような場合は、シ
ミュレータBからの返答メッセージを受け取ってから、
トリガ検出前の処理を続行する。シミュレータBに対す
るコマンド実行の依頼等の場合は、待つ必要はない。
【0079】シミュレータBはシミュレータAからのシ
グナルを受信すると(ステップS24)、フラグF1を
インクリメントして(ステップS25)、シグナル受信
前に行っていた処理を続行する(ステップS26)。フ
ラグF1は、シミュレータBに属するフラグで、他のい
ずれかのシミュレータから受信したシグナルの数を表
し、その初期値は0に設定されている。
【0080】またシミュレータCにおいて、シミュレー
タBとの通信開始トリガを検出すると(ステップS2
7)、シミュレータCはシミュレータBにシグナルを発
信した後(ステップS28)、トリガ検出前の処理を続
行する(ステップS29)。
【0081】シミュレータBはシミュレータCからのシ
グナルを受信したときも(ステップS24)、シミュレ
ータAからのシグナルを受信したときと同様にフラグF
1をインクリメントする(ステップS25)。このよう
に本実施例では、シグナルの発信元がどのシミュレータ
であるかに関わらず、フラグF1をインクリメントす
る。
【0082】そして、続行処理が一区切りついた時点
で、シミュレータBはフラグF1の値をチェックし、フ
ラグF1が0より大きい場合は、メッセージを読み出
す。メッセージ通信が終了するとフラグF1をデクリメ
ントし、再びフラグF1のチェックを行う。フラグF1
が0になるまで、シミュレータBはこの処理を繰り返
す。
【0083】同様にして、プロセスを介した間接通信に
より両シミュレータ間の結合処理を行う場合もある。図
15は、シミュレータBと2つのプロセスの間における
シグナル通信処理のフローチャートである。図15のプ
ロセス62は、プロセス41と同様の構成を持つ通信処
理用のプロセスである。
【0084】まずプロセス41において、シミュレータ
Bとの通信が必要になると(ステップS31)、プロセ
ス41はシミュレータBにシグナルを発信した後(ステ
ップS32)、シミュレータBからのメッセージ待ち状
態となる(ステップS33)。
【0085】シミュレータBはプロセス41からのシグ
ナルを受信すると(ステップS34)、フラグF2をイ
ンクリメントして(ステップS35)、シグナル受信前
に行っていた処理を続行する(ステップS36)。フラ
グF2は、シミュレータBに属するフラグで、他のいず
れかのプロセスから受信したシグナルの数を表し、その
初期値は0に設定されている。
【0086】またプロセス62において、シミュレータ
Bとの通信が必要になると(ステップS37)、プロセ
ス62はシミュレータBにシグナルを発信した後(ステ
ップS38)、シミュレータBからのメッセージ待ち状
態となる(ステップS39)。
【0087】シミュレータBはプロセス62からのシグ
ナルを受信したときも(ステップS34)、プロセス4
1からのシグナルを受信したときと同様にフラグF2を
インクリメントする(ステップS35)。このように、
シグナルの発信元がどのプロセスであるかに関わらず、
フラグF2をインクリメントする。
【0088】そして、続行処理が一区切りついた時点
で、シミュレータBはフラグF2の値をチェックし、フ
ラグF2が0より大きい場合は、メッセージを読み出
し、送信元のプロセスを確認する。送信元のプロセス
(プロセス41あるいはプロセス62)とのメッセージ
通信が終了するとフラグF2をデクリメントし、再びフ
ラグF2のチェックを行う。フラグF2が0になるま
で、シミュレータBはこの処理を繰り返す。
【0089】シミュレータBは、図14のフラグF1と
図15のフラグF2のいずれがインクリメントされたか
を調べることにより、シグナルの発信元が他のシミュレ
ータかプロセスかを判定する(図5のステップS5)こ
とができる。
【0090】次に、通信時間の管理方法について説明す
る。本発明のシミュレーション装置においては、例えば
コマンド実行による結合処理により、シミュレータ間通
信に要する時間を管理し、より実機に近い動作のシミュ
レーションや性能評価を行うことができる。
【0091】図16はコマンド実行による通信時間の管
理方法を示している。シミュレータBと結合する必要が
生じると、シミュレータAは、シミュレータBに実行さ
せたいコマンドと共にその実行時間を記述したメッセー
ジをシミュレータBに送信する。プロセッサAがクロッ
クCLKAに基づいて動作し、プロセッサBがクロック
CLKBに基づいて動作するものとすると、シミュレー
タAはコマンドの実行時間を、クロックCLKBのサイ
クル数で指定して送信する。
【0092】シミュレータBはメッセージを受信して、
これを解析する。メッセージ内にはコマンドの実行時間
が指定されているので、シミュレータBは受信したコマ
ンドと実行時間をコマンドテーブル81に一旦登録す
る。そしてメッセージ受信のため中断していた自シミュ
レータの内部処理を続行し、クロックCLKBが指定さ
れたサイクル数をカウントした後に再び内部処理を中断
し、登録されたコマンドを実行する。コマンド実行後、
シミュレータAに応答内容を記述したメッセージを送信
し、内部処理を再開する。
【0093】図16のシミュレーション装置では、各シ
ミュレータ内のクロックはシミュレータ間通信の間はカ
ウントされないので、シグナル通信及びメッセージ通信
に要する時間はコマンドの実行時間に含めなくてもよ
い。従って、実際のプロセッサ間通信に要する時間を、
コマンドの実行時間として指定すればよい。
【0094】図17は、本発明のシミュレーション装置
におけるトレース情報の編集方法を示している。図17
のワークステーション21はクロックCLKCに基づい
て動作しており、プロセッサAをシミュレートするシミ
ュレータAはクロックCLKAに基づいて動作し、プロ
セッサBをシミュレートするシミュレータBはクロック
CLKBに基づいて動作している。
【0095】シミュレータAはプロセス41を介してシ
ミュレータBにデータを送信したとき、データ送信に関
するトレース情報をプロセス41に送信する。またシミ
ュレータBはデータを受信すると、データ受信に関する
トレース情報をプロセス41に送信する。その他のトレ
ース情報も随時プロセス41に送信される。
【0096】プロセス41は、クロックCLKAとクロ
ックCLKB間の周波数の違いを考慮に入れて、クロッ
クの調整を行いながらトレース情報を編集し、時間的整
合性のとれたトレース情報をトレースファイル91に出
力する。このトレース編集及び出力処理は、図4のプロ
セス処理部48の処理として作成することにより実現で
きる。
【0097】図17のトレース情報編集方法によれば、
異なる周波数のクロックで動作するシミュレータ間で同
期のとれたトレース情報を得ることができる。
【0098】
【発明の効果】本発明のマルチプロセッサシミュレーシ
ョン装置によれば、複数のシミュレータが独立して動作
する構成を採用しているため、各シミュレータの汎用性
が保持される。従って、シミュレートするマルチプロセ
ッサシステムの個々のプロセッサの種類を問わずに、各
シミュレータは個々のプロセッサのプログラム実行をシ
ミュレートすることができる。
【0099】シミュレータがマルチプロセッサシステム
を意識したシミュレーションを行う必要があるときは、
非同期通信方法により通信相手のシミュレータと同期を
とり、同期通信により情報を交換してプロセッサ間の結
合動作を疑似することができる。プロセッサ間の結合動
作を疑似する結合処理において、プロセッサ間通信の時
間を管理することにより、結合の微妙なタイミングのテ
スト/デバッグが可能になる。また結合処理の内容や共
有資源に対する競合のテスト/デバッグを行うこともで
きる。
【0100】また各シミュレータが通信に必要な他のシ
ミュレータの情報を保持しているため、任意のシミュレ
ータ間で、親プロセス(親シミュレータ)を介すること
なく柔軟に通信を行うことができる。
【0101】またテスト中に異常が起こっても、実機に
よるデバッグとは異なり、どのプロセッサに障害がある
かを切り分け、調査するのが容易である。また、シミュ
レータに性能測定機能を付加すればマルチプロセッサシ
ステムを意識した性能測定も可能になる。
【0102】さらに、プロセッサ単体の処理のシミュレ
ーションと、プロセッサ間の通信処理及び結合動作のシ
ミュレーションとが同時に行われ、シミュレーション用
の特別なプログラムやデータを作成する必要もなくな
る。
【図面の簡単な説明】
【図1】本発明のシミュレーション装置の原理構成図で
ある。
【図2】本発明のシミュレーション装置の一例を示す図
である。
【図3】本発明のシミュレータが直接通信する場合を示
す図である。
【図4】本発明のシミュレータがプロセスを介して通信
する場合を示す図である。
【図5】本発明におけるシミュレータ間通信処理のフロ
ーチャートである。
【図6】プロセッサ間の結合動作を示す図である。
【図7】本発明におけるコマンドの実行による結合処理
を示す図である。
【図8】本発明における共有メモリによる結合処理を示
す図である。
【図9】本発明におけるシミュレータ情報の伝達による
結合処理を示す図である。
【図10】本発明におけるシミュレータの起動方法を示
す図である。
【図11】本発明におけるシミュレータの持つ情報を示
す図である。
【図12】本発明における通信開始トリガの具体例を示
す図である。
【図13】本発明における通信処理と結合処理の流れを
示す図である。
【図14】本発明におけるシミュレータ間のシグナル通
信処理のフローチャートである。
【図15】本発明におけるシミュレータとプロセスの間
のシグナル通信処理のフローチャートである。
【図16】本発明における通信時間の管理方法を示す図
である。
【図17】本発明におけるトレース情報の編集方法を示
す図である。
【図18】実機を用いた従来のテスト/デバッグ方法を
示す図である。
【図19】プロセッサの代替を用いた従来のシミュレー
ション方法を示す図である。
【図20】疑似IOを用いた従来のシミュレーション方
法を示す図である。
【図21】シミュレータマネージャによる従来のシミュ
レーション方法を示す図である。
【符号の説明】
11 シミュレータ生成手段 12 プロセッサシミュレーション手段 13 通信シミュレーション手段 21 ワークステーション 22−1、22−2、22−3 プロセッサシミュレー
ション部 23−1、23−2、23−3 ターゲットプログラム 24−1、24−2、24−3 疑似メモリ 25−1、25−2 コマンド実行部 26−1、26−2 通信部 27−1、27−2 プログラムロード/実行部 28−1、28−2 通信開始トリガ検出部 29−1、29−2、47 共有メモリ 30−1、30−2 通信開始トリガ設定部 31−1、31−2 他コマンド実行部 32−1、32−2 シミュレータ間非同期通信部 33−1、33−2 シミュレータ間同期通信部 34−1、34−2 プロセス非同期通信部 35−1、35−2 プロセス同期通信部 41、62 プロセス 42 シミュレータ通信部 43 非同期通信部 44 同期通信部 45 通信トリガ処理部 46 共有メモリ管理部 48 プロセス処理部 51−1、51−2 ハードウェア 61 ターミナル 71 実行アドレストリガテーブル 72 アクセスアドレストリガテーブル 73 条件トリガテーブル 74 実行アドレストリガ設定部 75 アクセスアドレストリガ設定部 76 条件トリガ設定部 81 コマンドテーブル

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサが結合して同時に動作
    するシステムのシミュレーションを行う装置であって、 前記複数のプロセッサの各々が他のプロセッサとの間で
    行う通信処理と、前記複数のプロセッサの各々が前記通
    信処理に依らずに行う内部処理とを同時にシミュレート
    し、 前記通信処理のシミュレーションに必要な通信相手に関
    する識別情報を個別に有する、 互いに独立して動作する複数のシミュレータを生成する
    シミュレータ生成手段(11)を備えることを特徴とす
    るマルチプロセッサシミュレーション装置。
  2. 【請求項2】 前記シミュレータ生成手段(11)は、
    単一の情報処理装置に設けられることを特徴とする請求
    項1記載のマルチプロセッサシミュレーション装置。
  3. 【請求項3】 前記複数のシミュレータが共有する共有
    メモリをさらに備え、 前記複数のシミュレータは、前記共有メモリにアクセス
    することにより、前記通信処理をシミュレートすること
    を特徴とする請求項1記載のマルチプロセッサシミュレ
    ーション装置。
  4. 【請求項4】 前記通信処理のシミュレーションは、前
    記複数のシミュレータとは独立に動作するプロセスを介
    して行われることを特徴とする請求項1記載のマルチプ
    ロセッサシミュレーション装置。
  5. 【請求項5】 前記複数のプロセッサは共通バスを介し
    て結合され、前記プロセスは前記共通バスによる前記複
    数のプロセッサ間の結合をシミュレートすることを特徴
    とする請求項4記載のマルチプロセッサシミュレーショ
    ン装置。
  6. 【請求項6】 複数のプロセッサが結合して同時に動作
    するシステムのシミュレーションを行う装置であって、 複数のプロセッサの各々が他のプロセッサとの間で行う
    通信処理のシミュレーションに必要な通信相手に関する
    識別情報を有するシミュレータを生成するシミュレータ
    生成手段(11)と、 前記シミュレータに前記通信処理のシミュレーションを
    行わせる通信シミュレーション手段(13)と、 を単一の情報処理装置に備えることを特徴とするマルチ
    プロセッサシミュレーション装置。
  7. 【請求項7】 前記複数のプロセッサの各々が前記通信
    処理に依らずに行う内部処理のシミュレーションを前記
    シミュレータに行わせるプロセッサシミュレーション手
    段(12)をさらに備えることを特徴とする請求項6記
    載のマルチプロセッサシミュレーション装置。
  8. 【請求項8】 複数のプロセッサが結合して同時に動作
    するシステムのシミュレーションを行う情報処理装置に
    おいて、 前記複数のプロセッサの各々が他のプロセッサとの間で
    行う通信処理と、前記複数のプロセッサの各々が前記通
    信処理に依らずに行う内部処理とを同時にシミュレート
    し、互いに独立して動作する複数のシミュレータを生成
    するシミュレータ生成手段(11)と、 前記通信処理のシミュレーションにおいて、前記各々の
    シミュレータが、他のシミュレータに前記通信処理の内
    容を伝達する同期通信処理と、前記他のシミュレータに
    前記同期通信処理の開始を通知する非同期通信処理とを
    行う通信シミュレーション手段(13)と、 を備えることを特徴とするマルチプロセッサシミュレー
    ション装置。
  9. 【請求項9】 前記同期通信処理と前記非同期通信処理
    は、前記複数のシミュレータとは独立に動作するプロセ
    スを介して行われることを特徴とする請求項8記載のマ
    ルチプロセッサシミュレーション装置。
  10. 【請求項10】 複数の装置をシミュレートする複数の
    シミュレータが同時に動作する情報処理装置において、 前記複数のシミュレータの各々と他のシミュレータとの
    間で通信処理を行わせる通信シミュレーション手段(1
    3)と、 前記複数のシミュレータの各々に前記通信処理に依らな
    い内部処理を行わせる内部シミュレーション手段(1
    2)とを有し、 前記複数のシミュレータが、前記通信処理のシミュレー
    ションに必要な通信相手に関する識別情報を個別に有
    し、互いに独立して動作することを特徴とするシミュレ
    ーション装置。
  11. 【請求項11】 前記各々のシミュレータは、前記通信
    処理と前記内部処理を同時に行うことを特徴とする請求
    項10記載のシミュレーション装置。
  12. 【請求項12】 複数の装置をシミュレートする複数の
    シミュレータが同時に動作する情報処理装置において、 前記複数のシミュレータの各々が他のシミュレータとの
    間で行う通信処理において、前記各々のシミュレータ
    が、他のシミュレータに前記通信処理の内容を伝達する
    同期通信処理と、前記他のシミュレータに前記同期通信
    処理の開始を通知する非同期通信処理とを行う通信シミ
    ュレーション手段(13)を備え、前記複数のシミュレ
    ータは互いに独立して動作することを特徴とするシミュ
    レーション装置。
  13. 【請求項13】 複数の装置をシミュレートする複数の
    シミュレータが同時に動作する情報処理装置において、 通信相手に関する識別情報を有し、互いに独立して動作
    する前記複数のシミュレータの各々と他のシミュレータ
    との間で通信処理を行わせる通信シミュレーション手段
    (13)と、 前記複数のシミュレータの各々に前記通信処理に依らな
    い内部処理を行わせる内部シミュレーション手段(1
    2)とを有し、 前記複数のシミュレータの1つにプログラムを実行さ
    せ、該プログラムのデバッグを行うことを特徴とするデ
    バッグ装置。
  14. 【請求項14】 複数のプロセッサが結合して同時に動
    作するシステムのシミュレーションにおいて、 互いに独立して動作する複数のシミュレータを生成し、 前記複数のシミュレータの各々が、 前記複数のプロセッサの各々が他のプロセッサとの間で
    行う通信処理のシミュレーションに必要な通信相手シミ
    ュレータに関する識別情報を個別に有し、 前記通信処理のシミュレーションを行うことを特徴とす
    るマルチプロセッサシミュレーション方法。
  15. 【請求項15】 前記各々のシミュレータは、前記通信
    処理のシミュレーションと、前記複数のプロセッサの各
    々が前記通信処理に依らずに行う内部処理のシミュレー
    ションとを同時に行うことを特徴とする請求項14記載
    のマルチプロセッサシミュレーション方法。
  16. 【請求項16】 前記複数のシミュレータが共有メモリ
    を共有し、 前記複数のシミュレータは、前記共有メモリにアクセス
    することにより、前記通信処理のシミュレーションを行
    うことを特徴とする請求項14記載のマルチプロセッサ
    シミュレーション方法。
  17. 【請求項17】 前記各々のシミュレータは、前記複数
    のシミュレータとは独立に動作するプロセスを介して前
    記通信処理のシミュレーションを行うことを特徴とする
    請求項14記載のマルチプロセッサシミュレーション方
    法。
  18. 【請求項18】 前記複数のプロセッサは共通バスを介
    して結合され、 前記プロセスは前記共通バスによる前記複数のプロセッ
    サ間の結合をシミュレートすることを特徴とする請求項
    19記載のマルチプロセッサシミュレーション方法。
  19. 【請求項19】 複数のプロセッサが結合して同時に動
    作するシステムのシミュレーションにおいて、 互いに独立して動作する複数のシミュレータを生成し、 前記複数のシミュレータの各々が、 前記複数のプロセッサの各々が他のプロセッサとの間で
    行う通信処理と、前記複数のプロセッサの各々が前記通
    信処理に依らずに行う内部処理とを同時にシミュレート
    し、 前記通信処理のシミュレーションにおいて、他のシミュ
    レータに前記通信処理の内容を伝達する同期通信処理
    と、前記他のシミュレータに前記同期通信処理の開始を
    通知する非同期通信処理とを行うことを特徴とするマル
    チプロセッサシミュレーション方法。
  20. 【請求項20】 前記各々のシミュレータは、前記同期
    通信処理と前記非同期通信処理を、前記複数のシミュレ
    ータとは独立に動作するプロセスを介して行うことを特
    徴とする請求項19記載のマルチプロセッサシミュレー
    ション方法。
  21. 【請求項21】 複数のシミュレータが同時に動作して
    行う複数の装置のシミュレーションにおいて、 前記複数のシミュレータの各々が、 互いに独立して動作し、 前記複数のプロセッサの各々が他のプロセッサとの間で
    行う通信処理のシミュレーションにおいて、他のシミュ
    レータに前記通信処理の内容を伝達する同期通信処理
    と、前記他のシミュレータに前記同期通信処理の開始を
    通知する非同期通信処理とを行うことを特徴とするシミ
    ュレーション方法。
  22. 【請求項22】 複数のシミュレータが同時に動作して
    行う複数の装置のシミュレーションにおいて、 前記複数のシミュレータの各々が、 互いに独立して動作し、 他のシミュレータとの通信処理に必要な通信相手に関す
    る識別情報を個別に有し、プログラムを実行することに
    より、前記通信処理と前記通信処理に依らない内部処理
    とを行い、 前記各々のシミュレータの実行結果に基づいて、前記プ
    ログラムのデバッグを行うことを特徴とするプログラム
    デバッグ方法。
JP6068648A 1994-04-06 1994-04-06 マルチプロセッサシミュレーション装置 Pending JPH07281925A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6068648A JPH07281925A (ja) 1994-04-06 1994-04-06 マルチプロセッサシミュレーション装置
US08/863,557 US5805867A (en) 1994-04-06 1997-05-27 Multi-processor simulation apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6068648A JPH07281925A (ja) 1994-04-06 1994-04-06 マルチプロセッサシミュレーション装置

Publications (1)

Publication Number Publication Date
JPH07281925A true JPH07281925A (ja) 1995-10-27

Family

ID=13379739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6068648A Pending JPH07281925A (ja) 1994-04-06 1994-04-06 マルチプロセッサシミュレーション装置

Country Status (2)

Country Link
US (1) US5805867A (ja)
JP (1) JPH07281925A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297414A (ja) * 2001-03-30 2002-10-11 Nec Corp システムシミュレータ、シミュレーション方法及びシミュレーションプログラム
EP0899659A3 (en) * 1997-08-30 2003-09-10 Sun Microsystems, Inc. An apparatus and method for simulating multiple nodes on a single machine
JP2007164781A (ja) * 2005-12-09 2007-06-28 Internatl Business Mach Corp <Ibm> クラスタ間の相互作用の整合性のある設計検証の方法およびシステム
WO2010097875A1 (ja) * 2009-02-24 2010-09-02 パナソニック株式会社 データ処理装置、方法
WO2010143381A1 (ja) * 2009-06-10 2010-12-16 パナソニック株式会社 トレース処理装置およびトレース処理システム
WO2013111451A1 (ja) * 2012-01-26 2013-08-01 株式会社日立製作所 システムシミュレーション装置
JP2019016121A (ja) * 2017-07-06 2019-01-31 日立オートモティブシステムズ株式会社 車両制御装置、及び、車両制御模擬装置

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
AU1375401A (en) * 1999-11-10 2001-06-06 Hyperchip Inc. System for performing parallel circuit simulation in a high level description language
US6718294B1 (en) * 2000-05-16 2004-04-06 Mindspeed Technologies, Inc. System and method for synchronized control of system simulators with multiple processor cores
US7062749B2 (en) * 2000-12-15 2006-06-13 Promenix, Inc. Measuring, monitoring and tracking enterprise communications and processes
US20020129336A1 (en) * 2000-12-19 2002-09-12 Bolding Joe D. Automatic symbol table selection in a multi-cell environment
US20020170038A1 (en) * 2001-05-08 2002-11-14 Bernard Yeh Method and apparatus for measuring performance of a multi-computer communication protocol on a single computer system
ITMI20010997A1 (it) * 2001-05-16 2002-11-16 Cit Alcatel Metodi per testare il software di controllo di una apparecchiatura per telecomunicazioni dotata di un controllo di tipo distribuito
JP2005128692A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd シミュレータ及びシミュレーション方法
US20050120278A1 (en) * 2003-11-19 2005-06-02 Smith Zachary S. Systems and methods for verifying lockstep operation
US20050114735A1 (en) * 2003-11-20 2005-05-26 Smith Zachary S. Systems and methods for verifying core determinacy
US20050154573A1 (en) * 2004-01-08 2005-07-14 Maly John W. Systems and methods for initializing a lockstep mode test case simulation of a multi-core processor design
US20060070042A1 (en) * 2004-09-24 2006-03-30 Muratori Richard D Automatic clocking in shared-memory co-simulation
US7742905B2 (en) 2005-02-25 2010-06-22 Coware, Inc. Method and system for dynamically adjusting speed versus accuracy of computer platform simulation
US7716031B2 (en) * 2005-02-25 2010-05-11 Coware, Inc. Interface converter for unified view of multiple computer system simulations
US7380168B2 (en) * 2005-06-30 2008-05-27 Intel Corporation System development tool
JP2007102632A (ja) * 2005-10-06 2007-04-19 Fanuc Ltd シミュレーション装置
US7711534B2 (en) * 2005-12-09 2010-05-04 International Business Machines Corporation Method and system of design verification
US9367493B2 (en) * 2005-12-09 2016-06-14 Globalfoundries Inc. Method and system of communicating between peer processors in SoC environment
GB0604859D0 (en) * 2006-03-10 2006-04-19 Imperas Inc Fast multi-processor cycle accurate simulation
US9317636B1 (en) * 2006-12-11 2016-04-19 Synopsys, Inc. System and method for stopping integrated circuit simulation
US8423959B1 (en) 2006-12-11 2013-04-16 Synopsys, Inc. Techniques for coordinating and controlling debuggers in a simulation environment
US8397220B1 (en) 2007-02-12 2013-03-12 Synopsys, Inc. Simulation control techniques
US8438609B2 (en) * 2007-03-22 2013-05-07 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
US20080234998A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Coordinating instances of a thread or other service in emulation
US20080235000A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing security control practice omission decisions from service emulation indications
US9378108B2 (en) * 2007-03-22 2016-06-28 Invention Science Fund I, Llc Implementing performance-dependent transfer or execution decisions from service emulation indications
US20080235001A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing emulation decisions in response to software evaluations or the like
US9558019B2 (en) 2007-03-22 2017-01-31 Invention Science Fund I, Llc Coordinating instances of a thread or other service in emulation
US8874425B2 (en) 2007-03-22 2014-10-28 The Invention Science Fund I, Llc Implementing performance-dependent transfer or execution decisions from service emulation indications
US8495708B2 (en) * 2007-03-22 2013-07-23 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
WO2015133786A1 (ko) * 2014-03-03 2015-09-11 엘지전자 주식회사 차량용 인포테인먼트 시스템과 이동 단말기의 공용 어플리케이션 개발을 위한 동작 검증 방법
US9952887B2 (en) * 2014-06-23 2018-04-24 Vmware, Inc. Device simulation in a secure mode supported by hardware architectures
US11042681B1 (en) * 2017-03-24 2021-06-22 Ansys, Inc. Integrated circuit composite test generation
CN116841691B (zh) * 2023-06-15 2024-07-26 海光信息技术股份有限公司 加密硬件的配置方法、数据机密计算方法及相关设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02208740A (ja) * 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
JPH04367963A (ja) * 1991-06-15 1992-12-21 Hitachi Ltd 共有記憶通信方法
US5446915A (en) * 1993-05-25 1995-08-29 Intel Corporation Parallel processing system virtual connection method and apparatus with protection and flow control

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0899659A3 (en) * 1997-08-30 2003-09-10 Sun Microsystems, Inc. An apparatus and method for simulating multiple nodes on a single machine
JP2002297414A (ja) * 2001-03-30 2002-10-11 Nec Corp システムシミュレータ、シミュレーション方法及びシミュレーションプログラム
JP2007164781A (ja) * 2005-12-09 2007-06-28 Internatl Business Mach Corp <Ibm> クラスタ間の相互作用の整合性のある設計検証の方法およびシステム
WO2010097875A1 (ja) * 2009-02-24 2010-09-02 パナソニック株式会社 データ処理装置、方法
WO2010143381A1 (ja) * 2009-06-10 2010-12-16 パナソニック株式会社 トレース処理装置およびトレース処理システム
CN102119380A (zh) * 2009-06-10 2011-07-06 松下电器产业株式会社 跟踪处理装置及跟踪处理系统
US8464089B2 (en) 2009-06-10 2013-06-11 Panasonic Corporation Tracing apparatus and tracing system
CN102119380B (zh) * 2009-06-10 2014-04-02 松下电器产业株式会社 跟踪处理装置及跟踪处理系统
WO2013111451A1 (ja) * 2012-01-26 2013-08-01 株式会社日立製作所 システムシミュレーション装置
JP2019016121A (ja) * 2017-07-06 2019-01-31 日立オートモティブシステムズ株式会社 車両制御装置、及び、車両制御模擬装置

Also Published As

Publication number Publication date
US5805867A (en) 1998-09-08

Similar Documents

Publication Publication Date Title
JPH07281925A (ja) マルチプロセッサシミュレーション装置
CN117422026B (zh) 一种基于risc-v架构的处理器验证系统
CA2225057C (en) Method and apparatus for testing software
US6718294B1 (en) System and method for synchronized control of system simulators with multiple processor cores
US6011920A (en) Method and apparatus for debugging applications on a personality neutral debugger
US5047926A (en) Development and debug tool for microcomputers
JPH11296404A (ja) 物理的および/またはシミュレ―トされたハ―ドウエアを含み、エンベットされたマイクロプロセッサ・システムをテストするシステムおよび方法
JPH06348530A (ja) コンピュータシステムの開発、検証、および、試験を遂行する可搬的方法とその装置
US5857091A (en) Machine and method for simulating a processor-based digital system
US7873498B2 (en) Remote hardware inspection system and method
EP0062978A2 (en) Apparatus for assisting fault-finding in data processing systems
CN119201357B (zh) 计算机系统
JPH07248941A (ja) デバッグ支援装置
Matelan The FLEX/32 multicomputer
JP3362349B2 (ja) エミュレーション方法およびエミュレータ装置
CN118313325A (zh) 一种基于qemu虚拟环境的星载计算机cmu模拟器设计方法
US7079999B2 (en) Bus simulation apparatus and bus simulation program
JP2913991B2 (ja) リアルタイム・システム・デバッグ装置
JP3085730B2 (ja) 複合cpuシステムの並列シミュレーション方式
JP2728002B2 (ja) 組み込みソフトウェアデバッグ支援装置
Barklow et al. SLAC Scanner Processor applications in the data acquisition system for the upgraded Mark II detector
JPS63177231A (ja) 並列プログラムデバグ方式
JP3424548B2 (ja) 組み込み機器用ソフトウエア論理シミュレータ
Lebedev et al. Test environment for verification of multi-processor interrupt system with virtualization support
JP2575025B2 (ja) インサ−キット・エミュレ−タ

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010814