JP3131098B2 - Simulator - Google Patents
SimulatorInfo
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、電子交換機などの計算
機システムの動作(プログラムの実行)のシミュレーシ
ョン(模擬試験)を行って、その動作を検証するシミュ
レータに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a simulator for performing a simulation (simulation test) of the operation (execution of a program) of a computer system such as an electronic exchange and verifying the operation.
【0002】[0002]
【従来の技術および発明が解決しようとする課題】計算
機システムの開発にあたっては、プログラムの評価試験
あるいはデバッグ等のためにシミュレータが用いられ
る。このシミュレータは、シミュレーション(模擬試
験)対象の計算機システムの構成等に起因して以下に述
べるような種々の問題がある。2. Description of the Related Art In the development of a computer system, a simulator is used for an evaluation test or debugging of a program. This simulator has various problems as described below due to the configuration of a computer system to be simulated (simulation test).
【0003】(1)多重プロセッサ計算機システムのプ
ログラム・シミュレーション方式 複数のプロセッサで動作する多重プロセッサ計算機シス
テム(以下、単に多重プロセッサシステムと記する)の
プログラムの動作環境をクロスデバッガで単一のワーク
ステーション等により模擬する手法である。図25はこ
の多重プロセッサシステムのプログラム・シミュレーシ
ョンを行う従来のシミュレータの構成を概念的に示す図
である。このシミュレータは図に示す単一のワークステ
ーション10により実現されている。また、このシミュ
レータが模擬する対象の計算機システムは、複数のプロ
セッサPi 〜Pn を持ち、各プロセッサPi 〜Pn 間で
のプロセッサ間通信は情報通信装置により行って、多重
プロセッサ構成により処理を行っている。(1) Program simulation method of a multiprocessor computer system The operating environment of a program of a multiprocessor computer system (hereinafter, simply referred to as a multiprocessor system) operating on a plurality of processors is changed to a single workstation by a cross debugger. It is a method of simulating by using the above method. FIG. 25 is a diagram conceptually showing a configuration of a conventional simulator for performing program simulation of this multiprocessor system. This simulator is realized by a single workstation 10 shown in the figure. The computer system to be simulated by the simulator has a plurality of processors P i to P n , and communication between the processors P i to P n is performed by an information communication device, and the processing is performed by a multi-processor configuration. It is carried out.
【0004】図25において、1はシミュレータの全体
の動作を制御する主制御プロセスPCc 、2はプロセッ
サ模擬プロセス群であり、このプロセッサ模擬プロセス
群2を構成する各プロセスPCi 〜PCn はそれぞれ模
擬対象のプロセッサPi 〜Pn のプログラムを実行する
ためのプロセスであって、それ自体で自己完結的な動作
を行うものである。すなわち、このシステムでは、単一
プロセッサ毎に模擬動作を行うプロセスをプロセッサの
台数分発生させて多重動作を行っている。プロセッサ間
通信模擬プロセスPCP は実際の多重プロセッサシステ
ムにおいてプロセッサ間通信を行う情報通信装置のプロ
セッサPp を模擬するためのプロセスであり、シミュレ
ータにおいて各プロセッサPi 〜Pn に対応するプロセ
スPCi〜PCn および主制御プロセスPCc 間の通信
をプロセス間通信により行うことで、実際のプロセッサ
Pi 〜Pn 間でのプロセッサ間通信を模擬するものであ
る。また4はプロセスの実行動作を行うオペレーティン
グ・システム(OS)である。[0004] In FIG. 25, 1 is a main control process PC c, 2 for controlling the entire operation of the simulator is a processor simulation process groups, each process PC i to PC n, respectively constituting the processor simulation process unit 2 This is a process for executing programs of the processors P i to P n to be simulated, and performs a self-contained operation by itself. That is, in this system, processes for performing the simulated operation are generated for each single processor by the number of processors, and the multiplex operation is performed. The inter-processor communication simulation process PC P is a process for simulating a processor P p of an information communication device that performs inter-processor communication in an actual multiprocessor system, and a process PC i corresponding to each of the processors P i to P n in a simulator. by performing communication between to PC n and a main control process PC c by interprocess communication, it is intended to simulate the inter-processor communication between actual processor P i to P n. An operating system (OS) 4 executes a process.
【0005】このシミュレータでは、模擬対象の多重プ
ロセッサシステムの各プロセッサに対して、シミュレー
タ内において一つのプロセッサに対して一つのプロセス
が1対1に対応するようにして、複数のプロセスを生成
し、各プロセスがそれに対応するプロセッサの動作を模
擬することにより対象システムの動作を模擬している。
このような方式は、プロセッサの動作の模擬がプロセス
毎に自己完結的に実行可能であるため実現が簡単であ
り、実際の多重プロセッサシステムの動作に近い形で模
擬が可能である。In this simulator, a plurality of processes are generated for each processor of a multiprocessor system to be simulated such that one process corresponds to one processor in the simulator. Each process simulates the operation of the target system by simulating the operation of the corresponding processor.
Such a method is simple to implement because the simulation of the operation of the processor can be executed in a self-contained manner for each process, and can be simulated in a manner close to the operation of an actual multiprocessor system.
【0006】しかしながら、この方式のシミュレータに
は以下のような問題点がある。 複数のプロセスを単一のワークステーション上で動
作させるため、プロセスの実行動作を司るOSにかかる
負担が大きく、実行動作時間のオーバヘッドが大きい。 実際のシステムにおけるプロセッサ間通信をプロセ
ス間通信にて模擬しているが、一般にこのプロセス間通
信はそれを実施するための処理負担が大きい。このた
め、例えばプロセッサ間の情報通信装置を経由してプロ
グラムのローディングを実施している計算機システムで
は、ファイル立上げ時などには各プロセッサが膨大な量
のファイルをローディングするので、これをシミュレー
タで模擬する場合、プロセス間データ交換によりこのロ
ーディングを実施することになり、その結果、そのロー
ディング量が膨大となり、よって処理時間も膨大とな
る。However, this type of simulator has the following problems. Since a plurality of processes are operated on a single workstation, the load on the OS that controls the execution of the processes is large, and the overhead of the execution operation time is large. Although the communication between the processors in the actual system is simulated by the communication between the processes, the processing load for executing the communication between the processes is generally large. For this reason, for example, in a computer system that loads programs via an information communication device between processors, each processor loads a huge amount of files at the time of file startup, etc. In the case of simulation, this loading is performed by inter-process data exchange, and as a result, the amount of the loading becomes enormous and the processing time also becomes enormous.
【0007】(2) 実行レベル 電子交換機などの多重プロセッサシステムでは、通常、
各プロセッサは複数のプログラム処理を並行して実行し
ており、これらのプログラム処理には実行優先度が付け
られている。このため、プロセッサの実行は一定時間t
(例えば8ms)毎に割込みを発生させ、その間に上位
実行レベルのプログラム処理から下位実行レベルのプロ
グラム処理までを行い、全ての処理が一定時間t内に終
了すれば、後はホルト(HALT)状態にして次の割込
みが発生するまで処理を中断する。(2) Execution level In a multiprocessor system such as an electronic exchange, usually,
Each processor executes a plurality of program processes in parallel, and these program processes are given an execution priority. Therefore, the execution of the processor is performed for a certain time t.
An interrupt is generated every (for example, 8 ms), during which time the program processing from the upper-level execution level to the lower-level execution level is performed. If all the processing is completed within a predetermined time t, the HALT state is set thereafter. Then, the processing is suspended until the next interrupt occurs.
【0008】図26はこの状態を説明する図である。こ
こでは多重プロセッサシステム内に複数のプロセッサP
i 、Pj 、Pk が存在し、各プロセッサで処理されるプ
ログラム処理は上位実行レベルH、中位実行レベルL、
下位実行レベルBの3種類がある。そして、一定時間t
毎にクロック割込みが発生し、このクロック割込みに対
して各プロセッサは上位実行レベルHのプログラム処理
から実行し、それが一区切り終了すると、更に下位のプ
ログラム処理を順次に実行するようにしており、全ての
プログラム処理が終了するとホルト状態になる。FIG. 26 is a diagram for explaining this state. Here, in a multiprocessor system, a plurality of processors P
i , P j , and P k are present, and the program processing executed by each processor is an upper execution level H, a middle execution level L,
There are three types of lower execution level B. Then, a certain time t
Every time a clock interrupt occurs, each processor executes the program processing of the upper execution level H in response to this clock interrupt, and when it completes one section, further executes the lower program processing sequentially. When the program processing of the above is completed, a halt state is set.
【0009】かかる多重プロセッサシステムをシミュレ
ータで模擬する場合、全てのプロセッサがホルト状態に
なっている時にこれをそのまま模擬することは無意味で
あって無駄な動作となり、シミュレータの処理時間をい
たずらに長くするだけであるので、全プロセッサがホル
ト状態になった状態の模擬はスキップさせて行わないこ
とが望ましい。しかしながら、シミュレータにおいて模
擬対象の各プロセッサ対応にプロセスを生成する前述の
模擬手法では、全てのプロセッサがホルト状態になった
ことを知るためには、各プロセスがホルト状態になった
ことをプロセス間通信で互いに通知しなければならず、
処理が複雑になる。 (3) 処理のスキップ 図27には従来方式によるシミュレータの概念図が示さ
れる。図中、27は二次記憶装置としてのバックアップ
メモリ、28はシミュレータ内の主記憶、29は試験対
象のプログラムAを保持する試験対象メモリ、30は試
験対象メモリ29内のプログラムAの模擬試験を行うシ
ミュレータ・プログラムである。When such a multiprocessor system is simulated by a simulator, it is meaningless and unnecessary to simulate all the processors in a halt state, and the processing time of the simulator is unnecessarily long. Therefore, it is desirable that the simulation of the state in which all the processors are in the halt state be skipped and not performed. However, in the above-described simulation method in which a process is generated for each processor to be simulated in the simulator, in order to know that all the processors are in the halt state, it is necessary to communicate between the processes that the respective processes are in the halt state. Must notify each other at
Processing becomes complicated. (3) Processing Skip FIG. 27 shows a conceptual diagram of a simulator according to a conventional method. In the figure, 27 is a backup memory as a secondary storage device, 28 is a main memory in the simulator, 29 is a test target memory for holding the test target program A, and 30 is a simulation test of the program A in the test target memory 29. This is a simulator program to be performed.
【0010】バックアップメモリ27の内部にはメイン
プログラム、サブプログラムAAA、BBB、CCC等
により構成される模擬対象のプログラムAが記憶されて
いる。バックアップメモリ27から試験対象メモリ29
にプログラムAを引き上げるためには、まず主記憶にロ
ードされたブートストラップ・プログラムの引上げ命令
によりバックアップメモリ27内のプログラムAを順次
に主記憶28に引き上げていくとともに、同じプログラ
ムAを試験対象メモリ29にも保持する。シミュレータ
・プログラム30はこの試験対象メモリ29のプログラ
ムAを逐次に実行することで模擬を行う。さて、このシ
ミュレータ・プログラム30で模擬を実行する時には、
下記の理由によりプログラムA中の特定の機能を実行し
ない場合がある。The backup memory 27 stores a simulation target program A including a main program, sub-programs AAA, BBB, CCC and the like. Test target memory 29 from backup memory 27
In order to pull up the program A, the program A in the backup memory 27 is sequentially pulled up to the main memory 28 by a pull-up instruction of the bootstrap program loaded in the main memory, and the same program A is 29 is also held. The simulator program 30 performs simulation by sequentially executing the program A in the test target memory 29. By the way, when the simulation is executed by the simulator program 30,
A specific function in the program A may not be executed for the following reason.
【0011】 試験対象のプログラムAのうちの特定
部分のみを試験したいため、残りの余分な部分の処理を
スキップして模擬の高速化を図る。 プログラムAのうちには、実際の模擬対象システム
におけるハードウェア部分の模擬をシミュレータで行え
ないなどの理由により、模擬を実施できない部分もあ
り、そのような部分は処理をスキップして模擬の高速化
を図る。Since it is desired to test only a specific part of the program A to be tested, the processing of the remaining unnecessary part is skipped to speed up the simulation. Some parts of the program A cannot be simulated because the simulator cannot simulate the hardware part of the actual simulation target system. Plan.
【0012】上記のスキップを行う部分としてはサブル
ーチンであったり、メインプログラム内の一部であった
りするが、従来、このプログラムA内の処理のスキップ
は以下のような方法で行っている。The above-mentioned skipping part may be a subroutine or a part in the main program. Conventionally, the processing in the program A is skipped by the following method.
【0013】(a)プログラムAを主記憶側に引き上げ
る前に、バックアップメモリ27内においてプログラム
Aの内容を特定部分でスキップ処理が実行されるような
内容に書き換える。 (b)処理をスキップさせる命令が主記憶側に引き上げ
られる契機(例えばサブルーチンをスキップする時には
サブルーチンコール命令)を監視し、命令が引き上げら
れた後にプログラムAの動作を停止して主記憶において
命令の書換えを行う。(A) Before the program A is moved to the main memory, the contents of the program A are rewritten in the backup memory 27 so that the skip processing is executed at a specific portion. (B) Monitor the trigger (for example, a subroutine call instruction when skipping a subroutine) for an instruction to skip processing to the main memory, stop the operation of the program A after the instruction is pulled up, and Rewrite.
【0014】しかしながら、この従来方法には以下のよ
うな問題点がある。まず、上記(a)の場合、バックア
ップメモリ27側においてプログラムAを書き換えてし
まうため、オリジナルデータとしてのプログラムAの内
容が壊され、書換えの内容によってはプログラムAが動
作しなくなるという重大障害を引き起こすおそれがあ
る。また、一度書換えを行った内容を元に戻すことは容
易ではない。However, this conventional method has the following problems. First, in the case of the above (a), since the program A is rewritten on the backup memory 27 side, the contents of the program A as original data are destroyed, and a serious obstacle that the program A stops operating depending on the rewritten contents is caused. There is a risk. Also, it is not easy to restore the contents once rewritten.
【0015】また、上記(b)の場合、例えばプログラ
ムAを部分的に逐次に引き上げつつ模擬試験を行ってい
る場合には、書換えの対象とする特定部分がいつ主記憶
28に引き上げられるかを監視する必要があるなど、主
記憶28上での書換え手順が複雑になり、このためスキ
ップ処理を簡単に行うことができない。In the case of the above (b), for example, when a simulation test is performed while partially raising the program A, it is determined when a specific portion to be rewritten is raised to the main memory 28. The rewriting procedure on the main memory 28 becomes complicated, such as the need for monitoring, so that skip processing cannot be easily performed.
【0016】(4) オーバレイ方式 シミュレータは計算機システムの開発にあたってプログ
ラムの評価試験やデバッグ等のために使用される。その
手法は、対象プログラムを模擬的に実行し、所望のアド
レスで当該プログラムの実行を停止したり、所望のアド
レスからプログラムのトレース(例えば表示、ファイル
保管など)を行ったり、所定のアドレスを通過すること
を確認したりすることで、プログラムのデバッグ等を効
率的に行うものである。(4) Overlay system The simulator is used for evaluation tests and debugging of programs in the development of computer systems. In this method, the target program is simulated, the execution of the program is stopped at a desired address, the program is traced from a desired address (for example, display, file storage, etc.), or a predetermined address is passed. By doing so, program debugging and the like are performed efficiently.
【0017】ところで、計算機システムにおいては記憶
管理にオーバレイ方式を採用したものが多い。このオー
バレイ方式は、プログラムを複数のプログラム単位(例
えばプログラムセグメント)からなるオーバレイ構造で
構成し、このオーバレイプログラムを二次記憶装置に格
納しておき、そのオーバレイプログラムを主記憶に引き
上げるにあったてはプログラム単位毎に主記憶のオーバ
レイ区域(overlay region) にロードするものである。By the way, many computer systems adopt an overlay method for storage management. In this overlay method, a program is configured in an overlay structure including a plurality of program units (for example, program segments), the overlay program is stored in a secondary storage device, and the overlay program is transferred to main storage. Is to load an overlay region of main memory for each program unit.
【0018】図28を参照して計算機システムにおける
一般的なオーバレイ方式を説明する。同図において、2
7は二次記憶装置としての大容量ファイルメモリ(F
M)あるいはバックアップメモリ、28は高速一時記憶
装置である主記憶である。オーバレイプログラムは複数
のプログラム単位(ここでは所定ワード数以下のプログ
ラム区分)で構成され、バックアップメモリ27にはそ
れらのプログラム単位がそれぞれのアドレスで格納され
ている。A general overlay method in a computer system will be described with reference to FIG. In the figure, 2
7 is a large-capacity file memory (F
M) or a backup memory, and 28 is a main memory which is a high-speed temporary storage device. The overlay program is composed of a plurality of program units (here, program divisions having a predetermined number of words or less), and the backup memory 27 stores the program units at respective addresses.
【0019】主記憶28にはA面及びB面の2面のオー
バレイ区域(overlay region)が用意されており、オーバ
レイ引上げ命令(SIO命令の一種)が発生した時に、
バックアップメモリ27から所要のプログラム単位が読
み出されて主記憶28のオーバレイ区域のA面又はB面
の何れか一方にロードされ(引き上げられ)、この主記
憶28上のプログラム単位が適宜に実行されていく。The main memory 28 is provided with two overlay regions (surface A and surface B). When an overlay pull-up instruction (a type of SIO instruction) is generated,
A required program unit is read from the backup memory 27 and loaded (pulled up) on either the A-side or the B-side of the overlay area of the main memory 28, and the program unit on the main memory 28 is appropriately executed. To go.
【0020】一方、計算機システムの評価試験やデバッ
グ等のために使用されるシミュレータでは、例えば試験
項目として所望のアドレスでプログラムを停止する場
合、停止アドレス領域およびプログラムの模擬実行を停
止するプログラム停止手段を備えており、オペレータは
対象プログラムを停止させたいアドレスとしてバックア
ップメモリ上のアドレスをプログラム実行前あるいはプ
ログラム実行中に必要に応じて入力・指定することによ
り、これが停止アドレス領域に設定され、プログラム実
行中にその実行アドレスが当該停止アドレスに達した時
点で、プログラム停止手段によりプログラムの実行が停
止される。この後、アドレスのトレースあるいはメモリ
内容の表示等の、オペレータにより事前または事後に指
定された所定の処理を実行することにより、デバック等
に必要なデータを収集等する。On the other hand, in a simulator used for an evaluation test or debugging of a computer system, for example, when a program is stopped at a desired address as a test item, a stop address area and a program stopping means for stopping a simulated execution of the program are provided. The operator inputs and designates an address on the backup memory as an address at which the target program is to be stopped before or during program execution as necessary, so that the address is set in the stop address area, and the program execution is performed. When the execution address reaches the stop address during execution, the execution of the program is stopped by the program stopping means. Thereafter, by executing predetermined processing designated before or after by the operator, such as tracing addresses or displaying memory contents, data necessary for debugging or the like is collected.
【0021】しかし、従来のシミュレータを用いてオー
バレイ方式を採用した計算機システムのデバッグ等を行
う場合、オーバレイプログラムのプログラム単位が引き
上げられるべき主記憶のオーバレイ区域は、そのプログ
ラム単位が引き上げられる時に決定されるものであるた
め、当該プログラム単位がロードされる主記憶上のアド
レスを事前に認識することはできない。However, when debugging a computer system employing the overlay method using a conventional simulator, the overlay area of the main memory in which the program unit of the overlay program is to be raised is determined when the program unit is raised. Therefore, the address on the main memory where the program unit is loaded cannot be recognized in advance.
【0022】このため、オペレータは対象プログラムを
停止させる主記憶上のアドレスを事前に入力・指定する
ことができず、このため、オーバレイプログラム中のプ
ログラム単位がロードされる毎にこれらの主記憶上のア
ドレスを調べて手作業で入力・指定するなどしてデバッ
グを行うことになるが、この作業は非常に煩雑となる。
特に、オーバレイプログラム中の一のプログラム単位か
ら他のプログラム単位を起動する場合などがあり、その
場合にはさらに主記憶のオーバレイ区域の当該一のプロ
グラム単位に換えて当該他のプログラム単位が二次記憶
装置からオーバレイされるようなことも生じ、作業が極
めて複雑化し非効率的であった。For this reason, the operator cannot input or designate in advance the address on the main memory at which the target program is to be stopped. Therefore, every time a program unit in the overlay program is loaded, these addresses are not stored in the main memory. In this case, debugging is performed by checking the address and manually inputting / designating the address. However, this operation is very complicated.
In particular, there is a case where another program unit is started from one program unit in the overlay program, and in that case, the other program unit is further replaced with the secondary program unit in the overlay area of the main memory. In some cases, the work was overlaid from the storage device, which made the operation extremely complicated and inefficient.
【0023】(5) 入出力装置模擬 入出力装置とのアクセスを制御するプログラムの模擬試
験のために、実際に入出力装置がなくとも対象プログラ
ムを擬似的に走行できるシミュレータがある。このシミ
ュレータは、実際の入出力装置の種類に対応した擬似手
段を持つもので、擬似対象の入出力装置のメモリ空間を
シミュレータ内部の記憶装置上のメモリ空間を使用して
実現するとこで、当該入出力装置の擬似を行う。(5) I / O device simulation For a simulation test of a program for controlling access to the I / O device, there is a simulator that can run the target program in a simulated manner without an actual I / O device. This simulator has a simulation means corresponding to the type of the actual input / output device, and the memory space of the input / output device to be simulated is realized by using the memory space on the storage device inside the simulator. Simulate an input / output device.
【0024】図29の(A)はかかるシミュレータの構
成例を示すものである。シミュレータは命令実行手段と
入出力(IO)装置擬似手段とで構成され、入出力装置
擬似手段はその内部に入出力装置メモリ空間を持つ。命
令実行手段は対象プログラムを逐次的に実行し、その対
象プログラムが入出力装置のメモリ空間へアクセスを行
うと、実際の入出力装置ではなく入出力装置擬似手段の
メモリ空間にアクセスされるようにしている。FIG. 29A shows a configuration example of such a simulator. The simulator includes an instruction execution unit and an input / output (IO) device simulation unit. The input / output device simulation unit has an input / output device memory space therein. The instruction execution means sequentially executes the target program, and when the target program accesses the memory space of the input / output device, the instruction execution means accesses the memory space of the input / output device pseudo unit instead of the actual input / output device. ing.
【0025】しかしながら、この擬似方式には以下のよ
うな問題がある。 図29の(B)に示されるように、擬似対象の入出
力装置のメモリ空間と同等サイズのメモリ空間がシミュ
レータ内部の記憶装置に必要となる。このため、擬似対
象の入出力装置が例えば光磁気ディスク装置のようにメ
モリ空間が巨大である場合、シミュレータ内部の記憶装
置に同等のメモリ空間を確保することは現実的に困難と
なる。However, this pseudo method has the following problems. As shown in FIG. 29B, a memory space of the same size as the memory space of the input / output device to be simulated is required for the storage device inside the simulator. For this reason, if the input / output device to be simulated has a large memory space such as a magneto-optical disk device, it is practically difficult to secure an equivalent memory space in the storage device inside the simulator.
【0026】 また、たとえ光磁気ディスク装置のメ
モリ空間と同等サイズのメモリ空間をシミュレータ内部
の記憶装置上に確保できた場合であっても、そのメモリ
空間は巨大であるため、アドレス検索に時間がかかり、
模擬試験の処理速度が低下する。Even if a memory space of the same size as the memory space of the magneto-optical disk device can be secured on the storage device inside the simulator, the memory space is huge, so that it takes time to search for an address. Take
The processing speed of the simulation test decreases.
【0027】 シミュレータによる対象プログラムの
模擬試験においては、擬似対象の入出力装置のメモリ空
間を全ては使用しない場合があるが、その場合にも従来
方式では、擬似対象の入出力装置のメモリ空間と同等サ
イズのメモリ空間をシミュレータ内部の記憶装置に確保
しなければならず、このため、シミュレータの使用でき
るメモリ容量を圧迫し、メモリ容量不足や処理速度の低
下を引き起こす。In the simulation test of the target program by the simulator, the memory space of the input / output device to be simulated may not be used in some cases. It is necessary to secure a memory space of the same size in the storage device inside the simulator, which puts a strain on the memory capacity that can be used by the simulator, and causes a shortage of memory capacity and a reduction in processing speed.
【0028】(6) プログラム論理の正常正検証 従来のシミュレータでは、プログラム論理の正常性(す
なわち論理矛盾の有無)を検証するために、以下の方法
が用いられている。 試験対象プログラムに検証用のサポートプログラム
を組み込む。 試験対象プログラムの走行を、シミュレータ外部に
付加した監視装置(モニタ)により監視し、その走行情
報(走行履歴など)を収集する。(6) Correct verification of normality of program logic In a conventional simulator, the following method is used to verify the normality of program logic (that is, whether or not there is a logic inconsistency). Incorporate a support program for verification into the test target program. The running of the test target program is monitored by a monitoring device (monitor) added outside the simulator, and the running information (running history and the like) is collected.
【0029】しかしながら、の方法では、試験対象プ
ログラム毎にサポートプログラムを作り込む必要があ
り、作製工数が多くかかってしまう。また、の方法で
は、監視装置を購入するか、若しくは借用する必要があ
り、シミュレータの試験環境の整備に問題がある。ま
た、通常、収集する走行情報は膨大な量となり、この走
行情報の中から障害原因を究明することは容易ではな
く、また障害の解析には解析者の経験が豊富でないと、
障害原因の究明は実質的に難しいことが多い。However, according to the above method, it is necessary to create a support program for each test target program, which requires a large number of manufacturing steps. Further, in the method (1), it is necessary to purchase or borrow a monitoring device, and there is a problem in preparing a simulator test environment. Usually, the collected driving information is enormous, and it is not easy to find out the cause of the fault from this driving information, and if the analyst is not experienced in analyzing the fault,
Determining the cause of a failure is often difficult in practice.
【0030】例としてプログラム実行レベル間の競合に
よる論理矛盾がある場合を説明する。図30はこのプロ
グラム実行レベル間競合を説明する図である。計算機シ
ステムは同じプログラムAが高レベルと低レベルで並行
して実行される場合があり、この場合、低レベルのプロ
グラムを処理中に高レベルのプログラムに起動がかかる
と、高レベルのプログラムのほうが優先されることにな
り、低レベルのプログラムは処理中断され、高レベルの
プログラムの処理終了後に、低レベルのプログラムは中
断した処理を再開するようになっている。As an example, a case where there is a logical contradiction due to competition between program execution levels will be described. FIG. 30 is a diagram for explaining the conflict between the program execution levels. The computer system may execute the same program A in parallel at the high level and the low level. In this case, if the high level program is activated while the low level program is being processed, the high level program is In this case, the processing of the low-level program is interrupted, and after the processing of the high-level program is completed, the low-level program resumes the interrupted processing.
【0031】図30の(A)はこのようなプログラム実
行レベル間の競合を正常処理した場合を示すものであ
る。プログラムAは高レベルと低レベルで同じメモリを
用いてデータの読出し/書込みを行っている。このた
め、低レベルのプログラムAがメモリに対してアクセス
する際には、そのメモリを使用中は、高レベルのプログ
ラムAにより処理を中断されないように割込み禁止設定
をし、使用終了後に割込み禁止解除をして、高レベルの
プログラムAが当該メモリを重複して使用してしまうこ
とがないようにしている。FIG. 30A shows a case where such a conflict between program execution levels is normally processed. The program A reads and writes data using the same memory at the high level and the low level. For this reason, when the low-level program A accesses the memory, interrupt inhibition is set so that the processing is not interrupted by the high-level program A while using the memory, and the interrupt inhibition is released after the use is completed. This prevents the high-level program A from using the memory redundantly.
【0032】もし上記のような割込み禁止(マスク)が
されていない場合には、例えば図30の(B)に示すよ
うに、低レベルのプログラムAがメモリにデータ“0”
を書き込んだ後に、高レベルのプログラムAが割り込ん
で処理を開始して当該メモリの内容を“0”から“1”
に書き換えてしまうと、高レベルのプログラムAの処理
終了により低レベルのプログラムAが処理再開した時に
は、当該メモリの内容を読みにいっても、その内容は低
レベルプログラムにとって真の“0”から偽データであ
る“1”に書き換えられてしまっているため、データ値
矛盾によるシステム異常が発生するおそれがある。If the interrupt is not prohibited (masked) as described above, the low-level program A stores the data "0" in the memory as shown in FIG.
Is written, the high-level program A interrupts and starts processing, and changes the contents of the memory from “0” to “1”.
When the low-level program A resumes processing due to the end of the processing of the high-level program A, even if the contents of the memory are read, the contents are changed from true “0” to the low-level program. Since the data has been rewritten to “1” which is fake data, a system error due to data value inconsistency may occur.
【0033】従来のシミュレータはかかるプログラム走
行レベル間の競合によるシステム異常の検出時には、そ
の論理矛盾の原因を究明するためには以下にあげる方法
を採っている。The conventional simulator employs the following method to determine the cause of the logical inconsistency when detecting a system abnormality due to the competition between the program running levels.
【0034】 シミュレータ外部に設けたプログラム
走行履歴収集装置により収集した全走行履歴情報から、
高/低の両方のレベルで実行されるプログラムについ
て、実行レベルの高いプログラムの割込みを禁止(マス
ク)する処理が組み込まれているかどうかをトレースし
て調べる。From all the traveling history information collected by the program traveling history collection device provided outside the simulator,
The program executed at both the high and low levels is traced to check whether or not a process for inhibiting (masking) the interruption of the program with the high execution level is incorporated.
【0035】 システム異常時のシステム状態(例え
ばメモリ内容の破壊状況)あるいは破壊されたデータに
着目して、試験者がその経験とノウハウに基づき、外部
走行履歴収集装置で収集したトレース結果等から原因が
レベル間競合であることを推測する。Focusing on the system state at the time of system abnormality (for example, the destruction state of the memory contents) or the destructed data, the tester can determine the cause based on the trace results and the like collected by the external traveling history collection device based on the experience and know-how. Guess that is a level conflict.
【0036】しかしながら、上記の方法では、全プロ
グラムの走行履歴が必要であるが、その量は膨大であ
り、かかる膨大なデータ量の中から当該プログラムの割
込みマスク処理の欠落を検出することが必要となり、よ
って迅速な原因究明は実質的に困難である。また、上記
の方法では、経験の浅い試験者がシステム異常時にそ
の原因が割込みマスク設定処理の欠落であることを究明
することは、やはりこれも現実的に難しい。よって、迅
速な対応をとることができず、試験効率の向上を妨げて
いる。また、上記手法はシステム異常があってからその
原因究明を行うものであるから、その時点ではメモリ内
容が破壊されてしまっており、その復帰が困難になる場
合も予測される。However, in the above method, the running history of all programs is required, but the amount is enormous, and it is necessary to detect the lack of the interrupt mask processing of the program from the enormous amount of data. Therefore, quick investigation of the cause is substantially difficult. Further, in the above method, it is still practically difficult for an inexperienced tester to find out that the cause is a lack of interrupt mask setting processing when a system error occurs. Therefore, a quick response cannot be taken, which hinders an improvement in test efficiency. Further, since the above method is to investigate the cause after a system abnormality has occurred, the memory contents have been destroyed at that point, and it may be difficult to recover the contents.
【0037】 (7) 相反する処理速度とデバッグ機能 現在、プログラムシミュレーション方式においては、以
下の2点の性能がユーザに重視されている。 シミュレータ自体の処理速度(処理能力)が高いこ
と。 各種デバック機能(プログラムトレース機能、デー
タトレース機能など)を有していること。(7) Conflicting Processing Speed and Debug Function At present, in the program simulation method, the following two performances are emphasized by the user. High processing speed (processing capacity) of the simulator itself. Have various debugging functions (program trace function, data trace function, etc.).
【0038】ここで、とは、相反する面があり、
のデバック機能の種類を増やしてデバックを充実させる
と、それに比例してのシミュレータ自体の処理能力は
低下してしまう。Here, there is a contradictory surface, and
If the number of types of debugging functions is increased to enhance debugging, the processing capability of the simulator itself decreases in proportion to the enhancement.
【0039】図31、図32は従来方式を説明する図で
ある。従来のシミュレータプログラムは、図31に示す
ように主としてシミュレータコマンド制御機能60’と
被試験システム擬似機能62’で構成され、被試験シス
テム擬似機能62’は被試験システム基本部擬似機能、
機械命令擬似機能、デバック機能、シミュレート停止機
能を含む。図32に示すように、シミュレータコマンド
機能はシミュレータのコマンド処理を行い、被試験シス
テム擬似機能62’は、被試験システム擬似処理を行っ
た後および機械命令が実行された後に、それぞれ所要の
デバッグ機能1、2、・・・i、nを動作させるか否か
判断して、動作させる場合に該当デバッグ機能を実施し
ている。この被試験システム擬似機能62’は1機械命
令ずつ上記判断処理を行いつつデバッグを実施する。FIGS. 31 and 32 are diagrams for explaining the conventional system. The conventional simulator program mainly includes a simulator command control function 60 'and a system under test pseudo function 62' as shown in FIG. 31, and the system under test pseudo function 62 'includes a system under test pseudo function,
Includes machine instruction pseudo function, debug function, and simulation stop function. As shown in FIG. 32, the simulator command function performs the command processing of the simulator, and the system under test pseudo function 62 ′ has a required debugging function after the system under test pseudo processing is performed and after the machine instruction is executed. 1, 2,... I, n are determined to be operated, and when they are operated, the corresponding debugging function is implemented. The system under test 62 'performs debugging while performing the above-described determination processing one machine instruction at a time.
【0040】このように従来方式は、1機械命令を実行
する毎に、その1機械命令に関してデバッグ機能を動作
させるか否かを一々判断しているため、たとえデバッグ
機能を実際には実施しない場合であっても、その実施有
無の判断処理に時間を要することになる。このため、特
にデバッグ機能の種類が増えてくると、デバッグ機能を
実際に実施したか否かにかかわらず、判断処理に要する
時間に起因してシミュレータの速度が遅くなってしま
う。As described above, in the conventional method, each time one machine instruction is executed, it is determined whether or not to activate the debug function for the one machine instruction. However, it takes a long time to perform the process of determining whether or not to perform the process. For this reason, especially when the number of types of debugging functions increases, the speed of the simulator is reduced due to the time required for the determination process regardless of whether the debugging function is actually performed.
【0041】特に、従来方式では、各デバッグ機能が動
作する被試験システム擬似部分の制御ルート(図32中
の処理の帰還ループ)は機械命令を一つずつ実行するご
とに常に動作する部分であるから、たとえ一つの判定処
理のステップが加わることによってもそれが各機械命令
毎に繰り返し実行されるものであるため、プログラム全
体を試験する場合にはその総計数は多大となり、シミュ
レータのレスポンス(処理能力)を低下させる。In particular, in the conventional method, the control route (the feedback loop of the process in FIG. 32) of the pseudo part of the system under test on which each debugging function operates is a part that always operates each time a machine instruction is executed one by one. Therefore, even if one step of the judgment processing is added, it is repeatedly executed for each machine instruction. Therefore, when testing the entire program, the total count becomes large, and the response (processing Ability).
【0042】さらに、被試験システムの立上げ時には、
通常、その立上げ部分のプログラムは既にデバッグ済み
であるなどの理由で各種デバッグ機能を使用する必要が
ない場合が多いが、従来方式ではかかる場合にもデバッ
グ機能実施有無の判定処理やデバッグ機能を実施したり
していたため、非効率的であり、かかる立上げ時間の短
縮がユーザの要求として大きかった。Further, when starting up the system under test,
Usually, it is not necessary to use the various debug functions because the program at the start-up part has already been debugged. For this reason, it was inefficient, and the shortening of the start-up time was a great requirement of the user.
【0043】本発明は以上のような諸問題点(1)〜
(7)に鑑みてなされたものであり、これらの問題点
(1)〜(7)をそれぞれ解決するシミュレータを提供
することを目的とする。The present invention has the above problems (1) to (5).
The present invention has been made in view of (7), and has as its object to provide a simulator that solves each of these problems (1) to (7).
【0044】[0044]
【課題を解決するための手段および作用】本発明におい
ては、上述の問題点(1)を解決するために、多重プロ
セッサシステムの動作を模擬試験するシミュレータであ
って、該模擬対象の多重プロセッサシステムの各プロセ
ッサの命令を所定量ずつ順次に時分割で実行するプロセ
ッサ命令模擬手段と、該多重プロセッサシステムのプロ
セッサ間通信の動作を模擬するプロセッサ間通信模擬手
段と、該多重プロセッサシステムの各プロセッサにそれ
ぞれ対応して資源を割り当て、各プロセッサの各自資源
に対するアクセスの切替えを管理する模擬資源管理手段
と、該プロセッサ命令模擬手段による各プロセッサの命
令の順次実行および該プロセッサ間通信模擬手段による
プロセッサ間通信動作の命令実行を、該模擬資源管理手
段により現に模擬を実行中のプロセッサに対し順次に資
源を割り当てつつ、周期的に行うよう制御する主制御手
段とを備え、上記各手段の実行は単一プロセスにより行
われるように構成したシミュレータが提供される。According to the present invention, there is provided a simulator for simulating the operation of a multiprocessor system in order to solve the above-mentioned problem (1). A processor instruction simulating means for sequentially executing a predetermined amount of instructions of each processor in a time-division manner; an inter-processor communication simulating means for simulating an inter-processor communication operation of the multi-processor system; Simulated resource management means for allocating resources corresponding to each other and managing switching of each processor's access to its own resources, sequential execution of instructions of each processor by the processor instruction simulating means, and inter-processor communication by the inter-processor communication simulating means The execution of the operation instruction is actually simulated by the simulated resource management means. While sequentially allocates resources to the processor running, and a main control means for controlling so that periodically performed, the execution of the above means simulator configured to be performed by a single process is provided.
【0045】このシミュレータでは、各プログラムの動
作の模擬試験は単一のプロセスで行われるため、OSに
かかる負担を削減することができる。In this simulator, since the simulation test of the operation of each program is performed in a single process, the load on the OS can be reduced.
【0046】また、上述のシミュレータでは、該プロセ
ッサ間通信模擬手段は、プロセッサ間でのプロセッサ間
通信を当該プロセッサに割り当てられたメモリ資源間で
のデータの複写により実現するように構成できる。In the above-described simulator, the inter-processor communication simulating means can be configured to realize inter-processor communication between processors by copying data between memory resources allocated to the processors.
【0047】これにより従来方式のようにプロセッサ間
通信をプロセス間通信で模擬する必要がなくなり、高速
かつ簡単にプロセッサ間通信を模擬できる。As a result, it is not necessary to simulate the inter-processor communication by the inter-process communication unlike the conventional method, and the inter-processor communication can be simulated at high speed and easily.
【0048】また、前述の問題点(2)を解決するため
に、上述のシミュレータでは、該主制御手段は、模擬し
ている多重プロセッサシステムの各プロセッサが全てホ
ルト状態になる時には、割込みを発生して該各プロセッ
サの模擬を再開するように構成できる。In order to solve the above problem (2), in the simulator described above, the main control means generates an interrupt when all the processors of the simulated multiprocessor system are in the halt state. Then, the simulation of each processor can be restarted.
【0049】これにより、各プロセッサが全てホルト状
態であるにもかかわらず、その状態を模擬実行して無駄
に時間を費やしてしまうことを防止できる。Thus, even if all the processors are in the halt state, it is possible to prevent the state from being simulated and wasting time.
【0050】また、本発明においては、前述の問題点
(3)を解決するために、模擬対象プログラム中におけ
る実行を希望しないサブルーチンの主記憶上におけるア
ドレス情報を予め格納する第1のアドレス格納テーブル
と、主プログラムでのサブルーチン呼出し命令に応答し
て、該サブルーチンの実行に移行する前に、該第1のア
ドレス格納テーブルを参照し、該サブルーチン呼出し命
令に該当するサブルーチンがあったら、当該サブルーチ
ンのアドレス情報に基づいて主記憶上の当該サブルーチ
ンの内容を当該サブルーチンを実行しない内容に書き換
えた後に、主プログラムに制御を戻すサブルーチン呼出
し命令処理手段とを備えたシミュレータが提供される。In the present invention, in order to solve the above-mentioned problem (3), a first address storage table for storing in advance the address information on the main memory of the subroutine which is not desired to be executed in the simulation target program. In response to the subroutine call instruction in the main program, before the execution of the subroutine is executed, the first address storage table is referred to, and if there is a subroutine corresponding to the subroutine call instruction, A simulator is provided which includes subroutine call instruction processing means for returning the control to the main program after rewriting the contents of the subroutine on the main memory to the contents not executing the subroutine based on the address information.
【0051】これにより、模擬対象プログラムを模擬試
験中に、その模擬対象プログラムが模擬試験の不要なサ
ブルーチンを呼び出した時には、そのサブルーチンの内
容がのサブルーチン呼出し命令処理手段により当該サブ
ルーチンを実質的に実行しない内容に書き換えられるの
で、当該サブルーチンは実質的に実行されることはな
く、したがって模擬試験を効率的に行えるようになる。Thus, when the simulation target program calls a subroutine that does not require a simulation test during the simulation test, the subroutine is substantially executed by the subroutine call instruction processing means. Since the subroutine is rewritten to no content, the subroutine is not substantially executed, so that the simulation test can be performed efficiently.
【0052】また、本発明においては、同じく前述の問
題点(3)を解決するために、模擬対象プログラム中に
おける実行を希望しない特定プログラムの主記憶上にお
けるアドレス情報を予め格納する第2のアドレス格納テ
ーブルと、二次記憶装置から主記憶へのプログラム引上
げ命令に応答して、該命令で引き上げたプログラムの実
行に移行する前に、該第2のアドレス格納テーブルを参
照し、該プログラム引上げ命令で引き上げたプログラム
の範囲内に該特定プログラムがあったら当該特定プログ
ラムのアドレス情報に基づいて主記憶上の当該特定プロ
グラムの内容を当該特定プログラムを実行しない内容に
書き換えるプログラム引上げ命令処理手段とを備えたシ
ミュレータが提供される。Further, in the present invention, in order to solve the above-mentioned problem (3), the second address for storing in advance the address information on the main memory of the specific program which is not desired to be executed in the simulation target program. In response to the program pull-up instruction from the secondary storage device to the main storage, the program refers to the second address storage table before the execution of the program pulled up by the instruction is executed. And a program pull-up instruction processing means for rewriting the contents of the specific program in the main memory to contents that do not execute the specific program based on the address information of the specific program if the specific program is within the range of the program raised in the step. Simulator is provided.
【0053】これにより、模擬対象プログラムを模擬試
験中に、その模擬対象プログラムが模擬試験の不要な特
定プログラムを実行した時には、その特定プログラムの
内容がプログラム引上げ命令処理手段により当該特定プ
ログラムを実質的に実行しない内容に書き換えられるの
で、当該特定プログラムは実質的に実行されることはな
く、したがって模擬試験を効率的に行えるようになる。Thus, when the simulation target program executes a specific program which does not require the simulation test during the simulation test, the contents of the specific program are substantially converted to the specific program by the program pull-up instruction processing means. Since the specific program is not rewritten, the specific program is not substantially executed, so that the simulation test can be performed efficiently.
【0054】上述のシミュレータでは、実行を希望しな
いプログラム部分を主記憶上で不実行に一度書き換えた
時には、該アドレス格納テーブルの該当する項目を削除
するように構成できる。In the above-described simulator, when a program portion that is not desired to be executed is rewritten once in the main memory, the corresponding item in the address storage table is deleted.
【0055】これにより、以降の処理においてアドレス
格納デーブルの検索時間を短縮することができ、また一
度書き換えたサブルーチンまたは特定プログラムに対し
て再度同じ処理を行うことを防止できるので、シミュレ
ータの処理速度を向上できる。As a result, it is possible to shorten the search time of the address storage table in the subsequent processing, and to prevent the same processing from being performed again on a subroutine or a specific program which has been rewritten once. Can be improved.
【0056】また、本発明においては、前述の問題点
(4)を解決するために、オーバレイ構造を持つオーバ
レイプログラムを模擬試験するシミュレータであって、
該オーバレイプログラムを構成する複数のプログラム単
位を記憶する二次記憶装置と、該オーバレイプログラム
のプログラム単位をオーバレイする主記憶と、該オーバ
レイプログラム中の注目点を該二次記憶装置上のアドレ
スで登録する注目アドレス登録手段と、該二次記憶装置
から主記憶に引き上げられたプログラム単位の二次記憶
装置上における格納アドレス情報を記憶するアドレス情
報記憶手段と、該アドレス情報記憶手段の格納アドレス
情報と該プログラム単位をロードする主記憶上のアドレ
ス情報に基づいて該注目アドレス登録手段の二次記憶装
置上のアドレスを主記憶上のアドレスに変換するアドレ
ス変換手段と、該アドレス変換手段の変換結果を該主記
憶上における該オーバレイプログラムの処理点のアドレ
スとして記憶する処理アドレス記憶手段とを備え、該主
記憶に引き上げたオーバレイプログラムの実行アドレス
が該処理アドレス記憶手段に記憶された処理点のアドレ
スに達したら所定の処理を行うように構成したシミュレ
ータが提供される。According to the present invention, there is provided a simulator for simulating an overlay program having an overlay structure in order to solve the above-mentioned problem (4).
A secondary storage device for storing a plurality of program units constituting the overlay program, a main storage for overlaying the program units of the overlay program, and a point of interest in the overlay program registered by an address on the secondary storage device Address information registering means, address information storing means for storing storage address information on the secondary storage device in units of programs pulled up from the secondary storage device to the main storage, and storage address information of the address information storage means. Address conversion means for converting the address on the secondary storage device of the noted address registration means into an address on main storage based on the address information on the main storage for loading the program unit; Store as the address of the processing point of the overlay program on the main memory Provided is a simulator comprising a physical address storage means and configured to perform a predetermined process when the execution address of the overlay program raised to the main memory reaches the address of the processing point stored in the processing address storage means. .
【0057】このシミュレータでは、オペレータは試験
対象プログラム中の注目点(プログラム停止点あるいは
トレース開始点など)のアドレスを二次記憶装置上のア
ドレスで注目アドレス登録手段に登録すれば、アドレス
変換手段が当該アドレスを二次記憶装置上のアドレスか
ら主記憶装置上のアドレスに変換し、それを処理点のア
ドレスとして処理アドレス記憶手段に記憶するので、プ
ログラム単位の模擬試験を実行して当該処理点のアドレ
スに到達したら、所定の処理を開始することができる。In this simulator, if the operator registers the address of a point of interest (such as a program stop point or a trace start point) in the test target program as an address on the secondary storage device, the address conversion means The address is converted from the address on the secondary storage device to the address on the main storage device, and is stored in the processing address storage means as the address of the processing point. When the address is reached, a predetermined process can be started.
【0058】このシミュレータでは、一のプログラム単
位が格納されている主記憶のオーバレイ区域に他のプロ
グラム単位がオーバレイされた場合に、該一のプログラ
ム単位に対して与えられた該処理アドレス記憶手段の処
理点アドレスを無効化する手段をさらに備えることがで
きる。In this simulator, when another program unit is overlaid on the overlay area of the main memory where one program unit is stored, the processing address storage means provided for the one program unit is Means for invalidating the processing point address may be further provided.
【0059】これにより、当該一のプログラム単位に対
して設定された処理点アドレスで、当該他のプログラム
単位が所定の処理(例えばプログラム停止)を起こして
しまうことを防止できる。Thus, it is possible to prevent the other program unit from performing a predetermined process (for example, stopping the program) at the processing point address set for the one program unit.
【0060】また、このシミュレータでは、該注目アド
レス登録手段に該オーバレイプログラムの注目点のアド
レスを後から追加する注目アドレス追加手段を更に備
え、該注目アドレス追加手段により該オーバレイプログ
ラムの注目点が追加された時には、該アドレス変換手段
により該アドレスを主記憶上のアドレスに変換した上で
該処理アドレス記憶手段に記憶させるように構成でき
る。In this simulator, the target address registering means further includes a target address adding means for adding an address of the target point of the overlay program later, and the target address of the overlay program is added by the target address adding means. When the processing is performed, the address conversion means may convert the address into an address on the main memory and then store the address in the processing address storage means.
【0061】これにより、模擬試験の対象プログラムに
対して、後からでも、所定の処理を行いたいアドレスを
追加することができる。As a result, it is possible to add an address at which a predetermined process is to be performed to the program to be subjected to the simulation test even afterwards.
【0062】また、本発明においては、前述の問題点
(5)を解決するために、入出力装置を駆動するプログ
ラムを模擬試験するシミュレータであって、該入出力装
置のメモリ空間を擬似するための記憶装置と、該プログ
ラムを実行する命令実行手段と、該入出力装置のメモリ
空間を複数のブロックに仮想的に分割し、該プログラム
により該入出力装置のメモリ空間に書込みアクセスされ
た時に当該書込みアドレスが何番目のブロックに属する
かを判定するアドレス/ブロック変換手段と、該アドレ
ス/ブロック変換手段で得たブロック番号のブロックに
相応する記憶領域を該記憶装置上に確保する記憶領域確
保手段とを備え、該記憶装置上に確保した記憶領域を用
いて該入出力装置を擬似しつつプログラムの模擬試験を
行うよう構成したシミュレータが提供される。According to the present invention, in order to solve the above-mentioned problem (5), there is provided a simulator for simulating a program for driving an input / output device, which simulates a memory space of the input / output device. Storage device, instruction execution means for executing the program, and the memory space of the input / output device is virtually divided into a plurality of blocks. Address / block conversion means for determining to which block the write address belongs, and storage area securing means for securing a storage area corresponding to the block of the block number obtained by the address / block conversion means on the storage device And configured to perform a simulation test of a program while simulating the input / output device using a storage area secured on the storage device. Regulator is provided.
【0063】また、本発明においては、前述の問題点
(5)を解決するために、模擬試験の対象プログラムが
入出力装置に対して書込みアクセスすると、アドレス/
ブロック変換手段が当該書込みアドレスに対応したブロ
ック番号を算出し、記憶領域確保手段がそのブロック番
号のブロックに相応する記憶領域を該記憶装置上に確保
する。これにより該記憶装置上に確保した記憶領域だけ
を用いて該入出力装置を擬似することか可能になる。Further, in the present invention, in order to solve the above-mentioned problem (5), when the program to be subjected to the simulation test accesses the input / output device by writing,
The block conversion means calculates a block number corresponding to the write address, and the storage area securing means secures a storage area corresponding to the block of the block number on the storage device. This makes it possible to simulate the input / output device using only the storage area secured on the storage device.
【0064】このシミュレータでは、該対象プログラム
により該入出力装置のメモリ空間に読出しアクセスされ
た時に該記憶装置上に当該読出しアドレスに対応するブ
ロックの記憶領域が確保されていない場合には、該プロ
グラムに対して書込みデータ無しのデータを返送する返
送手段を更に備えることができる。In this simulator, when a memory area of a block corresponding to the read address is not secured on the storage device when the target program reads and accesses the memory space of the input / output device, the program And a return unit for returning data with no write data to the device.
【0065】読出しアドレスに対するブロッグ番号のブ
ロックの記憶領域が確保されていないということは、そ
の読出しアドレスにはまだ何も書き込まれていないとい
うことだから、書込みデータ無しのデータを返送する。
これにより記憶装置上に余分な記憶領域を確保する必要
がなくなる。If the storage area of the block of the blog number corresponding to the read address is not secured, it means that nothing has been written yet at the read address, so that data without write data is returned.
This eliminates the need to secure an extra storage area on the storage device.
【0066】またこのシミュレータでは、該命令実行部
から該記憶装置に対し、各ブロック番号に属するアドレ
スを用いてアクセスすることで、該記憶装置における各
ブロック番号に相応する記憶領域の使用・未使用を管理
する手段を更に備えることができる。Also, in this simulator, the instruction execution unit accesses the storage device using an address belonging to each block number, so that a storage area corresponding to each block number in the storage device can be used or not used. May be further provided.
【0067】これにより、記憶装置のメモリ空間に関し
ての使用・未使用の管理表を設けなくとも、その管理を
行うことが可能になる。As a result, it is possible to manage the memory space of the storage device without providing a used / unused management table.
【0068】また、本発明においては、前述の問題点
(6)を解決するために、プログラムを模擬試験するシ
ミュレータであって、該プログラムの実行を監視して実
行履歴情報を収集する実行監視手段と、該実行監視手段
の実行履歴情報を用いてプログラム論理の正常性を検査
するプログラム論理チェック手段と、該プログラム論理
チェック手段の検査結果を出力する出力手段とを備えた
シミュレータが提供される。According to the present invention, there is provided a simulator for simulating a program for solving the above-mentioned problem (6), the execution monitoring means for monitoring the execution of the program and collecting execution history information. And a simulator provided with program logic checking means for checking the normality of the program logic using the execution history information of the execution monitoring means, and output means for outputting a check result of the program logic checking means.
【0069】これにより、デバッグの内容として、単に
実行履歴軌跡等の1次的データの収集だけでなく、プロ
グラム論理矛盾の有無などのプログラム論理の正常性を
チェックできるようになる。As a result, it is possible not only to collect the primary data such as the execution history trajectory but also to check the normality of the program logic such as the presence or absence of program logic contradiction.
【0070】このシミュレータでは、該プログラム論理
チェック手段は、模擬実行されているプログラムの実行
レベル情報を収集する実行レベル収集手段と、該実行監
視手段の実行履歴情報に基づきプログラムの起動を検知
して、当該起動されたプログラムがプログラム実行レベ
ル間競合を起こすプログラムであるか否かを該実行レベ
ル収集手段の収集情報に基づいて判定し、プログラム実
行レベル間競合を起こすプログラムである時には該プロ
グラムに割込みマスク処理があるか否かを検査する競合
照合手段とを備えることができる。In this simulator, the program logic check means detects execution of the program based on execution history information of the execution monitoring means and execution level collection means for collecting execution level information of the program being simulated. Determining whether the started program is a program causing a conflict between program execution levels based on the collection information of the execution level collecting means, and interrupting the program if the program causes a conflict between program execution levels. Competition matching means for checking whether or not there is a mask process can be provided.
【0071】この競合照合手段によりプログラム実行レ
ベル間競合に当該プログラムに割込みマスク処理が組み
込まれているか否かを検査することで、プログラム論理
矛盾としての実行レベル矛盾があるか否かを検査でき
る。By checking whether or not an interrupt mask process is incorporated in the program in the conflict between the program execution levels by the conflict checking means, it is possible to check whether or not there is an execution level conflict as a program logic conflict.
【0072】また、本発明においては、前述の問題点
(7)を解決するために、プログラムを模擬試験するシ
ミュレータであって、該プログラムの各命令をデバッグ
機能を実施することなく模擬実行する第1の被試験シス
テム擬似機能手段と、該プログラムの各命令をデバッグ
機能を実施しつつ模擬実行する第2の被試験システム擬
似機能手段と、デバッグ機能を実施するか否かをデバッ
グ機能別に登録するデバッグ機能登録手段と、該デバッ
グ機能登録手段の内容を参照して該プログラムを該第1
の被試験システム擬似機能手段で模擬実行するか、第2
の被試験システム擬似機能手段で模擬実行するかを制御
するシミュレータコマンド制御機能手段とを備えたシミ
ュレータが提供される。According to the present invention, in order to solve the above-mentioned problem (7), a simulator for simulating a program is provided. The simulator executes simulated execution of each instruction of the program without performing a debugging function. The first system under test pseudo function means, the second system under test pseudo function means for simulating each instruction of the program while performing the debug function, and whether or not to execute the debug function are registered for each debug function. Debugging function registering means, and referencing the contents of the debugging function registering means to store the program in the first
Simulation by means of the system under test
And a simulator command control function means for controlling whether the simulation is performed by the system under test pseudo function means.
【0073】この構成によれば、シミュレータコマンド
制御機能手段は、試験対象プログラムの種別に応じてデ
バッグ機能を実施するか否かにより、第1または第2の
被試験システム擬似機能手段を選択して、対象プログラ
ムを模擬試験することができる。この選択は対象プログ
ラムを実際に模擬試験のために走行させる前に行うの
で、デバッグ機能を採用しないために第1の被試験シス
テム擬似機能手段を選択した場合には、以降の模擬試験
の処理においてデバッグ機能の有無判定が不要となり、
よってデバッグ機能を必要としない例えばシステム立上
げ時などにおいて処理速度の向上を図ることができる。According to this configuration, the simulator command control function means selects the first or second system under test pseudo function means depending on whether or not to execute the debugging function according to the type of the program to be tested. The target program can be mock-tested. This selection is made before the target program is actually run for the simulation test. Therefore, when the first system under test pseudo function means is selected in order not to use the debug function, the following simulation test processing is performed. It is not necessary to determine the presence or absence of the debug function,
Therefore, the processing speed can be improved at the time of starting the system, which does not require the debugging function.
【0074】[0074]
【実施例】以下、図面を参照して本発明の種々の実施例
について説明する。図1は本発明の一実施例としてのシ
ミュレータの構成を示す図である。この実施例は複数の
プロセッサPi 〜Pn からなる多重プロセッサシステム
の動作を模擬するシミュレータであり、かかる多重プロ
セッサシステムにおける前述の問題点(1)と(2)を
解決するものである。この模擬対象の多重プロセッサシ
ステムでは、各プロセッサ間での情報のやり取りは情報
通信装置によりプロセッサ間通信を行うことで実現して
いる。また、シミュレータには模擬対象の多重プロセッ
サシステムの各プロセッサが行うプログラムや必要なデ
ータ等が予め用意されている。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Various embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a diagram showing a configuration of a simulator as one embodiment of the present invention. This embodiment is a simulator for simulating the operation of a multi-processor system comprising a plurality of processors P i to P n, solves the aforementioned problems in such a multiprocessor system (1) and (2). In the multiprocessor system to be simulated, the exchange of information between the processors is realized by performing interprocessor communication by the information communication device. In the simulator, programs executed by each processor of the multiprocessor system to be simulated, necessary data, and the like are prepared in advance.
【0075】図1において、1は主制御部、2はプロセ
ッサ命令模擬部、3はプロセッサ間通信模擬部、4は模
擬資源管理部、5は記憶部、6は切替え部である。ここ
で、プロセッサ命令模擬部2は、模擬対象の多重プロセ
ッサシステムの各プロセッサの命令を所定量ずつ(この
実施例では1命令ずつ)順次に時分割で実行するプログ
ラムからなる。プロセッサ間通信模擬部3は多重プロセ
ッサシステムのプロセッサ間通信の動作を模擬するプロ
グラムからなる。模擬資源管理部4は、多重プロセッサ
システムの各プロセッサにそれぞれ対応して資源を割り
当て、各プロセッサの自資源に対するアクセスの切替え
を管理するプログラムからなる。また、主制御部1は、
プロセッサ命令模擬部2による各プロセッサの命令の順
次実行およびプロセッサ間通信模擬部3によるプロセッ
サ間通信動作の命令実行を、模擬資源管理部4により現
に模擬を実行中のプロセッサに対し順次に資源を割り当
てつつ、周期的に行うよう制御するプログラムからな
る。In FIG. 1, 1 is a main control unit, 2 is a processor instruction simulation unit, 3 is an inter-processor communication simulation unit, 4 is a simulation resource management unit, 5 is a storage unit, and 6 is a switching unit. Here, the processor instruction simulating unit 2 is composed of a program for sequentially executing the instructions of the respective processors of the simulated multiprocessor system by a predetermined amount (one instruction in this embodiment) in a time-division manner. The inter-processor communication simulation unit 3 includes a program for simulating the operation of inter-processor communication in a multiprocessor system. The simulated resource management unit 4 is composed of a program for allocating resources corresponding to each processor of the multiprocessor system and managing switching of each processor's access to its own resource. In addition, the main control unit 1
The processor instruction simulating unit 2 sequentially executes the instructions of each processor and the inter-processor communication simulating unit 3 executes the instruction of the inter-processor communication operation. The simulated resource managing unit 4 sequentially allocates resources to the processors that are currently executing the simulation. And a program that controls the operation to be performed periodically.
【0076】記憶部5は、模擬資源管理部4の配下にあ
る記憶資源であり、メモリ5a とレジスタ5b からな
り、これらのメモリ5a とレジスタ5b は各プロセッサ
Pc 、Pi 〜Pn にそれぞれ対応して設けられており、
模擬資源管理部4の制御のもとに切換え部6で適宜に切
り換えられるようになっている。なおここで、プロセッ
サPi 〜Pn は模擬対象の多重プロセッサシステムにお
ける各プロセッサであり、Pc はシミュレータ内におい
て模擬の全体制御を司る仮想的なプロセッサ(主制御部
1の動作を行うプロセッサに相当)である。The storage unit 5 is a storage resource under the control of the simulated resource management unit 4, and includes a memory 5a and a register 5b. The memory 5a and the register 5b are respectively stored in the processors P c and P i to P n . It is provided correspondingly,
Under the control of the simulated resource management unit 4, the switching unit 6 can switch appropriately. Here, the processors P i to P n are processors in the multiprocessor system to be simulated, and P c is a virtual processor (a processor that performs the operation of the main control unit 1) that controls the overall simulation. Equivalent).
【0077】主制御部1は、プロセッサ命令模擬部2に
対してプロセッサPi 〜Pn の模擬実行要求を出力し、
模擬資源管理部4に対してメモリ5a とレジスタ5b を
プロセッサPc 、Pi 〜Pn のうちの現に実行中のもの
に対応するよう切り換える要求を出力し、またプロセッ
サ間通信模擬部3に対してプロセッサ間通信の模擬実行
要求を出力する。The main control unit 1 outputs simulation execution requests of the processors P i to P n to the processor instruction simulation unit 2,
Simulating the resource management unit 4 processor P c the memory 5a and register 5b respect, to P i to P currently outputs a request to switch to correspond to those of running out of n, also the communication simulating section 3 between the processors And outputs a simulation execution request for inter-processor communication.
【0078】プロセッサ命令模擬部2は模擬対象プロセ
ッサPi 〜Pn の実行する命令を模擬実施ワークステー
ション上で時分割により所定量ずつ周期的に模擬実行す
る。プロセッサ間通信模擬部3はプロセッサPc 、Pi
〜Pn 相互のプロセッサ間通信要求に対してそのプロセ
ッサ間通信の実行を模擬する。このプロセッサ間通信の
模擬は、後述するように、プロセッサ間通信を行うプロ
セッサに対応するメモリ5a とレジスタ5b 間でデータ
コピーを行う要求を模擬資源管理部4に対して行うこと
で実現している。The processor instruction simulating unit 2 periodically simulates the instructions to be executed by the simulation target processors P i to P n by a predetermined amount on a simulation execution workstation by time division. The inter-processor communication simulation unit 3 includes processors P c and P i
PP n Simulates the execution of inter-processor communication in response to inter-processor communication requests. The simulation of the inter-processor communication is realized by making a request to the simulated resource management unit 4 to copy data between the memory 5a and the register 5b corresponding to the processor performing the inter-processor communication, as described later. .
【0079】模擬資源管理部4はプロセッサPc 、Pi
〜Pn 対応のメモリ5a およびレジスタ5b を管理し、
プロセッサ命令模擬部2で模擬実行中のプロセッサに対
応するメモリ5a とレジスタ5b にアクセスが切り替わ
るよう切換え部6の制御を行うと共に、プロセッサ間通
信模擬部3からの通信実行要求に対して、通信対象とな
るプロセッサ対応のメモリ5a とレジスタ5b 間でのデ
ータコピー等の制御を行う。このように、本実施例のシ
ミュレータでは、複数のプロセッサPi 〜Pn毎の模擬
を単一プロセスで実行するために、メモリ、レジスタ等
のプロセッサ毎にある資源については、模擬するプロセ
ッサの台数分用意し、これを切換え部6で切り換えて使
用するようにする。The simulated resource management unit 4 includes processors P c and P i
To manage the memory 5a and the register 5b corresponding to Pn ,
The switching unit 6 is controlled so that the access is switched to the memory 5a and the register 5b corresponding to the processor being simulated by the processor instruction simulating unit 2, and the communication execution request from the inter-processor communication simulating unit 3 is transmitted. And control of data copying between the memory 5a and the register 5b corresponding to the processor. As described above, in the simulator of the present embodiment, in order to execute the simulation for each of the plurality of processors P i to P n in a single process, the resources of each processor such as the memory and the register are determined by the number of processors to be simulated. And the switching unit 6 switches between them for use.
【0080】図2は実施例装置の動作を概念的に説明す
る図である。この動作は、複数のプロセッサPi 〜Pn
の動作の模擬、およびプロセッサ間通信装置Pp の模擬
を、単一のプロセスで実行するために、主制御プロセッ
サPc 、プロセッサPi 〜P n およびプロセッサ間通信
模擬プロセッサPp の各動作を、図に示すように、時分
割で逐次的に実行していく。FIG. 2 conceptually explains the operation of the embodiment.
FIG. This operation is performed when a plurality of processors Pi~ Pn
Of the operation of the processor and the communication device P between processorspSimulation of
To run in a single process.
Sa Pc, Processor Pi~ P nAnd interprocessor communication
Simulated processor PpEach operation of
It is executed sequentially at a rate.
【0081】すなわち、まず、主制御プロセッサPc を
所定の単位量(ここでは1命令分)だけ実行した後に、
プロセッサPi を単位量だけ実行する。図中の○印はこ
の単位量の処理を示している。以下同様に、プロセッサ
Pj 〜Pn を順次に単位量ずつ時分割で実行し、必要で
あれば最後にプロセッサ間通信模擬プロセッサPp を実
行する。すなわち、プロセッサPi 〜Pn を実行したこ
とによりプロセッサ間の情報通信要求が発生したら、プ
ロセッサ間通信模擬プロセッサPp により例えば図に示
すようにプロセッサPj とPm 間でのプロセッサ間通信
の模擬を実行する。情報通信要求がない場合にはプロセ
ッサ間通信模擬プロセッサPp の命令は実行しない。That is, first, after the main control processor P c is executed by a predetermined unit amount (here, one instruction),
Execute the processor Pi by a unit amount. The circle in the figure indicates the processing of this unit amount. Similarly, it runs in a time-division processor P j to P n sequentially unit quantity by, and finally executes communication simulated processor P p between processors if required. That is, as the information communication requests between processors occurs by executing the processor P i to P n, the inter-processor communication between processors P j and P m, as shown in FIG example by inter-processor communication simulated processor P p Perform a simulation. Instructions communication simulated processor P p between processors when there is no information communication request is not executed.
【0082】このプロセッサ間通信の模擬における情報
の転送は、模擬を単一プロセスで実行しているため、単
に各プロセッサのメモリデータをコピーするだけでよ
く、従来のプロセス間通信によりプロセッサ間通信を模
擬する方式に比較して非常に高速に処理することができ
る。言い換えれば、プロセッサ間通信の模擬をこのよう
なデータコピー処理で行うことにより、多重プロセッサ
システムの模擬を単一プロセスで実行することができ
る。The transfer of information in the simulation of the inter-processor communication is performed simply by copying the memory data of each processor since the simulation is executed in a single process. Processing can be performed at a very high speed as compared with the simulation method. In other words, by performing the simulation of the inter-processor communication by such data copy processing, the simulation of the multiprocessor system can be executed by a single process.
【0083】プロセッサPi 〜Pn 、プロセッサPp の
模擬実行が終了したら、再び主制御プロセッサPc に戻
って単位量だけ実行する。この操作を周期的に繰り返し
て、プロセッサPi 〜Pn の各動作の模擬、およびそれ
らのプロセッサPi 〜Pn 間におけるプロセッサ間通信
の模擬を行う。When the simulation execution of the processors P i to P n and the processor P p is completed, the process returns to the main control processor P c again to execute the unit amount. Repeat this operation periodically, simulating each operation of the processor P i to P n, and performs simulation of the interprocessor communication among their processors P i to P n.
【0084】また、前述の問題点(2)を解決するため
に、本実施例では図3に例示する態様でクロック割込み
制御を行っている。すなわち、図3に示すように、本来
のクロック割込みは、図の上部に示すように一定周期t
で発生する。各プロセッサPi Pj 、Pk は、上述した
手法で各プロセッサの処理を単位量ずつ時分割で順次に
処理することを繰り返すことにより、図中に矢印で示す
順で実行されていく。周期t内においては、各プロセッ
サは実行レベルの高いプログラムから処理を行って順次
に実行レベルの低いプログラムに処理を移行し、全ての
プログラムの処理を一旦終了したらホルト状態に移る。Further, in order to solve the above-mentioned problem (2), in this embodiment, the clock interrupt control is performed in the mode illustrated in FIG. That is, as shown in FIG. 3, the original clock interrupt is generated at a fixed period t as shown in the upper part of FIG.
Occurs in Each of the processors P i P j and P k is executed in the order indicated by the arrow in the figure by repeating the processing of each processor in unit of time in a time-division manner in the above-described manner. Within the period t, each processor performs processing from the program with the higher execution level, sequentially shifts the processing to the program with the lower execution level, and shifts to the halt state once the processing of all the programs is completed.
【0085】この場合において、全てのプロセッサ
Pi 、Pj 、Pk がホルト状態になる時には、最後にホ
ルト状態に移行しようとしているプロセッサ(すなわ
ち、最後に処理を終了しようとしているプロセッサ)が
クロック割込みを発生する。これを例示しているのが、
図3中の第2、第3番目の周期tであり、第2番目の周
期ではプロセッサPj が、第3番目の周期ではプロセッ
サPk がそれぞれクロック割込みを発生している。これ
により、本来の割込み周期tよりも短い周期で割込みが
発生することにより、図示の例では最終的にΔTの時間
の短縮が図れることになる。In this case, when all the processors P i , P j , and P k enter the halt state, the processor that is going to enter the halt state last (that is, the processor that is about to end the processing last) is clocked. Generate an interrupt. This is illustrated by
Second in FIG. 3, a third period t, the processor P j is at the second cycle, the processor P k is a third period respectively to generate a clock interrupt. As a result, an interrupt occurs at a cycle shorter than the original interrupt cycle t, and in the example shown in the figure, the time ΔT can be finally reduced.
【0086】なお、第1番目の周期tのように、プロセ
ッサPi が時間t内にプログラムの実行を終了していな
い場合には、時間tが経過した時点でクロック割込みを
発生し、次の周期tに移行する。If the processor P i has not finished executing the program within the time t as in the first cycle t, a clock interrupt is generated when the time t elapses, and Shift to period t.
【0087】図4は実施例装置の動作を示す流れ図であ
る。まず、プロセッサPc 、Pi 〜Pn が単位量の処理
を終了したかをチェックする(ステップS1)。その結
果、例えばプロセッサPX 以降がまだ処理を終了してい
ない場合、そのプロセッサPX についてプログラムの処
理状態が実行状態(上述のレベルH、L、Bの何れかを
実行中)かホルト状態かをチェックする。実行状態の場
合には単位量(1命令)の模擬を行う(ステップS
3)。次にプロセッサ番号をインクリメントとしてプロ
セッサPn が終了するまで処理を繰り返す(ステップS
1〜S3)。FIG. 4 is a flowchart showing the operation of the apparatus according to the embodiment. First, it is checked whether the processors P c and P i to P n have completed the processing of the unit amount (step S1). As a result, if, for example, the processor P X and subsequent processors have not finished the processing, whether the processing state of the program for the processor P X is an execution state (one of the levels H, L, or B is being executed) or a halt state Check. In the case of the execution state, the unit amount (one instruction) is simulated (step S).
3). Next, the processing is repeated until the processor Pn ends with the processor number incremented (step S
1 to S3).
【0088】以上により全てのプロセッサPi 〜Pn に
ついて単位量の処理が終了した時には、プロセッサ間通
信要求があるか否かをチェックする(ステップS4)。
プロセッサ間通信要求がある場合には、通信要求元プロ
セッサに対応するメモリ、レジスタから通信先プロセッ
サに対応するメモリ、レジスタにデータのコピーを行う
(ステップS5)。As described above, when the processing of the unit amount is completed for all the processors P i to P n , it is checked whether or not there is an inter-processor communication request (step S4).
If there is an inter-processor communication request, data is copied from the memory and register corresponding to the communication request source processor to the memory and register corresponding to the communication destination processor (step S5).
【0089】次に、クロック割込み条件をチェックする
(ステップS6)。このクロック割込み条件は、プロセ
ッサPi 〜Pn が全てホルト状態になったこと、あるい
は一定時間tが経過したことの何れかを満足することに
よる。この条件が満足された場合には、クロック割込み
手順を実行する(ステップS7)。これにより、全ての
プロセッサPi 〜Pn が上位実行レベルHからプログラ
ムの処理を再開する。最後に、外部からの指示等により
模擬試験が停止されたか否かをチェックし(ステップS
8)、模擬停止である場合には処理を終了し、そうでな
い場合にはステップS1に戻って処理を続行する。Next, the clock interrupt condition is checked (step S6). This clock interruption condition is based on the fact that all of the processors P i to P n are in the halt state or that a certain time t has elapsed. If this condition is satisfied, a clock interrupt procedure is executed (step S7). As a result, all the processors P i to P n restart the processing of the program from the higher execution level H. Finally, it is checked whether or not the simulation test has been stopped by an external instruction or the like (Step S).
8) If it is a simulation stop, the process is terminated; otherwise, the process returns to step S1 and continues.
【0090】以上のようにすることで、単一のワークス
テーション上で、多重プロセッサシステムのプログラム
の模擬を高速に行うことが容易に実現でき、クロスデバ
ッガ比率を飛躍的に向上できる。With the above arrangement, it is possible to easily realize the simulation of the program of the multiprocessor system at a high speed on a single workstation, and the ratio of the cross debugger can be greatly improved.
【0091】図5および図6にはそれぞれ本発明のシミ
ュレータの他の実施例が示される。これらの実施例は前
述の問題点(3)を解決するためのものであり、模擬対
象プログラム中における実行を希望しないプログラム部
分の処理を、主記憶上において命令を書き換えることで
スキップ等するものである。このように主記憶上で命令
を書き換える方法には、(a)サブルーチンコール(呼
出し)命令を契機に主記憶上において該当サブルーチン
の命令を書き換えて当該サブルーチンをスキップ等す
る、(b)バックアッププログラム引上げ命令を契機に
主記憶上において該当プログラム部分(サブルーチンを
含む)の命令を書き換えて当該プログラム部分をスキッ
プ等する、の2つがある。図5は前者の(a)に対応す
る実施例、図6は後者の(b)に対応する実施例であ
る。以下、これらの実施例について説明する。FIGS. 5 and 6 show another embodiment of the simulator of the present invention. These embodiments are for solving the above-mentioned problem (3), in which processing of a program part that is not desired to be executed in a simulation target program is skipped by rewriting an instruction in a main memory. is there. As described above, the method of rewriting the instruction in the main memory includes (a) rewriting the instruction of the subroutine in the main memory upon a subroutine call (call) instruction and skipping the subroutine, and (b) pulling up a backup program. There are two methods: rewriting the instruction of the relevant program part (including the subroutine) on the main memory upon the instruction and skipping the program part. FIG. 5 shows an embodiment corresponding to the former (a), and FIG. 6 shows an embodiment corresponding to the latter (b). Hereinafter, these examples will be described.
【0092】(a)サブルーチンコール命令を契機にサ
ブルーチンをスキップする方式 図5において、20は模擬対象のプログラムA、21は
模擬を実行するためのシミュレータ・プログラムB、2
3はシミュレータ・プログラムB内に設けられたサブル
ーチンスキップアドレス格納テーブル、22はサブルー
チンコール命令処理部である。このサブルーチンコール
命令処理部はシミュレータ・プログラムの一機能として
提供されている。(A) Method for skipping a subroutine triggered by a subroutine call instruction In FIG. 5, reference numeral 20 denotes a program A to be simulated, 21 denotes a simulator program B for executing a simulation,
Reference numeral 3 denotes a subroutine skip address storage table provided in the simulator program B, and reference numeral 22 denotes a subroutine call instruction processing unit. This subroutine call instruction processing unit is provided as one function of the simulator program.
【0093】この実施例では、模擬対象のプログラムA
内で本来実行されるサブルーチンBBB が模擬においては
不要であるため、この処理をスキップするようにシミュ
レータが働くものである。その処理手順を以下に説明す
る。なお、以下に示すシーケンス番号〜は図中の番
号と対応している。In this embodiment, the simulation target program A
Since the subroutine BBB originally executed in the simulator is unnecessary in the simulation, the simulator operates so as to skip this process. The processing procedure will be described below. Note that the sequence numbers to shown below correspond to the numbers in the figure.
【0094】 模擬において実行を希望しないサブル
ーチンはユーザに予め分かっており、また元のプログラ
ムA中にそのサブルーチンを主記憶上に引き上げる際の
格納アドレスが定義されているから、そのサブルーチン
の主記憶上でのアドレスも予め判明している。かかる状
況下で、ユーザは、シミュレータ・プログラムB内のサ
ブルーチンスキップアドレス格納テーブル23に、模擬
対象のプログラムAにおいてスキップを希望するサブル
ーチンの主記憶上での先頭アドレスを予め登録してお
く。図示の例ではサブルーチンAAA 、BBB 、CCC ・・の
各先頭アドレスが登録されている。In the simulation, the user does not want to execute a subroutine that is known to the user in advance, and since the storage address when the subroutine is pulled up to the main memory is defined in the original program A, the subroutine is not stored in the main memory. The address at is also known in advance. Under such circumstances, the user registers in advance in the subroutine skip address storage table 23 in the simulator program B the start address on the main memory of the subroutine to be skipped in the simulation target program A. In the illustrated example, the head addresses of the subroutines AAA, BBB, CCC,... Are registered.
【0095】 主プログラムの実行に伴い、やがてサ
ブルーチンコール命令が発行されると、サブルーチンコ
ール命令処理部22はこのサブルーチンコール命令を検
知する。When a subroutine call instruction is issued with the execution of the main program, the subroutine call instruction processing unit 22 detects the subroutine call instruction.
【0096】 サブルーチンコール命令処理部22
は、サブルーチンコール命令を検知したら、主プログラ
ムから当該サブルーチンに制御が渡される直前に、サブ
ルーチンスキップアドレス格納テーブル23を検索し、
当該サブルーチンコール命令に対応したサブルーチンの
先頭アドレスがあるか否かを判定する。この判定は、主
プログラムからサブルーチンにジャンプする直前のアド
レスの次アドレス(すなわちジャンプ先のサブルーチン
の先頭アドレス)がサブルーチンスキップアドレス格納
テーブル23内にあるかを検索することで行える。The subroutine call instruction processing section 22
Searches for a subroutine skip address storage table 23 immediately before control is passed from the main program to the subroutine when a subroutine call instruction is detected,
It is determined whether there is a head address of the subroutine corresponding to the subroutine call instruction. This determination can be made by searching whether the next address of the address immediately before jumping from the main program to the subroutine (that is, the head address of the jump destination subroutine) is in the subroutine skip address storage table 23.
【0097】 サブルーチンスキップアドレス格納テ
ーブル23内に該当する先頭アドレスがあったら、サブ
ルーチンコール命令処理部22はその先頭アドレスに基
づいて主記憶上における当該サブルーチンの格納場所を
知り、そのサブルーチンの先頭アドレスの命令(すなわ
ちサブルーチンの先頭命令)をリターン命令(RET)
に書き換える。この処理をした後、主プログラムを実行
する。この結果、例えばサブルーチンBBB の先頭命令を
リターン命令に書き換えた場合、プログラムAの模擬軌
跡はサブルーチンBBB にジャンプしても、その先頭アド
レスにリターン命令があるので、図中に太線で示すよう
に、サブルーチンBBB を実質的に実行することなく主プ
ログラムに速やかに制御が戻る。If there is a corresponding head address in the subroutine skip address storage table 23, the subroutine call instruction processing unit 22 knows the storage location of the subroutine in the main memory based on the head address, and determines the start address of the subroutine. Return instruction (RET)
Rewrite to After performing this processing, the main program is executed. As a result, for example, when the head instruction of the subroutine BBB is rewritten to the return instruction, even if the simulated trajectory of the program A jumps to the subroutine BBB, there is a return instruction at the head address thereof. Control returns to the main program immediately without substantially executing subroutine BBB.
【0098】 以上の書換え処理を行ったら、次にサ
ブルーチンスキップアドレス格納テーブル23内の当該
命令書換えを行ったサブルーチンの項目(サブルーチン
BBBの先頭アドレス)に、同テーブル23内の他の項目
(例えばn番目の項目)を上書きし、同テーブル23の
項目数を(n−1)にする。これは、上記処理によりサ
ブルーチンの先頭にリターン命令が書き込まれた後は、
主プログラムで再び当該サブルーチンが呼び出された時
に、サブルーチンスキップアドレス格納テーブル23を
参照してリターン命令を再書込みする必要はないので、
当該書換え済みのサブルーチンの項目を同テーブル23
から削除することで項目数を減らし、以降の検索処理に
おいて同テーブルの参照時間(サーチ速度)を短縮する
と共に、一度リターン命令に書き換えられたサブルーチ
ンに対して再び書換え処理が行われることを無くし、処
理速度を向上させるためである。After performing the above-described rewriting processing, the item (subroutine) of the subroutine in which the instruction has been rewritten in the subroutine skip address storage table 23 is next.
The other items (for example, the n-th item) in the table 23 are overwritten on the BBB head address, and the number of items in the table 23 is set to (n-1). This is because after the return instruction is written at the head of the subroutine by the above process,
When the main program calls the subroutine again, it is not necessary to refer to the subroutine skip address storage table 23 and rewrite the return instruction.
The items of the rewritten subroutine are stored in the table 23
, The number of items is reduced, the reference time (search speed) of the table is reduced in the subsequent search processing, and the subroutine once rewritten by the return instruction is not rewritten again. This is for improving the processing speed.
【0099】よって、主プログラムの以降の処理におい
て、同じサブルーチンコール命令が発生して当該サブル
ーチンを実行しようとすると、そのサブルーチンの先頭
アドレスにはリターン命令が書き込まれているので、速
やかに主プログラムに制御が戻る。Therefore, in the subsequent processing of the main program, if the same subroutine call instruction is generated and the subroutine is to be executed, a return instruction is written at the head address of the subroutine, so that the main program is immediately executed. Control returns.
【0100】上述の実施例では、実行を希望しないサブ
ルーチンをスキップするために、サブルーチンの先頭ア
ドレスの命令をリターン命令に書き換えたが、本発明は
これに限られるものではなく、例えばサブルーチンが短
いステップ数で構成されているような場合には、そのサ
ブルーチンの命令を全て無効命令(例えばNO−OP命
令)に書き換えるようにしてもよい。In the above embodiment, the instruction at the head address of the subroutine is rewritten as a return instruction in order to skip a subroutine that is not desired to be executed. However, the present invention is not limited to this. If the subroutine is composed of numbers, all instructions of the subroutine may be rewritten as invalid instructions (for example, NO-OP instructions).
【0101】(b)プログラム引上げ命令を契機に特定
プログラム(サブルーチンを含む)をスキップする方式 図6において、20は模擬対象のプログラムA、21は
模擬を実行するためのシミュレータ・プログラムB、2
5はシミュレータ・プログラムB内に設けられた処理ス
キップアドレス格納テーブル、24はプログラム引上げ
命令処理部である。このプログラム引上げ命令処理部2
4はシミュレータ・プログラムの一機能として提供され
ている。(B) Method of skipping a specific program (including a subroutine) triggered by a program pull-up instruction In FIG. 6, reference numeral 20 denotes a program A to be simulated, 21 denotes a simulator program B for executing a simulation,
5 is a processing skip address storage table provided in the simulator program B, and 24 is a program pull-up instruction processing unit. This program pull-up instruction processing unit 2
4 is provided as one function of the simulator program.
【0102】この実施例では、模擬対象のプログラムA
内で本来実行される特定プログラム(サブルーチンであ
る場合を含む)bbbbが模擬においては不要であるため、
この特定プログラムbbbbの処理をスキップするようにシ
ミュレータが働くものである。その処理手順を以下に説
明する。前述同様、以下に示すシーケンス番号〜は
図中の番号と対応している。In this embodiment, the simulation target program A
Since the specific program (including subroutines) bbbb that is originally executed in the program is unnecessary in the simulation,
The simulator works so as to skip the processing of the specific program bbbb. The processing procedure will be described below. As described above, the following sequence numbers to correspond to the numbers in the figure.
【0103】 この実施例においても、模擬において
実行を希望しない特定プログラムはユーザに予め分かっ
ており、またその特定プログラムを引き上げる際の主記
憶上でのアドレス範囲も予め判明している。かかる状況
下で、ユーザは、シミュレータ・プログラムB内のスキ
ップアドレス格納テーブル24に、模擬対象のプログラ
ムAにおいてスキップを希望する特定プログラムの主記
憶上でのアドレス範囲(例えば先頭アドレスと末尾アド
レス)を予め登録しておく。図示の例では特定プログラ
ムaaaa、bbbb、cccc・・の各アドレス範囲が登録されて
いる。なお、この特定プログラムがサブルーチンである
場合もあり、その場合、処理スキップアドレス格納テー
ブル24は前述したサブルーチンスキップアドレス格納
テーブル23と同じものが使える。In this embodiment as well, the specific program that the user does not want to execute in the simulation is known to the user in advance, and the address range on the main memory when the specific program is pulled up is also known in advance. Under such circumstances, the user stores the address range (for example, the start address and the end address) on the main memory of the specific program desired to be skipped in the simulation target program A in the skip address storage table 24 in the simulator program B. Register in advance. In the illustrated example, the address ranges of the specific programs aaaa, bbbb, cccc,... Are registered. The specific program may be a subroutine. In this case, the same processing skip address storage table 24 as the above-described subroutine skip address storage table 23 can be used.
【0104】 バックアップメモリからのプログラム
引上げ命令が発生すると、プログラム引上げ命令処理部
24はこのプログラム引上げ命令を検知し、以下の処理
を行う。When a program pull-up instruction is generated from the backup memory, the program pull-up instruction processing unit 24 detects this program pull-up instruction and performs the following processing.
【0105】 プログラム引上げ命令処理部24は、
当該プログラムが主記憶に引き上げられた後に、その引
き上げたプログラムの範囲内で、スキップアドレス格納
テーブル23に格納されているアドレス範囲が同引上げ
プログラムのアドレス範囲にあるか否かを検索する。The program pull-up instruction processing unit 24
After the program is pulled up to the main memory, a search is made as to whether or not the address range stored in the skip address storage table 23 is within the range of the pulled-up program within the range of the pulled-up program.
【0106】 処理スキップアドレス格納テーブル2
5内の特定プログラムのアドレス範囲が引上げプログラ
ムのアドレス範囲内にあれば、その特定プログラムの命
令を全て無効命令に書き換える。なお、特定プログラム
がサブルーチンの場合には前述同様にその先頭命令だけ
をリターン命令に書き換えればよい。無効命令として
は、例えば“NO−OP”命令のようなものが使用でき
る。これにより、プログラム引上げ命令により引き上げ
られたプログラム中に処理をスキップしたい特定プログ
ラムがあった場合には、当該特定プログラムの内容は無
効命令に置き換えられる。Processing Skip Address Storage Table 2
If the address range of the specific program in 5 is within the address range of the pull-up program, all instructions of the specific program are rewritten to invalid instructions. When the specific program is a subroutine, only the first instruction may be rewritten as a return instruction as described above. As the invalid instruction, for example, an instruction such as a “NO-OP” instruction can be used. Thus, when there is a specific program whose processing is to be skipped in the program pulled up by the program pull-up instruction, the content of the specific program is replaced with an invalid instruction.
【0107】この結果、引き上げたプログラムを実行し
た場合にそのプログラム中にスキップしたい特定プログ
ラムがあっても、その特定プログラムの内容はプログラ
ム引上げ時に無効命令に書き換えられているので、その
特定プログラムはスキップされる。As a result, even if a specific program to be skipped is included in the executed program when the raised program is executed, the specific program is skipped because the contents of the specific program are rewritten to invalid instructions when the program is pulled up. Is done.
【0108】 前述の実施例同様に、以上の書換え処
理を行ったら、次に処理スキップアドレス格納テーブル
25内の当該書き換えた項目(処理スキップするプログ
ラムのアドレス範囲)に、同テーブル25内の他の項目
(例えばn番目の項目)を上書きし、その項目数を(n
−1)に減らす。それにより前述同様に、以降の処理に
おける同テーブル参照時間(サーチ速度)を短縮すると
共に、一度書換えした特定プログラムに対する無効命令
の再書換えを無くし、処理速度を向上させる。After the above-described rewriting process is performed in the same manner as in the above-described embodiment, the rewritten item (address range of the program to be skipped) in the process skip address storage table 25 is next stored in another table in the table 25. Item (for example, the nth item) is overwritten, and the number of items is changed to (n
-1). Thus, as described above, the table reference time (search speed) in the subsequent processing is reduced, and the rewriting of the invalid instruction for the specific program once rewritten is eliminated, thereby improving the processing speed.
【0109】さらに、処理スキップアドレス格納テーブ
ルの残りのスキップアドレス範囲についても〜の処
理を繰り返す。Further, the above processing is repeated for the remaining skip address range in the processing skip address storage table.
【0110】このように、この実施例ではバックアップ
メモリからのプログラム引上げ時に一括して、スキップ
したい特定プログラムの命令内容を書き換えているの
で、以降の処理ではこの命令の書換え処理は行わずに模
擬対象プログラムを順次に実行していくことができるた
め、処理の高速化が図れる。As described above, in this embodiment, when pulling up the program from the backup memory, the instruction contents of the specific program to be skipped are rewritten collectively. Since the programs can be sequentially executed, the processing can be speeded up.
【0111】このように上述の方法によれば、 *バックアップメモリに格納された模擬対象プログラム
のオリジナルデータを壊すことなく(書き換えることな
く)、模擬の実行において所望のプログラム部分をスキ
ップすることができる、 *ユーザは書き換える命令の引き上げられる契機を意識
しなくとも、特定のプログラムの処理をスキップするこ
とができる、 *スキップ処理のための書換えのために模擬対象のプロ
グラムを停止することなく、処理のスキップが行える、 *スキップするプログラム部分は任意に設定可能で、フ
ァイル等から読み込むことにより容易に変更することが
できる、などの効果がある。As described above, according to the above-described method, it is possible to skip a desired program portion in the simulation execution without destroying (rewriting) the original data of the simulation target program stored in the backup memory. * The user can skip the processing of a specific program without being aware of the timing at which the instruction to be rewritten is raised. * Without stopping the program to be simulated for rewriting for skip processing, The program can be skipped. * The program portion to be skipped can be set arbitrarily and can be easily changed by reading from a file or the like.
【0112】本発明のシミュレータのまた他の実施例が
図7〜図9に示される。この実施例は前述の問題点
(4)を解決するためのものであり、オーバレイ方式を
採用する計算機システムの模擬を行うものである。以下
の実施例では、模擬対象のプログラム(オーバレイプロ
グラム)の所定のアドレスでプログラムを停止する場合
について述べるが、もちろん該所定のアドレスからトレ
ースを開始する場合などに本実施例を転用することも可
能である。Another embodiment of the simulator of the present invention is shown in FIGS. This embodiment is to solve the above-mentioned problem (4), and simulates a computer system employing an overlay method. In the following embodiment, a case will be described in which the program is stopped at a predetermined address of the program to be simulated (overlay program). However, the present embodiment can be diverted to, for example, start tracing from the predetermined address. It is.
【0113】図7において、27はオーバレイ構造を持
ったオーバレイプログラムを格納する二次記憶装置とし
てのバックアップメモリである。オーバレイプログラム
は複数のプログラム単位(例えばプログラムセグメン
ト)からなり、各プログラム単位は所定のワード数以下
で構成され、バックアップメモリ27にはこれらのプロ
グラム単位がそれぞれ所定のアドレスに格納されてい
る。図7中には、一つのプログラム単位iが「2000
000(16)」番地から「20007FF(16)」に格納さ
れている状態が例示されている。In FIG. 7, reference numeral 27 denotes a backup memory as a secondary storage device for storing an overlay program having an overlay structure. The overlay program is composed of a plurality of program units (for example, program segments). Each program unit is composed of a predetermined number of words or less, and these program units are stored in the backup memory 27 at predetermined addresses. In FIG. 7, one program unit i is “2000”.
The state stored in the address “000 (16) ” to “20007FF (16) ” is exemplified.
【0114】28はシミュレータの高速一時記憶装置で
ある主記憶(MM)であり、この主記憶28には、プロ
グラム単位をオーバレイするためのA面及びB面の2面
のオーバレイ区域が確保されている。この例ではA面は
「2000(16)」番地から「27FF(16)」番地まで、
B面は「2800(16)」番地から「2FFF(16)」番地
までがそれぞれ割り当てられている。Reference numeral 28 denotes a main memory (MM) which is a high-speed temporary storage device of the simulator. In the main memory 28, two overlay areas A and B for overlaying program units are secured. I have. In this example, the A side is from "2000 (16) " to "27FF (16) "
The area B is assigned addresses from "2800 (16) " to "2FFF (16) ".
【0115】模擬の対象となる計算機システムのプログ
ラムはオーバレイ方式を採用したものであり、必要に応
じてバックアップメモリ27に格納された所要のプログ
ラム単位が主記憶28のオーバレイ区域A面又はB面に
何れか一方に読み込まれ(引き上げられ)、その後に、
主記憶28上のその引き上げられたプログラム単位が適
宜に実行されるようになっている。The program of the computer system to be simulated employs an overlay method. A required program unit stored in the backup memory 27 is stored in the overlay area A or B of the main memory 28 as necessary. Loaded (raised) by one or the other,
The raised program unit on the main memory 28 is appropriately executed.
【0116】31、32、33はシミュレータに用意さ
れた記憶領域である。オーバレイ停止アドレス領域31
はオーバレイプログラム中の実行を停止させたいアドレ
スをオペレータが予め登録するための記憶領域であり、
このアドレスはバックアップメモリ27(すなわち二次
記憶装置)上のアドレスで登録される。図7では停止さ
せたいアドレスとしてバックアップメモリ27上のアド
レス「2000100(16)」が登録されている状態が例
示されている。オーバレイ先頭アドレス領域32はバッ
クアップメモリ27から主記憶28に引き上げたプログ
ラム単位の先頭アドレスがバックアップメモリ27上の
アドレスで格納される記憶領域である。停止アドレス領
域33はオーバレイ停止アドレス領域31に登録された
オーバレイプログラムを停止させたいアドレスをバック
アップメモリ27上のアドレスから主記憶28上のアド
レスに変換したものを記憶する記憶領域である。これら
の領域31、32、33の記憶アドレスは互いに対応付
けがされている。すなわち、オーバレイ停止アドレス領
域31に登録するアドレス毎にオーバレイ先頭アドレス
領域32の先頭アドレス、停止アドレス領域33の停止
アドレスが対応付けられ記憶される。Numerals 31, 32 and 33 are storage areas prepared in the simulator. Overlay stop address area 31
Is a storage area for the operator to register in advance the address at which execution during the overlay program is to be stopped,
This address is registered as an address on the backup memory 27 (that is, the secondary storage device). FIG. 7 illustrates a state in which the address “2000100 (16) ” on the backup memory 27 is registered as the address to be stopped. The overlay start address area 32 is a storage area in which the start address of the program unit, which has been transferred from the backup memory 27 to the main memory 28, is stored as an address on the backup memory 27. The stop address area 33 is a storage area for storing an address at which the overlay program registered in the overlay stop address area 31 is to be stopped from an address on the backup memory 27 to an address on the main memory 28. The storage addresses of these areas 31, 32, 33 are associated with one another. That is, the start address of the overlay start address area 32 and the stop address of the stop address area 33 are stored in association with each address registered in the overlay stop address area 31.
【0117】この他、本実施例のシミュレータはオーバ
レイ停止アドレス登録機能34、オーバレイ認識機能3
5、オーバレイアドレス変換機能36を持っている。こ
のオーバレイ停止アドレス登録機能34はオーバレイ停
止アドレス領域31にプログラム停止させたいアドレス
を登録するための機能、オーバレイ認識機能35は引き
上げたプログラム単位中にオーバレイ停止アドレス領域
31に登録されたアドレスが存在するかを判定し、存在
すればオーバレイ先頭アドレス領域32ににそのプログ
ラム単位の先頭アドレスを書き込む機能、オーバレイア
ドレス変換機能36はオーバレイ停止アドレス領域31
に登録されたアドレス(バックアップメモリ27上のア
ドレス)を主記憶28上のアドレスに変換する機能であ
る。In addition, the simulator of this embodiment has an overlay stop address registration function 34 and an overlay recognition function 3
5. It has an overlay address conversion function 36. The overlay stop address registration function 34 is a function for registering an address to be stopped in the program in the overlay stop address area 31. The overlay recognition function 35 has an address registered in the overlay stop address area 31 in the raised program unit. The overlay address conversion function 36 writes the start address of the program unit into the overlay start address area 32 if it exists.
Is a function of converting an address (address on the backup memory 27) registered in the main memory 28 into an address on the main memory 28.
【0118】以下、実施例装置の動作を説明する。図7
に示されるように、オペレータが模擬試験の開始前に、
模擬対象プログラムを停止させたいバックアップメモリ
27上の停止アドレス「2000100(16)」を入力・
指定すると、オーバレイ停止アドレス登録機能35によ
りこれがオーバレイ停止アドレス領域31に登録される
とともに、停止アドレス領域33の当該停止アドレス
「2000100(16)」に対応する記憶位置にはダミー
アドレス「AAAAAAAA(16)」が設定される。この
ダミーアドレスは、主メモリの最大アドレスよりも大き
い値などの、プログラム停止が決して行われない値に選
ばれる。The operation of the embodiment will be described below. FIG.
Before the start of the practice test, as shown in
Enter the stop address "2000100 (16) " on the backup memory 27 where you want to stop the simulation target program.
When specified, the overlay stop address registration function 35 registers this in the overlay stop address area 31 and stores the dummy address “AAAAAAAAA (16) ” in the storage location of the stop address area 33 corresponding to the stop address “2000100 (16) ”. Is set. This dummy address is chosen to be a value that never stops the program, such as a value greater than the maximum address of the main memory.
【0119】次いで、図8に示されるように、模擬試験
が開始され、プログラム実行中にオーバレイ引上げ命令
(SIO命令の一種)が発生する(図中の参照)。こ
のオーバレイ引上げでは、バックアップメモリ27に格
納されているプログラム単位iを主記憶28のオーバレ
イ区域A面に引き上げるものとする。よって、このオー
バレイ引上げ命令には、バックアップメモリ27からの
プログラム単位iの読出しの先頭アドレスである読出し
アドレス「2000000(16)」、読出しワード数「8
00(16)」、および主記憶28への書込みアドレス「2
000(16)」が含まれる。Next, as shown in FIG. 8, a simulation test is started, and an overlay pull-up instruction (a type of SIO instruction) is generated during execution of the program (see FIG. 8). In this overlay pull-up, the program unit i stored in the backup memory 27 is raised to the overlay area A of the main memory 28. Therefore, the overlay pull-up instruction includes a read address “200000 (16) ” which is a start address of the read of the program unit i from the backup memory 27, and a read word number “8”.
00 (16) ”and the write address“ 2
000 (16) ".
【0120】オーバレイ認識機能35は、このオーバレ
イ引上げ命令を検出し、その読出しアドレス「2000
000(16)」をオーバレイ先頭アドレス領域32に設定
する(同図中の参照)。図示していないが読出しワー
ド数及び書込みアドレスもこのオーバレイ先頭アドレス
領域32の所定領域に設定・保持される。The overlay recognizing function 35 detects the overlay pull-up instruction and reads its overlay address “2000”.
000 (16) "is set in the overlay head address area 32 (see FIG. 7). Although not shown, the number of read words and the write address are also set and held in a predetermined area of the overlay head address area 32.
【0121】オーバレイ認識機能35による処理の後、
オーバレイアドレス変換機能36は、読出しアドレスか
ら読出しワード数内、すなわち「2000000(16)」
番地から「20007FF(16)」番地までの間に、オー
バレイ停止アドレス領域31に登録されている停止アド
レス「2000100(16)」が存在するか否かを判定す
る。After the processing by the overlay recognition function 35,
The overlay address conversion function 36 determines that the number of words to be read from the read address is within the number of words to be read, that is, "200000 (16) ".
Until address "20007FF (16)" from the address determines whether stop is registered in the overlay stop address area 31 address "2000100 (16)" exists.
【0122】存在した場合(すなわち図示の例の場
合)、オーバレイ停止アドレス領域31に登録されたバ
ックアップメモリ27上の停止アドレス「200010
0(16)」を、バックアップメモリ27からの読出しアド
レス「2000000(16)」及び主記憶28への書込み
アドレス「2000(16)」に基づいて、引き上げたプロ
グラム単位の主記憶28上のアドレスに変換する。すな
わち、 〔(2000100−2000000)+2000=2100〕(16) なる計算を行い、得られた停止アドレス「210
0(16)」を主記憶28上の停止アドレスとして停止アド
レス領域33のダミーアドレスに換えて設定する(同図
中の参照)。If it exists (ie, in the case of the example shown), the stop address “200010” on the backup memory 27 registered in the overlay stop address area 31
0 (16) ”to the address on the main memory 28 of the program unit which is raised based on the read address“ 200000 (16) ”from the backup memory 27 and the write address“ 2000 (16) ”to the main memory 28. Convert. That is, [(2000100−200000) + 2000 = 2100] (16) is performed, and the obtained stop address “210
0 (16) "is set as the stop address on the main memory 28 in place of the dummy address in the stop address area 33 (see FIG. 3).
【0123】以上の処理をプログラム単位iを主記憶2
8に引き上げた際に行い、その処理が終了したら、シミ
ュレータは主記憶28からのプログラム単位iの命令を
順次に読み出して実行することで当該プログラムの模擬
試験を行う。この模擬試験を実行している間、図9に示
されるように、アドレス停止機能37は、模擬試験して
いるプログラム単位iの実行番地を監視し、停止アドレ
ス領域33に設定された停止アドレスである「2100
(16)」番地が実行された時点で、プログラム単位iの実
行を停止する。The above processing is performed by storing the program unit i in the main memory 2
When the processing is completed, the simulator performs a simulation test of the program by sequentially reading and executing the instructions of the program unit i from the main memory 28. During execution of the simulation test, as shown in FIG. 9, the address stop function 37 monitors the execution address of the program unit i under simulation test, and uses the stop address set in the stop address area 33. A certain "2100
(16) When the address is executed, the execution of the program unit i is stopped.
【0124】その後、プログラムのトレース、メモリ内
容の表示等の、オペレータにより事前またはその都度指
定された処理を実行することにより、デバッグを必要な
データを収集することができる。Thereafter, data required for debugging can be collected by executing processing specified in advance or each time by the operator, such as tracing a program and displaying memory contents.
【0125】図10には上述の図7〜図9の実施例を改
良した本発明の他の実施例が示される。上述の実施例の
シミュレータでは、一のプログラム単位が主記憶28に
引き上げられており、その一のプログラム単位から起動
されて他のプログラム単位が当該一のプログラム単位と
入れ換えに主記憶28に引き上げられるような場合に
は、以下に説明するように問題が生じる。FIG. 10 shows another embodiment of the present invention which is an improvement of the above-described embodiment shown in FIGS. In the simulator of the above-described embodiment, one program unit is pulled up to the main memory 28, and is started from the one program unit, and another program unit is pulled up to the main memory 28 instead of the one program unit. In such a case, a problem occurs as described below.
【0126】例えば、プログラム単位iが主記憶28の
オーバレイ区域A面に、プログラム単位kが同B面に引
き上げられており、オーバレイ停止アドレス領域31に
はプログラム単位iに含まれるアドレス「200010
0(16)」について停止アドレスが指定されている状態
で、プログラム単位iからバックアップメモリ27上の
他のプログラム単位jの引上げが要求され、これが、現
在プログラム単位iがロードされていると同じ主記憶2
8のオーバレイ区域A面に引き上げられるものとする。
すなわち主記憶28上においてプログラム単位iがプロ
グラム単位jに入れ換えられる場合である。For example, the program unit i has been raised to the overlay area A side of the main memory 28 and the program unit k has been raised to the plane B. The overlay stop address area 31 has the address “200010” included in the program unit i.
0 (16) ", with the stop address specified, it is requested to pull up another program unit j on the backup memory 27 from the program unit i, which is the same as the main unit currently loaded with the program unit i. Memory 2
8 is overlaid on the overlay area A side.
That is, this is a case where the program unit i is replaced with the program unit j on the main memory 28.
【0127】この場合、引き上げられたプログラム単位
jは主記憶28上のアドレス「2000(16)」〜「27
FF(16)」にプログラム単位iと入換えに格納される。
一方、停止アドレス領域33にはプログラム単位iを所
望のアドレスで停止するための主記憶28上でのアドレ
ス「2100(16)」が、プログラム単位iの引上げ時に
設定されているので、プログラム単位jの引上げ後にそ
れをそのまま実行すると「2100(16)」番地で実行が
停止されてしまうことになる。しかし、このアドレスで
の停止はプログラム単位iに関して有効であっても、プ
ログラム単位jに関してはオペレータが予定しているも
のではない。In this case, the raised program unit j is stored in the addresses "2000 (16) " to "27" in the main memory 28.
FF (16) "instead of the program unit i.
On the other hand, the address “2100 (16) ” in the main memory 28 for stopping the program unit i at a desired address is set in the stop address area 33 when the program unit i is pulled up. If it is executed as it is after pulling up, the execution will be stopped at the address "2100 (16) ". However, even though the stop at this address is valid for the program unit i, the operator is not planning for the program unit j.
【0128】よって、図10の実施例では次のように処
理する。すなわち、主記憶28に引き上げられたプログ
ラム単位iからプログラム単位jの引上げがあった場合
には、オーバレイ認識機能35は、プログラム単位iの
主記憶28への書込みアドレス(この例では「2000
(16)」番地)とプログラム単位jの主記憶28への書込
みアドレス(同じく「2000(16)」番地)とが一致し
た時には、停止アドレス領域33に記憶したプログラム
単位iについての停止アドレス「2100(16)」に換え
てダミーアドレス「AAAAAAAA(16)」を設定す
る。このようにすることで、オペレータが予定していな
いアドレスでプログラムが停止されてしまうことを防止
できる。Therefore, in the embodiment of FIG. 10, the following processing is performed. That is, when there is a pull-up of the program unit j from the program unit i pulled up to the main memory 28, the overlay recognition function 35 sets the write address of the program unit i to the main memory 28 (in this example, "2000").
(16) ”and the write address of the program unit j to the main memory 28 (also“ 2000 (16) ”) coincide with the stop address“ 2100 ”for the program unit i stored in the stop address area 33. (16) ”and a dummy address“ AAAAAAAAA (16) ”is set. By doing so, it is possible to prevent the program from being stopped at an address not planned by the operator.
【0129】図11には上述の図7〜図10の実施例の
シミュレータをさらに改良した本発明の他の実施例が示
される。この実施例は模擬対象プログラムの停止アドレ
スを模擬試験に先立って予め登録するだけでなくプログ
ラム単位の引上げ後の任意の時点でも行えるようにした
ものである。FIG. 11 shows another embodiment of the present invention in which the simulator of the embodiment shown in FIGS. 7 to 10 is further improved. In this embodiment, not only the stop address of the simulation target program is registered in advance before the simulation test but also at any time after the program unit is pulled up.
【0130】すなわち、シミュレータの仕様によって
は、引き上げたプログラム単位について予め登録された
停止アドレスにて実行が停止されているときに、さらに
新たな停止アドレスを指定する場合があるが、前述した
実施例では停止アドレスの登録をプログラム単位の引上
げ時に一括して行うようにしているので、かかる場合に
対応できない。In other words, depending on the specifications of the simulator, a new stop address may be specified when execution is stopped at the stop address registered in advance for the raised program unit. In this method, the stop address is registered at the time of pulling up the program unit, so that such a case cannot be dealt with.
【0131】すなわち、オーバレイアドレス変換機能3
6によるアドレス変換処理はプログラム単位の引上げ命
令を契機としてなされるから、新たに入力・指定したい
停止アドレスを含むプログラム単位が既に主記憶28に
引き上げられてしまっている場合には、その新たに入力
・指定した停止アドレスでプログラムの実行を停止する
ことができないことになる。この問題は図11に示すよ
うな処理を行うことにより解決できる。That is, the overlay address conversion function 3
6 is performed in response to a program unit pull-up instruction, and if a program unit including a stop address to be newly input / designated has already been pulled up to the main memory 28, the new input is executed. -Execution of the program cannot be stopped at the specified stop address. This problem can be solved by performing the processing shown in FIG.
【0132】すなわち、プログラム単位iの主記憶28
への引上げ後に、オペレータにより停止アドレス「20
002000(16)」が新たに入力・指定されたものとす
る。この場合、オーバレイ停止アドレス登録機能34
は、これをオーバレイ停止アドレス領域31に追加的に
設定するとともに、オーバレイ先頭アドレス領域32か
ら読出しアドレス「2000000(16)」を読み込む
(同図中の参照)。That is, the main memory 28 of the program unit i
After the pull-up to the stop address "20
002000 (16) ”is newly input and designated. In this case, the overlay stop address registration function 34
Sets this additionally in the overlay stop address area 31 and reads the read address "200000 (16) " from the overlay head address area 32 ( see FIG. 3).
【0133】次いで、読出しアドレスから読出しワード
数までに、すなわち「2000000(16)」番地から
「20007FF(16)」番地までの間に、オーバレイ停
止アドレス領域31に追加設定された停止アドレス「2
0002000(16)」が存在するか否かを判定し、さら
にオーバレイ先頭アドレス領域31に停止アドレス「2
0002000(16)」に対応する記憶データとして読出
しアドレス「2000000(16)」を追加的に設定する
(同図中の参照)。さらに、プログラム単位iが現
在、オーバレイ区域に引き上げられているかを判定す
る。これは停止アドレス領域33の対応停止アドレスが
ダミーアドレスか否かで判定できる(同図中の’参
照)。Next, the stop address “2” additionally set in the overlay stop address area 31 from the read address to the number of words to be read, that is, from the address “200000 (16) ” to the address “20007FF (16) ”.
0002000 (16) ”is present, and the stop address“ 2 ”is added to the overlay start address area 31.
0002000 (16) read address "2000000 as the corresponding stored data" (16) "and additionally set (see in the figure). Further, it is determined whether the program unit i is currently being raised to the overlay area. This can be determined based on whether or not the corresponding stop address in the stop address area 33 is a dummy address (see 'in the figure).
【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に追加設定する。
(同図中の参照)。The additionally set stop address "2000020"
00 (16) ] is the program unit i currently overlaid
If the address exists in the address range (address range on the backup memory 27), the overlay address conversion function 36 reads the read address “200000 (16 ) ” corresponding to the stop address “2000200 (16) ” from the overlay head address area 32. ) ] And the stop address “2000200” from the overlay stop address area 31.
(16) "(see FIG. 10), and based on these and the write address" 2000 (16) "which is the head address in the main memory 28 where the program unit i is written.
The stop address "2000200 (16) " is converted into an address on the main memory 28. That is, [(2000200−200000) + 2000 = 2200] (16) is calculated, and the obtained result “2200 (16) ” is additionally set in the stop address area 33 as a stop address.
(Refer to the figure).
【0135】このようにすることにより、主記憶28上
のアドレス「2100(16)」で一旦停止して所定のデー
タ収集等を行った後でも、新たな停止アドレスを追加指
定して実行を再開すれば、アドレス停止機能37によ
り、その追加指定した停止アドレス「2000200
(16)」の主記憶28上のアドレス「2200(16)」にて
プログラムの実行が停止される。したがって、オペレー
タの要求に応じて柔軟にプログラム停止位置を設定する
ことができ、デバッグの効率を向上できる。In this way, even after temporarily stopping at the address "2100 (16) " on the main memory 28 and collecting predetermined data, execution is resumed by additionally specifying a new stop address. Then, the address stop function 37 causes the additionally specified stop address “2000200”
(16) "in the execution of the program in the main memory 28 on the address" 2200 (16) "is stopped. Therefore, the program stop position can be flexibly set according to the request of the operator, and the efficiency of debugging can be improved.
【0136】以上のように、上述の図7〜図11の実施
例によれば、記憶管理にオーバレイ方式を採用した計算
機システムを模擬する場合でも、オペレータは模擬対象
のプログラムを停止やトレース開始等する注目点のアド
レスを二次記憶装置上のアドレスで指定するだけで、主
記憶上に引き上げたプログラムをその注目点のアドレス
で停止等することが可能になる。As described above, according to the above-described embodiments of FIGS. 7 to 11, even when simulating a computer system employing the overlay method for storage management, the operator can stop the program to be simulated or start tracing. By simply specifying the address of the point of interest by the address on the secondary storage device, it is possible to stop the program pulled up on the main memory at the address of the point of interest.
【0137】図12には本発明のまた他の実施例のシミ
ュレータが示される。このシミュレータは前述の問題点
(5)を解決するもので、入出力装置を駆動するプログ
ラムの模擬試験を行うためのものである。この実施例で
はシミュレータ側の記憶装置で入出力装置のメモリ空間
を擬似しているが、実際の入出力装置としては巨大メモ
リ容量を持つ光磁気ディスク装置が使用されているもの
とする。FIG. 12 shows a simulator according to still another embodiment of the present invention. This simulator solves the above-mentioned problem (5) and is for performing a simulation test of a program for driving an input / output device. In this embodiment, the memory space of the input / output device is simulated by the storage device on the simulator side, but it is assumed that a magneto-optical disk device having a huge memory capacity is used as the actual input / output device.
【0138】図12において、40は模擬対象プログラ
ムを逐次に実行する命令実行部、42は入出力装置を擬
似するための入出力装置擬似部であり、入出力装置擬似
部42は擬似対象入出力装置のメモリ空間を擬似するた
めの記憶装置のメモリ空間を内部に持っている。In FIG. 12, reference numeral 40 denotes an instruction execution unit for sequentially executing a simulation target program; 42, an input / output device simulation unit for simulating an input / output device; The memory space of the storage device for simulating the memory space of the device is provided inside.
【0139】ここで、擬似対象の入出力装置のメモリ空
間は複数のブロックに仮想的に分割される。図12中に
示した入出力装置メモリ空間には同メモリ空間を仮想的
に分割した様子が示されている。このメモリ空間の分割
の単位となるブロックサイズは論理的なサイズで分割さ
れており、擬似対象の入出力装置がメモリにアクセスす
る最小サイズのn倍とする。但し、nは正の整数であ
る。The memory space of the input / output device to be simulated is virtually divided into a plurality of blocks. The input / output device memory space shown in FIG. 12 shows a state where the memory space is virtually divided. The block size, which is a unit of division of the memory space, is divided by a logical size, and is set to be n times the minimum size at which the input / output device to be simulated accesses the memory. Here, n is a positive integer.
【0140】この実施例では、入出力装置として光磁気
ディスク装置を用いており、この光磁気ディスク装置の
アクセス単位は1024byteであり、光磁気ディスクの
アドレスも1024byte毎に付与され、アクセスの単位
としてはLBA(論理ブロックアドレス)が用いられ
る。すなわち1LBA=1024byteである。そして、
本実施例でのブロックのサイズは、上述のn=16とし
て、16LBA(=16、384byte)単位に一つのブ
ロックを構成し、入出力装置の全メモリ空間をこのブロ
ックサイズで区切り、その各ブロックに通番を付するも
のとする。In this embodiment, a magneto-optical disk device is used as an input / output device. The access unit of this magneto-optical disk device is 1024 bytes, and the address of the magneto-optical disk is also assigned every 1024 bytes. Uses LBA (logical block address). That is, 1 LBA = 1024 bytes. And
In this embodiment, the size of a block is n = 16, one block is configured in units of 16 LBA (= 16, 384 bytes), and the entire memory space of the input / output device is divided by this block size. Shall be numbered.
【0141】41はアドレス/ブロック変換部である。
このアドレス/ブロック変換部41は、命令実行部40
で実行される対象プログラムが入出力装置のメモリ空間
にアクセスする際に、そのアクセスしたアドレスが入出
力装置メモリ空間のどのブロックに属するかを判定し、
当該アドレスをその属する上記ブロックの通番番号に変
換する機能を持つ。例えばアクセスしたアドレスが10
0LBAの場合、ブロックサイズは上述のように16L
BAであるから、このアドレス「100LBA」がどの
ブロックに属するかは、次式により算出することができ
る。 ブロック番号=100LBA÷16LBA=6.25 ここで、少数点以下の単数は切り捨てて、第6番目のブ
ロックに属すると判定される。Reference numeral 41 denotes an address / block converter.
The address / block conversion unit 41 includes an instruction execution unit 40
When the target program to be executed in the process accesses the memory space of the input / output device, it determines which block of the input / output device memory space the accessed address belongs to,
It has a function of converting the address into a serial number of the block to which the address belongs. For example, if the accessed address is 10
In the case of 0 LBA, the block size is 16 L as described above.
Since the block is a BA, the block to which the address “100 LBA” belongs can be calculated by the following equation. Block number = 100 LBA ÷ 16 LBA = 6.25 Here, singular numbers below the decimal point are discarded and determined to belong to the sixth block.
【0142】入出力装置擬似部42はアドレス/ブロッ
ク変換部41からブロック番号を通知されると、内部の
記憶装置上にそのブロック番号のブロックに相応する記
憶領域を確保する機能を持つ。記憶装置上に既に同じブ
ロック番号の記憶領域が確保されている場合には重複し
て記憶領域を確保することはしない。また、対象プログ
ラムでアクセスされたアドレスをそのアドレスの属する
ブロック中のアドレス(内部記憶装置上のアドレス)に
変換して、対象プログラムが、記憶装置上に作られた擬
似メモリ空間にアクセスできるようにしている。When notified of the block number from the address / block converter 41, the input / output device simulator 42 has a function of securing a storage area corresponding to the block of the block number in an internal storage device. If a storage area with the same block number has already been allocated on the storage device, the storage area is not duplicated. Further, the address accessed by the target program is converted into an address in the block to which the address belongs (an address on the internal storage device) so that the target program can access the pseudo memory space created on the storage device. ing.
【0143】以下に、この実施例装置の動作を図14を
参照して説明する。 光磁気ディスクに対してアクセス(書込み、読出
し)を実行する模擬対象プログラムをシミュレータの命
令実行部40で走行させる。The operation of this embodiment will be described below with reference to FIG. A simulation target program for executing access (writing and reading) to the magneto-optical disk is run by the instruction execution unit 40 of the simulator.
【0144】 同プログラムにおいて光磁気ディスク
に対して書込み命令が発生すると、この書込み命令のキ
ー情報として、光磁気ディスクの書込み先アドレスがシ
ミュレータのアドレス/ブロック変換部41に渡され
る。ここでは、前述のように、書込みアドレスは100
LBAとする。When a write command is issued to the magneto-optical disk in the same program, the write destination address of the magneto-optical disk is passed to the address / block converter 41 of the simulator as key information of the write command. Here, as described above, the write address is 100
LBA.
【0145】 アドレス/ブロック変換部42では、
アドレス「100LBA」がどのブロック番号のブロッ
クに属するかを判定するために前述した演算を行って、
当該アドレスが属するブロック番号を求め、そのブロッ
ク番号を入出力装置擬似部42に通知する。このブロッ
ク番号は前述のように第6番である。In the address / block converter 42,
The above-described operation is performed to determine which block number the address “100LBA” belongs to,
The block number to which the address belongs is obtained, and the block number is notified to the input / output device pseudo unit 42. This block number is the sixth as described above.
【0146】 入出力装置擬似部42は、通知された
ブロック番号のブロックに相応する大きさの記憶領域を
メモリ空間内の先頭から確保する。この時、シミュレー
タの記憶装置の全メモリ空間のちう使用中となるのは、
1ブロック分(=16、384byte)だけである。The input / output device pseudo unit 42 secures a storage area having a size corresponding to the block of the notified block number from the beginning in the memory space. At this time, the whole memory space of the storage device of the simulator is in use.
It is only for one block (= 16, 384 bytes).
【0147】 入出力擬似装置は対象プログラムが発
生した書込みアドレス(入出力装置上のアドレス)を記
憶装置上の書込みアドレスに変換し、対象プログラムか
ら当該確保したブロックの記憶領域へのアクセスを可能
にする。よって、書込み命令の結果はシミュレータの記
憶装置に保存されるので、後のデバッグ等でそのメモリ
内容から書込み命令の正常性を判断することができる。The input / output pseudo device converts a write address (address on the input / output device) generated by the target program into a write address on the storage device, and enables the target program to access the storage area of the secured block. I do. Therefore, since the result of the write instruction is stored in the storage device of the simulator, the normality of the write instruction can be determined from the memory content in later debugging or the like.
【0148】同様に、例えば次に対象プログラムから光
磁気ディスクのアドレス「40LBA」に書込み命令が
あった場合には、図13に示されるように、第3番目の
ブロックに相応する記憶領域がシミュレータの記憶装置
上に確保され、以下、書込み命令が発せられることに、
その書込みアドレスが属するブロックの記憶領域が記憶
装置上に逐次に確保されていく。Similarly, when, for example, the target program next issues a write command to the address “40 LBA” of the magneto-optical disk, the storage area corresponding to the third block is stored in the simulator as shown in FIG. Is secured on a storage device, and hereinafter, when a write instruction is issued,
The storage area of the block to which the write address belongs is sequentially secured on the storage device.
【0149】より具体的な例として、上述の実施例装置
を光磁気ディスク装置の駆動プログラムの光磁気ディス
クカートリッジ(OC)フォーマット化の実行処理に適
用した場合について説明する。図16には光磁気ディス
クカートリッジのフォーマットの例が示される。光磁気
ディスクカートリッジは、管理エリア部、エリア1、エ
リア2、エリア3にフォーマット化するものとする。こ
の光磁気ディスクカートリッジの容量は、管理エリア部
がxLBA、エリア1がyLBA、エリア2がzLB
A、エリア3がxxLBAとすると、(x+y+z+x
x)LBAであり、ここでは200ブロック分とする。As a more specific example, a case will be described in which the above-described embodiment apparatus is applied to execution processing of a drive program of a magneto-optical disk drive for formatting a magneto-optical disk cartridge (OC). FIG. 16 shows an example of the format of a magneto-optical disk cartridge. It is assumed that the magneto-optical disk cartridge is formatted into a management area, an area 1, an area 2, and an area 3. The capacity of this magneto-optical disk cartridge is xLBA for the management area, yLBA for area 1, and zLB for area 2.
A, if area 3 is xxLBA, (x + y + z + x
x) LBA, here, 200 blocks.
【0150】光磁気ディスク装置の駆動プログラムをシ
ミュレータで走行し、光磁気ディスクカートリッジをフ
ォーマット化する命令が実行されると、まず初めにこの
駆動プログラムは管理エリアにボリューム名などの情報
を書き込み、また、各エリア1、2、3に対してその開
始部の1LBAと終了部の1LBAにそれぞれ書込み処
理を行い、光磁気ディスクカートリッジのフォーマット
化を実施する命令を順次に発行する。When the drive program of the magneto-optical disk drive is run by the simulator and a command for formatting the magneto-optical disk cartridge is executed, the drive program first writes information such as a volume name in the management area, and Then, for each of the areas 1, 2, and 3, a write process is performed on the 1 LBA of the start portion and the 1 LBA of the end portion, and commands for formatting the magneto-optical disk cartridge are sequentially issued.
【0151】この処理にともない、図17に示されるよ
うに、シミュレータのアドレス/ブロック変換部41
は、それぞれの書込み位置のキーとなるアドレス(単位
LBA)からブロック通番を算出し、入出力装置擬似部
42は、このブロック通番でシミュレータの記憶装置の
メモリ空間の先頭からブロック単位で記憶領域を確保す
る。図17から分かるように、実際の光磁気ディスクカ
ートリッジの容量は(x+y+z+xx)×1024by
te=200ブロックであるが、シミュレータ装置の擬似
メモリ空間に実際に書込みがあるのは7ブロック分であ
り、この分の記憶領域だけを擬似メモリ空間に確保すれ
ばよいのであるから、光磁気ディスクカートリッジの容
量分全てを確保するのに比べて193ブロック分の節減
が図れることになる。With this processing, as shown in FIG. 17, the address / block converter 41 of the simulator
Calculates a block serial number from an address (unit LBA) which is a key of each write position, and the input / output device pseudo unit 42 uses the block serial number to allocate a storage area in block units from the beginning of the memory space of the storage device of the simulator. Secure. As can be seen from FIG. 17, the actual capacity of the magneto-optical disk cartridge is (x + y + z + xx) × 1024 by.
Although te = 200 blocks, writing is actually performed in the pseudo memory space of the simulator apparatus for seven blocks, and only the storage area corresponding to this block needs to be secured in the pseudo memory space. This saves 193 blocks compared to securing the entire capacity of the cartridge.
【0152】上記の方法によれば、擬似対象入出力装置
が必要とする、指定サイズ単位のメモリ空間のみを、論
理的なサイズ単位で、それが必要となる場合にだけ限っ
てシミュレータ側の記憶装置上に確保するものであり、
擬似対象入出力装置が実際に使用しないメモリ空間をシ
ミュレータの記憶装置に確保してしまうことはないの
で、擬似対象入出力装置の全メモリ空間>シミュレータ
の記憶装置のメモリ空間サイズの環境であっても、擬似
対象入出力装置が実際に使用するメモリ空間サイズ<シ
ミュレータの記憶装置のメモリ空間サイズの条件が成立
する環境であれば、対象プログラムをシミュレータにて
模擬試験することが可能となるのである。According to the above-mentioned method, the memory space of the designated size unit required by the simulation target input / output device is stored on the simulator side only in the logical size unit and only when it is necessary. On the device,
Since a memory space that is not actually used by the simulation target input / output device is not secured in the storage device of the simulator, the environment where “the total memory space of the simulation target input / output device> the memory space size of the storage device of the simulator” is satisfied. In an environment where the condition of the memory space size actually used by the simulation target input / output device <the memory space size of the storage device of the simulator is satisfied, the simulation test of the target program can be performed by the simulator. .
【0153】図15には実施例装置の命令実行部40か
ら入出力装置擬似メモリ空間へのアクセスの態様が説明
される。図15中の(A)は上述した書込み命令の場合
であり入出力装置擬似メモリ空間には書込みアドレスの
属するブロック番号の記憶領域のみが確保される。FIG. 15 illustrates the manner in which the instruction execution unit 40 of the embodiment device accesses the input / output device pseudo memory space. FIG. 15A shows the case of the above-described write command, and only the storage area of the block number to which the write address belongs is secured in the input / output device pseudo memory space.
【0154】図15中の(B)はシミュレータが走行さ
せる模擬対象プログラムが入出力装置に対して読出し命
令を発行したが、該当読出しアドレスの属するブロック
番号の記憶領域がまだ入出力装置擬似メモリ空間に未確
保であった場合を示している。この場合、当該ブロック
番号の記憶領域が確保されていないと言うことはまだそ
のブロックには書込みが行われていないと言うことであ
り、よってその読出しデータは「0」のはずであるか
ら、入出力装置擬似部42は命令実行部40に対して読
出しデータは「0」、あるいは‘書込みデータ無し’で
あることを保証したデータを返送する。In FIG. 15B, although the simulation target program run by the simulator issues a read command to the input / output device, the storage area of the block number to which the read address belongs still has the input / output device pseudo memory space. Shows a case where it has not been secured. In this case, the fact that the storage area of the block number is not secured means that the block has not been written yet, and the read data should be "0". The output device simulating unit 42 returns to the instruction executing unit 40 data which guarantees that the read data is “0” or “no write data”.
【0155】図15中の(C)はシミュレータ側の入出
力装置擬似メモリ空間の使用・未使用の管理を、管理表
を用意することなく命令実行部40からの直接アクセス
で行う方法を示している。すなわち、命令実行部40か
ら擬似メモリ空間の所定のアドレスに対してアクセス
し、アクセスが可能であればそのアドレスの属するブロ
ック番号の記憶領域が確保されている(すなわち使用さ
れている)ことが分かり、一方、アスセスに失敗すれば
該当記憶領域が確保されていない(すなわち未使用であ
る)ことが分かるので、各ブロック番号対応のアドレス
で順次にアクセスすることにより擬似メモリ空間の使用
・未使用を管理表なしに管理できる。(C) in FIG. 15 shows a method of managing the use / unused of the input / output device pseudo memory space on the simulator side by direct access from the instruction execution unit 40 without preparing a management table. . That is, the instruction execution unit 40 accesses a predetermined address in the pseudo memory space, and if the access is possible, it is understood that the storage area of the block number to which the address belongs is reserved (that is, used). On the other hand, if the access fails, it is known that the corresponding storage area is not secured (that is, the storage area is not used). Therefore, by sequentially accessing the addresses corresponding to the respective block numbers, the use / unuse of the pseudo memory space can be determined. Can be managed without management tables.
【0156】以上述べたように、この実施例によれば、 従来においては巨大なメモリを有する入出力装置と
のアクセスを制御するプログラムの模擬試験のためのシ
ミュレータでは擬似するメモリ量の確保が困難であった
が、本方式ではシミュレータ内の記憶装置が入出力装置
のメモリ空間と同等サイズ確保できない場合にも、対象
プログラムの試験が可能となる、 シミュレータのメモリ空間を効率よく使用でき、よ
って複数の入出力装置の擬似も同時に可能になる、 メモリ増設などの設備投資なしでシミュレータの活
用を図ることができる、 シミュレータ内部のメモリ空間を論理サイズに区切
ったブロックにてメモリ管理を実施できるので、アクセ
スポイントの検索によるシミュレータの遅延を抑えるこ
とができる、などの効果を得ることができる。As described above, according to this embodiment, it is conventionally difficult to secure a simulated memory amount in a simulator for simulating a program for controlling access to an input / output device having a huge memory. However, in this method, the target program can be tested even when the storage device in the simulator cannot secure the same size as the memory space of the I / O device. Simultaneous simulation of input / output devices is also possible.The simulator can be used without capital investment such as additional memory.Since the memory space inside the simulator can be managed in blocks divided into logical sizes, Obtain effects such as the ability to suppress simulator delays caused by searching for access points Can be.
【0157】図18には本発明のまた他の実施例のシミ
ュレータが示される。この実施例装置は前述の問題点
(6)を解決するためのものであり、模擬試験するプロ
グラムにおけるプログラム論理の矛盾の有無を検査する
ことができるようになっている。FIG. 18 shows a simulator according to still another embodiment of the present invention. The apparatus of this embodiment solves the above-mentioned problem (6), and is capable of checking for inconsistency of program logic in a program to be simulated.
【0158】図18において、45はシミュレーション
・システムであって、試験対象のプログラム50を実行
するシミュレーション実行部46、実行しているプログ
ラム50の実行監視をする実行監視部47を含み、また
プログラムの論理矛盾をチェックするためのチャック機
構で用いるプログラム論理チェック機構データを保持す
る管理テーブル48が設けられている。In FIG. 18, reference numeral 45 denotes a simulation system, which includes a simulation execution unit 46 for executing a program 50 to be tested and an execution monitoring unit 47 for monitoring the execution of the program 50 being executed. A management table 48 is provided for holding program logic check mechanism data used in the chuck mechanism for checking for logic inconsistency.
【0159】この実施例装置では、試験対象プログラム
50の模擬試験をシミュレーション・システム45が実
施する。シミュレーション・システム45は、試験対象
プログラム50の模擬実行を実行部46により行い、そ
の実行状態を1命令ずつ実行監視部47で監視し、当該
プログラム50の実行履歴Xを収集する。この実行履歴
Xは例えば図18の試験対象プログラム50中に矢印で
示す軌跡のようなものであり、同実行履歴Xは主プログ
ラムAからサブルーチンB、Cにそれぞれにジャンプし
て処理を行った後に元の主プログラムAに戻った状態を
表している。In this embodiment, the simulation system 45 performs a simulation test of the test target program 50. The simulation system 45 performs the simulated execution of the test target program 50 by the execution unit 46, monitors the execution state by the execution monitoring unit 47 one instruction at a time, and collects the execution history X of the program 50. The execution history X is, for example, a locus indicated by an arrow in the test target program 50 in FIG. 18. The execution history X is obtained by jumping from the main program A to the subroutines B and C and performing the processing. This shows a state in which the program has returned to the original main program A.
【0160】実行監視部47は、得られた実行履歴Xに
基づき管理テーブル48内のプログラム論理チェック機
構データ51の各項目データを参照して、プログラムの
論理の正常性をチェックする。このチェックはプログラ
ム50を1命令進めるごとに行うことができる。試験項
目としては、実行レベル矛盾、マスク設定解除も
れ、データストア領域誤り、入力パラメータ未設
定、出力パラメータ未設定、キー情報アンマッチ、
対応プログラム呼出し無し・・・などがある。The execution monitoring unit 47 checks the normality of the logic of the program by referring to each item data of the program logic check mechanism data 51 in the management table 48 based on the obtained execution history X. This check can be performed each time the program 50 is advanced by one instruction. Test items include execution level inconsistency, mask setting omission, data store area error, input parameter not set, output parameter not set, key information unmatch,
No corresponding program is called.
【0161】得られたプログラム論理チェック結果49
は、CRT表示装置、プリンタ等の出力装置で出力され
る。チェック結果には、図示のように、各項目毎にO
K、NGの種別が示される。この出力されたプログラム
論理チェック結果49を試験者が確認し、試験対象プロ
グラム50の誤りを修正して、模擬試験を再実施しなが
ら試験精度を上げていく。Obtained Program Logic Check Result 49
Is output by an output device such as a CRT display device and a printer. Check results include O for each item as shown.
K and NG types are indicated. The tester confirms the output program logic check result 49, corrects an error in the test target program 50, and increases the test accuracy while performing the simulation test again.
【0162】上記のプログラム論理チェックの例として
の実行レベル矛盾の場合のチェック手法を以下に示
す。この実行レベル矛盾は実行レベルが高/低二つ以上
あるプログラムが同時に実行されるプログラム実行レベ
ル間競合が起きた時に、当該プログラムに割込みマスク
処理命令が組み込まれているか否かをチェックするもの
であり、組み込まれていれば正常、いなければプログラ
ム論理矛盾があることになる。A check method in the case of execution level inconsistency as an example of the above program logic check will be described below. The execution level contradiction is to check whether or not an interrupt mask processing instruction is incorporated in the program when a conflict occurs between program execution levels in which programs having two or more execution levels are simultaneously executed. Yes, if it is embedded, it is normal, otherwise it is a program logic inconsistency.
【0163】図19はこの実行レベル矛盾のチェックを
行うシミュレータの構成を示す。この例では被試験プロ
グラム(X)がプログラムA、B、Cを含み、そのうち
のプログラムAとCがそれぞれ高/低の二つの実行レベ
ルで動作するものとする。図中、52は被試験プログラ
ム実行レベル監視部であり、高レベルのプログラムがエ
ントリされたことを検出する高レベルプログラムエント
リ収集部53、低レベルのプログラムがエントリされた
ことを検出する低レベルプログラムエントリ収集部5
4、プログラム実行競合照合部55からなる。56は競
合照合部55からの照合結果をプリンタ等で出力する照
合結果出力部56である。FIG. 19 shows a configuration of a simulator for checking the execution level contradiction. In this example, it is assumed that the program under test (X) includes programs A, B, and C, of which programs A and C operate at two high / low execution levels, respectively. In the figure, reference numeral 52 denotes a program-under-test execution level monitoring unit, which is a high-level program entry collection unit 53 for detecting that a high-level program has been entered, and a low-level program for detecting that a low-level program has been entered. Entry collection unit 5
4. It comprises a program execution conflict collation unit 55. Reference numeral 56 denotes a collation result output unit 56 that outputs a collation result from the competition collation unit 55 by a printer or the like.
【0164】この実施例装置の動作を以下に説明する。
シミュレータで被試験プログラム(X)の模擬試験を開
始する。シミュレータは被試験プログラム(X)の模擬
試験をシミュレーション実行部46で行い、結果として
被試験プログラム実行履歴Xが得られる。実行レベル監
視部52の高レベルプログラムエントリ収集部53と低
レベルプログラムエントリ収集部54は、得られた被試
験プログラム実行履歴Xから各走行プログラムA、B、
Cの起動エントリ(起動プログラムの先頭番地)、高レ
ベル実行プログラムエントリ情報H、低レベル実行プロ
グラムエントリ情報Lを収集する。The operation of this embodiment will be described below.
A simulation test of the program under test (X) is started by the simulator. The simulator performs a simulation test of the program under test (X) in the simulation execution unit 46, and as a result, the execution history X of the program under test is obtained. The high-level program entry collection unit 53 and the low-level program entry collection unit 54 of the execution level monitoring unit 52 determine the running programs A, B,
The start entry (start address of the start program) of C, the high-level execution program entry information H, and the low-level execution program entry information L are collected.
【0165】プログラム実行レベル競合照合部55は図
20に示す手順でプログラム論理矛盾の有無をチェック
する。すなわち、入力情報である被試験プログラム実行
履歴Xから、実行している命令がジャンプ系の命令であ
るかを判定する(ステップS1)。ジャンプ系の命令で
あれば、サブルーチンの開始など新たなプログラムが起
動されたと判断することができ、その起動されたプログ
ラムについてプログラム論理矛盾の有無をチェックする
ことになる。したがって、ジャンプ系の命令でない場合
には改めてチェックを行わないので、照合結果を「O
K」とする(ステップS5)。The program execution level conflict collation unit 55 checks whether there is a program logical contradiction according to the procedure shown in FIG. That is, it is determined whether the instruction being executed is a jump-type instruction from the program under test execution history X which is input information (step S1). If the instruction is a jump-type instruction, it can be determined that a new program has been started, such as the start of a subroutine, and the started program is checked for program logic inconsistency. Therefore, if the instruction is not a jump instruction, the check is not performed again.
K ”(step S5).
【0166】ジャンプ系の命令と判定された場合、各レ
ベル実行プログラムエントリ収集部53、54で収集さ
れた高レベル実行プログラムエントリ情報H、低レベル
実行プログラムエントリ情報Lに基づいて、当該プログ
ラムが両レベルで走行するプログラムであるか否かを判
定する(ステップS2)。両レベルで走行するものでな
い場合にはプログラム実行レベル間競合は起きず、した
がってそのプログラム論理矛盾を問題にすることもない
ので、照合結果を「OK」とする(ステップS5)。If it is determined that the instruction is a jump-type instruction, based on the high-level execution program entry information H and the low-level execution program entry information L collected by each of the level execution program entry collection units 53 and 54, the program is determined to be both. It is determined whether the program runs at the level (step S2). If the vehicle does not run on both levels, no conflict occurs between the program execution levels, so that the logical inconsistency of the program does not matter, so that the collation result is "OK" (step S5).
【0167】両方のレベルで走行するプログラムであっ
た場合、そのプログラムに高いレベルで実行するプログ
ラムの割込みを禁止(マスク)している割込みマスク処
理Yが組み込まれているか否かを、これから実行するプ
ログラムの機械命令語を先読みすることで判定する(ス
テップS3)。割込みマスク処理Yがある場合にはプロ
グラム論理矛盾はないので、照合結果を「OK」にする
(ステップS5)。割込みマスク処理Yがない場合に
は、プログラム論理矛盾があることになるので、照合結
果を「NG」とする。If the program runs at both levels, it is determined whether or not an interrupt mask process Y that inhibits (masks) an interrupt of a program executed at a higher level is incorporated in the program. The determination is made by pre-reading the machine instruction word of the program (step S3). If there is an interrupt mask process Y, there is no program logic inconsistency, so the collation result is set to "OK" (step S5). If there is no interrupt mask processing Y, it means that there is program logic contradiction, so the collation result is “NG”.
【0168】この競合照合部の照合結果は照合結果出力
部56に送られて、プログラム実行レベル照合結果
(r)として出力される。試験者はこのプログラム実行
レベル照合結果(r)を確認することで、データ破壊に
よりシステムが異常になる前に、被試験プログラムの誤
り(プログラム論理矛盾)を検出することができる。The collation result of the conflict collation unit is sent to the collation result output unit 56 and output as the program execution level collation result (r). By confirming the program execution level comparison result (r), the tester can detect an error (program logic contradiction) in the program under test before the system becomes abnormal due to data destruction.
【0169】この実施例によれば、プログラムを模擬試
験するシミュレータにプログラムの実行レベルを収集
し、その収集結果とプログラム処理内容とから異なるレ
ベル間の競合を監視する機構を付加することで、プログ
ラムの模擬試験を実施した時に異なる実行レベル間の競
合によって発生するデータ矛盾によるシステム異常を事
前に検出することができる。これによって、これまでの
システム異常発生時の原因究明に要する時間を短縮で
き、また、経験の浅い試験者でも容易にプログラムの誤
りを検出することができるため、プログラムの試験効率
の向上はもとより、プログラム(システム)を早期に安
定させその高信頼化を図ることができる。According to this embodiment, the execution level of a program is collected in a simulator for simulating the program, and a mechanism for monitoring a conflict between different levels based on the collected result and the program processing content is added. When a simulation test is performed, a system abnormality due to data inconsistency caused by competition between different execution levels can be detected in advance. As a result, the time required to determine the cause of a system error in the past can be reduced, and even inexperienced testers can easily detect program errors. It is possible to stabilize the program (system) at an early stage and to improve its reliability.
【0170】図21〜24には本発明のまた他の実施例
としてのシミュレータが示される。この実施例装置は前
述の問題点(7)を解決するためのもである。図21に
おいて、60はシミュレータプログラムにおけるシミュ
レータコマンド制御機能、61はデバッグ機能を持たな
い被試験システム擬似機能、62はデバッグ機能を持っ
た被試験システム擬似機能である。FIGS. 21 to 24 show a simulator as still another embodiment of the present invention. This embodiment is intended to solve the above problem (7). In FIG. 21, reference numeral 60 denotes a simulator command control function in the simulator program, reference numeral 61 denotes a system under test pseudo function having no debug function, and reference numeral 62 denotes a system under test pseudo function having a debug function.
【0171】図24の流れ図に示すように、被試験シス
テム擬似機能61は被試験システム(被試験プログラ
ム)を模擬実行するにあたりその各命令実行に対してデ
バッグ機能を持たない機能部分であり、後述の「デバッ
グ機能未登録」時に被試験システムの機械命令を繰り返
し実行する。一方、被試験システム擬似機能62は被試
験システムを模擬実行するにあたりその各命令実行に対
してデバッグ機能を持った機能部分であり、後述の「デ
バッグ機能登録」時に被試験システムの機械命令を繰り
返し実行する。As shown in the flowchart of FIG. 24, the system under test pseudo function 61 is a functional part having no debug function for execution of each instruction in simulating execution of the system under test (program under test). When the debug function is not registered, the machine instruction of the system under test is repeatedly executed. On the other hand, the system under test pseudo function 62 is a function part having a debug function for each instruction execution in simulating execution of the system under test, and repeats the machine instruction of the system under test during "debug function registration" described later. Execute.
【0172】シミュレータコマンド制御機能には、デバ
ッグ機能の有無を判定する機能が設けられている。この
デバッグ機能の有無判定は、被試験プログラムの種類に
応じてデバッグが必要ない時はデバッグ機能未登録と
し、デバッグを実施したい時には「デバッグ機能登録」
とする。この登録/未登録は、被試験システム擬似機能
の停止時に行い、例えばAPフラグ(アプリケーション
フラグ)に該当ビットを立てることにより実施する。The simulator command control function is provided with a function of determining the presence or absence of a debugging function. This debug function presence / absence judgment is based on the type of the program under test when the debug function is not required and the debug function is not registered.
And This registration / non-registration is performed when the system under test pseudo function is stopped, and is performed, for example, by setting a corresponding bit in an AP flag (application flag).
【0173】このように、この実施例装置では、被試験
システム擬似部分の制御ルートの二重化を行い、各種デ
バッグ機能を含む制御ルート(被試験システム擬似機能
62側)と、被試験機能擬似部分だけの制御ルート(被
試験システム擬似機能61側)とに分離している。つま
り、被試験システム擬似のレスポンスには影響のないシ
ミュレータコマンド制御機能60部分(つまり各機械命
令ごとの判定処理を行っていない部分)において、被試
験プログラムの種別に応じて、デバッグ機能の無い被試
験システム擬似ルート(61)とデバッグ機能の有る被
試験システム擬似ルート(62)とへの分岐を行うこと
によって、デバッグ機能の不要な被試験プログラムに対
しては被試験システム擬似だけを行って、シミュレータ
自体の処理能力を低下させないことか可能であり、一
方、、デバッグ機能の必要な被試験プログラムに対して
は各種デバッグ機能の実施を追加することが可能にな
る。この制御ルートの選択は、「シミュレータコマンド
実行状態」から「被試験システム擬似状態」へ状態が移
行する時に、APフラグの設定値に応じて行う。As described above, in the apparatus of this embodiment, the control route of the system under test simulated portion is duplicated, and only the control route including various debug functions (the system under test simulated function 62 side) and the function under test simulated portion are duplicated. And the control route (on the system under test 61). That is, in the simulator command control function 60 portion that does not affect the response of the system under test (ie, the portion in which the determination process for each machine instruction is not performed), the device without the debug function according to the type of the program under test. By branching to the test system pseudo route (61) and the system under test pseudo route (62) having a debug function, only the system under test is performed for the program under test that does not require the debug function. It is possible not to reduce the processing capability of the simulator itself, while it is possible to add execution of various debugging functions to a program under test that requires a debugging function. The selection of the control route is performed according to the set value of the AP flag when the state shifts from the “simulator command execution state” to the “simulated state of the system under test”.
【0174】以下、この実施例装置の動作を図22、図
23、図24を参照して説明する。なお、以下に示すシ
ーケンス番号は図中の番号と対応している。The operation of this embodiment will be described below with reference to FIGS. 22, 23 and 24. Note that the sequence numbers shown below correspond to the numbers in the figure.
【0175】(a)まず各種デバッグ機能登録無しの場
合について、〔初期状態〕→〔シミュレート実施〕→
〔シミュレート停止〕と遷移する動作を説明する。初期
状態(シミュレート停止状態)からシミュレーションが
実施されるまでの動作は以下の通りである。(A) First, in the case where various debug functions are not registered, [initial state] → [simulation execution] →
The operation of transition to [simulation stop] will be described. The operation from the initial state (simulation stop state) to the execution of the simulation is as follows.
【0176】 シミュレータコマンド制御機能60で
APフラグ64にデバッグ機能が登録されているかを分
析する。この場合、APフラグ64にはデバッグ機能が
登録されていない。The simulator command control function 60 analyzes whether the debug function is registered in the AP flag 64. In this case, the debug function is not registered in the AP flag 64.
【0177】 シミュレータコマンド制御機能60は
「デバッグ機能未登録」を検知すると、デバッグ機能無
しの被試験システム擬似機能61を起動する。この被試
験システム擬似機能61では、図24に示されるよう
に、「シミュレート停止有無の判定」、「被試験システ
ム擬似処理」、「機械命令実行」が被試験プログラムの
1機械命令毎に繰り返して行われ、デバッグ機能の実施
されない。When the simulator command control function 60 detects “debug function not registered”, the simulator command control function 60 activates the system under test pseudo function 61 without the debug function. In the system under test pseudo function 61, as shown in FIG. 24, “determination of presence or absence of simulation stop”, “system test under test”, and “execution of machine instruction” are repeated for each machine instruction of the program under test. Is done and the debug function is not implemented.
【0178】〔シミュレート実施〕状態から〔シミュレ
ート停止〕状態に遷移するには、 停止要因(例えば停止ボタンの押下、アドレス停止
など)により被試験システム擬似機能61が停止され
て、シミュレータコマンド制御機能60が再び起動され
る。To make a transition from the [simulation execution] state to the [simulation stop] state, the system under test 61 is stopped by a stop cause (for example, pressing a stop button, address stop, etc.), and simulator command control is performed. Function 60 is activated again.
【0179】(b)次に各種デバッグ機能登録有りの場
合について、〔初期状態〕→〔登録〕→〔シミュレート
実施〕→〔シミュレート停止〕→〔登録解除〕→〔シミ
ュレート実施〕と遷移する動作を説明する。初期状態
(シミュレート停止状態)から登録を行い、シミュレー
トが実施されるまでの動作は以下の通りである。(B) Next, in the case where various debug functions are registered, the transition is performed from [initial state] → [registration] → [simulation execution] → [simulation stop] → [deregistration] → [simulation execution] The operation to be performed will be described. The operations from the initial state (simulation stop state) to the registration and the execution of the simulation are as follows.
【0180】 シミュレータコマンド制御機能60に
より、デバッグ機能登録/解除機能を起動63を起動す
る。The simulator command control function 60 activates the debug function registration / cancellation function activation 63.
【0181】 デバッグ機能登録/解除機能63でデ
バッグ機能iを登録する。これによりAPフラグ64に
はデバッグ機能iが設定登録される。このように、AP
フラグ64への書込みをシミュレータコマンド制御機能
60部分のみで行うことにより、またAPフラグにより
デバッグ機能種別の登録有りと登録無しをビットで管理
することにより、被試験システム擬似機能部分のルート
分離が可能となる。The debug function registration / release function 63 registers the debug function i. As a result, the debug function i is set and registered in the AP flag 64. Thus, AP
By performing writing to the flag 64 only with the simulator command control function 60 part, and by using the AP flag to manage the presence / absence of registration of the debug function type with a bit, the root of the system under test pseudo function part can be separated. Becomes
【0182】 シミュレータコマンド制御機能60で
APフラグ64にデバッグ機能が登録されているかを分
析する。この場合、APフラグ64にはデバッグ機能i
が登録されている。The simulator command control function 60 analyzes whether the debug function is registered in the AP flag 64. In this case, the AP flag 64 includes the debug function i
Is registered.
【0183】 シミュレータコマンド制御機能60は
「デバッグ機能登録」を検知すると、デバッグ機能有り
の被試験システム擬似機能62を起動する。Upon detecting “debug function registration”, the simulator command control function 60 activates the system under test pseudo function 62 having the debug function.
【0184】 この被試験システム擬似機能62で
は、図24に示されるように、「シミュレート停止有無
の判定」、「被試験システム擬似処理」、「機械命令実
行」と共に、APフラグで登録されている「デバッグ機
能i」が、被試験プログラムの1機械命令毎に繰り返し
て行われる。As shown in FIG. 24, the system under test pseudo function 62 is registered with an AP flag together with “judgment of presence / absence of simulation stop”, “system test under test”, and “execution of machine instruction”. The "debugging function i" is repeatedly performed for each machine instruction of the program under test.
【0185】〔シミュレート実施〕状態から〔シミュレ
ート停止〕状態に遷移するには、 停止要因(例えば停止ボタンの押下、アドレス停止
など)により被試験システム擬似機能62が停止され
て、シミュレータコマンド制御機能60が再び起動され
る。To transition from the [simulation execution] state to the [simulation stop] state, the system under test 62 is stopped by a stop cause (for example, pressing a stop button, address stop, etc.), and simulator command control is performed. Function 60 is activated again.
【0186】〔シミュレータ停止〕からデバッグ機能の
〔解除〕は以下の手順による。 シミュレータコマンド制御機能60からデバッグ機
能登録/解除機能63を起動する。[Release] of the debug function from [Simulator stop] is performed in the following procedure. The debug command registration / cancellation function 63 is activated from the simulator command control function 60.
【0187】 オペレータはデバック機能登録/解除
機能63によりデバッグ機能を解除する指令を行い、A
Pフラグ64のデバッグ機能iが解除される。The operator issues a command to cancel the debug function by the debug function registration / cancel function 63, and A
The debug function i of the P flag 64 is released.
【0188】 シミュレータコマンド制御機能60で
APフラグのデバッグ機能が登録されているか否かを分
析する。The simulator command control function 60 analyzes whether the debug function of the AP flag is registered.
【0189】(10) この場合、APフラグ64にはデバ
ッグ機能は「未登録」であるから、次のステップとして
デバッグ機能無しの被試験システム擬似機能61が起動
される。(10) In this case, since the debug function is “unregistered” in the AP flag 64, the system under test pseudo function 61 without the debug function is started as the next step.
【0190】この実施例によれば、 *被試験システム擬似のレスポンスに影響のないシミュ
レータコマンド制御部分において被試験システム擬似ル
ートの分岐を行うことによって、シミュレータ自体の処
理能力を低下させずに、各種のデバッグ機能を追加する
ことが可能になる、 *被試験システムにおいての単位機械命令当たりの処理
ステップ(判定ステップ)を削減することができ、シミ
ュレーションの高速化を図れる、などの効果が得られ
る。According to this embodiment: * By branching the system under test pseudo route in the simulator command control portion that does not affect the response of the system under test pseudo, without reducing the processing capability of the simulator itself, * It is possible to reduce the number of processing steps (judgment steps) per unit machine instruction in the system under test, thereby increasing the speed of simulation.
【0191】[0191]
【発明の効果】以上に述べたように、本発明によれば、
前掲した問題点(1))〜(7)をそれぞれ解決するこ
とが可能となる。As described above, according to the present invention,
The above-mentioned problems (1) to (7) can be solved respectively.
【図1】本発明の実施例を示す図である。FIG. 1 is a diagram showing an embodiment of the present invention.
【図2】図1の実施例装置の動作説明図である。FIG. 2 is an explanatory diagram of the operation of the embodiment apparatus of FIG. 1;
【図3】図1の実施例装置の動作説明図である。FIG. 3 is an explanatory diagram of the operation of the embodiment apparatus of FIG. 1;
【図4】図1の実施例装置の動作説明図(処理フロー)
である。FIG. 4 is an operation explanatory diagram (processing flow) of the embodiment apparatus of FIG. 1;
It is.
【図5】本発明の他の実施例を示す図である。FIG. 5 is a diagram showing another embodiment of the present invention.
【図6】本発明のまた他の実施例を示す図である。FIG. 6 is a diagram showing still another embodiment of the present invention.
【図7】本発明のまた他の実施例を示す図である。FIG. 7 is a view showing still another embodiment of the present invention.
【図8】図7の実施例装置の動作説明図である。FIG. 8 is an explanatory diagram of the operation of the embodiment apparatus of FIG. 7;
【図9】図7の実施例装置の動作説明図である。FIG. 9 is an explanatory diagram of the operation of the embodiment apparatus of FIG. 7;
【図10】本発明のまた他の実施例を示す図である。FIG. 10 is a diagram showing still another embodiment of the present invention.
【図11】本発明のまた他の実施例を示す図である。FIG. 11 is a view showing still another embodiment of the present invention.
【図12】本発明のまた他の実施例を示す図である。FIG. 12 is a view showing still another embodiment of the present invention.
【図13】図12の実施例装置の動作説明図である。FIG. 13 is an operation explanatory diagram of the embodiment apparatus of FIG. 12;
【図14】図12の実施例装置の動作説明図である。FIG. 14 is an explanatory diagram illustrating the operation of the embodiment apparatus of FIG. 12;
【図15】図12の実施例装置の動作説明図である。FIG. 15 is a diagram illustrating the operation of the embodiment apparatus of FIG. 12;
【図16】光磁気ディスクカートリッジのフォーマット
の例を示す図である。FIG. 16 is a diagram illustrating an example of a format of a magneto-optical disk cartridge.
【図17】図12の実施例による光ディスクカートリッ
ジのフォーマット化の動作説明図である。FIG. 17 is a diagram illustrating an operation of formatting an optical disk cartridge according to the embodiment of FIG. 12;
【図18】本発明のまた他の実施例を示す図である。FIG. 18 is a view showing still another embodiment of the present invention.
【図19】本発明のまた他の実施例を示す図である。FIG. 19 is a view showing still another embodiment of the present invention.
【図20】図19の実施例装置における競合照合部の動
作手順を示す流れ図である。20 is a flowchart showing an operation procedure of a conflict collation unit in the apparatus of the embodiment in FIG. 19;
【図21】本発明のまた他の実施例を示す図である。FIG. 21 is a view showing still another embodiment of the present invention.
【図22】図21の実施例装置の動作説明図である。FIG. 22 is an explanatory diagram of the operation of the embodiment apparatus of FIG. 21;
【図23】図21の実施例装置の動作説明図である。FIG. 23 is an explanatory diagram of the operation of the embodiment apparatus of FIG. 21;
【図24】図21の実施例装置の動作説明図(処理フロ
ー)である。FIG. 24 is an explanatory diagram (process flow) of the operation of the embodiment apparatus of FIG. 21;
【図25】従来システムの概念図である。FIG. 25 is a conceptual diagram of a conventional system.
【図26】従来の方式を示す図である。FIG. 26 is a diagram showing a conventional method.
【図27】従来システムの他の概念図である。FIG. 27 is another conceptual diagram of the conventional system.
【図28】オーバレイ処理方式の説明図である。FIG. 28 is an explanatory diagram of an overlay processing method.
【図29】従来の方式を示す図である。FIG. 29 is a diagram showing a conventional method.
【図30】プログラム実行レベル間競合の説明図であ
る。FIG. 30 is an explanatory diagram of contention between program execution levels.
【図31】従来の処理方式を示す図である。FIG. 31 is a diagram showing a conventional processing method.
【図32】従来の処理方式(処理フロー)を示す図であ
る。FIG. 32 is a diagram showing a conventional processing method (processing flow).
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 アプリケーションフラグ REFERENCE SIGNS LIST 1 simulation control unit 2 processor instruction simulation unit 3 interprocessor communication simulation unit 4 simulation resource management unit 5 storage unit 5a memory 5b register 6 switching unit 20 program under test 21 simulator program 22 subroutine call instruction processing unit 24 program pull-up instruction processing unit 27 Backup memory 28 Main memory 31 Overlay stop address area 32 Overlay start address area 33 Stop address area 34 Overlay stop address registration function 35 Overlay recognition function 36 Overlay address conversion function 37 Address stop function 40 Instruction execution unit 41 Address / block conversion unit 42 Input Output device simulation unit 46 Simulation execution unit 47 Program under test execution monitoring unit 48 Management table 49 Program logic check result 50 Program under test 52 Test program execution level monitoring unit 53 High-level program entry collection unit 54 Low-level program entry collection unit 55 Program execution level conflict comparison unit 56 Matching result output unit 60 Simulator command control function 61 Simulated system under test without debug function 62 Debug function Tested system pseudo function with test 63 Command registration / cancellation function 64 Application flag
───────────────────────────────────────────────────── フロントページの続き (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)──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Masami Suzuki 1015 Ueodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Prefecture Inside Fujitsu Limited (72) Inventor Kaneko ▲ Tak ▼ 3-9-1, Shin-Yokohama, Kohoku-ku, Yokohama-shi, Kanagawa Fujitsu Communication Systems Co., Ltd. (72) Inventor Hiroko Kitayama 3-9-1-18 Shin-Yokohama, Kohoku-ku, Yokohama, Kanagawa Prefecture Fujitsu Communication Systems Co., Ltd. (72) Inventor Kazumasa Takeda Nakahara-ku, Kawasaki City, Kanagawa Prefecture 1015 Kamiodanaka Inside Fujitsu Limited (72) Inventor Kiyoshi Ogawa 3-9-1-18 Shin-Yokohama, Kohoku-ku, Yokohama, Kanagawa Prefecture Inside Fujitsu Communication Systems Limited (72) Inventor Yumi Kawabe Kamihara-ku, Kawasaki City, Kanagawa Prefecture 1015 Odanaka Inside Fujitsu Limited (7 2) Inventor Sakae Asaoka 1015 Uedanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture, Fujitsu Limited (72) Inventor Tamotsu Inoue 1015, Ueodanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture, Fujitsu Limited (56) References JP2 -294864 (JP, A) JP-A-3-150641 (JP, A) JP-A-3-255565 (JP, A) JP-A-4-35690 (JP, A) IEICE Technical Report Vol. 95, 267 1995, pp. 85-90 Tsutomu Ikejiri, et al. "Regarding Switch Development Methods by Simulation" The Procedures of the 1988 Summer Computer Simulation Conference July 1988 352-357 CHANG, C.E. K. "UICPBX: A distributed simulator of switching systems" CHANG, C .; K. "UICPB X: A distributed simulator of switching systems" (58) Fields investigated (Int.Cl. 7 , DB name) G06F 15/16 620 G06F 9/455 G06F 11/28 340 INSPEC (DIALOG (JALOG) JIC file) JOIS) WPI (DIALOG)
Claims (15)
験するシミュレータであって、 該模擬対象の多重プロセッサシステムの各プロセッサの
命令を所定量ずつ順次に時分割で実行するプロセッサ命
令模擬手段と、 該多重プロセッサシステムのプロセッサ間通信の動作を
模擬するプロセッサ間通信模擬手段と、 該多重プロセッサシステムの各プロセッサにそれぞれ対
応して資源を割り当て、各プロセッサの各自資源に対す
るアクセスの切替えを管理する模擬資源管理手段と、 該プロセッサ命令模擬手段による各プロセッサの命令の
順次実行および該プロセッサ間通信模擬手段によるプロ
セッサ間通信動作の命令実行を、該模擬資源管理手段に
より現に模擬を実行中のプロセッサに対し順次に資源を
割り当てつつ、周期的に行うよう制御する主制御手段と
を備え、 上記各手段の実行は単一プロセスにより行われるように
構成したシミュレータ。1. A simulator for simulating the operation of a multiprocessor system, comprising: a processor instruction simulating means for sequentially executing a predetermined amount of instructions of each processor of the simulated multiprocessor system in a time-division manner; Inter-processor communication simulation means for simulating the operation of inter-processor communication of the processor system; and simulated resource management means for allocating resources corresponding to the respective processors of the multi-processor system and managing switching of access to the respective resources of the respective processors. And sequentially executing the instruction of each processor by the processor instruction simulating means and executing the instruction of the inter-processor communication operation by the inter-processor communication simulating means, sequentially by the simulated resource managing means to the processor currently executing the simulation. Control to perform periodically while assigning And control means, constructed as the execution of the above means is carried out by a single process simulator.
ッサ間でのプロセッサ間通信を当該プロセッサに割り当
てられたメモリ資源間でのデータの複写により実現する
ように構成した請求項1記載のシミュレータ。2. The simulator according to claim 1, wherein said inter-processor communication simulation means is configured to realize inter-processor communication between processors by copying data between memory resources allocated to said processors.
セッサシステムの各プロセッサが全てホルト状態になる
時には、割込みを発生して該各プロセッサの模擬を再開
するように構成した請求項1または2記載のシミュレー
タ。3. The system according to claim 1, wherein said main control means is configured to generate an interrupt and restart the simulation of each processor when all the processors of the simulated multiprocessor system are all in a halt state. 2. The simulator according to 2.
望しないサブルーチンの主記憶上におけるアドレス情報
を予め格納する第1のアドレス格納テーブルと、 主プログラムでのサブルーチン呼出し命令に応答して、
該サブルーチンの実行に移行する前に、該第1のアドレ
ス格納テーブルを参照し、該サブルーチン呼出し命令に
該当するサブルーチンがあったら、当該サブルーチンの
アドレス情報に基づいて主記憶上の当該サブルーチンの
内容を当該サブルーチンを実行しない内容に書き換えた
後に、主プログラムに制御を戻すサブルーチン呼出し命
令処理手段とを備えたシミュレータ。4. A first address storage table in which address information of a subroutine not desired to be executed in a simulation target program on a main memory is stored in advance, and in response to a subroutine call instruction in the main program,
Before shifting to the execution of the subroutine, the first address storage table is referred to. If there is a subroutine corresponding to the subroutine call instruction, the contents of the subroutine in the main memory are read based on the address information of the subroutine. A simulator comprising subroutine call instruction processing means for returning control to the main program after rewriting the contents to not execute the subroutine.
望しない特定プログラムの主記憶上におけるアドレス情
報を予め格納する第2のアドレス格納テーブルと、 二次記憶装置から主記憶へのプログラム引上げ命令に応
答して、該命令で引き上げたプログラムの実行に移行す
る前に、該第2のアドレス格納テーブルを参照し、該プ
ログラム引上げ命令で引き上げたプログラムの範囲内に
該特定プログラムがあったら当該特定プログラムのアド
レス情報に基づいて主記憶上の当該特定プログラムの内
容を当該特定プログラムを実行しない内容に書き換える
プログラム引上げ命令処理手段とを備えたシミュレー
タ。5. A second address storage table for storing in advance the address information on a main memory of a specific program which is not desired to be executed in a simulation target program, and responding to a program pull-up instruction from a secondary storage device to the main memory. Before the execution of the program raised by the instruction, the second address storage table is referred to, and if the specific program is within the range of the program raised by the program pull-up instruction, the address of the specific program is determined. A program pull-up instruction processing means for rewriting the content of the specific program on the main memory to the content that does not execute the specific program based on the information.
憶上で不実行に一度書き換えた時には、該アドレス格納
テーブルの該当する項目を削除するように構成した請求
項4または5記載のシミュレータ。6. The simulator according to claim 4, wherein, when a part of the program not desired to be executed is rewritten once in the main memory, the corresponding item in the address storage table is deleted.
ラムを模擬試験するシミュレータであって、 該オーバレイプログラムを構成する複数のプログラム単
位を記憶する二次記憶装置と、 該オーバレイプログラムのプログラム単位をオーバレイ
する主記憶と、 該オーバレイプログラム中の注目点を該二次記憶装置上
のアドレスで登録する注目アドレス登録手段と、 該二次記憶装置から主記憶に引き上げられたプログラム
単位の二次記憶装置上における格納アドレス情報を記憶
するアドレス情報記憶手段と、 該アドレス情報記憶手段の格納アドレス情報と該プログ
ラム単位をロードする主記憶上のアドレス情報に基づい
て該注目アドレス登録手段の二次記憶装置上のアドレス
を主記憶上のアドレスに変換するアドレス変換手段と、 該アドレス変換手段の変換結果を該主記憶上における該
オーバレイプログラムの処理点のアドレスとして記憶す
る処理アドレス記憶手段と、を備え、 該主記憶に引き上げたオーバレイプログラムの実行アド
レスが該処理アドレス記憶手段に記憶された処理点のア
ドレスに達したら所定の処理を行うように構成したシミ
ュレータ。7. A simulator for simulating an overlay program having an overlay structure, a secondary storage device for storing a plurality of program units constituting the overlay program, and a main memory for overlaying program units of the overlay program. An attention address registering means for registering an attention point in the overlay program by an address on the secondary storage device; and a storage address on the secondary storage device of a program unit which has been retrieved from the secondary storage device to the main storage. Address information storage means for storing information; and an address on the secondary storage device of the noted address registration means based on the storage address information of the address information storage means and the address information on the main memory for loading the program unit. Address translation means for translating to an address on storage; Processing address storage means for storing a conversion result of the conversion means as an address of a processing point of the overlay program on the main storage, wherein an execution address of the overlay program transferred to the main storage is stored in the processing address storage means. A simulator configured to perform predetermined processing when the address of the processed processing point is reached.
記憶のオーバレイ区域に他のプログラム単位がオーバレ
イされた場合に、該一のプログラム単位に対して与えら
れた該処理アドレス記憶手段の処理点アドレスを無効化
する手段をさらに備えた請求項7記載のシミュレータ。8. A processing point of the processing address storage means provided for one program unit when another program unit is overlaid on an overlay area of a main memory storing one program unit. The simulator according to claim 7, further comprising means for invalidating the address.
プログラムの注目点のアドレスを後から追加する注目ア
ドレス追加手段を更に備え、 該注目アドレス追加手段により該オーバレイプログラム
の注目点が追加された時には、該アドレス変換手段によ
り該アドレスを主記憶上のアドレスに変換した上で該処
理アドレス記憶手段に記憶させるように構成した請求項
7または8記載のシミュレータ。9. The system according to claim 1, further comprising a target address adding means for adding a target point address of the overlay program to the target address registering means later, wherein the target address of the overlay program is added by the target address adding means. 9. The simulator according to claim 7, wherein said address conversion means converts said address into an address on main memory and stores it in said processing address storage means.
擬試験するシミュレータであって、 該入出力装置のメモリ空間を擬似するための記憶装置
と、 該プログラムを実行する命令実行手段と、 該入出力装置のメモリ空間を複数のブロックに仮想的に
分割し、該プログラムにより該入出力装置のメモリ空間
に書込みアクセスされた時に当該書込みアドレスが何番
目のブロックに属するかを判定するアドレス/ブロック
変換手段と、 該アドレス/ブロック変換手段で得たブロック番号のブ
ロックに相応する記憶領域を該記憶装置上に確保する記
憶領域確保手段とを備え、 該記憶装置上に確保した記憶領域を用いて該入出力装置
を擬似しつつプログラムの模擬試験を行うよう構成した
シミュレータ。10. A simulator for simulating a program for driving an input / output device, comprising: a storage device for simulating a memory space of the input / output device; an instruction execution means for executing the program; Address / block conversion means for virtually dividing the memory space of the device into a plurality of blocks and determining to which block the write address belongs when the program makes a write access to the memory space of the input / output device And a storage area securing means for securing a storage area corresponding to the block of the block number obtained by the address / block conversion means on the storage device, wherein the storage area is secured using the storage area secured on the storage device. A simulator configured to perform a simulation test of a program while simulating an output device.
のメモリ空間に読出しアクセスされた時に該記憶装置上
に当該読出しアドレスに対応するブロックの記憶領域が
確保されていない場合には、該プログラムに対して書込
みデータ無しのデータを返送する返送手段を更に備えた
請求項10記載のシミュレータ。11. When a memory area of a block corresponding to the read address is not secured in the storage device when the memory space of the input / output device is read and accessed by the target program, 11. The simulator according to claim 10, further comprising a return means for returning data without write data.
各ブロック番号に属するアドレスを用いてアクセスする
ことで、該記憶装置における各ブロック番号に相応する
記憶領域の使用・未使用を管理する手段を更に備えた請
求項10または11記載のシミュレータ。12. The storage device according to claim 12, wherein
12. The simulator according to claim 10, further comprising means for managing use / non-use of a storage area corresponding to each block number in the storage device by accessing using an address belonging to each block number.
タであって、 該プログラムの実行を監視して実行履歴情報を収集する
実行監視手段と、 該実行監視手段の実行履歴情報を用いてプログラム論理
の正常性を検査するプログラム論理チェック手段と、 該プログラム論理チェック手段の検査結果を出力する出
力手段とを備えたシミュレータ。13. A simulator for simulating a program, comprising: execution monitoring means for monitoring execution of the program and collecting execution history information; and normality of program logic using the execution history information of the execution monitoring means. A simulator comprising: a program logic check unit for checking the program logic; and an output unit for outputting a check result of the program logic check unit.
する実行レベル収集手段と、 該実行監視手段の実行履歴情報に基づきプログラムの起
動を検知して、当該起動されたプログラムがプログラム
実行レベル間競合を起こすプログラムであるか否かを該
実行レベル収集手段の収集情報に基づいて判定し、プロ
グラム実行レベル間競合を起こすプログラムである時に
は該プログラムに割込みマスク処理があるか否かを検査
する競合照合手段とを備えた請求項13記載のシミュレ
ータ。14. The program logic checking means collects execution level information of the program being simulated, an execution level collection means, and a program start detected based on execution history information of the execution monitoring means. A determination is made as to whether or not the started program is a program causing a conflict between program execution levels based on information collected by the execution level collecting means. If the started program is a program causing a conflict between program execution levels, interrupt mask processing is performed on the program. 14. The simulator according to claim 13, further comprising: conflict checking means for checking whether or not there is any.
タであって、 該プログラムの各命令をデバッグ機能を実施することな
く模擬実行する第1の被試験システム擬似機能手段と、 該プログラムの各命令をデバッグ機能を実施しつつ模擬
実行する第2の被試験システム擬似機能手段と、 デバッグ機能を実施するか否かをデバッグ機能別に登録
するデバッグ機能登録手段と、 該デバッグ機能登録手段の内容を参照して該プログラム
を該第1の被試験システム擬似機能手段で模擬実行する
か、第2の被試験システム擬似機能手段で模擬実行する
かを制御するシミュレータコマンド制御機能手段とを備
えたシミュレータ。15. A simulator for simulating a program, comprising: a first system-under-test simulated function means for simulating each instruction of the program without performing a debug function; and a debug function for executing each instruction of the program. A second system under test simulated function means for simulating execution while executing, a debug function registration means for registering whether or not to execute a debug function for each debug function; and A simulator command control function means for controlling whether the program is simulated by the first system under test simulated function means or by the second system under test simulated function means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06179458A JP3131098B2 (en) | 1993-07-07 | 1994-07-07 | Simulator |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16814393 | 1993-07-07 | ||
JP6-5238 | 1994-01-21 | ||
JP5-168143 | 1994-01-21 | ||
JP523894 | 1994-01-21 | ||
JP06179458A JP3131098B2 (en) | 1993-07-07 | 1994-07-07 | Simulator |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07249012A JPH07249012A (en) | 1995-09-26 |
JP3131098B2 true JP3131098B2 (en) | 2001-01-31 |
Family
ID=27276666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06179458A Expired - Fee Related JP3131098B2 (en) | 1993-07-07 | 1994-07-07 | Simulator |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3131098B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100399774B1 (en) * | 2001-02-26 | 2003-09-26 | 삼성전자주식회사 | Inter-processor communication simulating method including normal task switching function |
JP4403187B2 (en) | 2007-03-30 | 2010-01-20 | 富士通株式会社 | Design data conversion program, recording medium recording the program, design data conversion apparatus, and design data conversion method |
JP5625714B2 (en) * | 2010-10-07 | 2014-11-19 | 富士通セミコンダクター株式会社 | Simulation apparatus, program, storage medium, and method |
JP5951130B2 (en) * | 2013-06-13 | 2016-07-13 | 三菱電機株式会社 | Program verification apparatus, program verification method, and program |
-
1994
- 1994-07-07 JP JP06179458A patent/JP3131098B2/en not_active Expired - Fee Related
Non-Patent Citations (3)
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 (en) | 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 (en) | File name detection method | |
EP0665496B1 (en) | Method and apparatus for run-time error checking using dynamic patching | |
US7526750B2 (en) | Object-based systematic state space exploration of software | |
US20070250820A1 (en) | Instruction level execution analysis for debugging software | |
EP0785510B1 (en) | Program debugging system for debugging a program having a graphical user interface | |
EP0926592B1 (en) | Software emulation system | |
US5274813A (en) | Operation system having a migration function which moves saved data associated with an interrupted process to a different save area | |
US5603015A (en) | Logic simulation apparatus for executing simulation of a circuit | |
US6233727B1 (en) | Computer system for supporting utilization of functions provided by OS | |
KR100280161B1 (en) | Out of sequence work methods and devices | |
JPH06290084A (en) | Method and equipment for restructuring symbol definition and computer system used for them | |
JP2000020349A (en) | Device and method for supporting program development and medium recording program for program development support | |
JP3131098B2 (en) | Simulator | |
US20020129336A1 (en) | Automatic symbol table selection in a multi-cell environment | |
EP0406028A2 (en) | Incremental compiler for source code development system | |
US6141635A (en) | Method of diagnosing faults in an emulated computer system via a heterogeneous diagnostic program | |
US7546589B2 (en) | Semi-automated desk checking system and method | |
JP4503203B2 (en) | Method and apparatus for creating test program for evaluating information processing apparatus, and program describing processing for the same | |
Abegglen et al. | Design of a real-time central data acquisition and analysis system | |
JP3085309B2 (en) | Debug system | |
Clement et al. | 1a processor: Control, administrative, and utility software | |
JPH05250221A (en) | Simulator execution system | |
JP2005332110A (en) | Simulation system |
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 |