JPH07129434A - プログラムシミュレーション装置 - Google Patents
プログラムシミュレーション装置Info
- Publication number
- JPH07129434A JPH07129434A JP6036124A JP3612494A JPH07129434A JP H07129434 A JPH07129434 A JP H07129434A JP 6036124 A JP6036124 A JP 6036124A JP 3612494 A JP3612494 A JP 3612494A JP H07129434 A JPH07129434 A JP H07129434A
- Authority
- JP
- Japan
- Prior art keywords
- input
- program
- output
- execution
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 実行モジュールの全体について、高速な実行
が可能な、また、実行モジュールの実行速度を調節可能
なプログラムシミュレーション装置を提供する。 【構成】 リンク部3が実行モジュールに入出力ライブ
ラリをリンクし、プログラム実行部4がホストマシンの
CPUによって実行モジュールを直接実行する。入出力
ライブラリ及び入出力装置4,5がターゲットシステム
におけるターゲットプログラムの入出力動作をシミュレ
ートする。OSシミュレート手段がターゲットOSの動
作をシミュレートする。シグナル変換部9がタイマ割込
み信号に基づいて実行用シグナルを生成し、この実行用
シグナルに基づいてプロセス切り換えが行われ、パラメ
ータ変更部10によるパラメータ変更によって実行用シ
グナルの間隔を変更し、実行速度の調節を行うことがで
きる。
が可能な、また、実行モジュールの実行速度を調節可能
なプログラムシミュレーション装置を提供する。 【構成】 リンク部3が実行モジュールに入出力ライブ
ラリをリンクし、プログラム実行部4がホストマシンの
CPUによって実行モジュールを直接実行する。入出力
ライブラリ及び入出力装置4,5がターゲットシステム
におけるターゲットプログラムの入出力動作をシミュレ
ートする。OSシミュレート手段がターゲットOSの動
作をシミュレートする。シグナル変換部9がタイマ割込
み信号に基づいて実行用シグナルを生成し、この実行用
シグナルに基づいてプロセス切り換えが行われ、パラメ
ータ変更部10によるパラメータ変更によって実行用シ
グナルの間隔を変更し、実行速度の調節を行うことがで
きる。
Description
【0001】
【産業上の利用分野】本発明は、いわゆるクロス開発環
境において、ターゲットプログラムのシミュレーション
実行をホストマシン上で行う、プログラムシミュレーシ
ョン装置の改良に関するものである。
境において、ターゲットプログラムのシミュレーション
実行をホストマシン上で行う、プログラムシミュレーシ
ョン装置の改良に関するものである。
【0002】
【従来の技術】コンピュータのプログラム開発は、典型
的には、プログラムの内容を決定し(設計)、このプロ
グラムを所定のプログラミング言語で表されたソースコ
ードとして記述し(コーディング)、このソースコード
をコンピュータのCPUが実行可能な実行モジュールに
変換し(コンパイル・リンク)、実行モジュールを試験
的に実行し(テスト)、プログラムの過誤を除去する
(デバッグ)などの過程を経て行われる。
的には、プログラムの内容を決定し(設計)、このプロ
グラムを所定のプログラミング言語で表されたソースコ
ードとして記述し(コーディング)、このソースコード
をコンピュータのCPUが実行可能な実行モジュールに
変換し(コンパイル・リンク)、実行モジュールを試験
的に実行し(テスト)、プログラムの過誤を除去する
(デバッグ)などの過程を経て行われる。
【0003】このような各過程には、コーディングのた
めのエディタや、コンパイルのためのコンパイラ、デバ
ッグのためのデバッガなどのユーティリティプログラム
が必要であり、このようなプログラムの実行のために
は、高性能のCPU、大きなメモリ容量、キーボードや
マウスなどの入力装置、CRTやプリンタなどの出力装
置が必要である。
めのエディタや、コンパイルのためのコンパイラ、デバ
ッグのためのデバッガなどのユーティリティプログラム
が必要であり、このようなプログラムの実行のために
は、高性能のCPU、大きなメモリ容量、キーボードや
マウスなどの入力装置、CRTやプリンタなどの出力装
置が必要である。
【0004】パーソナルコンピュータやワークステーシ
ョンなどで用いられる事務処理プログラムのように、開
発対象であるプログラムを本来実行すべき機種のコンピ
ュータ(本明細書において「ターゲットシステム」とい
う)が、ユーティリティプログラム、ウィンドウシステ
ムやグラフィカルユーザインタフェースなど、十分な開
発環境を備えている場合には、上記のようなプログラム
開発の各過程は、当該ターゲットシステム上で行うこと
ができる。しかし、ターゲットシステムが十分な開発環
境を備えない場合はプログラム開発の各過程を当該ター
ゲットシステム上で行うことは困難であり、また、ター
ゲットシステム以外に高速なCPUを備えたコンピュー
タが存在する場合、そのコンピュータ上で開発作業を行
うことが効率的である。
ョンなどで用いられる事務処理プログラムのように、開
発対象であるプログラムを本来実行すべき機種のコンピ
ュータ(本明細書において「ターゲットシステム」とい
う)が、ユーティリティプログラム、ウィンドウシステ
ムやグラフィカルユーザインタフェースなど、十分な開
発環境を備えている場合には、上記のようなプログラム
開発の各過程は、当該ターゲットシステム上で行うこと
ができる。しかし、ターゲットシステムが十分な開発環
境を備えない場合はプログラム開発の各過程を当該ター
ゲットシステム上で行うことは困難であり、また、ター
ゲットシステム以外に高速なCPUを備えたコンピュー
タが存在する場合、そのコンピュータ上で開発作業を行
うことが効率的である。
【0005】このため、近年では、デバッグなどのプロ
グラム開発作業を、ターゲットシステムではなく、プロ
グラム開発に適した他の機種のコンピュータ(本明細書
において「ホストマシン」という)において行うプログ
ラム開発環境が普及している。このようなプログラム開
発環境はクロス開発環境と呼ばれるが、このクロス開発
環境では、ホストマシンの優れた演算能力や豊富なユー
ティリティプログラムを活用した効率的なプログラム開
発が可能である。
グラム開発作業を、ターゲットシステムではなく、プロ
グラム開発に適した他の機種のコンピュータ(本明細書
において「ホストマシン」という)において行うプログ
ラム開発環境が普及している。このようなプログラム開
発環境はクロス開発環境と呼ばれるが、このクロス開発
環境では、ホストマシンの優れた演算能力や豊富なユー
ティリティプログラムを活用した効率的なプログラム開
発が可能である。
【0006】ところで、上記のようなホストマシンは、
デバッグに用いるデバッガと呼ばれるプログラムを搭載
しているが、このデバッガの重要な機能は、実行モジュ
ールを試験的に実行することである。そして、ターゲッ
トシステムとホストマシンでは、入出力やファイル管理
などの基本動作を制御するオペレーティングシステム
(本明細書において「OS」という)や入出力装置など
の機器構成が異なる。このため、前記の試験的な実行は
シミュレーション的なものにならざるを得ず、そのよう
な試験的実行はプログラムシミュレーションと呼ばれ
る。ここで、プログラムであるデバッガは、プログラム
シミュレーションのための手順を含んでおり、プログラ
ムシミュレーションという機能に着目すれば、プログラ
ムシミュレーションを行っているホストマシンの実体
は、プログラムシミュレーション装置ということができ
る。
デバッグに用いるデバッガと呼ばれるプログラムを搭載
しているが、このデバッガの重要な機能は、実行モジュ
ールを試験的に実行することである。そして、ターゲッ
トシステムとホストマシンでは、入出力やファイル管理
などの基本動作を制御するオペレーティングシステム
(本明細書において「OS」という)や入出力装置など
の機器構成が異なる。このため、前記の試験的な実行は
シミュレーション的なものにならざるを得ず、そのよう
な試験的実行はプログラムシミュレーションと呼ばれ
る。ここで、プログラムであるデバッガは、プログラム
シミュレーションのための手順を含んでおり、プログラ
ムシミュレーションという機能に着目すれば、プログラ
ムシミュレーションを行っているホストマシンの実体
は、プログラムシミュレーション装置ということができ
る。
【0007】ところで、実行モジュールは、一般に、い
わゆる機械語コードの集合であり、パラメータを含めて
数バイト程度ごとの命令を単位として構成されている。
従来のプログラムシミュレーション装置では、ターゲッ
トシステム用の実行モジュールの全体について、命令ご
とに逐次解釈実行し、ターゲットシステムの動作を仮想
的に模倣していた。
わゆる機械語コードの集合であり、パラメータを含めて
数バイト程度ごとの命令を単位として構成されている。
従来のプログラムシミュレーション装置では、ターゲッ
トシステム用の実行モジュールの全体について、命令ご
とに逐次解釈実行し、ターゲットシステムの動作を仮想
的に模倣していた。
【0008】
【発明が解決しようとする課題】しかしながら、上記の
ような従来のプログラムシミュレーション装置における
プログラムシミュレーションは、実質的にはインタプリ
タ(逐次解釈実行型処理システム)による実行であり、
ホストマシンのCPUが実行モジュールを直接実行する
ものではなかった。このため、従来のプログラムシミュ
レーション装置には、ユーザ所望の速度による実行モジ
ュールの実行が困難という問題点が存在していた。
ような従来のプログラムシミュレーション装置における
プログラムシミュレーションは、実質的にはインタプリ
タ(逐次解釈実行型処理システム)による実行であり、
ホストマシンのCPUが実行モジュールを直接実行する
ものではなかった。このため、従来のプログラムシミュ
レーション装置には、ユーザ所望の速度による実行モジ
ュールの実行が困難という問題点が存在していた。
【0009】すなわち、まず、従来のプログラムシミュ
レーション装置において実行モジュールを実行するため
のインタプリタは、それ自体、機械語で記述された所定
のプログラムをCPUが実行することによって実現され
ており、このインタプリタがさらに他のプログラムであ
る実行モジュールを実行する状態は、プログラムを2重
に実行していることを意味する。この結果、シミュレー
ションにおける実行モジュールの実行速度は、ターゲッ
トシステム上における実行に比べて、数千分の一程度の
低速となっていた。このため、シミュレーションに長時
間を要し、効率的なデバッグが困難であった。特に、十
分な量のテストデータでブラックボックステストを行う
ことが困難であった。
レーション装置において実行モジュールを実行するため
のインタプリタは、それ自体、機械語で記述された所定
のプログラムをCPUが実行することによって実現され
ており、このインタプリタがさらに他のプログラムであ
る実行モジュールを実行する状態は、プログラムを2重
に実行していることを意味する。この結果、シミュレー
ションにおける実行モジュールの実行速度は、ターゲッ
トシステム上における実行に比べて、数千分の一程度の
低速となっていた。このため、シミュレーションに長時
間を要し、効率的なデバッグが困難であった。特に、十
分な量のテストデータでブラックボックステストを行う
ことが困難であった。
【0010】また、従来のプログラムシミュレーション
装置では、シミュレーション時の実行速度を調節するこ
とができなかったため、プログラムの内容に応じた多様
なデバッグ作業は困難であった。
装置では、シミュレーション時の実行速度を調節するこ
とができなかったため、プログラムの内容に応じた多様
なデバッグ作業は困難であった。
【0011】また、従来、ホストマシン上でターゲット
システムの入出力をシミュレートするには、ソースコー
ドの時点でプログラムを変更し、プログラムにシミュレ
ート用の命令を追加していた。このため、ユーザ・イン
タフェースなどのシステム的要素を変更したり、開発済
みのプログラムをターゲットシステム用にコンパイルす
る際には、再度ソースコードを変更する必要が生じ、ク
ロス環境におけるプログラム開発効率の向上が困難であ
った。
システムの入出力をシミュレートするには、ソースコー
ドの時点でプログラムを変更し、プログラムにシミュレ
ート用の命令を追加していた。このため、ユーザ・イン
タフェースなどのシステム的要素を変更したり、開発済
みのプログラムをターゲットシステム用にコンパイルす
る際には、再度ソースコードを変更する必要が生じ、ク
ロス環境におけるプログラム開発効率の向上が困難であ
った。
【0012】また、従来のプログラムシミュレーション
装置における入出力のシミュレーションは、ターゲット
プログラム内部から入出力要求があった場合のみ実行さ
れるもので、しかも、ターゲットプログラム自身による
入出力動作のみをシミュレートするものであった。この
ように、従来のプログラムシミュレーション装置では、
ユーザや周辺機器による入力や割込みなど、ターゲット
プログラム外部の事象(本明細書において「入力」とい
う)をシミュレートするものではなかった。このため、
ターゲットシステムにおける実行モジュールの動作を完
全かつ自動的にシミュレートすることは非常に困難であ
った。
装置における入出力のシミュレーションは、ターゲット
プログラム内部から入出力要求があった場合のみ実行さ
れるもので、しかも、ターゲットプログラム自身による
入出力動作のみをシミュレートするものであった。この
ように、従来のプログラムシミュレーション装置では、
ユーザや周辺機器による入力や割込みなど、ターゲット
プログラム外部の事象(本明細書において「入力」とい
う)をシミュレートするものではなかった。このため、
ターゲットシステムにおける実行モジュールの動作を完
全かつ自動的にシミュレートすることは非常に困難であ
った。
【0013】特に、割り込みなど、本来発生時期が予測
不能の入力をシミュレートするには、ターゲットプログ
ラム(のソースコード)に乱数などを用いた必要な命令
を挿入し、この命令によって入力の発生をシミュレート
していた。しかし、これらの入力の発生タイミングは本
来は他律的で、ターゲットプログラム中の命令でシミュ
レートするのでは、入力の十分な他律性が保たれない。
不能の入力をシミュレートするには、ターゲットプログ
ラム(のソースコード)に乱数などを用いた必要な命令
を挿入し、この命令によって入力の発生をシミュレート
していた。しかし、これらの入力の発生タイミングは本
来は他律的で、ターゲットプログラム中の命令でシミュ
レートするのでは、入力の十分な他律性が保たれない。
【0014】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その目的は、実行
モジュールの全体について、高速な実行が可能なプログ
ラムシミュレーション装置を提供することである。ま
た、本発明の他の目的は、実行モジュールの実行速度を
調節可能なプログラムシミュレーション装置を提供する
ことである。
を解決するために提案されたもので、その目的は、実行
モジュールの全体について、高速な実行が可能なプログ
ラムシミュレーション装置を提供することである。ま
た、本発明の他の目的は、実行モジュールの実行速度を
調節可能なプログラムシミュレーション装置を提供する
ことである。
【0015】また、本発明の他の目的は、クロス環境に
おける効率的なプログラム開発が可能なプログラムシミ
ュレーション装置を提供することである。また、本発明
の他の目的は、効率的なシミュレーションが可能なプロ
グラムシミュレーション装置を提供することである。
おける効率的なプログラム開発が可能なプログラムシミ
ュレーション装置を提供することである。また、本発明
の他の目的は、効率的なシミュレーションが可能なプロ
グラムシミュレーション装置を提供することである。
【0016】
【課題を解決するための手段】上記の目的を達するた
め、請求項1のプログラムシミュレーション装置は、タ
ーゲットシステムで実行されるターゲットプログラムを
開発するためのホストマシン上に構築され、前記ターゲ
ットプログラムを前記ホストマシン上において実行する
プログラムシミュレーション装置において、前記ターゲ
ットプログラムに相当する実行モジュールを格納する実
行モジュール格納手段と、前記ターゲットシステムにお
ける入出力動作をホストマシン上でシミュレーションす
る入出力ライブラリを格納するための入出力ライブラリ
格納手段と、前記実行モジュールに前記入出力ライブラ
リをリンクするリンク手段と、リンクされた前記実行モ
ジュールを実行する実行手段と、前記入出力ライブラリ
の制御によって前記入出力動作を行う入出力手段と、を
有することを特徴とする。
め、請求項1のプログラムシミュレーション装置は、タ
ーゲットシステムで実行されるターゲットプログラムを
開発するためのホストマシン上に構築され、前記ターゲ
ットプログラムを前記ホストマシン上において実行する
プログラムシミュレーション装置において、前記ターゲ
ットプログラムに相当する実行モジュールを格納する実
行モジュール格納手段と、前記ターゲットシステムにお
ける入出力動作をホストマシン上でシミュレーションす
る入出力ライブラリを格納するための入出力ライブラリ
格納手段と、前記実行モジュールに前記入出力ライブラ
リをリンクするリンク手段と、リンクされた前記実行モ
ジュールを実行する実行手段と、前記入出力ライブラリ
の制御によって前記入出力動作を行う入出力手段と、を
有することを特徴とする。
【0017】また、請求項2の発明は、請求項1記載の
プログラムシミュレーション装置において、前記実行の
速度を調節する速度調節手段を備えたことを特徴とす
る。
プログラムシミュレーション装置において、前記実行の
速度を調節する速度調節手段を備えたことを特徴とす
る。
【0018】また、請求項3の発明は、請求項1記載の
プログラムシミュレーション装置において、前記ターゲ
ットシステムのオペレーティングシステムであるターゲ
ットOSの動作をシミュレートするOSシミュレート手
段を有することを特徴とする。
プログラムシミュレーション装置において、前記ターゲ
ットシステムのオペレーティングシステムであるターゲ
ットOSの動作をシミュレートするOSシミュレート手
段を有することを特徴とする。
【0019】また、請求項4のプログラムシミュレーシ
ョン装置は、ターゲットシステムで実行されるターゲッ
トプログラムの実行モジュールを格納する実行モジュー
ル格納手段と、前記実行モジュールを実行する実行手段
と、前記実行の速度を調節する速度調節手段を備えたこ
とを特徴とする。
ョン装置は、ターゲットシステムで実行されるターゲッ
トプログラムの実行モジュールを格納する実行モジュー
ル格納手段と、前記実行モジュールを実行する実行手段
と、前記実行の速度を調節する速度調節手段を備えたこ
とを特徴とする。
【0020】また、請求項5の発明は、請求項2又は4
記載のプログラムシミュレーション装置において、前記
速度調節手段は、前記実行に用いる実行用タイミングシ
グナルを生成するタイミングシグナル生成手段と、前記
実行用タイミングシグナルの間隔を変更するタイミング
シグナル調節手段とを有することを特徴とする。
記載のプログラムシミュレーション装置において、前記
速度調節手段は、前記実行に用いる実行用タイミングシ
グナルを生成するタイミングシグナル生成手段と、前記
実行用タイミングシグナルの間隔を変更するタイミング
シグナル調節手段とを有することを特徴とする。
【0021】また、請求項6の発明は、請求項5記載の
プログラムシミュレーション装置において、前記ターゲ
ットシステムのオペレーティングシステムであるターゲ
ットOSの動作をシミュレートするOSシミュレート手
段を有し、前記タイミングシグナル生成手段は、前記ホ
ストマシンにおいて提供されるタイミングシグナルであ
るプリミティブタイミングシグナルに基づいて前記実行
用タイミングシグナルを生成するように構成され、前記
OSシミュレート手段は、前記実行用タイミングシグナ
ルに基づいてマルチプロセスにおけるプロセス切り換え
を行うように構成されたことを特徴とする。
プログラムシミュレーション装置において、前記ターゲ
ットシステムのオペレーティングシステムであるターゲ
ットOSの動作をシミュレートするOSシミュレート手
段を有し、前記タイミングシグナル生成手段は、前記ホ
ストマシンにおいて提供されるタイミングシグナルであ
るプリミティブタイミングシグナルに基づいて前記実行
用タイミングシグナルを生成するように構成され、前記
OSシミュレート手段は、前記実行用タイミングシグナ
ルに基づいてマルチプロセスにおけるプロセス切り換え
を行うように構成されたことを特徴とする。
【0022】また、請求項7の発明は、請求項1記載の
プログラムシミュレーション装置において、前記ターゲ
ットプログラムを複数のプロセスの一部として実行する
ように構成され、前記ターゲットシステムにおける入出
力をシミュレートする入出力シミュレート手段を備え、
前記入出力シミュレート手段は、前記ターゲットプログ
ラムに係る前記プロセスとは異別のプロセスとして実現
されることを特徴とする。
プログラムシミュレーション装置において、前記ターゲ
ットプログラムを複数のプロセスの一部として実行する
ように構成され、前記ターゲットシステムにおける入出
力をシミュレートする入出力シミュレート手段を備え、
前記入出力シミュレート手段は、前記ターゲットプログ
ラムに係る前記プロセスとは異別のプロセスとして実現
されることを特徴とする。
【0023】また、請求項8の発明は、請求項7記載の
プログラムシミュレーション装置において、前記入出力
ライブラリは、前記ターゲットプログラムによる入出力
の要求を、前記入出力シミュレート手段へ当該入出力を
要求するプロセス間通信に置き換えるように構成された
ことを特徴とする。
プログラムシミュレーション装置において、前記入出力
ライブラリは、前記ターゲットプログラムによる入出力
の要求を、前記入出力シミュレート手段へ当該入出力を
要求するプロセス間通信に置き換えるように構成された
ことを特徴とする。
【0024】また、請求項9の発明は、請求項7記載の
プログラムシミュレーション装置において、前記ターゲ
ットシステムにおける入力の入力値を発生させる入力値
発生手段を有することを特徴とする。
プログラムシミュレーション装置において、前記ターゲ
ットシステムにおける入力の入力値を発生させる入力値
発生手段を有することを特徴とする。
【0025】また、請求項10の発明は、請求項9記載
のプログラムシミュレーション装置において、前記入力
値発生手段は、前記入出力シミュレート手段に係る前記
プロセスとは異別のプロセスとして実現されることを特
徴とする。
のプログラムシミュレーション装置において、前記入力
値発生手段は、前記入出力シミュレート手段に係る前記
プロセスとは異別のプロセスとして実現されることを特
徴とする。
【0026】
【作用】上記のような構成を有する本発明は、次のよう
な作用を有する。すなわち、請求項1の発明では、ま
ず、実行モジュール格納手段が、ターゲットプログラム
に相当する実行モジュールを格納する。この実行モジュ
ールは、ターゲットプログラム用のソースコードを、ホ
ストマシン上のセルフコンパイラでコンパイルして得ら
れるもので、ホストマシン上で動作可能な実行モジュー
ルである。そして、リンク手段が実行モジュールに入出
力ライブラリをリンクし、プログラム実行部がこのリン
クされた実行モジュールを実行する。このとき、プログ
ラム実行部は、ホストマシンのCPUによって実行モジ
ュールを直接実行する。このため、実行モジュールの実
行速度が向上し、また、インタプリタのためのメモリ領
域や、メモリやレジスタの内容の仮想的実現が不要とな
るので、実行モジュール全体の実行が可能となる。
な作用を有する。すなわち、請求項1の発明では、ま
ず、実行モジュール格納手段が、ターゲットプログラム
に相当する実行モジュールを格納する。この実行モジュ
ールは、ターゲットプログラム用のソースコードを、ホ
ストマシン上のセルフコンパイラでコンパイルして得ら
れるもので、ホストマシン上で動作可能な実行モジュー
ルである。そして、リンク手段が実行モジュールに入出
力ライブラリをリンクし、プログラム実行部がこのリン
クされた実行モジュールを実行する。このとき、プログ
ラム実行部は、ホストマシンのCPUによって実行モジ
ュールを直接実行する。このため、実行モジュールの実
行速度が向上し、また、インタプリタのためのメモリ領
域や、メモリやレジスタの内容の仮想的実現が不要とな
るので、実行モジュール全体の実行が可能となる。
【0027】そして、入出力手段が入出力ライブラリに
したがって、ターゲットシステムにおける入出力動作を
シミュレートする。このため、ターゲットシステムとホ
ストマシンの構成が異なり、ホストマシン上でそのまま
実行できない入出力動作が実行モジュール中に存在する
場合でも、ホストマシン上でターゲットシステムの入出
力動作を実現することができる。
したがって、ターゲットシステムにおける入出力動作を
シミュレートする。このため、ターゲットシステムとホ
ストマシンの構成が異なり、ホストマシン上でそのまま
実行できない入出力動作が実行モジュール中に存在する
場合でも、ホストマシン上でターゲットシステムの入出
力動作を実現することができる。
【0028】また、請求項2及び4の発明では、ユーザ
は、速度調節手段を通じて前記実行の速度を調節できる
ので、所望の速度によるシミュレーションが可能とな
る。
は、速度調節手段を通じて前記実行の速度を調節できる
ので、所望の速度によるシミュレーションが可能とな
る。
【0029】また、請求項3の発明では、OSシミュレ
ート手段が、ターゲットOSの動作をシミュレートす
る。このため、ターゲットシステムとホストマシンでO
Sが異なる場合でも、実行モジュールは、プロセス切り
換えやシステムコールなど、ターゲットOSのサービス
をホストマシン上で受け、ホストマシン上で動作するこ
とが可能となる。
ート手段が、ターゲットOSの動作をシミュレートす
る。このため、ターゲットシステムとホストマシンでO
Sが異なる場合でも、実行モジュールは、プロセス切り
換えやシステムコールなど、ターゲットOSのサービス
をホストマシン上で受け、ホストマシン上で動作するこ
とが可能となる。
【0030】また、請求項5の発明では、実行用タイミ
ングシグナルの間隔を変更することによって実行速度の
調節が可能となるので、単純な構成で確実な速度調節を
行うことができる。
ングシグナルの間隔を変更することによって実行速度の
調節が可能となるので、単純な構成で確実な速度調節を
行うことができる。
【0031】また、請求項6の発明では、プリミティブ
タイミングシグナルに基づいて生成された実行用タイミ
ングシグナルが生成され、この実行用タイミングシグナ
ルに基づいてプロセス切り換えが行われるので、プロセ
ス切り換えの間隔を自由に調節することができる。
タイミングシグナルに基づいて生成された実行用タイミ
ングシグナルが生成され、この実行用タイミングシグナ
ルに基づいてプロセス切り換えが行われるので、プロセ
ス切り換えの間隔を自由に調節することができる。
【0032】また、請求項7の発明では、ターゲットシ
ステムにおける入出力動作をシミュレートする入出力シ
ミュレート手段が、ターゲットプログラムとは異別のプ
ロセスとして実現される。そして、入出力シミュレート
手段が、ターゲットシステムにおける外部機器を用いた
入出力動作をシミュレートする。このため、ターゲット
システムでの入出力動作をホストマシン上でシミュレー
トするために、ターゲットプログラムのソースコードを
変更する必要がなくなる。したがって、ホストマシンと
ターゲットシステムで同一のソースコードを用いること
が可能となり、クロス環境におけるプログラム開発作業
が効率化される。また、ターゲットシステムにおける割
込みのような入力についても、ターゲットプログラム内
部でシミュレートする必要がなくなるので、他律性が維
持される。
ステムにおける入出力動作をシミュレートする入出力シ
ミュレート手段が、ターゲットプログラムとは異別のプ
ロセスとして実現される。そして、入出力シミュレート
手段が、ターゲットシステムにおける外部機器を用いた
入出力動作をシミュレートする。このため、ターゲット
システムでの入出力動作をホストマシン上でシミュレー
トするために、ターゲットプログラムのソースコードを
変更する必要がなくなる。したがって、ホストマシンと
ターゲットシステムで同一のソースコードを用いること
が可能となり、クロス環境におけるプログラム開発作業
が効率化される。また、ターゲットシステムにおける割
込みのような入力についても、ターゲットプログラム内
部でシミュレートする必要がなくなるので、他律性が維
持される。
【0033】また、請求項8の発明では、入出力ライブ
ラリがターゲットプログラムによる入出力の要求を入出
力シミュレート手段へのプロセス間通信に置き換える。
このため、ターゲットシステムのソースコードがマルチ
プロセス用に構成されていない場合でも、ホストマシン
上では、他のプロセスである入出力シミュレート手段を
用いて入出力を実現することができる。
ラリがターゲットプログラムによる入出力の要求を入出
力シミュレート手段へのプロセス間通信に置き換える。
このため、ターゲットシステムのソースコードがマルチ
プロセス用に構成されていない場合でも、ホストマシン
上では、他のプロセスである入出力シミュレート手段を
用いて入出力を実現することができる。
【0034】また、請求項9の発明では、入力値発生手
段がターゲットシステムにおける入力値をホストマシン
上で発生させるので、必ずしもユーザがターゲットシス
テムにおける入力値を実際にホストマシンに入力するこ
となく、効率的なシミュレーションを行うことができ
る。なお、ここでいう入力には、画像入力や割込みな
ど、ターゲットプログラムに対するあらゆる入力が含ま
れる。
段がターゲットシステムにおける入力値をホストマシン
上で発生させるので、必ずしもユーザがターゲットシス
テムにおける入力値を実際にホストマシンに入力するこ
となく、効率的なシミュレーションを行うことができ
る。なお、ここでいう入力には、画像入力や割込みな
ど、ターゲットプログラムに対するあらゆる入力が含ま
れる。
【0035】また、請求項10の発明では、入力値発生
手段が入出力シミュレート手段とは異別のプロセスとし
て実現されるので、入力値発生手段の内容を変更する場
合、入出力シミュレート手段については変更が不要とな
り、プログラム開発が効率化される。
手段が入出力シミュレート手段とは異別のプロセスとし
て実現されるので、入力値発生手段の内容を変更する場
合、入出力シミュレート手段については変更が不要とな
り、プログラム開発が効率化される。
【0036】
【実施例】次に、本発明の実施例であるプログラムシミ
ュレーション装置について、図面に従って具体的に説明
する。なお、下記実施例はコンピュータ上に実現される
もので、下記実施例の各機能は、プログラムとして格納
された所定の手順でコンピュータを動作させることによ
って実現されている。したがって、以下、実施例の各機
能を有する仮想的回路ブロック(手段)を想定して実施
例を説明する。
ュレーション装置について、図面に従って具体的に説明
する。なお、下記実施例はコンピュータ上に実現される
もので、下記実施例の各機能は、プログラムとして格納
された所定の手順でコンピュータを動作させることによ
って実現されている。したがって、以下、実施例の各機
能を有する仮想的回路ブロック(手段)を想定して実施
例を説明する。
【0037】なお、前記コンピュータは、一般には、C
PU(中央演算処理装置)と、RAM(随時書込読出型
記憶素子)からなる主記憶装置とを有する。前記コンピ
ュータの規模は自由であり、いわゆるパーソナルコンピ
ュータやワークステーションなど、いかなる規模のもの
を用いてもよい。また、前記コンピュータは、典型的に
は、キーボードやマウスなどの入力装置と、ハードディ
スク装置などの外部記憶装置と、CRT表示装置やプリ
ンタ印字装置などの出力装置と、必要な入出力制御回路
を有する。
PU(中央演算処理装置)と、RAM(随時書込読出型
記憶素子)からなる主記憶装置とを有する。前記コンピ
ュータの規模は自由であり、いわゆるパーソナルコンピ
ュータやワークステーションなど、いかなる規模のもの
を用いてもよい。また、前記コンピュータは、典型的に
は、キーボードやマウスなどの入力装置と、ハードディ
スク装置などの外部記憶装置と、CRT表示装置やプリ
ンタ印字装置などの出力装置と、必要な入出力制御回路
を有する。
【0038】しかし、前記コンピュータの構成は自由で
あり、本発明の内容に反しない限り、上記の構成要素の
一部を追加・変更・除外してもよい。例えば、CPUの
種類は自由であり、また、CPUを複数同時に用いても
よい。また、単一のCPUをタイムシェアリング(時分
割)で使用し、複数の処理を同時平行的に行ってもよ
い。また、ネットワークを構成するコンピュータを用い
てもよい。また、前記コンピュータでは、入力装置とし
て、他の装置、例えば、タッチパネル・ライトペン・ト
ラックボールなどのポインティングデバイスや、デジタ
イザ・イメージ読取装置やビデオカメラなどの画像入力
装置・音声識別装置・各種センサを用いてもよい。ま
た、前記コンピュータでは、外部記憶装置として、他の
装置、例えば、フロッピーディスク装置・RAMカード
装置・磁気テープ装置・光学ディスク装置・光磁気ディ
スク装置・バブルメモリ装置・フラッシュメモリなどを
用いてもよい。また、前記コンピュータは、出力装置と
して、他の装置、例えば、液晶表示装置・プラズマディ
スプレイ装置・ビデオプロジェクター・LED表示装置
・音響発生回路・音声合成回路を用いてもよい。
あり、本発明の内容に反しない限り、上記の構成要素の
一部を追加・変更・除外してもよい。例えば、CPUの
種類は自由であり、また、CPUを複数同時に用いても
よい。また、単一のCPUをタイムシェアリング(時分
割)で使用し、複数の処理を同時平行的に行ってもよ
い。また、ネットワークを構成するコンピュータを用い
てもよい。また、前記コンピュータでは、入力装置とし
て、他の装置、例えば、タッチパネル・ライトペン・ト
ラックボールなどのポインティングデバイスや、デジタ
イザ・イメージ読取装置やビデオカメラなどの画像入力
装置・音声識別装置・各種センサを用いてもよい。ま
た、前記コンピュータでは、外部記憶装置として、他の
装置、例えば、フロッピーディスク装置・RAMカード
装置・磁気テープ装置・光学ディスク装置・光磁気ディ
スク装置・バブルメモリ装置・フラッシュメモリなどを
用いてもよい。また、前記コンピュータは、出力装置と
して、他の装置、例えば、液晶表示装置・プラズマディ
スプレイ装置・ビデオプロジェクター・LED表示装置
・音響発生回路・音声合成回路を用いてもよい。
【0039】また、出力装置としてプリンタ印字装置を
用いる場合、その種類も自由であり、例えば、レーザー
ビームプリンタ・インクジェットプリンタ・ドットマト
リックスプリンタ・プロッタプリンタ・ラインプリンタ
・熱転写プリンタ・放電プリンタ・電動タイプライタな
どを自由に用いることができる。
用いる場合、その種類も自由であり、例えば、レーザー
ビームプリンタ・インクジェットプリンタ・ドットマト
リックスプリンタ・プロッタプリンタ・ラインプリンタ
・熱転写プリンタ・放電プリンタ・電動タイプライタな
どを自由に用いることができる。
【0040】また、前記コンピュータのソフトウェアの
構成としては、典型的には、OS(オペレーティングシ
ステム)上で、実施例の各機能を実現するためのプログ
ラムがアプリケーション(応用)プログラムとして実行
される態様が考えられる。しかし、前記コンピュータの
ソフトウェア構成は自由に変更することができる。
構成としては、典型的には、OS(オペレーティングシ
ステム)上で、実施例の各機能を実現するためのプログ
ラムがアプリケーション(応用)プログラムとして実行
される態様が考えられる。しかし、前記コンピュータの
ソフトウェア構成は自由に変更することができる。
【0041】また、プログラムの表現形式も自由であ
り、典型的には、高級言語やアセンブラからコンパイル
(翻訳)された機械語が考えられるが、BASICのよ
うなインタプリタ(逐次解釈実行型)言語を用いてもよ
い。
り、典型的には、高級言語やアセンブラからコンパイル
(翻訳)された機械語が考えられるが、BASICのよ
うなインタプリタ(逐次解釈実行型)言語を用いてもよ
い。
【0042】なお、各手段は、実施例の各機能に対応す
る概念的なもので、必ずしも相互に独立したハードウェ
アを意味しない。例えば、ある入力手段と他の入力手段
は同一のキーボード上に実現してもよく、同様に、ある
出力手段と他の出力手段を同一の画像表示装置上に実現
してもよい。また、一つの手段は、わずか1命令によっ
て実現される場合もあれば、多数の命令によって実現さ
れる場合もある。
る概念的なもので、必ずしも相互に独立したハードウェ
アを意味しない。例えば、ある入力手段と他の入力手段
は同一のキーボード上に実現してもよく、同様に、ある
出力手段と他の出力手段を同一の画像表示装置上に実現
してもよい。また、一つの手段は、わずか1命令によっ
て実現される場合もあれば、多数の命令によって実現さ
れる場合もある。
【0043】また、実施例の装置自体を実現するための
プログラムについては、その格納態様も自由であり、R
OM(読出し専用メモリ)に格納しておいてもよく、ま
た、ハードディスク装置のような外部記憶装置に格納し
ておき、コンピュータの起動時や処理の開始時に主メモ
リ上にロード(読み込み)してもよい。また、プログラ
ムを複数の部分に分割して外部記憶装置に格納してお
き、処理内容に応じて必要なモジュールのみを随時主メ
モリ上にロード(読み込み)してもよい。さらに、プロ
グラムの部分ごとに異なった態様で格納してもよい。
プログラムについては、その格納態様も自由であり、R
OM(読出し専用メモリ)に格納しておいてもよく、ま
た、ハードディスク装置のような外部記憶装置に格納し
ておき、コンピュータの起動時や処理の開始時に主メモ
リ上にロード(読み込み)してもよい。また、プログラ
ムを複数の部分に分割して外部記憶装置に格納してお
き、処理内容に応じて必要なモジュールのみを随時主メ
モリ上にロード(読み込み)してもよい。さらに、プロ
グラムの部分ごとに異なった態様で格納してもよい。
【0044】また、本明細書における「入力」は、本来
の情報の入力のみならず、情報の入力と密接に関連する
他の処理を含む。このような処理は、例えば、入力内容
の出力装置へのエコーバック(確認のための出力)や、
入力内容の修正・編集である。また、本明細書における
「出力」は、本来の情報の出力のみならず、情報の出力
と密接に関連する他の処理を含む。このような処理は、
例えば、出力範囲の限定の入力や、表示画面における情
報のスクロールの指示である。なお、入力手段と出力手
段は、現実の実施では、対話型インタフェースの手法に
よって一体の部分として実現してもよい。同様に、この
ような入力と出力の一体化は、「選択」や「特定」な
ど、何らかの出力情報に基づいた処理に適用し得る。
の情報の入力のみならず、情報の入力と密接に関連する
他の処理を含む。このような処理は、例えば、入力内容
の出力装置へのエコーバック(確認のための出力)や、
入力内容の修正・編集である。また、本明細書における
「出力」は、本来の情報の出力のみならず、情報の出力
と密接に関連する他の処理を含む。このような処理は、
例えば、出力範囲の限定の入力や、表示画面における情
報のスクロールの指示である。なお、入力手段と出力手
段は、現実の実施では、対話型インタフェースの手法に
よって一体の部分として実現してもよい。同様に、この
ような入力と出力の一体化は、「選択」や「特定」な
ど、何らかの出力情報に基づいた処理に適用し得る。
【0045】本明細書にいう格納手段は、情報の存在を
確認的に示すためのもので、一定の情報を一定時間保持
することができる全ての手段を意味する。したがって、
本明細書における格納手段は、外部記憶装置やファイル
形式のような特定の情報記憶態様のみを意味するもので
はない。特に、本明細書の図面における円筒状の枠は、
ディスク装置などの外部記憶装置やファイル形式のよう
な特定の記憶態様のみを意味するものではない。
確認的に示すためのもので、一定の情報を一定時間保持
することができる全ての手段を意味する。したがって、
本明細書における格納手段は、外部記憶装置やファイル
形式のような特定の情報記憶態様のみを意味するもので
はない。特に、本明細書の図面における円筒状の枠は、
ディスク装置などの外部記憶装置やファイル形式のよう
な特定の記憶態様のみを意味するものではない。
【0046】このように、本明細書にいう格納手段は一
定の情報を一定時間保持することができれば十分であ
り、実現の態様は自由である。格納手段は、典型的に
は、主記憶装置上に所定の領域として実現される。しか
し、例えば、格納手段は、主記憶装置上のみならず外部
記憶装置上に実現してもよく、また、CPUのレジスタ
やキャッシュメモリを用いてもよい。また、格納手段が
複数存在する場合、各格納手段が実現される記憶装置
が、同種か別種かも自由である。
定の情報を一定時間保持することができれば十分であ
り、実現の態様は自由である。格納手段は、典型的に
は、主記憶装置上に所定の領域として実現される。しか
し、例えば、格納手段は、主記憶装置上のみならず外部
記憶装置上に実現してもよく、また、CPUのレジスタ
やキャッシュメモリを用いてもよい。また、格納手段が
複数存在する場合、各格納手段が実現される記憶装置
が、同種か別種かも自由である。
【0047】また、格納手段の形式も自由であり、ファ
イル形式をとらず、主メモリや外部記憶装置を、アドレ
スや物理的記録位置で直接アクセスして実現してもよ
い。また、格納手段は必要な場合に一時的に存在すれば
十分で、その後消滅してもよい。また、辞書のように当
面変更されない情報は、ROMに格納してもよい。
イル形式をとらず、主メモリや外部記憶装置を、アドレ
スや物理的記録位置で直接アクセスして実現してもよ
い。また、格納手段は必要な場合に一時的に存在すれば
十分で、その後消滅してもよい。また、辞書のように当
面変更されない情報は、ROMに格納してもよい。
【0048】また、各格納手段は、本発明の目的に専用
である必要はなく、単なる記録データ用の部分を兼用し
てもよい。また、情報の内容や形式は自由であり、例え
ば、文字列を文字単位のコードで格納するか単語単位の
コードで格納するかも自由である。また、各格納手段に
は、他の格納手段に格納されている情報をコピーして利
用してもよい。
である必要はなく、単なる記録データ用の部分を兼用し
てもよい。また、情報の内容や形式は自由であり、例え
ば、文字列を文字単位のコードで格納するか単語単位の
コードで格納するかも自由である。また、各格納手段に
は、他の格納手段に格納されている情報をコピーして利
用してもよい。
【0049】また、格納手段の説明は、格納手段に関し
て明示しない情報の存在を否定するものではない。した
がって、実施例は、実施例の作用に必要な他の情報(例
えば、各種ポインタ、カウンタ、フラグ、パラメータ、
バッファ、その他)を適宜利用するものである。
て明示しない情報の存在を否定するものではない。した
がって、実施例は、実施例の作用に必要な他の情報(例
えば、各種ポインタ、カウンタ、フラグ、パラメータ、
バッファ、その他)を適宜利用するものである。
【0050】また、実施例における各手順の各ステップ
は、その性質に反しない限り、実行順序を変更し、複数
同時に実行し、また、実行ごとに異なった順序で実行し
てもよい。このような順序の変更は、例えば、ユーザが
実行可能な処理を選択するなどメニュー形式のインター
フェース手法によって実現することができる。
は、その性質に反しない限り、実行順序を変更し、複数
同時に実行し、また、実行ごとに異なった順序で実行し
てもよい。このような順序の変更は、例えば、ユーザが
実行可能な処理を選択するなどメニュー形式のインター
フェース手法によって実現することができる。
【0051】実施例の各部分が処理に要する情報は、特
に記さない場合、当該情報を入力・生成・保存などの処
理に基づいて保持している他の部分から獲得される。こ
のような情報の獲得は、例えば、当該情報を格納してい
る変数やメモリをアクセスすることによって実現するこ
とができる。なお、情報の消去・抹消は、当該情報の内
容自体を必ずしも記憶領域から現実に削除せず、消去を
表すフラグを設定するなど、情報の意味付けの変更によ
って行うことができる。
に記さない場合、当該情報を入力・生成・保存などの処
理に基づいて保持している他の部分から獲得される。こ
のような情報の獲得は、例えば、当該情報を格納してい
る変数やメモリをアクセスすることによって実現するこ
とができる。なお、情報の消去・抹消は、当該情報の内
容自体を必ずしも記憶領域から現実に削除せず、消去を
表すフラグを設定するなど、情報の意味付けの変更によ
って行うことができる。
【0052】また、実施例はコンピュータ上に実現され
ているが、実施例の機能の全部又は一部は専用の電子回
路上に実現してもよい。
ているが、実施例の機能の全部又は一部は専用の電子回
路上に実現してもよい。
【0053】A.第1実施例 (1)第1実施例の構成 まず、第1実施例の目的は、実行モジュールの全体につ
いて、高速な実行が可能なプログラムシミュレーション
装置を提供することである。また、第1実施例の他の目
的は、実行モジュールの実行速度を調節可能なプログラ
ムシミュレーション装置を提供することである。
いて、高速な実行が可能なプログラムシミュレーション
装置を提供することである。また、第1実施例の他の目
的は、実行モジュールの実行速度を調節可能なプログラ
ムシミュレーション装置を提供することである。
【0054】第1実施例におけるターゲットプログラム
は、複数のプロセスからなるマルチプログラミング(マ
ルチタスキング)によるもので、第1実施例におけるタ
ーゲットシステムは、このようなマルチプロセス用プロ
グラムを実行できるOS(本明細書において「ターゲッ
トOS」という)を搭載している。また、ホストマシン
も、このようなマルチプロセス用プログラムを実行でき
るOS(本明細書において「ホストOS」という)を搭
載しているが、両OSは異なる種類のものである。
は、複数のプロセスからなるマルチプログラミング(マ
ルチタスキング)によるもので、第1実施例におけるタ
ーゲットシステムは、このようなマルチプロセス用プロ
グラムを実行できるOS(本明細書において「ターゲッ
トOS」という)を搭載している。また、ホストマシン
も、このようなマルチプロセス用プログラムを実行でき
るOS(本明細書において「ホストOS」という)を搭
載しているが、両OSは異なる種類のものである。
【0055】まず、図1は、第1実施例の構成を示すブ
ロック図である。すなわち、第1実施例は、ターゲット
プログラムの実行モジュールを格納する実行モジュール
格納部1(前記実行モジュール格納手段に相当するも
の)と、ターゲットシステムにおける入出力動作をホス
トマシン上でシミュレーションする入出力ライブラリを
格納するための入出力ライブラリ格納部2(前記入出力
ライブラリ格納手段に相当するもの)と、前記実行モジ
ュールに前記入出力ライブラリをリンクするリンク部3
(前記リンク手段に相当するもの)とを有する。
ロック図である。すなわち、第1実施例は、ターゲット
プログラムの実行モジュールを格納する実行モジュール
格納部1(前記実行モジュール格納手段に相当するも
の)と、ターゲットシステムにおける入出力動作をホス
トマシン上でシミュレーションする入出力ライブラリを
格納するための入出力ライブラリ格納部2(前記入出力
ライブラリ格納手段に相当するもの)と、前記実行モジ
ュールに前記入出力ライブラリをリンクするリンク部3
(前記リンク手段に相当するもの)とを有する。
【0056】また、第1実施例は、前記リンクされた実
行モジュールを実行するCPUであるプログラム実行部
4(前記実行手段に相当するもの)と、入力装置5及び
出力装置6とを有する。なお、入力装置5及び出力装置
6は、それぞれ、ホストマシンのコンソールのCRT及
びキーボードであり、両者併せて、前記入出力手段を構
成している。
行モジュールを実行するCPUであるプログラム実行部
4(前記実行手段に相当するもの)と、入力装置5及び
出力装置6とを有する。なお、入力装置5及び出力装置
6は、それぞれ、ホストマシンのコンソールのCRT及
びキーボードであり、両者併せて、前記入出力手段を構
成している。
【0057】また、第1実施例は、ホストOS部7と、
ホストOS部7の機能を用いてターゲットOSの動作を
シミュレートするインタフェース部8とを有する。な
お、ホストOS部7及びインタフェース部8は、前記O
Sシミュレート手段を構成している。
ホストOS部7の機能を用いてターゲットOSの動作を
シミュレートするインタフェース部8とを有する。な
お、ホストOS部7及びインタフェース部8は、前記O
Sシミュレート手段を構成している。
【0058】また、第1実施例は、ホストOS部7から
提供されるタイマ割り込み信号(前記プリミティブタイ
ミングシグナルに相当するもの)に基づいて実行モジュ
ールの実行に用いる実行用タイミングシグナル(以下
「実行用シグナル」という)を生成するシグナル変換部
9(前記タイミングシグナル生成手段に相当するもの)
と、実行用シグナルの間隔を制御するパラメータを変更
するパラメータ変更部10(前記タイミングシグナル調
節手段に相当するもの)とを有する。
提供されるタイマ割り込み信号(前記プリミティブタイ
ミングシグナルに相当するもの)に基づいて実行モジュ
ールの実行に用いる実行用タイミングシグナル(以下
「実行用シグナル」という)を生成するシグナル変換部
9(前記タイミングシグナル生成手段に相当するもの)
と、実行用シグナルの間隔を制御するパラメータを変更
するパラメータ変更部10(前記タイミングシグナル調
節手段に相当するもの)とを有する。
【0059】なお、シグナル変換部9及びパラメータ変
更部10は、前記速度調節手段を構成している。
更部10は、前記速度調節手段を構成している。
【0060】また、図2は、インタフェース部8の内部
構成を示すブロック図であり、このインタフェース部8
は、実行用シグナルに基づいてマルチプロセスにおける
プロセス切り換えを行うスケジューリング部11と、ス
ケジューリング用の所定の記憶領域を有する。この記憶
領域には、プロセス制御用のデータブロックであるプロ
セスコントロールブロック(以下「PCB」という)1
2が格納され、各PCB12は、対応するプロセスのプ
ロセス状態に応じて、起動状態のPCB12からなる待
ち列であるレディキュー13、及び、待ち状態のPCB
12からなる待ち列であるウエイトキュー14を構成し
ている。
構成を示すブロック図であり、このインタフェース部8
は、実行用シグナルに基づいてマルチプロセスにおける
プロセス切り換えを行うスケジューリング部11と、ス
ケジューリング用の所定の記憶領域を有する。この記憶
領域には、プロセス制御用のデータブロックであるプロ
セスコントロールブロック(以下「PCB」という)1
2が格納され、各PCB12は、対応するプロセスのプ
ロセス状態に応じて、起動状態のPCB12からなる待
ち列であるレディキュー13、及び、待ち状態のPCB
12からなる待ち列であるウエイトキュー14を構成し
ている。
【0061】また、図3は、各PCB12のデータ構造
を示す概念図である。すなわち、各PCB12は、この
図に示すように、プロセスを相互に識別するためのプロ
セスID、各プロセスの実行時の優先度を表すパラメー
タであるプロセス優先度、RUN,READY,WAI
Tなどのプロセスの状態種別を示すプロセス状態、プロ
セス中断時におけるプログラムカウンタ・スタックポイ
ンタなどCPUの各レジスタの値、プロセスがウエイト
(待ち)状態となるウエイト時間の残りをカウントする
ためのウエイト時間カウンタ、PCBのキューイング時
に次のPCBを指すPCB間のポインタ、とを有してい
る。そして、各PCB12は、レディキュー13及びウ
エイトキュー14において、各キュー13,14の先頭
から当該キュー13又は14の後端までポインタによっ
て連鎖している。なお、図4は、PCB12の連鎖の状
態を示す概念図である。
を示す概念図である。すなわち、各PCB12は、この
図に示すように、プロセスを相互に識別するためのプロ
セスID、各プロセスの実行時の優先度を表すパラメー
タであるプロセス優先度、RUN,READY,WAI
Tなどのプロセスの状態種別を示すプロセス状態、プロ
セス中断時におけるプログラムカウンタ・スタックポイ
ンタなどCPUの各レジスタの値、プロセスがウエイト
(待ち)状態となるウエイト時間の残りをカウントする
ためのウエイト時間カウンタ、PCBのキューイング時
に次のPCBを指すPCB間のポインタ、とを有してい
る。そして、各PCB12は、レディキュー13及びウ
エイトキュー14において、各キュー13,14の先頭
から当該キュー13又は14の後端までポインタによっ
て連鎖している。なお、図4は、PCB12の連鎖の状
態を示す概念図である。
【0062】(2)第1実施例の作用及び効果 上記のような構成を有する本装置におけるプログラムシ
ミュレーションは、次のように行われる。すなわち、ユ
ーザは、あらかじめ、ホストマシン上でターゲットシス
テムの入出力動作をシミュレートする入出力ルーチンを
作成し、この入出力ルーチンからなる入出力ライブラリ
を入出力ライブラリ格納部2に格納しておく。この入出
力ライブラリは、ターゲットシステム固有のハードウェ
ア資源(デバイス)を用いた入出力動作を、ホストマシ
ンにおける入出力動作に置き換えて実行するためのもの
であるから、ターゲットシステム固有のハードウェア資
源に関する入出力動作についてのみ作成すればよい。こ
の入出力ライブラリは、具体的には、ホストマシンの入
力装置5及び出力装置6を用いて、ターゲットシステム
固有のハードウェア資源の入出力動作を実現するための
制御手順を内容とする。
ミュレーションは、次のように行われる。すなわち、ユ
ーザは、あらかじめ、ホストマシン上でターゲットシス
テムの入出力動作をシミュレートする入出力ルーチンを
作成し、この入出力ルーチンからなる入出力ライブラリ
を入出力ライブラリ格納部2に格納しておく。この入出
力ライブラリは、ターゲットシステム固有のハードウェ
ア資源(デバイス)を用いた入出力動作を、ホストマシ
ンにおける入出力動作に置き換えて実行するためのもの
であるから、ターゲットシステム固有のハードウェア資
源に関する入出力動作についてのみ作成すればよい。こ
の入出力ライブラリは、具体的には、ホストマシンの入
力装置5及び出力装置6を用いて、ターゲットシステム
固有のハードウェア資源の入出力動作を実現するための
制御手順を内容とする。
【0063】また、ユーザは、ターゲットプログラムを
コンパイルした実行モジュールを実行モジュール格納部
1に格納しておく。すなわち、ターゲットプログラム
は、マルチプロセスからなり、ターゲットOS上で動作
するプログラムであるが、具体的には、例えば、ハード
ウェア構成やOSの種類に依存しない高級言語を用いて
記述し、ホストマシン上のセルフコンパイラでコンパイ
ルしておく。
コンパイルした実行モジュールを実行モジュール格納部
1に格納しておく。すなわち、ターゲットプログラム
は、マルチプロセスからなり、ターゲットOS上で動作
するプログラムであるが、具体的には、例えば、ハード
ウェア構成やOSの種類に依存しない高級言語を用いて
記述し、ホストマシン上のセルフコンパイラでコンパイ
ルしておく。
【0064】まず、ユーザは、リンク部3によって、前
記高級言語の標準ライブラリのみならず入出力ライブラ
リを指定し、実行モジュールに入出力ライブラリをリン
クする。そして、プログラム実行部4がこのリンクされ
た実行モジュールを実行する。
記高級言語の標準ライブラリのみならず入出力ライブラ
リを指定し、実行モジュールに入出力ライブラリをリン
クする。そして、プログラム実行部4がこのリンクされ
た実行モジュールを実行する。
【0065】このとき、プログラム実行部4は、ホスト
マシンのCPUによって実行モジュールを直接実行す
る。このため、従来のインタプリタ的シミュレーション
と比べて、実行モジュールの実行速度が格段に向上す
る。また、インタプリタのためのメモリ領域や、メモリ
やレジスタの内容の仮想的実現が不要となるので、実行
モジュール全体の実行が可能となる。
マシンのCPUによって実行モジュールを直接実行す
る。このため、従来のインタプリタ的シミュレーション
と比べて、実行モジュールの実行速度が格段に向上す
る。また、インタプリタのためのメモリ領域や、メモリ
やレジスタの内容の仮想的実現が不要となるので、実行
モジュール全体の実行が可能となる。
【0066】また、入出力ライブラリが、入力装置5及
び出力装置6を制御することによって、ターゲットシス
テムにおける入出力動作をシミュレートする。このた
め、ターゲットシステムとホストマシンの構成が異なる
ために、ホストマシン上でそのまま実行できない入出力
動作がターゲットプログラムに含まれている場合でも、
ホストマシン上でターゲットシステムの入出力動作を実
現することができる。
び出力装置6を制御することによって、ターゲットシス
テムにおける入出力動作をシミュレートする。このた
め、ターゲットシステムとホストマシンの構成が異なる
ために、ホストマシン上でそのまま実行できない入出力
動作がターゲットプログラムに含まれている場合でも、
ホストマシン上でターゲットシステムの入出力動作を実
現することができる。
【0067】また、インタフェース部8が、ホストOS
部7の動作に基づいてターゲットOSの動作をシミュレ
ートする。このため、ターゲットシステムとホストマシ
ンでOSが異なる場合でも、ターゲットプログラムの実
行モジュールは、プロセス切り換えやシステムコールな
ど、ターゲットOSのサービスをホストマシン上で受
け、ホストマシン上で動作することが可能となる。
部7の動作に基づいてターゲットOSの動作をシミュレ
ートする。このため、ターゲットシステムとホストマシ
ンでOSが異なる場合でも、ターゲットプログラムの実
行モジュールは、プロセス切り換えやシステムコールな
ど、ターゲットOSのサービスをホストマシン上で受
け、ホストマシン上で動作することが可能となる。
【0068】また、本装置では、ユーザは、パラメータ
変更部10から新たなパラメータを入力してパラメータ
を変更することによって、ホストマシン上における実行
モジュールの実行速度を調節することができる。すなわ
ち、一般に、ホストマシンに用いられるコンピュータの
CPUは、ターゲットシステムのCPUよりも演算能力
の高いものが用いられる場合が多いので、本装置のよう
に、ターゲットプログラムの実行モジュールをホストマ
シンのCPUが直接実行すると、ターゲットシステム上
における実際の実行よりも、実行速度は高速化される。
しかし、制御プログラムのように、外部機器の反応時間
など、動作タイミングが問題となるプログラムでは、ホ
ストマシン上においても、ターゲットシステムにおける
実際の実行速度で実行する必要がある。このため、本装
置は、実行速度の調節を次のように実現している。
変更部10から新たなパラメータを入力してパラメータ
を変更することによって、ホストマシン上における実行
モジュールの実行速度を調節することができる。すなわ
ち、一般に、ホストマシンに用いられるコンピュータの
CPUは、ターゲットシステムのCPUよりも演算能力
の高いものが用いられる場合が多いので、本装置のよう
に、ターゲットプログラムの実行モジュールをホストマ
シンのCPUが直接実行すると、ターゲットシステム上
における実際の実行よりも、実行速度は高速化される。
しかし、制御プログラムのように、外部機器の反応時間
など、動作タイミングが問題となるプログラムでは、ホ
ストマシン上においても、ターゲットシステムにおける
実際の実行速度で実行する必要がある。このため、本装
置は、実行速度の調節を次のように実現している。
【0069】まず、プロセスの起動や終了のようなター
ゲットOSの機能を実現するためには、何らかのタイミ
ングシグナルすなわち時間情報が必要であり、本装置で
は、このタイミングシグナルを、シグナル変換部9が、
パラメータと、ホストOSにおいて得られるタイマ割り
込み信号に基づいて提供する。
ゲットOSの機能を実現するためには、何らかのタイミ
ングシグナルすなわち時間情報が必要であり、本装置で
は、このタイミングシグナルを、シグナル変換部9が、
パラメータと、ホストOSにおいて得られるタイマ割り
込み信号に基づいて提供する。
【0070】パラメータは、ユーザが、図5に例示する
ように、グラフィック画面で模擬的に表示されるスライ
ダー27を、マウスで操作することによって1から10
0までの整数値を入力する。ホストOSでは、単位時間
毎のタイマ割込信号が提供されているが、プログラム実
行部4やインタフェース部8は、このタイマ割込信号を
直接動作の基礎としては利用しない。すなわち、シグナ
ル変換部9が、ホストOSからタイマ割込信号を読み込
み、パラメータの数だけタイマ割込信号を計数する度に
実行用シグナルを発生するので、パラメータと実行モジ
ュールの実行速度は反比例する。なお、タイミングシグ
ナルは、具体的には、例えば、割り込み信号として扱わ
れる。
ように、グラフィック画面で模擬的に表示されるスライ
ダー27を、マウスで操作することによって1から10
0までの整数値を入力する。ホストOSでは、単位時間
毎のタイマ割込信号が提供されているが、プログラム実
行部4やインタフェース部8は、このタイマ割込信号を
直接動作の基礎としては利用しない。すなわち、シグナ
ル変換部9が、ホストOSからタイマ割込信号を読み込
み、パラメータの数だけタイマ割込信号を計数する度に
実行用シグナルを発生するので、パラメータと実行モジ
ュールの実行速度は反比例する。なお、タイミングシグ
ナルは、具体的には、例えば、割り込み信号として扱わ
れる。
【0071】ここで、図6は、シグナル変換部9が、所
定周期ごとの実行用シグナルを生成する手順を示すフロ
ーチャートである。すなわち、この手順では、まず、変
数である割込み回数Nを初期化(ゼロクリア)し(ステ
ップ61)、タイマ割込みの有無を監視する(ステップ
62)。割込みがあったときは、割込み回数Nに1加算
(インクリメント)してタイマ割込みの回数をカウント
し(ステップ63)、続いて、割込み回数Nをパラメー
タを表す変数Xと比較し、割込み回数NがパラメータX
以上のときは(ステップ64)実行用シグナルを発生す
るが(ステップ65)、割込み回数NがパラメータX未
満のときは再びタイマ割り込みの有無を監視する(ステ
ップ62)。なお、所定周期ごとの実行用シグナルを発
生させるためには、何らかの内蔵タイマの時刻を監視
し、所定間隔の時刻ごとに実行用シグナルを発生させて
もよい。
定周期ごとの実行用シグナルを生成する手順を示すフロ
ーチャートである。すなわち、この手順では、まず、変
数である割込み回数Nを初期化(ゼロクリア)し(ステ
ップ61)、タイマ割込みの有無を監視する(ステップ
62)。割込みがあったときは、割込み回数Nに1加算
(インクリメント)してタイマ割込みの回数をカウント
し(ステップ63)、続いて、割込み回数Nをパラメー
タを表す変数Xと比較し、割込み回数NがパラメータX
以上のときは(ステップ64)実行用シグナルを発生す
るが(ステップ65)、割込み回数NがパラメータX未
満のときは再びタイマ割り込みの有無を監視する(ステ
ップ62)。なお、所定周期ごとの実行用シグナルを発
生させるためには、何らかの内蔵タイマの時刻を監視
し、所定間隔の時刻ごとに実行用シグナルを発生させて
もよい。
【0072】本装置では、このように生成された実行用
シグナルに基づいてプロセス切り換えが行われる。ここ
で、図7は、インタフェース部8が実行用シグナルに基
づいてプロセスを起動する手順を示すフローチャートで
ある。すなわち、この手順では、インタフェース部8が
前記実行用シグナルを受領すると(ステップ71)、ス
ケジューリング手段11(図2)がウエイトキュー14
に連なるPCBwのウエイト時間変数WTを1減算(デ
クリメント)し(ステップ72)、ウエイト時間変数W
T=0のPCB12があれば(ステップ73)、当該P
CB12のプロセス状態をREADYに変更し、当該P
CB12をレディキュー13につなぎ換える(ステップ
74)。この結果、ホストOS部7が、レディキュー1
3に属する各PCB12について、その優先度に応じた
CPU時間を割り当てる。一方、ステップ73におい
て、ウエイト時間変数WT=0のPCBがなければ手順
を終了する。
シグナルに基づいてプロセス切り換えが行われる。ここ
で、図7は、インタフェース部8が実行用シグナルに基
づいてプロセスを起動する手順を示すフローチャートで
ある。すなわち、この手順では、インタフェース部8が
前記実行用シグナルを受領すると(ステップ71)、ス
ケジューリング手段11(図2)がウエイトキュー14
に連なるPCBwのウエイト時間変数WTを1減算(デ
クリメント)し(ステップ72)、ウエイト時間変数W
T=0のPCB12があれば(ステップ73)、当該P
CB12のプロセス状態をREADYに変更し、当該P
CB12をレディキュー13につなぎ換える(ステップ
74)。この結果、ホストOS部7が、レディキュー1
3に属する各PCB12について、その優先度に応じた
CPU時間を割り当てる。一方、ステップ73におい
て、ウエイト時間変数WT=0のPCBがなければ手順
を終了する。
【0073】以上のように、本実施例では、ユーザは、
パラメータを変更することによって所望の速度でターゲ
ットプログラムを実行でき、ホストマシン上における実
行速度を実際のターゲットシステム上での実行速度に揃
えることが可能となる。この結果、ユーザや、外部機器
の反応時間との相互関係を前提としたデバッグが可能と
なる。
パラメータを変更することによって所望の速度でターゲ
ットプログラムを実行でき、ホストマシン上における実
行速度を実際のターゲットシステム上での実行速度に揃
えることが可能となる。この結果、ユーザや、外部機器
の反応時間との相互関係を前提としたデバッグが可能と
なる。
【0074】また、もちろん、この調節によってホスト
マシン上における実行速度をターゲットシステム上にお
ける実行速度と無関係に、高速にすることも低速にする
ことも可能である。このため、多数回の実行を要する実
行モジュールは高速に実行し、プログラムの動作状態を
監視したい場合には低速にするなど、シミュレーション
の目的に応じた所望の速度で実行モジュールを実行する
ことができる。このため、本実施例によれば、デバッグ
の効率化が可能となる。
マシン上における実行速度をターゲットシステム上にお
ける実行速度と無関係に、高速にすることも低速にする
ことも可能である。このため、多数回の実行を要する実
行モジュールは高速に実行し、プログラムの動作状態を
監視したい場合には低速にするなど、シミュレーション
の目的に応じた所望の速度で実行モジュールを実行する
ことができる。このため、本実施例によれば、デバッグ
の効率化が可能となる。
【0075】B.第2実施例 図8は、第2実施例の構成を示す機能ブロック図であ
る。第2実施例の目的は、第1実施例の目的に加え、ク
ロス環境における効率的なプログラム開発が可能なプロ
グラムシミュレーション装置を提供することである。ま
た、第2実施例の他の目的は、効率的なシミュレーショ
ンが可能なプログラムシミュレーション装置を提供する
ことである。
る。第2実施例の目的は、第1実施例の目的に加え、ク
ロス環境における効率的なプログラム開発が可能なプロ
グラムシミュレーション装置を提供することである。ま
た、第2実施例の他の目的は、効率的なシミュレーショ
ンが可能なプログラムシミュレーション装置を提供する
ことである。
【0076】図8に示すように、第2実施例は、第1実
施例と概ね同様の構成を有するプログラムシミュレーシ
ョン装置であるが、第2実施例は、ターゲットシステム
の入出力をホストマシン上でシミュレートする入出力シ
ミュレート部21(前記入出力シミュレート手段に相当
するもの)と、ターゲットシステムにおける入力をホス
トマシン上で発生させる入力値発生部22(前記入力値
発生手段に相当するもの)と、を有する。また、第2実
施例では、ターゲットプログラムの実行モジュール、入
出力シミュレート部21及び入力値発生部22は、相互
にホストマシン上の異別のプロセスとして実現され、こ
れらプロセス相互間の情報伝達はプロセス間通信によっ
て行われる。なお、本明細書にいうプロセス間通信は、
プロセス間で情報を伝達するあらゆる態様の手段を含
む。また、この場合、入出力ライブラリは、実行モジュ
ールからの入出力要求を、入出力シミュレート手段21
に対して当該入出力を要求するプロセス間通信に置き換
えることを内容とする。
施例と概ね同様の構成を有するプログラムシミュレーシ
ョン装置であるが、第2実施例は、ターゲットシステム
の入出力をホストマシン上でシミュレートする入出力シ
ミュレート部21(前記入出力シミュレート手段に相当
するもの)と、ターゲットシステムにおける入力をホス
トマシン上で発生させる入力値発生部22(前記入力値
発生手段に相当するもの)と、を有する。また、第2実
施例では、ターゲットプログラムの実行モジュール、入
出力シミュレート部21及び入力値発生部22は、相互
にホストマシン上の異別のプロセスとして実現され、こ
れらプロセス相互間の情報伝達はプロセス間通信によっ
て行われる。なお、本明細書にいうプロセス間通信は、
プロセス間で情報を伝達するあらゆる態様の手段を含
む。また、この場合、入出力ライブラリは、実行モジュ
ールからの入出力要求を、入出力シミュレート手段21
に対して当該入出力を要求するプロセス間通信に置き換
えることを内容とする。
【0077】次に、図9は、入出力シミュレート部21
が出力装置6に表示する画面の例であり、この例では、
ターゲットシステムが備えるボタンなどの入力装置やL
EDなどの出力装置がコンピュータグラフィックスによ
って表示されている。また、この例では、図示するよう
に、割り込みや、ターゲットシステムが備える入力装置
からの入力の発生を所定のアイコンボタンをマウスポイ
ンタでクリックすることによって指示することができ
る。
が出力装置6に表示する画面の例であり、この例では、
ターゲットシステムが備えるボタンなどの入力装置やL
EDなどの出力装置がコンピュータグラフィックスによ
って表示されている。また、この例では、図示するよう
に、割り込みや、ターゲットシステムが備える入力装置
からの入力の発生を所定のアイコンボタンをマウスポイ
ンタでクリックすることによって指示することができ
る。
【0078】図10のフローチャートは、第2実施例に
おける入力のシミュレーションの手順を示す。すなわ
ち、入出力シミュレート部21は、実行モジュールから
の入力や出力をホストOSにおける入力や出力などの動
作に置き換える対照テーブルを有している。入力として
はユーザからの入力である割り込みと、ターゲットプロ
グラムからの入力要求が考えられる。この手順では、こ
れらの入力や要求が発生すると(ステップ101)、対
照テーブルを検索し(ステップ102)、必要なシミュ
レーション動作の種別を判断する。ここでは、入力が割
り込みであった場合(ステップ103)、割り込みをシ
ミュレートする(ステップ104)。この割り込みのシ
ミュレートの際には、インタフェース部8に対して、所
定のデータや制御を渡すことによって、動作中のターゲ
ットプロセスの停止を依頼する。
おける入力のシミュレーションの手順を示す。すなわ
ち、入出力シミュレート部21は、実行モジュールから
の入力や出力をホストOSにおける入力や出力などの動
作に置き換える対照テーブルを有している。入力として
はユーザからの入力である割り込みと、ターゲットプロ
グラムからの入力要求が考えられる。この手順では、こ
れらの入力や要求が発生すると(ステップ101)、対
照テーブルを検索し(ステップ102)、必要なシミュ
レーション動作の種別を判断する。ここでは、入力が割
り込みであった場合(ステップ103)、割り込みをシ
ミュレートする(ステップ104)。この割り込みのシ
ミュレートの際には、インタフェース部8に対して、所
定のデータや制御を渡すことによって、動作中のターゲ
ットプロセスの停止を依頼する。
【0079】ステップ103において、情報が割り込み
でなかった場合、入力値を自動発生させるか否かを判断
する(ステップ105)。このとき、どの入力値を自動
発生させるかは、あらかじめユーザが選択しておけばよ
い。入力が自動発生させるべきものの場合は、入力値発
生部22が入力値を自動的に発生させるが(ステップ1
06)、自動発生させるべきものでない場合は、あらか
じめ設定された値を入力値とするか(ステップ107,
108)、ユーザが、キーボードやマウスなどの入力装
置5から、入力値を実際に入力する(ステップ10
9)。
でなかった場合、入力値を自動発生させるか否かを判断
する(ステップ105)。このとき、どの入力値を自動
発生させるかは、あらかじめユーザが選択しておけばよ
い。入力が自動発生させるべきものの場合は、入力値発
生部22が入力値を自動的に発生させるが(ステップ1
06)、自動発生させるべきものでない場合は、あらか
じめ設定された値を入力値とするか(ステップ107,
108)、ユーザが、キーボードやマウスなどの入力装
置5から、入力値を実際に入力する(ステップ10
9)。
【0080】なお、図示はしないが、入出力シミュレー
ト部21は、これらの手順が終了後、ターゲットプログ
ラムに制御を返却するなどの手法で、入力の終了をター
ゲットプログラムに通知する。なお、その後のターゲッ
トプログラムの具体的な動作は、どのように定めてもよ
い。また、ターゲットプログラムからの入力要求に先立
ってユーザが何らかのデータを入力した場合、入力デー
タを所定のバッファに格納しておき、プログラムからの
入力要求があり次第、バッファの内容を蓄積順にプログ
ラムに渡すようにしてもよい。
ト部21は、これらの手順が終了後、ターゲットプログ
ラムに制御を返却するなどの手法で、入力の終了をター
ゲットプログラムに通知する。なお、その後のターゲッ
トプログラムの具体的な動作は、どのように定めてもよ
い。また、ターゲットプログラムからの入力要求に先立
ってユーザが何らかのデータを入力した場合、入力デー
タを所定のバッファに格納しておき、プログラムからの
入力要求があり次第、バッファの内容を蓄積順にプログ
ラムに渡すようにしてもよい。
【0081】また、出力のシミュレートも入力と同様に
行うことができ、具体的には、対照テーブルを用いて出
力の種類に応じた出力動作を行い、その後、ターゲット
プログラムに動作の終了を通知すればよい。
行うことができ、具体的には、対照テーブルを用いて出
力の種類に応じた出力動作を行い、その後、ターゲット
プログラムに動作の終了を通知すればよい。
【0082】なお、入力値の自動発生の前提としては、
情報の入力に関する各装置の入出力仕様が必要である。
例えば、各種外部装置からの入力が、通信信号線、ハー
ドディスク制御線、キー入力線など各種信号線を介して
コンピュータの入出力ポートに送られる場合、CPUが
特定の外部装置の入力を得るには、対応する入出力ポー
トにアクセスする必要がある。このため、本実施例で
は、各入出力に対して、どのポートのどのビットにアク
セスするかという外部入力仕様を用いる。なお、外部装
置からの入力が特定のレジスタや特定のアドレスに割り
当てられている場合、入出力ポートに代わって、読み出
すべきレジスタやアドレスが指定される。
情報の入力に関する各装置の入出力仕様が必要である。
例えば、各種外部装置からの入力が、通信信号線、ハー
ドディスク制御線、キー入力線など各種信号線を介して
コンピュータの入出力ポートに送られる場合、CPUが
特定の外部装置の入力を得るには、対応する入出力ポー
トにアクセスする必要がある。このため、本実施例で
は、各入出力に対して、どのポートのどのビットにアク
セスするかという外部入力仕様を用いる。なお、外部装
置からの入力が特定のレジスタや特定のアドレスに割り
当てられている場合、入出力ポートに代わって、読み出
すべきレジスタやアドレスが指定される。
【0083】図11は、ユーザが入力する外部入力仕様
の一例を示し、この仕様は、例えば、ポート2は第2ビ
ット、第4ビットからの入力があることを意味する。な
お、外部入力仕様は、論理的に分かりやすい文字列の形
式で入力し、ポートの何ビット目などの内部情報に変換
して用いてもよい。このようにすれば、外部入力仕様の
入力が容易になる。図12は、文字列表現による仕様の
例で、この仕様では、ポート1はキャラクタの入力であ
り、ポート2はDTRという制御線からの入力とRTS
という制御線からの入力であり、ポート3は第3、6、
7ビットが外部装置からの入力である、ということを意
味している。このような文字列表現を内部情報に変換す
るには、図13に例示するような変換用情報を用いるこ
とができる。この例は、キャラクタが0〜7ビットから
の入力、DTRは第2ビットからの入力、RTSは第4
ビットからの入力であることを意味している。なお、外
部入力仕様の表現形式は自由であり、テキスト形式でも
バイナリ形式でもよく、また、ユーザが外部入力仕様を
直接入力してもよい。
の一例を示し、この仕様は、例えば、ポート2は第2ビ
ット、第4ビットからの入力があることを意味する。な
お、外部入力仕様は、論理的に分かりやすい文字列の形
式で入力し、ポートの何ビット目などの内部情報に変換
して用いてもよい。このようにすれば、外部入力仕様の
入力が容易になる。図12は、文字列表現による仕様の
例で、この仕様では、ポート1はキャラクタの入力であ
り、ポート2はDTRという制御線からの入力とRTS
という制御線からの入力であり、ポート3は第3、6、
7ビットが外部装置からの入力である、ということを意
味している。このような文字列表現を内部情報に変換す
るには、図13に例示するような変換用情報を用いるこ
とができる。この例は、キャラクタが0〜7ビットから
の入力、DTRは第2ビットからの入力、RTSは第4
ビットからの入力であることを意味している。なお、外
部入力仕様の表現形式は自由であり、テキスト形式でも
バイナリ形式でもよく、また、ユーザが外部入力仕様を
直接入力してもよい。
【0084】入力値の自動発生では、入出力シミュレー
ト部21が、生成すべき入力値のビット数を入力値発生
部22に通知し、入力値発生部22が、乱数など所定の
手法を用いて、このビット数のビットパターンを入力値
として発生する。この発生では、0以上1未満の乱数値
mに必要なビット数nとし、m×2n を越えない整数値
をnビットのビットパターンとして生成する。また、あ
らかじめ一連のビットパターンを格納しておき、所定ビ
ットずつ、又は、必要ビットずつ読み出してもよい。指
定ビット数のデータは1ビットごとに順次生成してもよ
く、また、ユーザが”10101101”のようにビッ
トパターンを入力してもよい。さらに、何等かの事象に
おける因果関係をシミュレートし、そのような事象から
入力されるであろう入力値を自動的に発生するようにし
てもよい。
ト部21が、生成すべき入力値のビット数を入力値発生
部22に通知し、入力値発生部22が、乱数など所定の
手法を用いて、このビット数のビットパターンを入力値
として発生する。この発生では、0以上1未満の乱数値
mに必要なビット数nとし、m×2n を越えない整数値
をnビットのビットパターンとして生成する。また、あ
らかじめ一連のビットパターンを格納しておき、所定ビ
ットずつ、又は、必要ビットずつ読み出してもよい。指
定ビット数のデータは1ビットごとに順次生成してもよ
く、また、ユーザが”10101101”のようにビッ
トパターンを入力してもよい。さらに、何等かの事象に
おける因果関係をシミュレートし、そのような事象から
入力されるであろう入力値を自動的に発生するようにし
てもよい。
【0085】なお、図14は、第2実施例の各部分にお
ける動作と通信の状態を示すタイミングチャート図であ
り、ターゲットプログラムのプロセスAが動作中に、入
出力シミュレート部11を通じて疑似的な割り込みが発
生した場合を示す。
ける動作と通信の状態を示すタイミングチャート図であ
り、ターゲットプログラムのプロセスAが動作中に、入
出力シミュレート部11を通じて疑似的な割り込みが発
生した場合を示す。
【0086】以上のように、第2実施例では、ターゲッ
トシステムにおける入出力動作をシミュレートする入出
力シミュレート部21が、ターゲットプログラムとは異
別のプロセスとして実現される。そして、入出力シミュ
レート部21が、ターゲットシステムにおける外部機器
を用いた入出力動作をシミュレートする。このため、入
出力動作のシミュレートをターゲットプログラムのソー
スコードを変更することによって行う必要がなくなる。
したがって、ホストマシンとターゲットシステムで同一
のソースコードを用いることが可能となり、クロス環境
におけるプログラム開発作業が効率化される。また、タ
ーゲットシステムにおける割込みのような入力について
も、ターゲットプログラム内部でシミュレートする必要
がなくなるので、他律性が維持される。
トシステムにおける入出力動作をシミュレートする入出
力シミュレート部21が、ターゲットプログラムとは異
別のプロセスとして実現される。そして、入出力シミュ
レート部21が、ターゲットシステムにおける外部機器
を用いた入出力動作をシミュレートする。このため、入
出力動作のシミュレートをターゲットプログラムのソー
スコードを変更することによって行う必要がなくなる。
したがって、ホストマシンとターゲットシステムで同一
のソースコードを用いることが可能となり、クロス環境
におけるプログラム開発作業が効率化される。また、タ
ーゲットシステムにおける割込みのような入力について
も、ターゲットプログラム内部でシミュレートする必要
がなくなるので、他律性が維持される。
【0087】また、第2実施例では、入出力ライブラリ
がターゲットプログラムによる入出力の要求を入出力シ
ミュレート部21へのプロセス間通信に置き換える。こ
のため、ターゲットシステムのソースコードがマルチプ
ロセス用に構成されていない場合でも、ホストマシン上
では、他のプロセスである入出力シミュレート部21を
用いて入出力を実現することができる。
がターゲットプログラムによる入出力の要求を入出力シ
ミュレート部21へのプロセス間通信に置き換える。こ
のため、ターゲットシステムのソースコードがマルチプ
ロセス用に構成されていない場合でも、ホストマシン上
では、他のプロセスである入出力シミュレート部21を
用いて入出力を実現することができる。
【0088】また、第2実施例では、入力値発生部22
がターゲットシステムにおける入力値をホストマシン上
で発生させるので、必ずしもユーザがターゲットシステ
ムにおける入力値を実際にホストマシンに入力すること
なく、効率的なシミュレーションを行うことができる。
なお、ここでいう入力には、画像入力や割込みなど、タ
ーゲットプログラムに対するあらゆる入力が含まれる。
がターゲットシステムにおける入力値をホストマシン上
で発生させるので、必ずしもユーザがターゲットシステ
ムにおける入力値を実際にホストマシンに入力すること
なく、効率的なシミュレーションを行うことができる。
なお、ここでいう入力には、画像入力や割込みなど、タ
ーゲットプログラムに対するあらゆる入力が含まれる。
【0089】また、第2実施例では、入力値発生部22
も、入出力シミュレート部21とは異別のプロセスとし
て実現されるので、入力値発生部22の内容を変更する
場合、入出力シミュレート部21については変更が不要
となり、プログラム開発が一層効率化される。
も、入出力シミュレート部21とは異別のプロセスとし
て実現されるので、入力値発生部22の内容を変更する
場合、入出力シミュレート部21については変更が不要
となり、プログラム開発が一層効率化される。
【0090】C.他の実施例 なお、本発明は上記実施例に限定されるものではなく、
次のような他の実施例をも包含するものである。例え
ば、上記各実施例では、ターゲットプログラムを高級言
語で記述しているが、ホストマシンとターゲットプログ
ラムが同一のCPUを用いていた場合、アセンブラのよ
うな低レベルの言語を含んでいてもかまわず、この場合
でも、実行速度の調節という本発明の利点を享受するこ
とができる。
次のような他の実施例をも包含するものである。例え
ば、上記各実施例では、ターゲットプログラムを高級言
語で記述しているが、ホストマシンとターゲットプログ
ラムが同一のCPUを用いていた場合、アセンブラのよ
うな低レベルの言語を含んでいてもかまわず、この場合
でも、実行速度の調節という本発明の利点を享受するこ
とができる。
【0091】また、上記各実施例における速度調節はパ
ラメータを前提としたタイマ割り込みの回数のカウント
によって実現しているが、本発明の速度調節手段は、ホ
ストマシンのタイマ割込み用のクロック自体を可変とす
ることによって実現してもよい。
ラメータを前提としたタイマ割り込みの回数のカウント
によって実現しているが、本発明の速度調節手段は、ホ
ストマシンのタイマ割込み用のクロック自体を可変とす
ることによって実現してもよい。
【0092】
【発明の効果】以上のように、本発明のプログラムシミ
ュレーション装置によれば、実行モジュールの全体につ
いて、高速な実行が可能となり、また、実行モジュール
の実行速度の調節が可能となる。このため、広範囲なシ
ミュレーションによって、デバッグ作業を効率化するこ
とができる。
ュレーション装置によれば、実行モジュールの全体につ
いて、高速な実行が可能となり、また、実行モジュール
の実行速度の調節が可能となる。このため、広範囲なシ
ミュレーションによって、デバッグ作業を効率化するこ
とができる。
【図1】本発明の第1実施例の構成を示す機能ブロック
図。
図。
【図2】本発明の第1実施例におけるインタフェース部
8の構成を示す機能ブロック図。
8の構成を示す機能ブロック図。
【図3】本発明の第1実施例におけるPCBのデータ構
造を示す概念図。
造を示す概念図。
【図4】本発明の第1実施例におけるPCBの連鎖状態
を示す概念図。
を示す概念図。
【図5】本発明の第1実施例におけるパラメータ変更画
面の表示例。
面の表示例。
【図6】本発明の第1実施例における実行用シグナルの
生成手順を示すフローチャート。
生成手順を示すフローチャート。
【図7】本発明の第1実施例におけるプロセス切り換え
の手順を示すフローチャート。
の手順を示すフローチャート。
【図8】本発明の第2実施例の構成を示す機能ブロック
図。
図。
【図9】本発明の第2実施例における入出力シミュレー
ト部による表示画面の例。
ト部による表示画面の例。
【図10】本発明の第2実施例における入力シミュレー
ションの手順を示すフローチャート。
ションの手順を示すフローチャート。
【図11】本発明の第2実施例においてユーザが入力す
る外部入力仕様の一例。
る外部入力仕様の一例。
【図12】本発明の第2実施例における文字列表現によ
る外部入力仕様の一例。
る外部入力仕様の一例。
【図13】本発明の第2実施例における外部入力仕様の
変換用情報の例。
変換用情報の例。
【図14】本発明の第2実施例の各部分における動作と
通信の状態を示すタイミングチャート図。
通信の状態を示すタイミングチャート図。
1:実行モジュール格納部 2:入出力ライブラリ格納部 3:リンク部 4:プログラム実行部 5:入力装置 6:出力装置 7:ホストOS部 8:インタフェース部 9:シグナル変換部 10:パラメータ変更部 11:スケジューリング部 12:PCB 13:レディキュー 14:ウエイトキュー 21:入出力シミュレート部 22:入力値発生部 27:スライダー S:手順の各ステップ
Claims (10)
- 【請求項1】 ターゲットシステムで実行されるターゲ
ットプログラムを開発するためのホストマシン上に構築
され、前記ターゲットプログラムを前記ホストマシン上
において実行するプログラムシミュレーション装置にお
いて、 前記ターゲットプログラムに相当する実行モジュールを
格納する実行モジュール格納手段と、 前記ターゲットシステムにおける入出力動作をホストマ
シン上でシミュレーションする入出力ライブラリを格納
するための入出力ライブラリ格納手段と、 前記実行モジュールに前記入出力ライブラリをリンクす
るリンク手段と、 リンクされた前記実行モジュールを実行する実行手段
と、 前記入出力ライブラリの制御によって前記入出力動作を
行う入出力手段と、 を有することを特徴とするプログラムシミュレーション
装置。 - 【請求項2】 前記実行の速度を調節する速度調節手段
を備えたことを特徴とする請求項1記載のプログラムシ
ミュレーション装置。 - 【請求項3】 前記ターゲットシステムのオペレーティ
ングシステムであるターゲットOSの動作をシミュレー
トするOSシミュレート手段を有することを特徴とする
請求項1記載のプログラムシミュレーション装置。 - 【請求項4】 ターゲットシステムで実行されるターゲ
ットプログラムの実行モジュールを格納する実行モジュ
ール格納手段と、 前記実行モジュールを実行する実行手段と、 前記実行の速度を調節する速度調節手段を備えたことを
特徴とするプログラムシミュレーション装置。 - 【請求項5】 前記速度調節手段は、 前記実行に用いる実行用タイミングシグナルを生成する
タイミングシグナル生成手段と、 前記実行用タイミングシグナルの間隔を変更するタイミ
ングシグナル調節手段とを有することを特徴とする請求
項2又は4記載のプログラムシミュレーション装置。 - 【請求項6】 前記ターゲットシステムのオペレーティ
ングシステムであるターゲットOSの動作をシミュレー
トするOSシミュレート手段を有し、 前記タイミングシグナル生成手段は、前記ホストマシン
において提供されるタイミングシグナルであるプリミテ
ィブタイミングシグナルに基づいて前記実行用タイミン
グシグナルを生成するように構成され、 前記OSシミュレート手段は、前記実行用タイミングシ
グナルに基づいてマルチプロセスにおけるプロセス切り
換えを行うように構成されたことを特徴とする請求項5
記載のプログラムシミュレーション装置。 - 【請求項7】 前記ターゲットプログラムを複数のプロ
セスの一部として実行するように構成され、 前記ターゲットシステムにおける入出力をシミュレート
する入出力シミュレート手段を備え、 前記入出力シミュレート手段は、前記ターゲットプログ
ラムに係る前記プロセスとは異別のプロセスとして実現
されることを特徴とする請求項1記載のプログラムシミ
ュレーション装置。 - 【請求項8】 前記入出力ライブラリは、前記ターゲッ
トプログラムによる入出力の要求を、前記入出力シミュ
レート手段へ当該入出力を要求するプロセス間通信に置
き換えるように構成されたことを特徴とする請求項7記
載のプログラムシミュレーション装置。 - 【請求項9】 前記ターゲットシステムにおける入力の
入力値を発生させる入力値発生手段を有することを特徴
とする請求項7記載のプログラムシミュレーション装
置。 - 【請求項10】 前記入力値発生手段は、前記入出力シ
ミュレート手段に係る前記プロセスとは異別のプロセス
として実現されることを特徴とする請求項9記載のプロ
グラムシミュレーション装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6036124A JPH07129434A (ja) | 1993-09-13 | 1994-03-07 | プログラムシミュレーション装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5-227401 | 1993-09-13 | ||
JP22740193 | 1993-09-13 | ||
JP6036124A JPH07129434A (ja) | 1993-09-13 | 1994-03-07 | プログラムシミュレーション装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07129434A true JPH07129434A (ja) | 1995-05-19 |
Family
ID=26375166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6036124A Pending JPH07129434A (ja) | 1993-09-13 | 1994-03-07 | プログラムシミュレーション装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07129434A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004038350A (ja) * | 2002-07-01 | 2004-02-05 | Hitachi Ltd | 計算機の加速試験方法 |
JP2014174592A (ja) * | 2013-03-06 | 2014-09-22 | Nec Corp | 情報処理装置、装置評価システム、装置評価方法およびコンピュータプログラム |
-
1994
- 1994-03-07 JP JP6036124A patent/JPH07129434A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004038350A (ja) * | 2002-07-01 | 2004-02-05 | Hitachi Ltd | 計算機の加速試験方法 |
JP2014174592A (ja) * | 2013-03-06 | 2014-09-22 | Nec Corp | 情報処理装置、装置評価システム、装置評価方法およびコンピュータプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hansen | The architecture of concurrent programs | |
US5771370A (en) | Method and apparatus for optimizing hardware and software co-simulation | |
US5768567A (en) | Optimizing hardware and software co-simulator | |
US5737622A (en) | Method and apparatus for more efficient function synchronization in a data flow program | |
JPH0797303B2 (ja) | コンピュータシステム及びそれを動作させる方法 | |
CN101231589B (zh) | 用于原位开发嵌入式软件的系统和方法 | |
US11768757B2 (en) | Kernel debugging system and method | |
US11397608B2 (en) | Multi-dimensional spreadsheet system enabling stack based programming using a virtual machine | |
Narayan et al. | Translating system specifications to VHDL | |
US6263493B1 (en) | Method and system for controlling the generation of program statements | |
JPH11505645A (ja) | プロセッサに基づくデジタルシステムをシミュレートするための装置および方法 | |
JP2007310565A (ja) | システムlsi検証装置及びシステムlsi検証プログラム | |
US8886512B2 (en) | Simulation apparatus, computer-readable recording medium, and method | |
JPH07129434A (ja) | プログラムシミュレーション装置 | |
Smith et al. | Faster architectural simulation through parallelism | |
Rose et al. | N. mPc: a retrospective | |
JP2803090B2 (ja) | Mpuシミュレーション方法及びmpuシミュレータ | |
Nelson et al. | The design and development of a family of personal computers for engineers and scientists | |
Kahrs et al. | Tymshare’s Changes to the Project Genie SDS-940 Operating System: A Historical Review | |
JP3137094B2 (ja) | シミュレーション方法、シミュレーション装置及びその記録媒体 | |
JP2001256072A (ja) | システムエミュレータ | |
Goldberg et al. | The PRIM System: An alternative architecture for emulator development and use | |
Matta | A Zenith Z-100 Emulator | |
Frailey | Computer architecture | |
May | An extensible, retargetable debugger for parallel programs |