Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3131098B2 - シミュレータ - Google Patents
[go: Go Back, main page]

JP3131098B2 - シミュレータ - Google Patents

シミュレータ

Info

Publication number
JP3131098B2
JP3131098B2 JP06179458A JP17945894A JP3131098B2 JP 3131098 B2 JP3131098 B2 JP 3131098B2 JP 06179458 A JP06179458 A JP 06179458A JP 17945894 A JP17945894 A JP 17945894A JP 3131098 B2 JP3131098 B2 JP 3131098B2
Authority
JP
Japan
Prior art keywords
program
address
simulator
execution
instruction
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.)
Expired - Fee Related
Application number
JP06179458A
Other languages
English (en)
Other versions
JPH07249012A (ja
Inventor
義明 片山
真砂美 鈴木
▲隆▼ 金子
浩子 喜多山
和正 竹田
清史 小川
由美 川辺
栄 浅岡
保 井上
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 JP06179458A priority Critical patent/JP3131098B2/ja
Publication of JPH07249012A publication Critical patent/JPH07249012A/ja
Application granted granted Critical
Publication of JP3131098B2 publication Critical patent/JP3131098B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子交換機などの計算
機システムの動作(プログラムの実行)のシミュレーシ
ョン(模擬試験)を行って、その動作を検証するシミュ
レータに関する。
【0002】
【従来の技術および発明が解決しようとする課題】計算
機システムの開発にあたっては、プログラムの評価試験
あるいはデバッグ等のためにシミュレータが用いられ
る。このシミュレータは、シミュレーション(模擬試
験)対象の計算機システムの構成等に起因して以下に述
べるような種々の問題がある。
【0003】(1)多重プロセッサ計算機システムのプ
ログラム・シミュレーション方式 複数のプロセッサで動作する多重プロセッサ計算機シス
テム(以下、単に多重プロセッサシステムと記する)の
プログラムの動作環境をクロスデバッガで単一のワーク
ステーション等により模擬する手法である。図25はこ
の多重プロセッサシステムのプログラム・シミュレーシ
ョンを行う従来のシミュレータの構成を概念的に示す図
である。このシミュレータは図に示す単一のワークステ
ーション10により実現されている。また、このシミュ
レータが模擬する対象の計算機システムは、複数のプロ
セッサPi 〜Pn を持ち、各プロセッサPi 〜Pn 間で
のプロセッサ間通信は情報通信装置により行って、多重
プロセッサ構成により処理を行っている。
【0004】図25において、1はシミュレータの全体
の動作を制御する主制御プロセスPCc 、2はプロセッ
サ模擬プロセス群であり、このプロセッサ模擬プロセス
群2を構成する各プロセスPCi 〜PCn はそれぞれ模
擬対象のプロセッサPi 〜Pn のプログラムを実行する
ためのプロセスであって、それ自体で自己完結的な動作
を行うものである。すなわち、このシステムでは、単一
プロセッサ毎に模擬動作を行うプロセスをプロセッサの
台数分発生させて多重動作を行っている。プロセッサ間
通信模擬プロセスPCP は実際の多重プロセッサシステ
ムにおいてプロセッサ間通信を行う情報通信装置のプロ
セッサPp を模擬するためのプロセスであり、シミュレ
ータにおいて各プロセッサPi 〜Pn に対応するプロセ
スPCi〜PCn および主制御プロセスPCc 間の通信
をプロセス間通信により行うことで、実際のプロセッサ
i 〜Pn 間でのプロセッサ間通信を模擬するものであ
る。また4はプロセスの実行動作を行うオペレーティン
グ・システム(OS)である。
【0005】このシミュレータでは、模擬対象の多重プ
ロセッサシステムの各プロセッサに対して、シミュレー
タ内において一つのプロセッサに対して一つのプロセス
が1対1に対応するようにして、複数のプロセスを生成
し、各プロセスがそれに対応するプロセッサの動作を模
擬することにより対象システムの動作を模擬している。
このような方式は、プロセッサの動作の模擬がプロセス
毎に自己完結的に実行可能であるため実現が簡単であ
り、実際の多重プロセッサシステムの動作に近い形で模
擬が可能である。
【0006】しかしながら、この方式のシミュレータに
は以下のような問題点がある。 複数のプロセスを単一のワークステーション上で動
作させるため、プロセスの実行動作を司るOSにかかる
負担が大きく、実行動作時間のオーバヘッドが大きい。 実際のシステムにおけるプロセッサ間通信をプロセ
ス間通信にて模擬しているが、一般にこのプロセス間通
信はそれを実施するための処理負担が大きい。このた
め、例えばプロセッサ間の情報通信装置を経由してプロ
グラムのローディングを実施している計算機システムで
は、ファイル立上げ時などには各プロセッサが膨大な量
のファイルをローディングするので、これをシミュレー
タで模擬する場合、プロセス間データ交換によりこのロ
ーディングを実施することになり、その結果、そのロー
ディング量が膨大となり、よって処理時間も膨大とな
る。
【0007】(2) 実行レベル 電子交換機などの多重プロセッサシステムでは、通常、
各プロセッサは複数のプログラム処理を並行して実行し
ており、これらのプログラム処理には実行優先度が付け
られている。このため、プロセッサの実行は一定時間t
(例えば8ms)毎に割込みを発生させ、その間に上位
実行レベルのプログラム処理から下位実行レベルのプロ
グラム処理までを行い、全ての処理が一定時間t内に終
了すれば、後はホルト(HALT)状態にして次の割込
みが発生するまで処理を中断する。
【0008】図26はこの状態を説明する図である。こ
こでは多重プロセッサシステム内に複数のプロセッサP
i 、Pj 、Pk が存在し、各プロセッサで処理されるプ
ログラム処理は上位実行レベルH、中位実行レベルL、
下位実行レベルBの3種類がある。そして、一定時間t
毎にクロック割込みが発生し、このクロック割込みに対
して各プロセッサは上位実行レベルHのプログラム処理
から実行し、それが一区切り終了すると、更に下位のプ
ログラム処理を順次に実行するようにしており、全ての
プログラム処理が終了するとホルト状態になる。
【0009】かかる多重プロセッサシステムをシミュレ
ータで模擬する場合、全てのプロセッサがホルト状態に
なっている時にこれをそのまま模擬することは無意味で
あって無駄な動作となり、シミュレータの処理時間をい
たずらに長くするだけであるので、全プロセッサがホル
ト状態になった状態の模擬はスキップさせて行わないこ
とが望ましい。しかしながら、シミュレータにおいて模
擬対象の各プロセッサ対応にプロセスを生成する前述の
模擬手法では、全てのプロセッサがホルト状態になった
ことを知るためには、各プロセスがホルト状態になった
ことをプロセス間通信で互いに通知しなければならず、
処理が複雑になる。 (3) 処理のスキップ 図27には従来方式によるシミュレータの概念図が示さ
れる。図中、27は二次記憶装置としてのバックアップ
メモリ、28はシミュレータ内の主記憶、29は試験対
象のプログラムAを保持する試験対象メモリ、30は試
験対象メモリ29内のプログラムAの模擬試験を行うシ
ミュレータ・プログラムである。
【0010】バックアップメモリ27の内部にはメイン
プログラム、サブプログラムAAA、BBB、CCC等
により構成される模擬対象のプログラムAが記憶されて
いる。バックアップメモリ27から試験対象メモリ29
にプログラムAを引き上げるためには、まず主記憶にロ
ードされたブートストラップ・プログラムの引上げ命令
によりバックアップメモリ27内のプログラムAを順次
に主記憶28に引き上げていくとともに、同じプログラ
ムAを試験対象メモリ29にも保持する。シミュレータ
・プログラム30はこの試験対象メモリ29のプログラ
ムAを逐次に実行することで模擬を行う。さて、このシ
ミュレータ・プログラム30で模擬を実行する時には、
下記の理由によりプログラムA中の特定の機能を実行し
ない場合がある。
【0011】 試験対象のプログラムAのうちの特定
部分のみを試験したいため、残りの余分な部分の処理を
スキップして模擬の高速化を図る。 プログラムAのうちには、実際の模擬対象システム
におけるハードウェア部分の模擬をシミュレータで行え
ないなどの理由により、模擬を実施できない部分もあ
り、そのような部分は処理をスキップして模擬の高速化
を図る。
【0012】上記のスキップを行う部分としてはサブル
ーチンであったり、メインプログラム内の一部であった
りするが、従来、このプログラムA内の処理のスキップ
は以下のような方法で行っている。
【0013】(a)プログラムAを主記憶側に引き上げ
る前に、バックアップメモリ27内においてプログラム
Aの内容を特定部分でスキップ処理が実行されるような
内容に書き換える。 (b)処理をスキップさせる命令が主記憶側に引き上げ
られる契機(例えばサブルーチンをスキップする時には
サブルーチンコール命令)を監視し、命令が引き上げら
れた後にプログラムAの動作を停止して主記憶において
命令の書換えを行う。
【0014】しかしながら、この従来方法には以下のよ
うな問題点がある。まず、上記(a)の場合、バックア
ップメモリ27側においてプログラムAを書き換えてし
まうため、オリジナルデータとしてのプログラムAの内
容が壊され、書換えの内容によってはプログラムAが動
作しなくなるという重大障害を引き起こすおそれがあ
る。また、一度書換えを行った内容を元に戻すことは容
易ではない。
【0015】また、上記(b)の場合、例えばプログラ
ムAを部分的に逐次に引き上げつつ模擬試験を行ってい
る場合には、書換えの対象とする特定部分がいつ主記憶
28に引き上げられるかを監視する必要があるなど、主
記憶28上での書換え手順が複雑になり、このためスキ
ップ処理を簡単に行うことができない。
【0016】(4) オーバレイ方式 シミュレータは計算機システムの開発にあたってプログ
ラムの評価試験やデバッグ等のために使用される。その
手法は、対象プログラムを模擬的に実行し、所望のアド
レスで当該プログラムの実行を停止したり、所望のアド
レスからプログラムのトレース(例えば表示、ファイル
保管など)を行ったり、所定のアドレスを通過すること
を確認したりすることで、プログラムのデバッグ等を効
率的に行うものである。
【0017】ところで、計算機システムにおいては記憶
管理にオーバレイ方式を採用したものが多い。このオー
バレイ方式は、プログラムを複数のプログラム単位(例
えばプログラムセグメント)からなるオーバレイ構造で
構成し、このオーバレイプログラムを二次記憶装置に格
納しておき、そのオーバレイプログラムを主記憶に引き
上げるにあったてはプログラム単位毎に主記憶のオーバ
レイ区域(overlay region) にロードするものである。
【0018】図28を参照して計算機システムにおける
一般的なオーバレイ方式を説明する。同図において、2
7は二次記憶装置としての大容量ファイルメモリ(F
M)あるいはバックアップメモリ、28は高速一時記憶
装置である主記憶である。オーバレイプログラムは複数
のプログラム単位(ここでは所定ワード数以下のプログ
ラム区分)で構成され、バックアップメモリ27にはそ
れらのプログラム単位がそれぞれのアドレスで格納され
ている。
【0019】主記憶28にはA面及びB面の2面のオー
バレイ区域(overlay region)が用意されており、オーバ
レイ引上げ命令(SIO命令の一種)が発生した時に、
バックアップメモリ27から所要のプログラム単位が読
み出されて主記憶28のオーバレイ区域のA面又はB面
の何れか一方にロードされ(引き上げられ)、この主記
憶28上のプログラム単位が適宜に実行されていく。
【0020】一方、計算機システムの評価試験やデバッ
グ等のために使用されるシミュレータでは、例えば試験
項目として所望のアドレスでプログラムを停止する場
合、停止アドレス領域およびプログラムの模擬実行を停
止するプログラム停止手段を備えており、オペレータは
対象プログラムを停止させたいアドレスとしてバックア
ップメモリ上のアドレスをプログラム実行前あるいはプ
ログラム実行中に必要に応じて入力・指定することによ
り、これが停止アドレス領域に設定され、プログラム実
行中にその実行アドレスが当該停止アドレスに達した時
点で、プログラム停止手段によりプログラムの実行が停
止される。この後、アドレスのトレースあるいはメモリ
内容の表示等の、オペレータにより事前または事後に指
定された所定の処理を実行することにより、デバック等
に必要なデータを収集等する。
【0021】しかし、従来のシミュレータを用いてオー
バレイ方式を採用した計算機システムのデバッグ等を行
う場合、オーバレイプログラムのプログラム単位が引き
上げられるべき主記憶のオーバレイ区域は、そのプログ
ラム単位が引き上げられる時に決定されるものであるた
め、当該プログラム単位がロードされる主記憶上のアド
レスを事前に認識することはできない。
【0022】このため、オペレータは対象プログラムを
停止させる主記憶上のアドレスを事前に入力・指定する
ことができず、このため、オーバレイプログラム中のプ
ログラム単位がロードされる毎にこれらの主記憶上のア
ドレスを調べて手作業で入力・指定するなどしてデバッ
グを行うことになるが、この作業は非常に煩雑となる。
特に、オーバレイプログラム中の一のプログラム単位か
ら他のプログラム単位を起動する場合などがあり、その
場合にはさらに主記憶のオーバレイ区域の当該一のプロ
グラム単位に換えて当該他のプログラム単位が二次記憶
装置からオーバレイされるようなことも生じ、作業が極
めて複雑化し非効率的であった。
【0023】(5) 入出力装置模擬 入出力装置とのアクセスを制御するプログラムの模擬試
験のために、実際に入出力装置がなくとも対象プログラ
ムを擬似的に走行できるシミュレータがある。このシミ
ュレータは、実際の入出力装置の種類に対応した擬似手
段を持つもので、擬似対象の入出力装置のメモリ空間を
シミュレータ内部の記憶装置上のメモリ空間を使用して
実現するとこで、当該入出力装置の擬似を行う。
【0024】図29の(A)はかかるシミュレータの構
成例を示すものである。シミュレータは命令実行手段と
入出力(IO)装置擬似手段とで構成され、入出力装置
擬似手段はその内部に入出力装置メモリ空間を持つ。命
令実行手段は対象プログラムを逐次的に実行し、その対
象プログラムが入出力装置のメモリ空間へアクセスを行
うと、実際の入出力装置ではなく入出力装置擬似手段の
メモリ空間にアクセスされるようにしている。
【0025】しかしながら、この擬似方式には以下のよ
うな問題がある。 図29の(B)に示されるように、擬似対象の入出
力装置のメモリ空間と同等サイズのメモリ空間がシミュ
レータ内部の記憶装置に必要となる。このため、擬似対
象の入出力装置が例えば光磁気ディスク装置のようにメ
モリ空間が巨大である場合、シミュレータ内部の記憶装
置に同等のメモリ空間を確保することは現実的に困難と
なる。
【0026】 また、たとえ光磁気ディスク装置のメ
モリ空間と同等サイズのメモリ空間をシミュレータ内部
の記憶装置上に確保できた場合であっても、そのメモリ
空間は巨大であるため、アドレス検索に時間がかかり、
模擬試験の処理速度が低下する。
【0027】 シミュレータによる対象プログラムの
模擬試験においては、擬似対象の入出力装置のメモリ空
間を全ては使用しない場合があるが、その場合にも従来
方式では、擬似対象の入出力装置のメモリ空間と同等サ
イズのメモリ空間をシミュレータ内部の記憶装置に確保
しなければならず、このため、シミュレータの使用でき
るメモリ容量を圧迫し、メモリ容量不足や処理速度の低
下を引き起こす。
【0028】(6) プログラム論理の正常正検証 従来のシミュレータでは、プログラム論理の正常性(す
なわち論理矛盾の有無)を検証するために、以下の方法
が用いられている。 試験対象プログラムに検証用のサポートプログラム
を組み込む。 試験対象プログラムの走行を、シミュレータ外部に
付加した監視装置(モニタ)により監視し、その走行情
報(走行履歴など)を収集する。
【0029】しかしながら、の方法では、試験対象プ
ログラム毎にサポートプログラムを作り込む必要があ
り、作製工数が多くかかってしまう。また、の方法で
は、監視装置を購入するか、若しくは借用する必要があ
り、シミュレータの試験環境の整備に問題がある。ま
た、通常、収集する走行情報は膨大な量となり、この走
行情報の中から障害原因を究明することは容易ではな
く、また障害の解析には解析者の経験が豊富でないと、
障害原因の究明は実質的に難しいことが多い。
【0030】例としてプログラム実行レベル間の競合に
よる論理矛盾がある場合を説明する。図30はこのプロ
グラム実行レベル間競合を説明する図である。計算機シ
ステムは同じプログラムAが高レベルと低レベルで並行
して実行される場合があり、この場合、低レベルのプロ
グラムを処理中に高レベルのプログラムに起動がかかる
と、高レベルのプログラムのほうが優先されることにな
り、低レベルのプログラムは処理中断され、高レベルの
プログラムの処理終了後に、低レベルのプログラムは中
断した処理を再開するようになっている。
【0031】図30の(A)はこのようなプログラム実
行レベル間の競合を正常処理した場合を示すものであ
る。プログラムAは高レベルと低レベルで同じメモリを
用いてデータの読出し/書込みを行っている。このた
め、低レベルのプログラムAがメモリに対してアクセス
する際には、そのメモリを使用中は、高レベルのプログ
ラムAにより処理を中断されないように割込み禁止設定
をし、使用終了後に割込み禁止解除をして、高レベルの
プログラムAが当該メモリを重複して使用してしまうこ
とがないようにしている。
【0032】もし上記のような割込み禁止(マスク)が
されていない場合には、例えば図30の(B)に示すよ
うに、低レベルのプログラムAがメモリにデータ“0”
を書き込んだ後に、高レベルのプログラムAが割り込ん
で処理を開始して当該メモリの内容を“0”から“1”
に書き換えてしまうと、高レベルのプログラムAの処理
終了により低レベルのプログラムAが処理再開した時に
は、当該メモリの内容を読みにいっても、その内容は低
レベルプログラムにとって真の“0”から偽データであ
る“1”に書き換えられてしまっているため、データ値
矛盾によるシステム異常が発生するおそれがある。
【0033】従来のシミュレータはかかるプログラム走
行レベル間の競合によるシステム異常の検出時には、そ
の論理矛盾の原因を究明するためには以下にあげる方法
を採っている。
【0034】 シミュレータ外部に設けたプログラム
走行履歴収集装置により収集した全走行履歴情報から、
高/低の両方のレベルで実行されるプログラムについ
て、実行レベルの高いプログラムの割込みを禁止(マス
ク)する処理が組み込まれているかどうかをトレースし
て調べる。
【0035】 システム異常時のシステム状態(例え
ばメモリ内容の破壊状況)あるいは破壊されたデータに
着目して、試験者がその経験とノウハウに基づき、外部
走行履歴収集装置で収集したトレース結果等から原因が
レベル間競合であることを推測する。
【0036】しかしながら、上記の方法では、全プロ
グラムの走行履歴が必要であるが、その量は膨大であ
り、かかる膨大なデータ量の中から当該プログラムの割
込みマスク処理の欠落を検出することが必要となり、よ
って迅速な原因究明は実質的に困難である。また、上記
の方法では、経験の浅い試験者がシステム異常時にそ
の原因が割込みマスク設定処理の欠落であることを究明
することは、やはりこれも現実的に難しい。よって、迅
速な対応をとることができず、試験効率の向上を妨げて
いる。また、上記手法はシステム異常があってからその
原因究明を行うものであるから、その時点ではメモリ内
容が破壊されてしまっており、その復帰が困難になる場
合も予測される。
【0037】 (7) 相反する処理速度とデバッグ機能 現在、プログラムシミュレーション方式においては、以
下の2点の性能がユーザに重視されている。 シミュレータ自体の処理速度(処理能力)が高いこ
と。 各種デバック機能(プログラムトレース機能、デー
タトレース機能など)を有していること。
【0038】ここで、とは、相反する面があり、
のデバック機能の種類を増やしてデバックを充実させる
と、それに比例してのシミュレータ自体の処理能力は
低下してしまう。
【0039】図31、図32は従来方式を説明する図で
ある。従来のシミュレータプログラムは、図31に示す
ように主としてシミュレータコマンド制御機能60’と
被試験システム擬似機能62’で構成され、被試験シス
テム擬似機能62’は被試験システム基本部擬似機能、
機械命令擬似機能、デバック機能、シミュレート停止機
能を含む。図32に示すように、シミュレータコマンド
機能はシミュレータのコマンド処理を行い、被試験シス
テム擬似機能62’は、被試験システム擬似処理を行っ
た後および機械命令が実行された後に、それぞれ所要の
デバッグ機能1、2、・・・i、nを動作させるか否か
判断して、動作させる場合に該当デバッグ機能を実施し
ている。この被試験システム擬似機能62’は1機械命
令ずつ上記判断処理を行いつつデバッグを実施する。
【0040】このように従来方式は、1機械命令を実行
する毎に、その1機械命令に関してデバッグ機能を動作
させるか否かを一々判断しているため、たとえデバッグ
機能を実際には実施しない場合であっても、その実施有
無の判断処理に時間を要することになる。このため、特
にデバッグ機能の種類が増えてくると、デバッグ機能を
実際に実施したか否かにかかわらず、判断処理に要する
時間に起因してシミュレータの速度が遅くなってしま
う。
【0041】特に、従来方式では、各デバッグ機能が動
作する被試験システム擬似部分の制御ルート(図32中
の処理の帰還ループ)は機械命令を一つずつ実行するご
とに常に動作する部分であるから、たとえ一つの判定処
理のステップが加わることによってもそれが各機械命令
毎に繰り返し実行されるものであるため、プログラム全
体を試験する場合にはその総計数は多大となり、シミュ
レータのレスポンス(処理能力)を低下させる。
【0042】さらに、被試験システムの立上げ時には、
通常、その立上げ部分のプログラムは既にデバッグ済み
であるなどの理由で各種デバッグ機能を使用する必要が
ない場合が多いが、従来方式ではかかる場合にもデバッ
グ機能実施有無の判定処理やデバッグ機能を実施したり
していたため、非効率的であり、かかる立上げ時間の短
縮がユーザの要求として大きかった。
【0043】本発明は以上のような諸問題点(1)〜
(7)に鑑みてなされたものであり、これらの問題点
(1)〜(7)をそれぞれ解決するシミュレータを提供
することを目的とする。
【0044】
【課題を解決するための手段および作用】本発明におい
ては、上述の問題点(1)を解決するために、多重プロ
セッサシステムの動作を模擬試験するシミュレータであ
って、該模擬対象の多重プロセッサシステムの各プロセ
ッサの命令を所定量ずつ順次に時分割で実行するプロセ
ッサ命令模擬手段と、該多重プロセッサシステムのプロ
セッサ間通信の動作を模擬するプロセッサ間通信模擬手
段と、該多重プロセッサシステムの各プロセッサにそれ
ぞれ対応して資源を割り当て、各プロセッサの各自資源
に対するアクセスの切替えを管理する模擬資源管理手段
と、該プロセッサ命令模擬手段による各プロセッサの命
令の順次実行および該プロセッサ間通信模擬手段による
プロセッサ間通信動作の命令実行を、該模擬資源管理手
段により現に模擬を実行中のプロセッサに対し順次に資
源を割り当てつつ、周期的に行うよう制御する主制御手
段とを備え、上記各手段の実行は単一プロセスにより行
われるように構成したシミュレータが提供される。
【0045】このシミュレータでは、各プログラムの動
作の模擬試験は単一のプロセスで行われるため、OSに
かかる負担を削減することができる。
【0046】また、上述のシミュレータでは、該プロセ
ッサ間通信模擬手段は、プロセッサ間でのプロセッサ間
通信を当該プロセッサに割り当てられたメモリ資源間で
のデータの複写により実現するように構成できる。
【0047】これにより従来方式のようにプロセッサ間
通信をプロセス間通信で模擬する必要がなくなり、高速
かつ簡単にプロセッサ間通信を模擬できる。
【0048】また、前述の問題点(2)を解決するため
に、上述のシミュレータでは、該主制御手段は、模擬し
ている多重プロセッサシステムの各プロセッサが全てホ
ルト状態になる時には、割込みを発生して該各プロセッ
サの模擬を再開するように構成できる。
【0049】これにより、各プロセッサが全てホルト状
態であるにもかかわらず、その状態を模擬実行して無駄
に時間を費やしてしまうことを防止できる。
【0050】また、本発明においては、前述の問題点
(3)を解決するために、模擬対象プログラム中におけ
る実行を希望しないサブルーチンの主記憶上におけるア
ドレス情報を予め格納する第1のアドレス格納テーブル
と、主プログラムでのサブルーチン呼出し命令に応答し
て、該サブルーチンの実行に移行する前に、該第1のア
ドレス格納テーブルを参照し、該サブルーチン呼出し命
令に該当するサブルーチンがあったら、当該サブルーチ
ンのアドレス情報に基づいて主記憶上の当該サブルーチ
ンの内容を当該サブルーチンを実行しない内容に書き換
えた後に、主プログラムに制御を戻すサブルーチン呼出
し命令処理手段とを備えたシミュレータが提供される。
【0051】これにより、模擬対象プログラムを模擬試
験中に、その模擬対象プログラムが模擬試験の不要なサ
ブルーチンを呼び出した時には、そのサブルーチンの内
容がのサブルーチン呼出し命令処理手段により当該サブ
ルーチンを実質的に実行しない内容に書き換えられるの
で、当該サブルーチンは実質的に実行されることはな
く、したがって模擬試験を効率的に行えるようになる。
【0052】また、本発明においては、同じく前述の問
題点(3)を解決するために、模擬対象プログラム中に
おける実行を希望しない特定プログラムの主記憶上にお
けるアドレス情報を予め格納する第2のアドレス格納テ
ーブルと、二次記憶装置から主記憶へのプログラム引上
げ命令に応答して、該命令で引き上げたプログラムの実
行に移行する前に、該第2のアドレス格納テーブルを参
照し、該プログラム引上げ命令で引き上げたプログラム
の範囲内に該特定プログラムがあったら当該特定プログ
ラムのアドレス情報に基づいて主記憶上の当該特定プロ
グラムの内容を当該特定プログラムを実行しない内容に
書き換えるプログラム引上げ命令処理手段とを備えたシ
ミュレータが提供される。
【0053】これにより、模擬対象プログラムを模擬試
験中に、その模擬対象プログラムが模擬試験の不要な特
定プログラムを実行した時には、その特定プログラムの
内容がプログラム引上げ命令処理手段により当該特定プ
ログラムを実質的に実行しない内容に書き換えられるの
で、当該特定プログラムは実質的に実行されることはな
く、したがって模擬試験を効率的に行えるようになる。
【0054】上述のシミュレータでは、実行を希望しな
いプログラム部分を主記憶上で不実行に一度書き換えた
時には、該アドレス格納テーブルの該当する項目を削除
するように構成できる。
【0055】これにより、以降の処理においてアドレス
格納デーブルの検索時間を短縮することができ、また一
度書き換えたサブルーチンまたは特定プログラムに対し
て再度同じ処理を行うことを防止できるので、シミュレ
ータの処理速度を向上できる。
【0056】また、本発明においては、前述の問題点
(4)を解決するために、オーバレイ構造を持つオーバ
レイプログラムを模擬試験するシミュレータであって、
該オーバレイプログラムを構成する複数のプログラム単
位を記憶する二次記憶装置と、該オーバレイプログラム
のプログラム単位をオーバレイする主記憶と、該オーバ
レイプログラム中の注目点を該二次記憶装置上のアドレ
スで登録する注目アドレス登録手段と、該二次記憶装置
から主記憶に引き上げられたプログラム単位の二次記憶
装置上における格納アドレス情報を記憶するアドレス情
報記憶手段と、該アドレス情報記憶手段の格納アドレス
情報と該プログラム単位をロードする主記憶上のアドレ
ス情報に基づいて該注目アドレス登録手段の二次記憶装
置上のアドレスを主記憶上のアドレスに変換するアドレ
ス変換手段と、該アドレス変換手段の変換結果を該主記
憶上における該オーバレイプログラムの処理点のアドレ
スとして記憶する処理アドレス記憶手段とを備え、該主
記憶に引き上げたオーバレイプログラムの実行アドレス
が該処理アドレス記憶手段に記憶された処理点のアドレ
スに達したら所定の処理を行うように構成したシミュレ
ータが提供される。
【0057】このシミュレータでは、オペレータは試験
対象プログラム中の注目点(プログラム停止点あるいは
トレース開始点など)のアドレスを二次記憶装置上のア
ドレスで注目アドレス登録手段に登録すれば、アドレス
変換手段が当該アドレスを二次記憶装置上のアドレスか
ら主記憶装置上のアドレスに変換し、それを処理点のア
ドレスとして処理アドレス記憶手段に記憶するので、プ
ログラム単位の模擬試験を実行して当該処理点のアドレ
スに到達したら、所定の処理を開始することができる。
【0058】このシミュレータでは、一のプログラム単
位が格納されている主記憶のオーバレイ区域に他のプロ
グラム単位がオーバレイされた場合に、該一のプログラ
ム単位に対して与えられた該処理アドレス記憶手段の処
理点アドレスを無効化する手段をさらに備えることがで
きる。
【0059】これにより、当該一のプログラム単位に対
して設定された処理点アドレスで、当該他のプログラム
単位が所定の処理(例えばプログラム停止)を起こして
しまうことを防止できる。
【0060】また、このシミュレータでは、該注目アド
レス登録手段に該オーバレイプログラムの注目点のアド
レスを後から追加する注目アドレス追加手段を更に備
え、該注目アドレス追加手段により該オーバレイプログ
ラムの注目点が追加された時には、該アドレス変換手段
により該アドレスを主記憶上のアドレスに変換した上で
該処理アドレス記憶手段に記憶させるように構成でき
る。
【0061】これにより、模擬試験の対象プログラムに
対して、後からでも、所定の処理を行いたいアドレスを
追加することができる。
【0062】また、本発明においては、前述の問題点
(5)を解決するために、入出力装置を駆動するプログ
ラムを模擬試験するシミュレータであって、該入出力装
置のメモリ空間を擬似するための記憶装置と、該プログ
ラムを実行する命令実行手段と、該入出力装置のメモリ
空間を複数のブロックに仮想的に分割し、該プログラム
により該入出力装置のメモリ空間に書込みアクセスされ
た時に当該書込みアドレスが何番目のブロックに属する
かを判定するアドレス/ブロック変換手段と、該アドレ
ス/ブロック変換手段で得たブロック番号のブロックに
相応する記憶領域を該記憶装置上に確保する記憶領域確
保手段とを備え、該記憶装置上に確保した記憶領域を用
いて該入出力装置を擬似しつつプログラムの模擬試験を
行うよう構成したシミュレータが提供される。
【0063】また、本発明においては、前述の問題点
(5)を解決するために、模擬試験の対象プログラムが
入出力装置に対して書込みアクセスすると、アドレス/
ブロック変換手段が当該書込みアドレスに対応したブロ
ック番号を算出し、記憶領域確保手段がそのブロック番
号のブロックに相応する記憶領域を該記憶装置上に確保
する。これにより該記憶装置上に確保した記憶領域だけ
を用いて該入出力装置を擬似することか可能になる。
【0064】このシミュレータでは、該対象プログラム
により該入出力装置のメモリ空間に読出しアクセスされ
た時に該記憶装置上に当該読出しアドレスに対応するブ
ロックの記憶領域が確保されていない場合には、該プロ
グラムに対して書込みデータ無しのデータを返送する返
送手段を更に備えることができる。
【0065】読出しアドレスに対するブロッグ番号のブ
ロックの記憶領域が確保されていないということは、そ
の読出しアドレスにはまだ何も書き込まれていないとい
うことだから、書込みデータ無しのデータを返送する。
これにより記憶装置上に余分な記憶領域を確保する必要
がなくなる。
【0066】またこのシミュレータでは、該命令実行部
から該記憶装置に対し、各ブロック番号に属するアドレ
スを用いてアクセスすることで、該記憶装置における各
ブロック番号に相応する記憶領域の使用・未使用を管理
する手段を更に備えることができる。
【0067】これにより、記憶装置のメモリ空間に関し
ての使用・未使用の管理表を設けなくとも、その管理を
行うことが可能になる。
【0068】また、本発明においては、前述の問題点
(6)を解決するために、プログラムを模擬試験するシ
ミュレータであって、該プログラムの実行を監視して実
行履歴情報を収集する実行監視手段と、該実行監視手段
の実行履歴情報を用いてプログラム論理の正常性を検査
するプログラム論理チェック手段と、該プログラム論理
チェック手段の検査結果を出力する出力手段とを備えた
シミュレータが提供される。
【0069】これにより、デバッグの内容として、単に
実行履歴軌跡等の1次的データの収集だけでなく、プロ
グラム論理矛盾の有無などのプログラム論理の正常性を
チェックできるようになる。
【0070】このシミュレータでは、該プログラム論理
チェック手段は、模擬実行されているプログラムの実行
レベル情報を収集する実行レベル収集手段と、該実行監
視手段の実行履歴情報に基づきプログラムの起動を検知
して、当該起動されたプログラムがプログラム実行レベ
ル間競合を起こすプログラムであるか否かを該実行レベ
ル収集手段の収集情報に基づいて判定し、プログラム実
行レベル間競合を起こすプログラムである時には該プロ
グラムに割込みマスク処理があるか否かを検査する競合
照合手段とを備えることができる。
【0071】この競合照合手段によりプログラム実行レ
ベル間競合に当該プログラムに割込みマスク処理が組み
込まれているか否かを検査することで、プログラム論理
矛盾としての実行レベル矛盾があるか否かを検査でき
る。
【0072】また、本発明においては、前述の問題点
(7)を解決するために、プログラムを模擬試験するシ
ミュレータであって、該プログラムの各命令をデバッグ
機能を実施することなく模擬実行する第1の被試験シス
テム擬似機能手段と、該プログラムの各命令をデバッグ
機能を実施しつつ模擬実行する第2の被試験システム擬
似機能手段と、デバッグ機能を実施するか否かをデバッ
グ機能別に登録するデバッグ機能登録手段と、該デバッ
グ機能登録手段の内容を参照して該プログラムを該第1
の被試験システム擬似機能手段で模擬実行するか、第2
の被試験システム擬似機能手段で模擬実行するかを制御
するシミュレータコマンド制御機能手段とを備えたシミ
ュレータが提供される。
【0073】この構成によれば、シミュレータコマンド
制御機能手段は、試験対象プログラムの種別に応じてデ
バッグ機能を実施するか否かにより、第1または第2の
被試験システム擬似機能手段を選択して、対象プログラ
ムを模擬試験することができる。この選択は対象プログ
ラムを実際に模擬試験のために走行させる前に行うの
で、デバッグ機能を採用しないために第1の被試験シス
テム擬似機能手段を選択した場合には、以降の模擬試験
の処理においてデバッグ機能の有無判定が不要となり、
よってデバッグ機能を必要としない例えばシステム立上
げ時などにおいて処理速度の向上を図ることができる。
【0074】
【実施例】以下、図面を参照して本発明の種々の実施例
について説明する。図1は本発明の一実施例としてのシ
ミュレータの構成を示す図である。この実施例は複数の
プロセッサPi 〜Pn からなる多重プロセッサシステム
の動作を模擬するシミュレータであり、かかる多重プロ
セッサシステムにおける前述の問題点(1)と(2)を
解決するものである。この模擬対象の多重プロセッサシ
ステムでは、各プロセッサ間での情報のやり取りは情報
通信装置によりプロセッサ間通信を行うことで実現して
いる。また、シミュレータには模擬対象の多重プロセッ
サシステムの各プロセッサが行うプログラムや必要なデ
ータ等が予め用意されている。
【0075】図1において、1は主制御部、2はプロセ
ッサ命令模擬部、3はプロセッサ間通信模擬部、4は模
擬資源管理部、5は記憶部、6は切替え部である。ここ
で、プロセッサ命令模擬部2は、模擬対象の多重プロセ
ッサシステムの各プロセッサの命令を所定量ずつ(この
実施例では1命令ずつ)順次に時分割で実行するプログ
ラムからなる。プロセッサ間通信模擬部3は多重プロセ
ッサシステムのプロセッサ間通信の動作を模擬するプロ
グラムからなる。模擬資源管理部4は、多重プロセッサ
システムの各プロセッサにそれぞれ対応して資源を割り
当て、各プロセッサの自資源に対するアクセスの切替え
を管理するプログラムからなる。また、主制御部1は、
プロセッサ命令模擬部2による各プロセッサの命令の順
次実行およびプロセッサ間通信模擬部3によるプロセッ
サ間通信動作の命令実行を、模擬資源管理部4により現
に模擬を実行中のプロセッサに対し順次に資源を割り当
てつつ、周期的に行うよう制御するプログラムからな
る。
【0076】記憶部5は、模擬資源管理部4の配下にあ
る記憶資源であり、メモリ5a とレジスタ5b からな
り、これらのメモリ5a とレジスタ5b は各プロセッサ
c 、Pi 〜Pn にそれぞれ対応して設けられており、
模擬資源管理部4の制御のもとに切換え部6で適宜に切
り換えられるようになっている。なおここで、プロセッ
サPi 〜Pn は模擬対象の多重プロセッサシステムにお
ける各プロセッサであり、Pc はシミュレータ内におい
て模擬の全体制御を司る仮想的なプロセッサ(主制御部
1の動作を行うプロセッサに相当)である。
【0077】主制御部1は、プロセッサ命令模擬部2に
対してプロセッサPi 〜Pn の模擬実行要求を出力し、
模擬資源管理部4に対してメモリ5a とレジスタ5b を
プロセッサPc 、Pi 〜Pn のうちの現に実行中のもの
に対応するよう切り換える要求を出力し、またプロセッ
サ間通信模擬部3に対してプロセッサ間通信の模擬実行
要求を出力する。
【0078】プロセッサ命令模擬部2は模擬対象プロセ
ッサPi 〜Pn の実行する命令を模擬実施ワークステー
ション上で時分割により所定量ずつ周期的に模擬実行す
る。プロセッサ間通信模擬部3はプロセッサPc 、Pi
〜Pn 相互のプロセッサ間通信要求に対してそのプロセ
ッサ間通信の実行を模擬する。このプロセッサ間通信の
模擬は、後述するように、プロセッサ間通信を行うプロ
セッサに対応するメモリ5a とレジスタ5b 間でデータ
コピーを行う要求を模擬資源管理部4に対して行うこと
で実現している。
【0079】模擬資源管理部4はプロセッサPc 、Pi
〜Pn 対応のメモリ5a およびレジスタ5b を管理し、
プロセッサ命令模擬部2で模擬実行中のプロセッサに対
応するメモリ5a とレジスタ5b にアクセスが切り替わ
るよう切換え部6の制御を行うと共に、プロセッサ間通
信模擬部3からの通信実行要求に対して、通信対象とな
るプロセッサ対応のメモリ5a とレジスタ5b 間でのデ
ータコピー等の制御を行う。このように、本実施例のシ
ミュレータでは、複数のプロセッサPi 〜Pn毎の模擬
を単一プロセスで実行するために、メモリ、レジスタ等
のプロセッサ毎にある資源については、模擬するプロセ
ッサの台数分用意し、これを切換え部6で切り換えて使
用するようにする。
【0080】図2は実施例装置の動作を概念的に説明す
る図である。この動作は、複数のプロセッサPi 〜Pn
の動作の模擬、およびプロセッサ間通信装置Pp の模擬
を、単一のプロセスで実行するために、主制御プロセッ
サPc 、プロセッサPi 〜P n およびプロセッサ間通信
模擬プロセッサPp の各動作を、図に示すように、時分
割で逐次的に実行していく。
【0081】すなわち、まず、主制御プロセッサPc
所定の単位量(ここでは1命令分)だけ実行した後に、
プロセッサPi を単位量だけ実行する。図中の○印はこ
の単位量の処理を示している。以下同様に、プロセッサ
j 〜Pn を順次に単位量ずつ時分割で実行し、必要で
あれば最後にプロセッサ間通信模擬プロセッサPp を実
行する。すなわち、プロセッサPi 〜Pn を実行したこ
とによりプロセッサ間の情報通信要求が発生したら、プ
ロセッサ間通信模擬プロセッサPp により例えば図に示
すようにプロセッサPj とPm 間でのプロセッサ間通信
の模擬を実行する。情報通信要求がない場合にはプロセ
ッサ間通信模擬プロセッサPp の命令は実行しない。
【0082】このプロセッサ間通信の模擬における情報
の転送は、模擬を単一プロセスで実行しているため、単
に各プロセッサのメモリデータをコピーするだけでよ
く、従来のプロセス間通信によりプロセッサ間通信を模
擬する方式に比較して非常に高速に処理することができ
る。言い換えれば、プロセッサ間通信の模擬をこのよう
なデータコピー処理で行うことにより、多重プロセッサ
システムの模擬を単一プロセスで実行することができ
る。
【0083】プロセッサPi 〜Pn 、プロセッサPp
模擬実行が終了したら、再び主制御プロセッサPc に戻
って単位量だけ実行する。この操作を周期的に繰り返し
て、プロセッサPi 〜Pn の各動作の模擬、およびそれ
らのプロセッサPi 〜Pn 間におけるプロセッサ間通信
の模擬を行う。
【0084】また、前述の問題点(2)を解決するため
に、本実施例では図3に例示する態様でクロック割込み
制御を行っている。すなわち、図3に示すように、本来
のクロック割込みは、図の上部に示すように一定周期t
で発生する。各プロセッサPi j 、Pk は、上述した
手法で各プロセッサの処理を単位量ずつ時分割で順次に
処理することを繰り返すことにより、図中に矢印で示す
順で実行されていく。周期t内においては、各プロセッ
サは実行レベルの高いプログラムから処理を行って順次
に実行レベルの低いプログラムに処理を移行し、全ての
プログラムの処理を一旦終了したらホルト状態に移る。
【0085】この場合において、全てのプロセッサ
i 、Pj 、Pk がホルト状態になる時には、最後にホ
ルト状態に移行しようとしているプロセッサ(すなわ
ち、最後に処理を終了しようとしているプロセッサ)が
クロック割込みを発生する。これを例示しているのが、
図3中の第2、第3番目の周期tであり、第2番目の周
期ではプロセッサPj が、第3番目の周期ではプロセッ
サPk がそれぞれクロック割込みを発生している。これ
により、本来の割込み周期tよりも短い周期で割込みが
発生することにより、図示の例では最終的にΔTの時間
の短縮が図れることになる。
【0086】なお、第1番目の周期tのように、プロセ
ッサPi が時間t内にプログラムの実行を終了していな
い場合には、時間tが経過した時点でクロック割込みを
発生し、次の周期tに移行する。
【0087】図4は実施例装置の動作を示す流れ図であ
る。まず、プロセッサPc 、Pi 〜Pn が単位量の処理
を終了したかをチェックする(ステップS1)。その結
果、例えばプロセッサPX 以降がまだ処理を終了してい
ない場合、そのプロセッサPX についてプログラムの処
理状態が実行状態(上述のレベルH、L、Bの何れかを
実行中)かホルト状態かをチェックする。実行状態の場
合には単位量(1命令)の模擬を行う(ステップS
3)。次にプロセッサ番号をインクリメントとしてプロ
セッサPn が終了するまで処理を繰り返す(ステップS
1〜S3)。
【0088】以上により全てのプロセッサPi 〜Pn
ついて単位量の処理が終了した時には、プロセッサ間通
信要求があるか否かをチェックする(ステップS4)。
プロセッサ間通信要求がある場合には、通信要求元プロ
セッサに対応するメモリ、レジスタから通信先プロセッ
サに対応するメモリ、レジスタにデータのコピーを行う
(ステップS5)。
【0089】次に、クロック割込み条件をチェックする
(ステップS6)。このクロック割込み条件は、プロセ
ッサPi 〜Pn が全てホルト状態になったこと、あるい
は一定時間tが経過したことの何れかを満足することに
よる。この条件が満足された場合には、クロック割込み
手順を実行する(ステップS7)。これにより、全ての
プロセッサPi 〜Pn が上位実行レベルHからプログラ
ムの処理を再開する。最後に、外部からの指示等により
模擬試験が停止されたか否かをチェックし(ステップS
8)、模擬停止である場合には処理を終了し、そうでな
い場合にはステップS1に戻って処理を続行する。
【0090】以上のようにすることで、単一のワークス
テーション上で、多重プロセッサシステムのプログラム
の模擬を高速に行うことが容易に実現でき、クロスデバ
ッガ比率を飛躍的に向上できる。
【0091】図5および図6にはそれぞれ本発明のシミ
ュレータの他の実施例が示される。これらの実施例は前
述の問題点(3)を解決するためのものであり、模擬対
象プログラム中における実行を希望しないプログラム部
分の処理を、主記憶上において命令を書き換えることで
スキップ等するものである。このように主記憶上で命令
を書き換える方法には、(a)サブルーチンコール(呼
出し)命令を契機に主記憶上において該当サブルーチン
の命令を書き換えて当該サブルーチンをスキップ等す
る、(b)バックアッププログラム引上げ命令を契機に
主記憶上において該当プログラム部分(サブルーチンを
含む)の命令を書き換えて当該プログラム部分をスキッ
プ等する、の2つがある。図5は前者の(a)に対応す
る実施例、図6は後者の(b)に対応する実施例であ
る。以下、これらの実施例について説明する。
【0092】(a)サブルーチンコール命令を契機にサ
ブルーチンをスキップする方式 図5において、20は模擬対象のプログラムA、21は
模擬を実行するためのシミュレータ・プログラムB、2
3はシミュレータ・プログラムB内に設けられたサブル
ーチンスキップアドレス格納テーブル、22はサブルー
チンコール命令処理部である。このサブルーチンコール
命令処理部はシミュレータ・プログラムの一機能として
提供されている。
【0093】この実施例では、模擬対象のプログラムA
内で本来実行されるサブルーチンBBB が模擬においては
不要であるため、この処理をスキップするようにシミュ
レータが働くものである。その処理手順を以下に説明す
る。なお、以下に示すシーケンス番号〜は図中の番
号と対応している。
【0094】 模擬において実行を希望しないサブル
ーチンはユーザに予め分かっており、また元のプログラ
ムA中にそのサブルーチンを主記憶上に引き上げる際の
格納アドレスが定義されているから、そのサブルーチン
の主記憶上でのアドレスも予め判明している。かかる状
況下で、ユーザは、シミュレータ・プログラムB内のサ
ブルーチンスキップアドレス格納テーブル23に、模擬
対象のプログラムAにおいてスキップを希望するサブル
ーチンの主記憶上での先頭アドレスを予め登録してお
く。図示の例ではサブルーチンAAA 、BBB 、CCC ・・の
各先頭アドレスが登録されている。
【0095】 主プログラムの実行に伴い、やがてサ
ブルーチンコール命令が発行されると、サブルーチンコ
ール命令処理部22はこのサブルーチンコール命令を検
知する。
【0096】 サブルーチンコール命令処理部22
は、サブルーチンコール命令を検知したら、主プログラ
ムから当該サブルーチンに制御が渡される直前に、サブ
ルーチンスキップアドレス格納テーブル23を検索し、
当該サブルーチンコール命令に対応したサブルーチンの
先頭アドレスがあるか否かを判定する。この判定は、主
プログラムからサブルーチンにジャンプする直前のアド
レスの次アドレス(すなわちジャンプ先のサブルーチン
の先頭アドレス)がサブルーチンスキップアドレス格納
テーブル23内にあるかを検索することで行える。
【0097】 サブルーチンスキップアドレス格納テ
ーブル23内に該当する先頭アドレスがあったら、サブ
ルーチンコール命令処理部22はその先頭アドレスに基
づいて主記憶上における当該サブルーチンの格納場所を
知り、そのサブルーチンの先頭アドレスの命令(すなわ
ちサブルーチンの先頭命令)をリターン命令(RET)
に書き換える。この処理をした後、主プログラムを実行
する。この結果、例えばサブルーチンBBB の先頭命令を
リターン命令に書き換えた場合、プログラムAの模擬軌
跡はサブルーチンBBB にジャンプしても、その先頭アド
レスにリターン命令があるので、図中に太線で示すよう
に、サブルーチンBBB を実質的に実行することなく主プ
ログラムに速やかに制御が戻る。
【0098】 以上の書換え処理を行ったら、次にサ
ブルーチンスキップアドレス格納テーブル23内の当該
命令書換えを行ったサブルーチンの項目(サブルーチン
BBBの先頭アドレス)に、同テーブル23内の他の項目
(例えばn番目の項目)を上書きし、同テーブル23の
項目数を(n−1)にする。これは、上記処理によりサ
ブルーチンの先頭にリターン命令が書き込まれた後は、
主プログラムで再び当該サブルーチンが呼び出された時
に、サブルーチンスキップアドレス格納テーブル23を
参照してリターン命令を再書込みする必要はないので、
当該書換え済みのサブルーチンの項目を同テーブル23
から削除することで項目数を減らし、以降の検索処理に
おいて同テーブルの参照時間(サーチ速度)を短縮する
と共に、一度リターン命令に書き換えられたサブルーチ
ンに対して再び書換え処理が行われることを無くし、処
理速度を向上させるためである。
【0099】よって、主プログラムの以降の処理におい
て、同じサブルーチンコール命令が発生して当該サブル
ーチンを実行しようとすると、そのサブルーチンの先頭
アドレスにはリターン命令が書き込まれているので、速
やかに主プログラムに制御が戻る。
【0100】上述の実施例では、実行を希望しないサブ
ルーチンをスキップするために、サブルーチンの先頭ア
ドレスの命令をリターン命令に書き換えたが、本発明は
これに限られるものではなく、例えばサブルーチンが短
いステップ数で構成されているような場合には、そのサ
ブルーチンの命令を全て無効命令(例えばNO−OP命
令)に書き換えるようにしてもよい。
【0101】(b)プログラム引上げ命令を契機に特定
プログラム(サブルーチンを含む)をスキップする方式 図6において、20は模擬対象のプログラムA、21は
模擬を実行するためのシミュレータ・プログラムB、2
5はシミュレータ・プログラムB内に設けられた処理ス
キップアドレス格納テーブル、24はプログラム引上げ
命令処理部である。このプログラム引上げ命令処理部2
4はシミュレータ・プログラムの一機能として提供され
ている。
【0102】この実施例では、模擬対象のプログラムA
内で本来実行される特定プログラム(サブルーチンであ
る場合を含む)bbbbが模擬においては不要であるため、
この特定プログラムbbbbの処理をスキップするようにシ
ミュレータが働くものである。その処理手順を以下に説
明する。前述同様、以下に示すシーケンス番号〜は
図中の番号と対応している。
【0103】 この実施例においても、模擬において
実行を希望しない特定プログラムはユーザに予め分かっ
ており、またその特定プログラムを引き上げる際の主記
憶上でのアドレス範囲も予め判明している。かかる状況
下で、ユーザは、シミュレータ・プログラムB内のスキ
ップアドレス格納テーブル24に、模擬対象のプログラ
ムAにおいてスキップを希望する特定プログラムの主記
憶上でのアドレス範囲(例えば先頭アドレスと末尾アド
レス)を予め登録しておく。図示の例では特定プログラ
ムaaaa、bbbb、cccc・・の各アドレス範囲が登録されて
いる。なお、この特定プログラムがサブルーチンである
場合もあり、その場合、処理スキップアドレス格納テー
ブル24は前述したサブルーチンスキップアドレス格納
テーブル23と同じものが使える。
【0104】 バックアップメモリからのプログラム
引上げ命令が発生すると、プログラム引上げ命令処理部
24はこのプログラム引上げ命令を検知し、以下の処理
を行う。
【0105】 プログラム引上げ命令処理部24は、
当該プログラムが主記憶に引き上げられた後に、その引
き上げたプログラムの範囲内で、スキップアドレス格納
テーブル23に格納されているアドレス範囲が同引上げ
プログラムのアドレス範囲にあるか否かを検索する。
【0106】 処理スキップアドレス格納テーブル2
5内の特定プログラムのアドレス範囲が引上げプログラ
ムのアドレス範囲内にあれば、その特定プログラムの命
令を全て無効命令に書き換える。なお、特定プログラム
がサブルーチンの場合には前述同様にその先頭命令だけ
をリターン命令に書き換えればよい。無効命令として
は、例えば“NO−OP”命令のようなものが使用でき
る。これにより、プログラム引上げ命令により引き上げ
られたプログラム中に処理をスキップしたい特定プログ
ラムがあった場合には、当該特定プログラムの内容は無
効命令に置き換えられる。
【0107】この結果、引き上げたプログラムを実行し
た場合にそのプログラム中にスキップしたい特定プログ
ラムがあっても、その特定プログラムの内容はプログラ
ム引上げ時に無効命令に書き換えられているので、その
特定プログラムはスキップされる。
【0108】 前述の実施例同様に、以上の書換え処
理を行ったら、次に処理スキップアドレス格納テーブル
25内の当該書き換えた項目(処理スキップするプログ
ラムのアドレス範囲)に、同テーブル25内の他の項目
(例えばn番目の項目)を上書きし、その項目数を(n
−1)に減らす。それにより前述同様に、以降の処理に
おける同テーブル参照時間(サーチ速度)を短縮すると
共に、一度書換えした特定プログラムに対する無効命令
の再書換えを無くし、処理速度を向上させる。
【0109】さらに、処理スキップアドレス格納テーブ
ルの残りのスキップアドレス範囲についても〜の処
理を繰り返す。
【0110】このように、この実施例ではバックアップ
メモリからのプログラム引上げ時に一括して、スキップ
したい特定プログラムの命令内容を書き換えているの
で、以降の処理ではこの命令の書換え処理は行わずに模
擬対象プログラムを順次に実行していくことができるた
め、処理の高速化が図れる。
【0111】このように上述の方法によれば、 *バックアップメモリに格納された模擬対象プログラム
のオリジナルデータを壊すことなく(書き換えることな
く)、模擬の実行において所望のプログラム部分をスキ
ップすることができる、 *ユーザは書き換える命令の引き上げられる契機を意識
しなくとも、特定のプログラムの処理をスキップするこ
とができる、 *スキップ処理のための書換えのために模擬対象のプロ
グラムを停止することなく、処理のスキップが行える、 *スキップするプログラム部分は任意に設定可能で、フ
ァイル等から読み込むことにより容易に変更することが
できる、などの効果がある。
【0112】本発明のシミュレータのまた他の実施例が
図7〜図9に示される。この実施例は前述の問題点
(4)を解決するためのものであり、オーバレイ方式を
採用する計算機システムの模擬を行うものである。以下
の実施例では、模擬対象のプログラム(オーバレイプロ
グラム)の所定のアドレスでプログラムを停止する場合
について述べるが、もちろん該所定のアドレスからトレ
ースを開始する場合などに本実施例を転用することも可
能である。
【0113】図7において、27はオーバレイ構造を持
ったオーバレイプログラムを格納する二次記憶装置とし
てのバックアップメモリである。オーバレイプログラム
は複数のプログラム単位(例えばプログラムセグメン
ト)からなり、各プログラム単位は所定のワード数以下
で構成され、バックアップメモリ27にはこれらのプロ
グラム単位がそれぞれ所定のアドレスに格納されてい
る。図7中には、一つのプログラム単位iが「2000
000(16)」番地から「20007FF(16)」に格納さ
れている状態が例示されている。
【0114】28はシミュレータの高速一時記憶装置で
ある主記憶(MM)であり、この主記憶28には、プロ
グラム単位をオーバレイするためのA面及びB面の2面
のオーバレイ区域が確保されている。この例ではA面は
「2000(16)」番地から「27FF(16)」番地まで、
B面は「2800(16)」番地から「2FFF(16)」番地
までがそれぞれ割り当てられている。
【0115】模擬の対象となる計算機システムのプログ
ラムはオーバレイ方式を採用したものであり、必要に応
じてバックアップメモリ27に格納された所要のプログ
ラム単位が主記憶28のオーバレイ区域A面又はB面に
何れか一方に読み込まれ(引き上げられ)、その後に、
主記憶28上のその引き上げられたプログラム単位が適
宜に実行されるようになっている。
【0116】31、32、33はシミュレータに用意さ
れた記憶領域である。オーバレイ停止アドレス領域31
はオーバレイプログラム中の実行を停止させたいアドレ
スをオペレータが予め登録するための記憶領域であり、
このアドレスはバックアップメモリ27(すなわち二次
記憶装置)上のアドレスで登録される。図7では停止さ
せたいアドレスとしてバックアップメモリ27上のアド
レス「2000100(16)」が登録されている状態が例
示されている。オーバレイ先頭アドレス領域32はバッ
クアップメモリ27から主記憶28に引き上げたプログ
ラム単位の先頭アドレスがバックアップメモリ27上の
アドレスで格納される記憶領域である。停止アドレス領
域33はオーバレイ停止アドレス領域31に登録された
オーバレイプログラムを停止させたいアドレスをバック
アップメモリ27上のアドレスから主記憶28上のアド
レスに変換したものを記憶する記憶領域である。これら
の領域31、32、33の記憶アドレスは互いに対応付
けがされている。すなわち、オーバレイ停止アドレス領
域31に登録するアドレス毎にオーバレイ先頭アドレス
領域32の先頭アドレス、停止アドレス領域33の停止
アドレスが対応付けられ記憶される。
【0117】この他、本実施例のシミュレータはオーバ
レイ停止アドレス登録機能34、オーバレイ認識機能3
5、オーバレイアドレス変換機能36を持っている。こ
のオーバレイ停止アドレス登録機能34はオーバレイ停
止アドレス領域31にプログラム停止させたいアドレス
を登録するための機能、オーバレイ認識機能35は引き
上げたプログラム単位中にオーバレイ停止アドレス領域
31に登録されたアドレスが存在するかを判定し、存在
すればオーバレイ先頭アドレス領域32ににそのプログ
ラム単位の先頭アドレスを書き込む機能、オーバレイア
ドレス変換機能36はオーバレイ停止アドレス領域31
に登録されたアドレス(バックアップメモリ27上のア
ドレス)を主記憶28上のアドレスに変換する機能であ
る。
【0118】以下、実施例装置の動作を説明する。図7
に示されるように、オペレータが模擬試験の開始前に、
模擬対象プログラムを停止させたいバックアップメモリ
27上の停止アドレス「2000100(16)」を入力・
指定すると、オーバレイ停止アドレス登録機能35によ
りこれがオーバレイ停止アドレス領域31に登録される
とともに、停止アドレス領域33の当該停止アドレス
「2000100(16)」に対応する記憶位置にはダミー
アドレス「AAAAAAAA(16)」が設定される。この
ダミーアドレスは、主メモリの最大アドレスよりも大き
い値などの、プログラム停止が決して行われない値に選
ばれる。
【0119】次いで、図8に示されるように、模擬試験
が開始され、プログラム実行中にオーバレイ引上げ命令
(SIO命令の一種)が発生する(図中の参照)。こ
のオーバレイ引上げでは、バックアップメモリ27に格
納されているプログラム単位iを主記憶28のオーバレ
イ区域A面に引き上げるものとする。よって、このオー
バレイ引上げ命令には、バックアップメモリ27からの
プログラム単位iの読出しの先頭アドレスである読出し
アドレス「2000000(16)」、読出しワード数「8
00(16)」、および主記憶28への書込みアドレス「2
000(16)」が含まれる。
【0120】オーバレイ認識機能35は、このオーバレ
イ引上げ命令を検出し、その読出しアドレス「2000
000(16)」をオーバレイ先頭アドレス領域32に設定
する(同図中の参照)。図示していないが読出しワー
ド数及び書込みアドレスもこのオーバレイ先頭アドレス
領域32の所定領域に設定・保持される。
【0121】オーバレイ認識機能35による処理の後、
オーバレイアドレス変換機能36は、読出しアドレスか
ら読出しワード数内、すなわち「2000000(16)
番地から「20007FF(16)」番地までの間に、オー
バレイ停止アドレス領域31に登録されている停止アド
レス「2000100(16)」が存在するか否かを判定す
る。
【0122】存在した場合(すなわち図示の例の場
合)、オーバレイ停止アドレス領域31に登録されたバ
ックアップメモリ27上の停止アドレス「200010
(16)」を、バックアップメモリ27からの読出しアド
レス「2000000(16)」及び主記憶28への書込み
アドレス「2000(16)」に基づいて、引き上げたプロ
グラム単位の主記憶28上のアドレスに変換する。すな
わち、 〔(2000100−2000000)+2000=2100〕(16) なる計算を行い、得られた停止アドレス「210
(16)」を主記憶28上の停止アドレスとして停止アド
レス領域33のダミーアドレスに換えて設定する(同図
中の参照)。
【0123】以上の処理をプログラム単位iを主記憶2
8に引き上げた際に行い、その処理が終了したら、シミ
ュレータは主記憶28からのプログラム単位iの命令を
順次に読み出して実行することで当該プログラムの模擬
試験を行う。この模擬試験を実行している間、図9に示
されるように、アドレス停止機能37は、模擬試験して
いるプログラム単位iの実行番地を監視し、停止アドレ
ス領域33に設定された停止アドレスである「2100
(16)」番地が実行された時点で、プログラム単位iの実
行を停止する。
【0124】その後、プログラムのトレース、メモリ内
容の表示等の、オペレータにより事前またはその都度指
定された処理を実行することにより、デバッグを必要な
データを収集することができる。
【0125】図10には上述の図7〜図9の実施例を改
良した本発明の他の実施例が示される。上述の実施例の
シミュレータでは、一のプログラム単位が主記憶28に
引き上げられており、その一のプログラム単位から起動
されて他のプログラム単位が当該一のプログラム単位と
入れ換えに主記憶28に引き上げられるような場合に
は、以下に説明するように問題が生じる。
【0126】例えば、プログラム単位iが主記憶28の
オーバレイ区域A面に、プログラム単位kが同B面に引
き上げられており、オーバレイ停止アドレス領域31に
はプログラム単位iに含まれるアドレス「200010
(16)」について停止アドレスが指定されている状態
で、プログラム単位iからバックアップメモリ27上の
他のプログラム単位jの引上げが要求され、これが、現
在プログラム単位iがロードされていると同じ主記憶2
8のオーバレイ区域A面に引き上げられるものとする。
すなわち主記憶28上においてプログラム単位iがプロ
グラム単位jに入れ換えられる場合である。
【0127】この場合、引き上げられたプログラム単位
jは主記憶28上のアドレス「2000(16)」〜「27
FF(16)」にプログラム単位iと入換えに格納される。
一方、停止アドレス領域33にはプログラム単位iを所
望のアドレスで停止するための主記憶28上でのアドレ
ス「2100(16)」が、プログラム単位iの引上げ時に
設定されているので、プログラム単位jの引上げ後にそ
れをそのまま実行すると「2100(16)」番地で実行が
停止されてしまうことになる。しかし、このアドレスで
の停止はプログラム単位iに関して有効であっても、プ
ログラム単位jに関してはオペレータが予定しているも
のではない。
【0128】よって、図10の実施例では次のように処
理する。すなわち、主記憶28に引き上げられたプログ
ラム単位iからプログラム単位jの引上げがあった場合
には、オーバレイ認識機能35は、プログラム単位iの
主記憶28への書込みアドレス(この例では「2000
(16)」番地)とプログラム単位jの主記憶28への書込
みアドレス(同じく「2000(16)」番地)とが一致し
た時には、停止アドレス領域33に記憶したプログラム
単位iについての停止アドレス「2100(16)」に換え
てダミーアドレス「AAAAAAAA(16)」を設定す
る。このようにすることで、オペレータが予定していな
いアドレスでプログラムが停止されてしまうことを防止
できる。
【0129】図11には上述の図7〜図10の実施例の
シミュレータをさらに改良した本発明の他の実施例が示
される。この実施例は模擬対象プログラムの停止アドレ
スを模擬試験に先立って予め登録するだけでなくプログ
ラム単位の引上げ後の任意の時点でも行えるようにした
ものである。
【0130】すなわち、シミュレータの仕様によって
は、引き上げたプログラム単位について予め登録された
停止アドレスにて実行が停止されているときに、さらに
新たな停止アドレスを指定する場合があるが、前述した
実施例では停止アドレスの登録をプログラム単位の引上
げ時に一括して行うようにしているので、かかる場合に
対応できない。
【0131】すなわち、オーバレイアドレス変換機能3
6によるアドレス変換処理はプログラム単位の引上げ命
令を契機としてなされるから、新たに入力・指定したい
停止アドレスを含むプログラム単位が既に主記憶28に
引き上げられてしまっている場合には、その新たに入力
・指定した停止アドレスでプログラムの実行を停止する
ことができないことになる。この問題は図11に示すよ
うな処理を行うことにより解決できる。
【0132】すなわち、プログラム単位iの主記憶28
への引上げ後に、オペレータにより停止アドレス「20
002000(16)」が新たに入力・指定されたものとす
る。この場合、オーバレイ停止アドレス登録機能34
は、これをオーバレイ停止アドレス領域31に追加的に
設定するとともに、オーバレイ先頭アドレス領域32か
ら読出しアドレス「2000000(16)」を読み込む
(同図中の参照)。
【0133】次いで、読出しアドレスから読出しワード
数までに、すなわち「2000000(16)」番地から
「20007FF(16)」番地までの間に、オーバレイ停
止アドレス領域31に追加設定された停止アドレス「2
0002000(16)」が存在するか否かを判定し、さら
にオーバレイ先頭アドレス領域31に停止アドレス「2
0002000(16)」に対応する記憶データとして読出
しアドレス「2000000(16)」を追加的に設定する
(同図中の参照)。さらに、プログラム単位iが現
在、オーバレイ区域に引き上げられているかを判定す
る。これは停止アドレス領域33の対応停止アドレスが
ダミーアドレスか否かで判定できる(同図中の’参
照)。
【0134】追加設定した停止アドレス「200020
00(16)」が現在オーバレイしているプログラム単位i
のアドレス範囲(バックアップメモリ27上のアドレス
範囲)に存在した場合には、オーバレイアドレス変換機
能36は、オーバレイ先頭アドレス領域32から当該停
止アドレス「2000200(16)」に対応する読出しア
ドレス「2000000(16)」を、またオーバレイ停止
アドレス領域31から停止アドレス「2000200
(16)」を読み出し(同図中の参照)、これらとプログ
ラム単位iが書き込まれている主記憶28上の先頭アド
レスである書込みアドレス「2000(16)」に基づき、
停止アドレス「2000200(16)」を主記憶28上の
アドレスに変換する。すなわち、 〔(2000200−2000000)+2000=2200〕(16) なる計算を行い、得られた結果「2200(16)」を停止
アドレスとして停止アドレス領域33に追加設定する。
(同図中の参照)。
【0135】このようにすることにより、主記憶28上
のアドレス「2100(16)」で一旦停止して所定のデー
タ収集等を行った後でも、新たな停止アドレスを追加指
定して実行を再開すれば、アドレス停止機能37によ
り、その追加指定した停止アドレス「2000200
(16)」の主記憶28上のアドレス「2200(16)」にて
プログラムの実行が停止される。したがって、オペレー
タの要求に応じて柔軟にプログラム停止位置を設定する
ことができ、デバッグの効率を向上できる。
【0136】以上のように、上述の図7〜図11の実施
例によれば、記憶管理にオーバレイ方式を採用した計算
機システムを模擬する場合でも、オペレータは模擬対象
のプログラムを停止やトレース開始等する注目点のアド
レスを二次記憶装置上のアドレスで指定するだけで、主
記憶上に引き上げたプログラムをその注目点のアドレス
で停止等することが可能になる。
【0137】図12には本発明のまた他の実施例のシミ
ュレータが示される。このシミュレータは前述の問題点
(5)を解決するもので、入出力装置を駆動するプログ
ラムの模擬試験を行うためのものである。この実施例で
はシミュレータ側の記憶装置で入出力装置のメモリ空間
を擬似しているが、実際の入出力装置としては巨大メモ
リ容量を持つ光磁気ディスク装置が使用されているもの
とする。
【0138】図12において、40は模擬対象プログラ
ムを逐次に実行する命令実行部、42は入出力装置を擬
似するための入出力装置擬似部であり、入出力装置擬似
部42は擬似対象入出力装置のメモリ空間を擬似するた
めの記憶装置のメモリ空間を内部に持っている。
【0139】ここで、擬似対象の入出力装置のメモリ空
間は複数のブロックに仮想的に分割される。図12中に
示した入出力装置メモリ空間には同メモリ空間を仮想的
に分割した様子が示されている。このメモリ空間の分割
の単位となるブロックサイズは論理的なサイズで分割さ
れており、擬似対象の入出力装置がメモリにアクセスす
る最小サイズのn倍とする。但し、nは正の整数であ
る。
【0140】この実施例では、入出力装置として光磁気
ディスク装置を用いており、この光磁気ディスク装置の
アクセス単位は1024byteであり、光磁気ディスクの
アドレスも1024byte毎に付与され、アクセスの単位
としてはLBA(論理ブロックアドレス)が用いられ
る。すなわち1LBA=1024byteである。そして、
本実施例でのブロックのサイズは、上述のn=16とし
て、16LBA(=16、384byte)単位に一つのブ
ロックを構成し、入出力装置の全メモリ空間をこのブロ
ックサイズで区切り、その各ブロックに通番を付するも
のとする。
【0141】41はアドレス/ブロック変換部である。
このアドレス/ブロック変換部41は、命令実行部40
で実行される対象プログラムが入出力装置のメモリ空間
にアクセスする際に、そのアクセスしたアドレスが入出
力装置メモリ空間のどのブロックに属するかを判定し、
当該アドレスをその属する上記ブロックの通番番号に変
換する機能を持つ。例えばアクセスしたアドレスが10
0LBAの場合、ブロックサイズは上述のように16L
BAであるから、このアドレス「100LBA」がどの
ブロックに属するかは、次式により算出することができ
る。 ブロック番号=100LBA÷16LBA=6.25 ここで、少数点以下の単数は切り捨てて、第6番目のブ
ロックに属すると判定される。
【0142】入出力装置擬似部42はアドレス/ブロッ
ク変換部41からブロック番号を通知されると、内部の
記憶装置上にそのブロック番号のブロックに相応する記
憶領域を確保する機能を持つ。記憶装置上に既に同じブ
ロック番号の記憶領域が確保されている場合には重複し
て記憶領域を確保することはしない。また、対象プログ
ラムでアクセスされたアドレスをそのアドレスの属する
ブロック中のアドレス(内部記憶装置上のアドレス)に
変換して、対象プログラムが、記憶装置上に作られた擬
似メモリ空間にアクセスできるようにしている。
【0143】以下に、この実施例装置の動作を図14を
参照して説明する。 光磁気ディスクに対してアクセス(書込み、読出
し)を実行する模擬対象プログラムをシミュレータの命
令実行部40で走行させる。
【0144】 同プログラムにおいて光磁気ディスク
に対して書込み命令が発生すると、この書込み命令のキ
ー情報として、光磁気ディスクの書込み先アドレスがシ
ミュレータのアドレス/ブロック変換部41に渡され
る。ここでは、前述のように、書込みアドレスは100
LBAとする。
【0145】 アドレス/ブロック変換部42では、
アドレス「100LBA」がどのブロック番号のブロッ
クに属するかを判定するために前述した演算を行って、
当該アドレスが属するブロック番号を求め、そのブロッ
ク番号を入出力装置擬似部42に通知する。このブロッ
ク番号は前述のように第6番である。
【0146】 入出力装置擬似部42は、通知された
ブロック番号のブロックに相応する大きさの記憶領域を
メモリ空間内の先頭から確保する。この時、シミュレー
タの記憶装置の全メモリ空間のちう使用中となるのは、
1ブロック分(=16、384byte)だけである。
【0147】 入出力擬似装置は対象プログラムが発
生した書込みアドレス(入出力装置上のアドレス)を記
憶装置上の書込みアドレスに変換し、対象プログラムか
ら当該確保したブロックの記憶領域へのアクセスを可能
にする。よって、書込み命令の結果はシミュレータの記
憶装置に保存されるので、後のデバッグ等でそのメモリ
内容から書込み命令の正常性を判断することができる。
【0148】同様に、例えば次に対象プログラムから光
磁気ディスクのアドレス「40LBA」に書込み命令が
あった場合には、図13に示されるように、第3番目の
ブロックに相応する記憶領域がシミュレータの記憶装置
上に確保され、以下、書込み命令が発せられることに、
その書込みアドレスが属するブロックの記憶領域が記憶
装置上に逐次に確保されていく。
【0149】より具体的な例として、上述の実施例装置
を光磁気ディスク装置の駆動プログラムの光磁気ディス
クカートリッジ(OC)フォーマット化の実行処理に適
用した場合について説明する。図16には光磁気ディス
クカートリッジのフォーマットの例が示される。光磁気
ディスクカートリッジは、管理エリア部、エリア1、エ
リア2、エリア3にフォーマット化するものとする。こ
の光磁気ディスクカートリッジの容量は、管理エリア部
がxLBA、エリア1がyLBA、エリア2がzLB
A、エリア3がxxLBAとすると、(x+y+z+x
x)LBAであり、ここでは200ブロック分とする。
【0150】光磁気ディスク装置の駆動プログラムをシ
ミュレータで走行し、光磁気ディスクカートリッジをフ
ォーマット化する命令が実行されると、まず初めにこの
駆動プログラムは管理エリアにボリューム名などの情報
を書き込み、また、各エリア1、2、3に対してその開
始部の1LBAと終了部の1LBAにそれぞれ書込み処
理を行い、光磁気ディスクカートリッジのフォーマット
化を実施する命令を順次に発行する。
【0151】この処理にともない、図17に示されるよ
うに、シミュレータのアドレス/ブロック変換部41
は、それぞれの書込み位置のキーとなるアドレス(単位
LBA)からブロック通番を算出し、入出力装置擬似部
42は、このブロック通番でシミュレータの記憶装置の
メモリ空間の先頭からブロック単位で記憶領域を確保す
る。図17から分かるように、実際の光磁気ディスクカ
ートリッジの容量は(x+y+z+xx)×1024by
te=200ブロックであるが、シミュレータ装置の擬似
メモリ空間に実際に書込みがあるのは7ブロック分であ
り、この分の記憶領域だけを擬似メモリ空間に確保すれ
ばよいのであるから、光磁気ディスクカートリッジの容
量分全てを確保するのに比べて193ブロック分の節減
が図れることになる。
【0152】上記の方法によれば、擬似対象入出力装置
が必要とする、指定サイズ単位のメモリ空間のみを、論
理的なサイズ単位で、それが必要となる場合にだけ限っ
てシミュレータ側の記憶装置上に確保するものであり、
擬似対象入出力装置が実際に使用しないメモリ空間をシ
ミュレータの記憶装置に確保してしまうことはないの
で、擬似対象入出力装置の全メモリ空間>シミュレータ
の記憶装置のメモリ空間サイズの環境であっても、擬似
対象入出力装置が実際に使用するメモリ空間サイズ<シ
ミュレータの記憶装置のメモリ空間サイズの条件が成立
する環境であれば、対象プログラムをシミュレータにて
模擬試験することが可能となるのである。
【0153】図15には実施例装置の命令実行部40か
ら入出力装置擬似メモリ空間へのアクセスの態様が説明
される。図15中の(A)は上述した書込み命令の場合
であり入出力装置擬似メモリ空間には書込みアドレスの
属するブロック番号の記憶領域のみが確保される。
【0154】図15中の(B)はシミュレータが走行さ
せる模擬対象プログラムが入出力装置に対して読出し命
令を発行したが、該当読出しアドレスの属するブロック
番号の記憶領域がまだ入出力装置擬似メモリ空間に未確
保であった場合を示している。この場合、当該ブロック
番号の記憶領域が確保されていないと言うことはまだそ
のブロックには書込みが行われていないと言うことであ
り、よってその読出しデータは「0」のはずであるか
ら、入出力装置擬似部42は命令実行部40に対して読
出しデータは「0」、あるいは‘書込みデータ無し’で
あることを保証したデータを返送する。
【0155】図15中の(C)はシミュレータ側の入出
力装置擬似メモリ空間の使用・未使用の管理を、管理表
を用意することなく命令実行部40からの直接アクセス
で行う方法を示している。すなわち、命令実行部40か
ら擬似メモリ空間の所定のアドレスに対してアクセス
し、アクセスが可能であればそのアドレスの属するブロ
ック番号の記憶領域が確保されている(すなわち使用さ
れている)ことが分かり、一方、アスセスに失敗すれば
該当記憶領域が確保されていない(すなわち未使用であ
る)ことが分かるので、各ブロック番号対応のアドレス
で順次にアクセスすることにより擬似メモリ空間の使用
・未使用を管理表なしに管理できる。
【0156】以上述べたように、この実施例によれば、 従来においては巨大なメモリを有する入出力装置と
のアクセスを制御するプログラムの模擬試験のためのシ
ミュレータでは擬似するメモリ量の確保が困難であった
が、本方式ではシミュレータ内の記憶装置が入出力装置
のメモリ空間と同等サイズ確保できない場合にも、対象
プログラムの試験が可能となる、 シミュレータのメモリ空間を効率よく使用でき、よ
って複数の入出力装置の擬似も同時に可能になる、 メモリ増設などの設備投資なしでシミュレータの活
用を図ることができる、 シミュレータ内部のメモリ空間を論理サイズに区切
ったブロックにてメモリ管理を実施できるので、アクセ
スポイントの検索によるシミュレータの遅延を抑えるこ
とができる、などの効果を得ることができる。
【0157】図18には本発明のまた他の実施例のシミ
ュレータが示される。この実施例装置は前述の問題点
(6)を解決するためのものであり、模擬試験するプロ
グラムにおけるプログラム論理の矛盾の有無を検査する
ことができるようになっている。
【0158】図18において、45はシミュレーション
・システムであって、試験対象のプログラム50を実行
するシミュレーション実行部46、実行しているプログ
ラム50の実行監視をする実行監視部47を含み、また
プログラムの論理矛盾をチェックするためのチャック機
構で用いるプログラム論理チェック機構データを保持す
る管理テーブル48が設けられている。
【0159】この実施例装置では、試験対象プログラム
50の模擬試験をシミュレーション・システム45が実
施する。シミュレーション・システム45は、試験対象
プログラム50の模擬実行を実行部46により行い、そ
の実行状態を1命令ずつ実行監視部47で監視し、当該
プログラム50の実行履歴Xを収集する。この実行履歴
Xは例えば図18の試験対象プログラム50中に矢印で
示す軌跡のようなものであり、同実行履歴Xは主プログ
ラムAからサブルーチンB、Cにそれぞれにジャンプし
て処理を行った後に元の主プログラムAに戻った状態を
表している。
【0160】実行監視部47は、得られた実行履歴Xに
基づき管理テーブル48内のプログラム論理チェック機
構データ51の各項目データを参照して、プログラムの
論理の正常性をチェックする。このチェックはプログラ
ム50を1命令進めるごとに行うことができる。試験項
目としては、実行レベル矛盾、マスク設定解除も
れ、データストア領域誤り、入力パラメータ未設
定、出力パラメータ未設定、キー情報アンマッチ、
対応プログラム呼出し無し・・・などがある。
【0161】得られたプログラム論理チェック結果49
は、CRT表示装置、プリンタ等の出力装置で出力され
る。チェック結果には、図示のように、各項目毎にO
K、NGの種別が示される。この出力されたプログラム
論理チェック結果49を試験者が確認し、試験対象プロ
グラム50の誤りを修正して、模擬試験を再実施しなが
ら試験精度を上げていく。
【0162】上記のプログラム論理チェックの例として
の実行レベル矛盾の場合のチェック手法を以下に示
す。この実行レベル矛盾は実行レベルが高/低二つ以上
あるプログラムが同時に実行されるプログラム実行レベ
ル間競合が起きた時に、当該プログラムに割込みマスク
処理命令が組み込まれているか否かをチェックするもの
であり、組み込まれていれば正常、いなければプログラ
ム論理矛盾があることになる。
【0163】図19はこの実行レベル矛盾のチェックを
行うシミュレータの構成を示す。この例では被試験プロ
グラム(X)がプログラムA、B、Cを含み、そのうち
のプログラムAとCがそれぞれ高/低の二つの実行レベ
ルで動作するものとする。図中、52は被試験プログラ
ム実行レベル監視部であり、高レベルのプログラムがエ
ントリされたことを検出する高レベルプログラムエント
リ収集部53、低レベルのプログラムがエントリされた
ことを検出する低レベルプログラムエントリ収集部5
4、プログラム実行競合照合部55からなる。56は競
合照合部55からの照合結果をプリンタ等で出力する照
合結果出力部56である。
【0164】この実施例装置の動作を以下に説明する。
シミュレータで被試験プログラム(X)の模擬試験を開
始する。シミュレータは被試験プログラム(X)の模擬
試験をシミュレーション実行部46で行い、結果として
被試験プログラム実行履歴Xが得られる。実行レベル監
視部52の高レベルプログラムエントリ収集部53と低
レベルプログラムエントリ収集部54は、得られた被試
験プログラム実行履歴Xから各走行プログラムA、B、
Cの起動エントリ(起動プログラムの先頭番地)、高レ
ベル実行プログラムエントリ情報H、低レベル実行プロ
グラムエントリ情報Lを収集する。
【0165】プログラム実行レベル競合照合部55は図
20に示す手順でプログラム論理矛盾の有無をチェック
する。すなわち、入力情報である被試験プログラム実行
履歴Xから、実行している命令がジャンプ系の命令であ
るかを判定する(ステップS1)。ジャンプ系の命令で
あれば、サブルーチンの開始など新たなプログラムが起
動されたと判断することができ、その起動されたプログ
ラムについてプログラム論理矛盾の有無をチェックする
ことになる。したがって、ジャンプ系の命令でない場合
には改めてチェックを行わないので、照合結果を「O
K」とする(ステップS5)。
【0166】ジャンプ系の命令と判定された場合、各レ
ベル実行プログラムエントリ収集部53、54で収集さ
れた高レベル実行プログラムエントリ情報H、低レベル
実行プログラムエントリ情報Lに基づいて、当該プログ
ラムが両レベルで走行するプログラムであるか否かを判
定する(ステップS2)。両レベルで走行するものでな
い場合にはプログラム実行レベル間競合は起きず、した
がってそのプログラム論理矛盾を問題にすることもない
ので、照合結果を「OK」とする(ステップS5)。
【0167】両方のレベルで走行するプログラムであっ
た場合、そのプログラムに高いレベルで実行するプログ
ラムの割込みを禁止(マスク)している割込みマスク処
理Yが組み込まれているか否かを、これから実行するプ
ログラムの機械命令語を先読みすることで判定する(ス
テップS3)。割込みマスク処理Yがある場合にはプロ
グラム論理矛盾はないので、照合結果を「OK」にする
(ステップS5)。割込みマスク処理Yがない場合に
は、プログラム論理矛盾があることになるので、照合結
果を「NG」とする。
【0168】この競合照合部の照合結果は照合結果出力
部56に送られて、プログラム実行レベル照合結果
(r)として出力される。試験者はこのプログラム実行
レベル照合結果(r)を確認することで、データ破壊に
よりシステムが異常になる前に、被試験プログラムの誤
り(プログラム論理矛盾)を検出することができる。
【0169】この実施例によれば、プログラムを模擬試
験するシミュレータにプログラムの実行レベルを収集
し、その収集結果とプログラム処理内容とから異なるレ
ベル間の競合を監視する機構を付加することで、プログ
ラムの模擬試験を実施した時に異なる実行レベル間の競
合によって発生するデータ矛盾によるシステム異常を事
前に検出することができる。これによって、これまでの
システム異常発生時の原因究明に要する時間を短縮で
き、また、経験の浅い試験者でも容易にプログラムの誤
りを検出することができるため、プログラムの試験効率
の向上はもとより、プログラム(システム)を早期に安
定させその高信頼化を図ることができる。
【0170】図21〜24には本発明のまた他の実施例
としてのシミュレータが示される。この実施例装置は前
述の問題点(7)を解決するためのもである。図21に
おいて、60はシミュレータプログラムにおけるシミュ
レータコマンド制御機能、61はデバッグ機能を持たな
い被試験システム擬似機能、62はデバッグ機能を持っ
た被試験システム擬似機能である。
【0171】図24の流れ図に示すように、被試験シス
テム擬似機能61は被試験システム(被試験プログラ
ム)を模擬実行するにあたりその各命令実行に対してデ
バッグ機能を持たない機能部分であり、後述の「デバッ
グ機能未登録」時に被試験システムの機械命令を繰り返
し実行する。一方、被試験システム擬似機能62は被試
験システムを模擬実行するにあたりその各命令実行に対
してデバッグ機能を持った機能部分であり、後述の「デ
バッグ機能登録」時に被試験システムの機械命令を繰り
返し実行する。
【0172】シミュレータコマンド制御機能には、デバ
ッグ機能の有無を判定する機能が設けられている。この
デバッグ機能の有無判定は、被試験プログラムの種類に
応じてデバッグが必要ない時はデバッグ機能未登録と
し、デバッグを実施したい時には「デバッグ機能登録」
とする。この登録/未登録は、被試験システム擬似機能
の停止時に行い、例えばAPフラグ(アプリケーション
フラグ)に該当ビットを立てることにより実施する。
【0173】このように、この実施例装置では、被試験
システム擬似部分の制御ルートの二重化を行い、各種デ
バッグ機能を含む制御ルート(被試験システム擬似機能
62側)と、被試験機能擬似部分だけの制御ルート(被
試験システム擬似機能61側)とに分離している。つま
り、被試験システム擬似のレスポンスには影響のないシ
ミュレータコマンド制御機能60部分(つまり各機械命
令ごとの判定処理を行っていない部分)において、被試
験プログラムの種別に応じて、デバッグ機能の無い被試
験システム擬似ルート(61)とデバッグ機能の有る被
試験システム擬似ルート(62)とへの分岐を行うこと
によって、デバッグ機能の不要な被試験プログラムに対
しては被試験システム擬似だけを行って、シミュレータ
自体の処理能力を低下させないことか可能であり、一
方、、デバッグ機能の必要な被試験プログラムに対して
は各種デバッグ機能の実施を追加することが可能にな
る。この制御ルートの選択は、「シミュレータコマンド
実行状態」から「被試験システム擬似状態」へ状態が移
行する時に、APフラグの設定値に応じて行う。
【0174】以下、この実施例装置の動作を図22、図
23、図24を参照して説明する。なお、以下に示すシ
ーケンス番号は図中の番号と対応している。
【0175】(a)まず各種デバッグ機能登録無しの場
合について、〔初期状態〕→〔シミュレート実施〕→
〔シミュレート停止〕と遷移する動作を説明する。初期
状態(シミュレート停止状態)からシミュレーションが
実施されるまでの動作は以下の通りである。
【0176】 シミュレータコマンド制御機能60で
APフラグ64にデバッグ機能が登録されているかを分
析する。この場合、APフラグ64にはデバッグ機能が
登録されていない。
【0177】 シミュレータコマンド制御機能60は
「デバッグ機能未登録」を検知すると、デバッグ機能無
しの被試験システム擬似機能61を起動する。この被試
験システム擬似機能61では、図24に示されるよう
に、「シミュレート停止有無の判定」、「被試験システ
ム擬似処理」、「機械命令実行」が被試験プログラムの
1機械命令毎に繰り返して行われ、デバッグ機能の実施
されない。
【0178】〔シミュレート実施〕状態から〔シミュレ
ート停止〕状態に遷移するには、 停止要因(例えば停止ボタンの押下、アドレス停止
など)により被試験システム擬似機能61が停止され
て、シミュレータコマンド制御機能60が再び起動され
る。
【0179】(b)次に各種デバッグ機能登録有りの場
合について、〔初期状態〕→〔登録〕→〔シミュレート
実施〕→〔シミュレート停止〕→〔登録解除〕→〔シミ
ュレート実施〕と遷移する動作を説明する。初期状態
(シミュレート停止状態)から登録を行い、シミュレー
トが実施されるまでの動作は以下の通りである。
【0180】 シミュレータコマンド制御機能60に
より、デバッグ機能登録/解除機能を起動63を起動す
る。
【0181】 デバッグ機能登録/解除機能63でデ
バッグ機能iを登録する。これによりAPフラグ64に
はデバッグ機能iが設定登録される。このように、AP
フラグ64への書込みをシミュレータコマンド制御機能
60部分のみで行うことにより、またAPフラグにより
デバッグ機能種別の登録有りと登録無しをビットで管理
することにより、被試験システム擬似機能部分のルート
分離が可能となる。
【0182】 シミュレータコマンド制御機能60で
APフラグ64にデバッグ機能が登録されているかを分
析する。この場合、APフラグ64にはデバッグ機能i
が登録されている。
【0183】 シミュレータコマンド制御機能60は
「デバッグ機能登録」を検知すると、デバッグ機能有り
の被試験システム擬似機能62を起動する。
【0184】 この被試験システム擬似機能62で
は、図24に示されるように、「シミュレート停止有無
の判定」、「被試験システム擬似処理」、「機械命令実
行」と共に、APフラグで登録されている「デバッグ機
能i」が、被試験プログラムの1機械命令毎に繰り返し
て行われる。
【0185】〔シミュレート実施〕状態から〔シミュレ
ート停止〕状態に遷移するには、 停止要因(例えば停止ボタンの押下、アドレス停止
など)により被試験システム擬似機能62が停止され
て、シミュレータコマンド制御機能60が再び起動され
る。
【0186】〔シミュレータ停止〕からデバッグ機能の
〔解除〕は以下の手順による。 シミュレータコマンド制御機能60からデバッグ機
能登録/解除機能63を起動する。
【0187】 オペレータはデバック機能登録/解除
機能63によりデバッグ機能を解除する指令を行い、A
Pフラグ64のデバッグ機能iが解除される。
【0188】 シミュレータコマンド制御機能60で
APフラグのデバッグ機能が登録されているか否かを分
析する。
【0189】(10) この場合、APフラグ64にはデバ
ッグ機能は「未登録」であるから、次のステップとして
デバッグ機能無しの被試験システム擬似機能61が起動
される。
【0190】この実施例によれば、 *被試験システム擬似のレスポンスに影響のないシミュ
レータコマンド制御部分において被試験システム擬似ル
ートの分岐を行うことによって、シミュレータ自体の処
理能力を低下させずに、各種のデバッグ機能を追加する
ことが可能になる、 *被試験システムにおいての単位機械命令当たりの処理
ステップ(判定ステップ)を削減することができ、シミ
ュレーションの高速化を図れる、などの効果が得られ
る。
【0191】
【発明の効果】以上に述べたように、本発明によれば、
前掲した問題点(1))〜(7)をそれぞれ解決するこ
とが可能となる。
【図面の簡単な説明】
【図1】本発明の実施例を示す図である。
【図2】図1の実施例装置の動作説明図である。
【図3】図1の実施例装置の動作説明図である。
【図4】図1の実施例装置の動作説明図(処理フロー)
である。
【図5】本発明の他の実施例を示す図である。
【図6】本発明のまた他の実施例を示す図である。
【図7】本発明のまた他の実施例を示す図である。
【図8】図7の実施例装置の動作説明図である。
【図9】図7の実施例装置の動作説明図である。
【図10】本発明のまた他の実施例を示す図である。
【図11】本発明のまた他の実施例を示す図である。
【図12】本発明のまた他の実施例を示す図である。
【図13】図12の実施例装置の動作説明図である。
【図14】図12の実施例装置の動作説明図である。
【図15】図12の実施例装置の動作説明図である。
【図16】光磁気ディスクカートリッジのフォーマット
の例を示す図である。
【図17】図12の実施例による光ディスクカートリッ
ジのフォーマット化の動作説明図である。
【図18】本発明のまた他の実施例を示す図である。
【図19】本発明のまた他の実施例を示す図である。
【図20】図19の実施例装置における競合照合部の動
作手順を示す流れ図である。
【図21】本発明のまた他の実施例を示す図である。
【図22】図21の実施例装置の動作説明図である。
【図23】図21の実施例装置の動作説明図である。
【図24】図21の実施例装置の動作説明図(処理フロ
ー)である。
【図25】従来システムの概念図である。
【図26】従来の方式を示す図である。
【図27】従来システムの他の概念図である。
【図28】オーバレイ処理方式の説明図である。
【図29】従来の方式を示す図である。
【図30】プログラム実行レベル間競合の説明図であ
る。
【図31】従来の処理方式を示す図である。
【図32】従来の処理方式(処理フロー)を示す図であ
る。
【符号の説明】
1 模擬制御部 2 プロセッサ命令模擬部 3 プロセッサ間通信模擬部 4 模擬資源管理部 5 記憶部 5a メモリ 5b レジスタ 6 切換え部 20 被試験プログラム 21 シミュレータプログラム 22 サブルーチンコール命令処理部 24 プログラム引上げ命令処理部 27 バックアップメモリ 28 主記憶 31 オーバレイ停止アドレス領域 32 オーバレイ先頭アドレス領域 33 停止アドレス領域 34 オーバレイ停止アドレス登録機能 35 オーバレイ認識機能 36 オーバレイアドレス変換機能 37 アドレス停止機能 40 命令実行部 41 アドレス/ブロック変換部 42 入出力装置擬似部 46 シミュレーション実行部 47 被試験プログラム実行監視部 48 管理テーブル 49 プログラム論理チェック結果 50 被試験プログラム 52 被試験プログラム実行レベル監視部 53 高レベルプログラムエントリ収集部 54 低レベルプログラムエントリ収集部 55 プログラム実行レベル競合照合部 56 照合結果出力部 60 シミュレータコマンド制御機能 61 デバッグ機能無しの被試験システム擬似機能 62 デバッグ機能有りの被試験システム擬似機能 63 コマンド登録/解除機能 64 アプリケーションフラグ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴木 真砂美 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 金子 ▲隆▼ 神奈川県横浜市港北区新横浜3丁目9番 18号 富士通コミュニケーション・シス テムズ株式会社内 (72)発明者 喜多山 浩子 神奈川県横浜市港北区新横浜3丁目9番 18号 富士通コミュニケーション・シス テムズ株式会社内 (72)発明者 竹田 和正 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 小川 清史 神奈川県横浜市港北区新横浜3丁目9番 18号 富士通コミュニケーション・シス テムズ株式会社内 (72)発明者 川辺 由美 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 浅岡 栄 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 井上 保 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 平2−294864(JP,A) 特開 平3−150641(JP,A) 特開 平3−255565(JP,A) 特開 平4−35690(JP,A) 電子情報通信学会技術研究報告 VO L.95,267号 1995 p85−90 池尻 努 他「シミュレーションによる交換機 開発手法について」 The Proceedings o f the 1988 Summer Co mputer Simulation Conference July 1988 p352−357 CHANG,C.K. 「UICPBX:A distribu ted simulator of s witching systems」 CHANG,C.K.「UICPB X:A distributed si mulator of switchi ng systems」 (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 620 G06F 9/455 G06F 11/28 340 INSPEC(DIALOG) JICSTファイル(JOIS) WPI(DIALOG)

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 多重プロセッサシステムの動作を模擬試
    験するシミュレータであって、 該模擬対象の多重プロセッサシステムの各プロセッサの
    命令を所定量ずつ順次に時分割で実行するプロセッサ命
    令模擬手段と、 該多重プロセッサシステムのプロセッサ間通信の動作を
    模擬するプロセッサ間通信模擬手段と、 該多重プロセッサシステムの各プロセッサにそれぞれ対
    応して資源を割り当て、各プロセッサの各自資源に対す
    るアクセスの切替えを管理する模擬資源管理手段と、 該プロセッサ命令模擬手段による各プロセッサの命令の
    順次実行および該プロセッサ間通信模擬手段によるプロ
    セッサ間通信動作の命令実行を、該模擬資源管理手段に
    より現に模擬を実行中のプロセッサに対し順次に資源を
    割り当てつつ、周期的に行うよう制御する主制御手段と
    を備え、 上記各手段の実行は単一プロセスにより行われるように
    構成したシミュレータ。
  2. 【請求項2】 該プロセッサ間通信模擬手段は、プロセ
    ッサ間でのプロセッサ間通信を当該プロセッサに割り当
    てられたメモリ資源間でのデータの複写により実現する
    ように構成した請求項1記載のシミュレータ。
  3. 【請求項3】 該主制御手段は、模擬している多重プロ
    セッサシステムの各プロセッサが全てホルト状態になる
    時には、割込みを発生して該各プロセッサの模擬を再開
    するように構成した請求項1または2記載のシミュレー
    タ。
  4. 【請求項4】 模擬対象プログラム中における実行を希
    望しないサブルーチンの主記憶上におけるアドレス情報
    を予め格納する第1のアドレス格納テーブルと、 主プログラムでのサブルーチン呼出し命令に応答して、
    該サブルーチンの実行に移行する前に、該第1のアドレ
    ス格納テーブルを参照し、該サブルーチン呼出し命令に
    該当するサブルーチンがあったら、当該サブルーチンの
    アドレス情報に基づいて主記憶上の当該サブルーチンの
    内容を当該サブルーチンを実行しない内容に書き換えた
    後に、主プログラムに制御を戻すサブルーチン呼出し命
    令処理手段とを備えたシミュレータ。
  5. 【請求項5】 模擬対象プログラム中における実行を希
    望しない特定プログラムの主記憶上におけるアドレス情
    報を予め格納する第2のアドレス格納テーブルと、 二次記憶装置から主記憶へのプログラム引上げ命令に応
    答して、該命令で引き上げたプログラムの実行に移行す
    る前に、該第2のアドレス格納テーブルを参照し、該プ
    ログラム引上げ命令で引き上げたプログラムの範囲内に
    該特定プログラムがあったら当該特定プログラムのアド
    レス情報に基づいて主記憶上の当該特定プログラムの内
    容を当該特定プログラムを実行しない内容に書き換える
    プログラム引上げ命令処理手段とを備えたシミュレー
    タ。
  6. 【請求項6】 実行を希望しないプログラム部分を主記
    憶上で不実行に一度書き換えた時には、該アドレス格納
    テーブルの該当する項目を削除するように構成した請求
    項4または5記載のシミュレータ。
  7. 【請求項7】 オーバレイ構造を持つオーバレイプログ
    ラムを模擬試験するシミュレータであって、 該オーバレイプログラムを構成する複数のプログラム単
    位を記憶する二次記憶装置と、 該オーバレイプログラムのプログラム単位をオーバレイ
    する主記憶と、 該オーバレイプログラム中の注目点を該二次記憶装置上
    のアドレスで登録する注目アドレス登録手段と、 該二次記憶装置から主記憶に引き上げられたプログラム
    単位の二次記憶装置上における格納アドレス情報を記憶
    するアドレス情報記憶手段と、 該アドレス情報記憶手段の格納アドレス情報と該プログ
    ラム単位をロードする主記憶上のアドレス情報に基づい
    て該注目アドレス登録手段の二次記憶装置上のアドレス
    を主記憶上のアドレスに変換するアドレス変換手段と、 該アドレス変換手段の変換結果を該主記憶上における該
    オーバレイプログラムの処理点のアドレスとして記憶す
    る処理アドレス記憶手段と、を備え、 該主記憶に引き上げたオーバレイプログラムの実行アド
    レスが該処理アドレス記憶手段に記憶された処理点のア
    ドレスに達したら所定の処理を行うように構成したシミ
    ュレータ。
  8. 【請求項8】 一のプログラム単位が格納されている主
    記憶のオーバレイ区域に他のプログラム単位がオーバレ
    イされた場合に、該一のプログラム単位に対して与えら
    れた該処理アドレス記憶手段の処理点アドレスを無効化
    する手段をさらに備えた請求項7記載のシミュレータ。
  9. 【請求項9】 該注目アドレス登録手段に該オーバレイ
    プログラムの注目点のアドレスを後から追加する注目ア
    ドレス追加手段を更に備え、 該注目アドレス追加手段により該オーバレイプログラム
    の注目点が追加された時には、該アドレス変換手段によ
    り該アドレスを主記憶上のアドレスに変換した上で該処
    理アドレス記憶手段に記憶させるように構成した請求項
    7または8記載のシミュレータ。
  10. 【請求項10】 入出力装置を駆動するプログラムを模
    擬試験するシミュレータであって、 該入出力装置のメモリ空間を擬似するための記憶装置
    と、 該プログラムを実行する命令実行手段と、 該入出力装置のメモリ空間を複数のブロックに仮想的に
    分割し、該プログラムにより該入出力装置のメモリ空間
    に書込みアクセスされた時に当該書込みアドレスが何番
    目のブロックに属するかを判定するアドレス/ブロック
    変換手段と、 該アドレス/ブロック変換手段で得たブロック番号のブ
    ロックに相応する記憶領域を該記憶装置上に確保する記
    憶領域確保手段とを備え、 該記憶装置上に確保した記憶領域を用いて該入出力装置
    を擬似しつつプログラムの模擬試験を行うよう構成した
    シミュレータ。
  11. 【請求項11】 該対象プログラムにより該入出力装置
    のメモリ空間に読出しアクセスされた時に該記憶装置上
    に当該読出しアドレスに対応するブロックの記憶領域が
    確保されていない場合には、該プログラムに対して書込
    みデータ無しのデータを返送する返送手段を更に備えた
    請求項10記載のシミュレータ。
  12. 【請求項12】 該命令実行部から該記憶装置に対し、
    各ブロック番号に属するアドレスを用いてアクセスする
    ことで、該記憶装置における各ブロック番号に相応する
    記憶領域の使用・未使用を管理する手段を更に備えた請
    求項10または11記載のシミュレータ。
  13. 【請求項13】 プログラムを模擬試験するシミュレー
    タであって、 該プログラムの実行を監視して実行履歴情報を収集する
    実行監視手段と、 該実行監視手段の実行履歴情報を用いてプログラム論理
    の正常性を検査するプログラム論理チェック手段と、 該プログラム論理チェック手段の検査結果を出力する出
    力手段とを備えたシミュレータ。
  14. 【請求項14】 該プログラム論理チェック手段は、 模擬実行されているプログラムの実行レベル情報を収集
    する実行レベル収集手段と、 該実行監視手段の実行履歴情報に基づきプログラムの起
    動を検知して、当該起動されたプログラムがプログラム
    実行レベル間競合を起こすプログラムであるか否かを該
    実行レベル収集手段の収集情報に基づいて判定し、プロ
    グラム実行レベル間競合を起こすプログラムである時に
    は該プログラムに割込みマスク処理があるか否かを検査
    する競合照合手段とを備えた請求項13記載のシミュレ
    ータ。
  15. 【請求項15】 プログラムを模擬試験するシミュレー
    タであって、 該プログラムの各命令をデバッグ機能を実施することな
    く模擬実行する第1の被試験システム擬似機能手段と、 該プログラムの各命令をデバッグ機能を実施しつつ模擬
    実行する第2の被試験システム擬似機能手段と、 デバッグ機能を実施するか否かをデバッグ機能別に登録
    するデバッグ機能登録手段と、 該デバッグ機能登録手段の内容を参照して該プログラム
    を該第1の被試験システム擬似機能手段で模擬実行する
    か、第2の被試験システム擬似機能手段で模擬実行する
    かを制御するシミュレータコマンド制御機能手段とを備
    えたシミュレータ。
JP06179458A 1993-07-07 1994-07-07 シミュレータ Expired - Fee Related JP3131098B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06179458A JP3131098B2 (ja) 1993-07-07 1994-07-07 シミュレータ

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP16814393 1993-07-07
JP6-5238 1994-01-21
JP523894 1994-01-21
JP5-168143 1994-01-21
JP06179458A JP3131098B2 (ja) 1993-07-07 1994-07-07 シミュレータ

Publications (2)

Publication Number Publication Date
JPH07249012A JPH07249012A (ja) 1995-09-26
JP3131098B2 true JP3131098B2 (ja) 2001-01-31

Family

ID=27276666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06179458A Expired - Fee Related JP3131098B2 (ja) 1993-07-07 1994-07-07 シミュレータ

Country Status (1)

Country Link
JP (1) JP3131098B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100399774B1 (ko) * 2001-02-26 2003-09-26 삼성전자주식회사 인터프로세서 통신 시뮬레이터의 태스크 생성 처리 방법
JP4403187B2 (ja) 2007-03-30 2010-01-20 富士通株式会社 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法
JP5625714B2 (ja) 2010-10-07 2014-11-19 富士通セミコンダクター株式会社 シミュレーション装置、プログラム、記憶媒体、及び方法
WO2014199496A1 (ja) * 2013-06-13 2014-12-18 三菱電機株式会社 プログラム検証装置及びプログラム検証方法及びプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHANG,C.K.「UICPBX:A distributed simulator of switching systems」
The Proceedings of the 1988 Summer Computer Simulation Conference July 1988 p352−357 CHANG,C.K.「UICPBX:A distributed simulator of switching systems」
電子情報通信学会技術研究報告 VOL.95,267号 1995 p85−90 池尻努 他「シミュレーションによる交換機開発手法について」

Also Published As

Publication number Publication date
JPH07249012A (ja) 1995-09-26

Similar Documents

Publication Publication Date Title
US6526441B2 (en) Input/output device information management system for multi-computer system
Case et al. Architecture of the IBM System/370
JP3270216B2 (ja) ファイル名検出方式
EP0665496B1 (en) Method and apparatus for run-time error checking using dynamic patching
EP0926592B1 (en) Software emulation system
US5603015A (en) Logic simulation apparatus for executing simulation of a circuit
US20050086648A1 (en) Object-based systematic state space exploration of software
KR20210057176A (ko) 함수 점프 구현 방법, 디바이스, 및 컴퓨터 저장 매체
US6233727B1 (en) Computer system for supporting utilization of functions provided by OS
CN101446918B (zh) 一种实现用户态调试器调试单个函数的方法及系统
KR100280161B1 (ko) 순서를 벗어난 작업처리 방법 및 장치
JPH034337A (ja) データ処理システム
JPH06290084A (ja) 記号定義を再構成する方法と装置及びそれらに使用するコンピュータシステム
RU2451990C2 (ru) Способ обработки объема данных, используемого во время фазы отладки функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для его осуществления
JP2000020349A (ja) プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援用プログラムを記録した媒体
US5717956A (en) System for batch processing of commands by emulating command string and record format if the string detector detects command is of a specified command string
JP3131098B2 (ja) シミュレータ
US20020129336A1 (en) Automatic symbol table selection in a multi-cell environment
EP0406028A2 (en) Incremental compiler for source code development system
JP4503203B2 (ja) 情報処理装置を評価するためのテストプログラムを作成する方法、装置、およびそのための処理を記述したプログラム
JPH11126161A (ja) 制御記憶の障害回避方法
US7546589B2 (en) Semi-automated desk checking system and method
Mei A preliminary investigation of emulating applications that use petabytes of memory on petascale machines
Clement et al. 1a processor: Control, administrative, and utility software
JP3085309B2 (ja) デバッグシステム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001031

LAPS Cancellation because of no payment of annual fees