(57)【要約】【課題】複数マイコンで構成されたシステムをシミュレートする際、相手となるマイコンの仮想ターゲットを作成するための導入コストと導入工数がかかり、かつ、仮想ターゲットの動作タイミングと同期を取ることが難しかった。【解決手段】シミュレーション対象の各マイコンのＲＯＭとＲＡＭが記憶されたメモリ１１，１２と、レジスタ内容が記憶されたメモリ４１，４２をターゲットＭＰＸ２８によって切り換え、同一の命令セットシミュレータＩＳ１上で実行することにより、複数マイコンで構成されたシステムについて同一のシミュレーション装置内でシミュレーションを行う。【選択図】図１
2010224865.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーション対象となるソフトウェアがコンパイルされた命令コードを記憶するＲＯＭ領域およびシミュレーション実行中に記憶するＲＡＭ領域を、シミュレーション対象となるターゲットの数だけそれぞれ独立に具備する第１のメモリと、
実行中のプログラムカウンタ、スタックポインタ、演算レジスタおよびプロセッサステータスワード（ＰＳＷ）を有するレジスタ領域を、シミュレーション対象となるターゲットの数だけそれぞれ独立に具備する第２のメモリと、
前記第１のメモリに記憶された命令コードから共通で参照できる共有ＲＡＭ領域である第３のメモリと、
第１のマイクロコンピュータの命令コードの処理中または処理の終了後に、第２のマイクロコンピュータの命令コードに処理を移すために前記第１のメモリに記憶されたターゲットの内容を切り換える第１の切り換え手段と、
前記第１の切り換え手段によってターゲットに対応する前記第１のメモリに配置したＲＯＭおよびＲＡＭと、前記第２のメモリに格納されたレジスタとを切り換える第２の切り換え手段と、
命令セットシミュレータとを具備し、
前記命令セットシミュレータは、前記第２の切り換え手段によって選ばれた前記第１のメモリに配置したＲＯＭおよびＲＡＭの内容と、前記第２のメモリに格納されたレジスタの内容を入力し、シミュレーションを実行するように構成されている複数マイコンシステムのシミュレーション装置。
【請求項２】
前記シミュレーション対象となるソフトウェアがコンパイルされた命令コードを解読するために、シミュレーション対象となるターゲットの数だけそれぞれ独立に命令セットを具備する第４のメモリと、
前記第１の切り換え手段によって切り換えられたターゲットに対応するように、前記第４のメモリに格納された命令セットを切り換える第３の切り換え手段とをさらに具備し、
前記命令セットシミュレータは、前記第３の切り換え手段によって選ばれた前記第４のメモリに具備する命令セットを入力するように構成されている請求項１に記載のシミュレーション装置。
【請求項３】
通信処理によって、通信相手となるマイクロコンピュータへ転送する前記第１のメモリに記憶されたデータを前記第３のメモリの共有ＲＡＭ領域に転送記憶する第１の転送手段と、
前記通信相手となるマイクロコンピュータのシミュレーション実行時に、前記第３のメモリの共有ＲＡＭ領域に記憶しておいた前記転送データを読み出す第２の転送手段とをさらに具備し、
前記命令セットシミュレータは、前記第１および第２の転送手段を用いてデータ通信をシミュレートするように構成されている請求項１または請求項２に記載のシミュレーション装置。
【請求項４】
前記第１のメモリのＲＯＭに記憶された各マイクロコンピュータのソフトウェアは、ループ構造のポーリング型の形態で構成され、逐次処理される請求項１から請求項３までのいずれかに記載のシミュレーション装置。
【請求項５】
前記第１のメモリのＲＯＭに記憶された各マイクロコンピュータのソフトウェアは、リアルタイムＯＳによるイベントドリブン型の形態で構成され、処理される請求項１から請求項３までのいずれかに記載のシミュレーション装置。
【請求項６】
前記第１のメモリのＲＯＭに記憶されたマスターとなるマイクロコンピュータのソフトウェアは、ループ構造のポーリング型の形態で構成され、処理される構成であって、前記命令セットシミュレータの割り込みイベントによって、一時的に、前記マスターとなるマイクロコンピュータのソフトウェアを停止し、前記割り込みイベント内でスレーブとなるマイクロコンピュータのソフトウェアを実行する請求項１から請求項３までのいずれかに記載のシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマイクロコンピュータ（マイコン）で構成されたシステムにおいてソフトウェアをシミュレートする命令セットシミュレータを有するシミュレーション装置にかかわり、特には、仮想ターゲットの導入コストと導入工数を抑制し、シミュレーションの動作タイミングの自由度を増し、一般のパーソナルコンピュータでも対応可能なようにシミュレーション負荷を軽減するための技術に関する。
【背景技術】
【０００２】
従来、インサーキットシミュレータによってマイコン内部のソフトウェアを検証する場合、ターゲットとなる実機が必要であった。しかし、実機（ハードウェア）のパターン設計と並行してソフトウェア開発がなされるとき、実機ターゲットが用意できない場合がある。この場合、実機ターゲットがなくても、マイコン内部のソフトウェアを論理検証するためにシミュレーションデバッグを行う必要がある。シミュレーションデバッグには、マイコンの代わりとなるものが必要となる。実機ターゲットに代わるものが仮想ターゲットである。
【０００３】
インサーキットシミュレータの場合は、実機ターゲットにマイコンの代わりにプローブを装着し、パーソナルコンピュータ（パソコン）内部のデバッガ上でソフトウェアを実行して、プローブを介して実機ターゲットに信号を出力したり、信号を入力したりする。
【０００４】
一方、命令セットシミュレータの場合は、ＰＣ（パソコン）内部のデバッガ上でソフトウェアを実行するところまでは同じであるが、出力先については、デバッガの機能として用意されたパネルツールのようなターミナルが仮想ターゲットになる。
【０００５】
図６に従来の技術における命令セットシミュレータＩＳ２の構成を示す。
【０００６】
スタックポインタ（ＳＰ）１は、スタック領域のトップアドレスを示すレジスタである。アドレスレジスタ２はアドレス計算の演算用のレジスタであり、データレジスタ３はデータ計算の演算用のレジスタである。プロセッサステータスワード（ＰＳＷ）４は、演算結果のフラグ、割り込みマスクレベル、割り込み許可フラグなどプロセッサの状態を記憶するレジスタである。プログラムカウンタ（ＰＣ）５は、命令キュー２１に取り込む命令の番地を生成する。通常はシーケンサ指示によりインクリメントされるが、分岐命令や割り込み受付の際は、分岐先アドレスまたはＡＬＵ（算術論理回路）６の演算結果がセットされる。ＡＬＵ６は、データの算術演算、論理演算、シフト演算あるいはレジスタ相対間接、オペランドアドレス計算を行う。処理結果はプログラムアドレス７、オペランドアドレス８に格納され、ＲＡＭ（ランダムアクセスメモリ）９およびＲＯＭ（リードオンリーメモリ）１０にアクセスされる。命令キュー２１は、ＲＯＭ１０に配置された命令コードをプリフェッチし、命令デコーダ２３へ転送する。命令デコーダ２３は、命令セット２４に従って命令キュー２１の内容を解読し、その命令に必要な制御信号を順次生成し、ターミナル２６上のパネルツールへ出力を行ったり、シミュレータ周辺機能２７の実行要求を行ったりする。２５はクロック発生部である。
【０００７】
命令セットシミュレータＩＳ２は、マイコンの実際のチップ動作と同じ構成をＰＣ（パソコン）内部に仮想的に実現し、実際に命令コードを解読して処理を行う。よって、実際のマイコンの挙動と同様のシミュレーションが実現できる。
【０００８】
図７にターミナル２６として使用するパネルツールの例を示す。
【０００９】
例えば、プッシュキー動作をパネルツールで実現する場合の方法について説明する。キーパネル５１に対してマウスをクリックしたとき、マウスを押した動作をＰＣ（パソコン）内部のＯＳ（Operating System）が認識し、図６のシミュレータ周辺機能２７として備わっているマウス操作イベント割り込みを発生させ、割り込み制御部２２によって実行中の命令コードを一時停止し、マウス操作イベント割り込み処理で受け付けたキーに対応するコードをＲＡＭ９に書き込む。マウス操作イベント割り込み終了後、一時停止していたプログラムの処理を再開し、ＲＡＭ９に書き込まれたキーコードを取得し、キーイベント処理に受け渡す。
【００１０】
また、プログラム処理によって生成された表示パターンを表示管パネル５２に出力する。表示管パネル５２の各表示素子には表示／非表示のプロパティが用意されており、シミュレーション関数によってプロパティの変更をプログラム上から操作することができる。表示パターンに対応する各セグメントのオン／オフ情報と、表示素子のプロパティをシミュレーション関数によって関連づけすることにより、表示管の仮想ターゲットを実現することができる。出力信号パネル５３も同様に、出力信号のオン／オフ情報と各素子のプロパティと関連づけして、仮想ターゲットを実現する。
【００１１】
命令セットシミュレータＩＳ２はＰＣ（パソコン）内部のアプリケーションとして存在し、動作するため、その実行速度はＰＣのスペックに依存する。従って、非常に高速な応答が要求される処理のシミュレーションにはハイスペックなＰＣが必要になる。図７のようなパネルを制御するシステムは、商用周波数５０Ｈｚ／６０Ｈｚ程度であれば、市販のＰＣ（パソコン）で十分に応答できる。このため、システムの中で、処理サイクルが比較的遅いプログラムに特定してシミュレーションを行い、残りの高速処理が必要となるプログラムについては実機ターゲットにより評価することとすれば、ハイスペックな環境を要することなく手軽にシミュレーションデバッグを実現することができる。
【００１２】
しかし、他のマイコンのように仮想ターゲットが意思を持ち状態に合わせて応答するような内容の変わるものであれば、パネルツールのような単純なアプリケーションでは対応できない。この場合、他のシミュレーションソフトを用いて仮想ターゲットを用意し、命令セットシミュレータと連動させてシミュレーションを行う。
【００１３】
図８は、他のシミュレーションソフトを連動させた場合の従来技術を示す（例えば特許文献１参照）。
【００１４】
特許文献１の提案は、互いに関連して動作するソフトウェアおよびハードウェアのシミュレーションの組合せにおいて、ソフトウェアのデバッグ機能６１とシミュレーションモデル６３をＨＤＬ（Hardware Description Language）シミュレータ６２を介して容易にリンクさせることができるシミュレーション方法について述べている。この場合、仮想ターゲットはハードウェアのシミュレーションモデル６３ということになる。
【００１５】
図９は、ワークステーション上で複数のシミュレータを独立に動作させて、プロセッサ単体のシミュレーションとプロセッサ間の通信処理のシミュレーションとを同時に行うマルチシミュレーション装置の従来技術を示す（例えば特許文献２参照）。
【００１６】
特許文献２の提案は、各シミュレータ内で、それぞれのターゲットシステムに内蔵されているプログラムがシミュレーション実行され、処理実行中にプロセッサ間通信処理部分を検出すると、詳細な結合内容を示すメッセージを発行し、メッセージ通信によって通信相手のシミュレータへ伝送される。これにより、複数のターゲットシステムで構成されるシステムにおいてもシミュレーションを実行することが可能となる。
【特許文献１】特開２００２−３６６６０２号公報
【特許文献２】特開平７−２８１９２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
仮想ターゲットを他のシミュレータで実現しようとする場合、命令セットシミュレータを備えたソフトウェア開発環境において、他のシミュレータを使いこなす技術が必要となる。他のシミュレータは、ソフトウェア開発環境と連動できる機能を有する必要があり、また、他のシミュレータを導入するコストと、他のシミュレータで仮想ターゲットを作成する導入工数が必要になってくる。実際は、この導入コストがネックになり、シミュレーションデバッグ手法が実際の開発に浸透しない要因となっている。
【００１８】
さらに、異なるシミュレータを連動させる場合に、シミュレーションの動作タイミングを同一にする必要がある。しかし、ＰＣ（パソコン）上で動作するシミュレータは、デバッガのＧＵＩ（Graphical User Interface）機能やＣＰＵ（Central Processing Unit）の性能によって実際の動作タイミングが異なるため、シミュレーションのタイミングを一致させることは非常に難しい。
【００１９】
また、特許文献２の構成によれば、複数のシミュレータを並列で起動させる必要があり、高性能のコンピュータのスペックが必要となる。
【００２０】
本発明は、このような事情に鑑みて創作したものであり、複数のマイコンのソフトウェアをシミュレートする方法において、仮想ターゲットの導入コストと導入工数を抑制し、かつ、シミュレーションの動作タイミングを一致させ、一般のＰＣ（パソコン）上でもシミュレーションできる負荷を考慮したシミュレータの構成を提供することを目的としている。
【課題を解決するための手段】
【００２１】
（１）本発明による複数マイコンシステムのシミュレーション装置は、
シミュレーション対象となるソフトウェアがコンパイルされた命令コードを記憶するＲＯＭ領域およびシミュレーション実行中に記憶するＲＡＭ領域を、シミュレーション対象となるターゲットの数だけそれぞれ独立に具備する第１のメモリと、
実行中のプログラムカウンタ、スタックポインタ、演算レジスタおよびプロセッサステータスワード（ＰＳＷ）を有するレジスタ領域を、シミュレーション対象となるターゲットの数だけそれぞれ独立に具備する第２のメモリと、
前記第１のメモリに記憶された命令コードから共通で参照できる共有ＲＡＭ領域である第３のメモリと、
第１のマイコンの命令コードの処理中または処理の終了後に、第２のマイコンの命令コードに処理を移すために前記第１のメモリに記憶されたターゲットの内容を切り換える第１の切り換え手段と、
前記第１の切り換え手段によってターゲットに対応する前記第１のメモリに配置したＲＯＭおよびＲＡＭと、前記第２のメモリに格納されたレジスタとを切り換える第２の切り換え手段と、
命令セットシミュレータとを具備し、
前記命令セットシミュレータは、前記第２の切り換え手段によって選ばれた前記第１のメモリに配置したＲＯＭおよびＲＡＭの内容と、前記第２のメモリに格納されたレジスタの内容を入力し、シミュレーションを実行するように構成されている。
【００２２】
この構成においては、第１および第２のメモリに複数のターゲットの情報を持ち、第１および第２の切り換え手段でターゲットの情報を順次に命令セットシミュレータに移すことにより、複数のマイコンのシミュレーションを１つの命令セットシミュレータで実行することが可能となる。
【００２３】
（２）上記（１）の構成のシミュレーション装置において、
前記シミュレーション対象となるソフトウェアがコンパイルされた命令コードを解読するために、シミュレーション対象となるターゲットの数だけそれぞれ独立に命令セットを具備する第４のメモリと、
前記第１の切り換え手段によって切り換えられたターゲットに対応するように、前記第４のメモリに格納された命令セットを切り換える第３の切り換え手段とをさらに具備し、
前記命令セットシミュレータは、前記第３の切り換え手段によって選ばれた前記第４のメモリに具備する命令セットを入力するように構成されているという態様がある。
【００２４】
この構成によれば、複数ターゲットが異なる命令セットでビルドされている場合において、ターゲットを切り換える際に、解読する命令セットを切り換え、異なる命令セットでビルドされた命令コードで構成されたターゲットのシミュレーションを実行することが可能となる。
【００２５】
（３）また上記（１），（２）の構成のシミュレーション装置において、
通信処理によって、通信相手となるマイコンへ転送する前記第１のメモリに記憶されたデータを前記第３のメモリの共有ＲＡＭ領域に転送記憶する第１の転送手段と、
前記通信相手となるマイコンのシミュレーション実行時に、前記第３のメモリの共有ＲＡＭ領域に記憶しておいた前記転送データを読み出す第２の転送手段とをさらに具備し、
前記命令セットシミュレータは、前記第１および第２の転送手段を用いてデータ通信をシミュレートするように構成されているという態様がある。
【００２６】
この構成によれば、メモリに複数のターゲットの情報を持ち、かつこれら複数のターゲットが通信し合ってシステムを構築する構成において、通信モジュールの仮想ターゲットとしてシミュレータに組み込むことが可能となる。
【００２７】
（４）また上記（１）〜（３）の構成のシミュレーション装置において、前記第１のメモリのＲＯＭに記憶された各マイコンのソフトウェアは、ループ構造のポーリング型の形態で構成され、逐次処理されるという態様がある。
【００２８】
この構成によれば、複数のターゲットが時系列で順次処理される構成である場合のシミュレーション処理を構築することが可能となる。
【００２９】
（５）また上記（１）〜（３）の構成のシミュレーション装置において、前記第１のメモリのＲＯＭに記憶された各マイコンのソフトウェアは、リアルタイムＯＳによるイベントドリブン型の形態で構成され、処理されるという態様がある。
【００３０】
この構成によれば、複数のターゲットが非同期で処理される構成である場合のシミュレーション処理を構築することが可能となる。また、複数ターゲットが順次処理される場合でもシミュレーション処理を構築することができ、ターゲットの処理構成に依存せずに、シミュレーション処理を構築できる効果を有する。
【００３１】
（６）また上記（１）〜（３）の構成のシミュレーション装置において、前記第１のメモリのＲＯＭに記憶されたマスターとなるマイコンのソフトウェアは、ループ構造のポーリング型の形態で構成され、処理される構成であって、前記命令セットシミュレータの割り込みイベントによって、一時的に、前記マスターとなるマイコンのソフトウェアを停止し、前記割り込みイベント内でスレーブとなるマイコンのソフトウェアを実行するという態様がある。
【００３２】
この構成によれば、マスターとなるターゲットに対し、その他のスレーブとなるターゲットが、マスターとなるターゲットより要求されるタイミングに同期して任意に実行される構成である場合の、シミュレーション処理を構築することが可能となる。
【発明の効果】
【００３３】
本発明によれば、メモリに複数のターゲットの情報を持ち、ターゲットの切り換え手段でターゲットの情報を順次に命令セットシミュレータに移すことにより、同一の命令セットシミュレータ上で複数のマイコンの命令コードを実行することができ、シミュレーションのための入力情報および出力結果のインタフェースとなるデバッガも同一のアプリケーション上で実現できるという効果を奏する。
【発明を実施するための最良の形態】
【００３４】
以下、本発明にかかわる複数マイコンシステムのシミュレーション装置の実施の形態を図面を用いて詳細に説明する。なお、説明に際しては、便宜上、図２に示すようなシステムを例とする。操作制御マイコンμ１をマスターとし、本体制御マイコンμ２をスレーブとし、シリアル通信手段５０で関連を取りながら動作を行う電子レンジシステムのシミュレーションを想定する。図２の場合、操作制御マイコンμ１をターゲットＡ、本体制御マイコンμ２をターゲットＢとする。本実施の形態では、操作制御マイコンμ１のプロセッサと本体制御マイコンμ２のプロセッサが同一である場合の、同一命令セットシミュレータ内で協調シミュレーションを実現する手段を説明する。
【００３５】
図１は本発明の実施の形態におけるシミュレーション装置の構成を示すブロック図である。
【００３６】
命令セットシミュレータＩＳ１は、従来技術の場合の命令セットシミュレータＩＳ２の構成に加えて、ターゲットＭＰＸ（マルチプレクサ）２８、ターゲットベースアドレス２９、ターゲットリクエスト信号３０および命令セットＭＰＸ３１を備えた構成とされている。
【００３７】
また、第１のメモリＭ１として、ターゲットＡのメモリ１１およびターゲットＢのメモリ１２が設けられている。これらのターゲットメモリ１１，１２はそれぞれＲＡＭ９とＲＯＭ１０で構成されている。また、第２のメモリＭ２として、ターゲットＡのレジスタメモリ４１およびターゲットＢのレジスタメモリ４２が設けられている。第３のメモリＭ３は共有ＲＡＭとして構成され、第４のメモリＭ４は命令セットデータの格納領域として構成されている。
【００３８】
ターゲットＭＰＸ２８は、シミュレーション処理によりターゲットベースアドレス２９およびターゲットリクエスト信号３０を生成する装置である。ターゲットベースアドレス２９は、第１のメモリＭ１上に配置されるターゲットＡのメモリ１１およびターゲットＢのメモリ１２の基準アドレスである。ターゲットリクエスト信号３０は、第２のメモリＭ２におけるターゲットＡのレジスタメモリ４１とターゲットＢのレジスタメモリ４２をターゲット別に切り換える。ターゲットＭＰＸ２８が第１および第２の切り換え手段を構成しており、ターゲットＡの操作制御マイコンμ１の命令コードの処理中または処理の終了後に、ターゲットＢの本体制御マイコンμ２の命令コードに処理を移すために第１のメモリＭ１に記憶されたターゲットの内容を切り換える。
【００３９】
スタックポインタ（ＳＰ）１は、スタック領域のトップアドレスを示すレジスタである。アドレスレジスタ２はアドレス計算の演算用のレジスタであり、データレジスタ３はデータ計算の演算用のレジスタである。プロセッサステータスワード（ＰＳＷ）４は、演算結果のフラグ、割り込みマスクレベル、割り込み許可フラグなどプロセッサの状態を記憶するレジスタである。プログラムカウンタ（ＰＣ）５は、命令キュー２１に取り込む命令の番地を生成する（キュー：ＦＩＦＯ）。通常はシーケンサ指示によりインクリメントされるが、分岐命令や割り込み受付の際は、分岐先アドレスまたはＡＬＵ６の演算結果がセットされる。
【００４０】
スタックポインタ１、アドレスレジスタ２、データレジスタ３、プロセッサステータスワード（ＰＳＷ）４およびプログラムカウンタ（ＰＣ）５は、シミュレーション処理により、ターゲットＡのレジスタメモリ４１、ターゲットＢのレジスタメモリ４２の内容から読み出し、書き込みを行うことができる。
【００４１】
ＡＬＵ６で計算されるアドレスは、ターゲットベースアドレス２９に格納されているアドレスを基準として計算される。
【００４２】
シミュレーション処理の中でターゲットＭＰＸ２８を切り換えする要求をかけることにより、レジスタ内容、メモリを置き換え、これまで処理していたターゲットのシミュレーションを停止し、要求先のターゲットのシミュレーションを再開する。この動作を繰り返すことにより、複数システムのシミュレーション動作を可能とする。
【００４３】
かかる構成によれば、複数ターゲットを有する命令コードをただ１つの命令セットシミュレータＩＳ１で実行することができる。そのため、複数のシミュレータを同時に立ち上げて、かつ、動作を協調させて実行する必要はなく、シミュレーション環境はハイスペックなコンピュータを必要としないですむ。また、任意にターゲットのシミュレーション実行タイミングを制御できるため、シミュレーションの実行プロセスを容易に組み立てることができる。
【００４４】
各ターゲットの命令コードを解読するための命令セットが命令セットデータとして第４のメモリＭ４に配置され、命令セットＭＰＸ３１によって切り換えられて、命令デコーダ２３に入力される。命令セットＭＰＸ３１は、ターゲットＭＰＸ２８より生成されるターゲットリクエスト信号３０に応じて切り換えられる。
【００４５】
かかる構成によれば、シミュレーション対象のターゲットの命令コードが、異なる命令セットでビルドされた状態であっても、シミュレーションを実行することが可能となる。
【００４６】
なお、ターゲットの命令セットが同じ場合は、命令セットを切り換える必要はなく、最初から命令デコーダ２３に命令セットを記録しておけばよい。この場合は、命令セットＭＰＸ３１および命令セットデータの第４のメモリＭ４は不要である。
【００４７】
（１）ここで、シミュレーションの実行プロセスを、ループ構造のポーリング型の形態とする。ポーリング（polling）は、ホスト（マスター）が複数の端末に対してデータ伝送の送信要求の有無を順番に確認し、端末側が送信要求を出せばデータ伝送を行い、データ伝送の終了後あるいは送信要求がなければ、次の端末に送信要求を確認するという制御方式である。各々の端末が独自にホストと接続しようとすれば、回線が混乱してしまうが、これを避けるものである。
【００４８】
図３は、ループ構造のポーリング型の形態によるシミュレーションの実行プロセスのフロー図を示したものである。操作制御マイコンμ１の命令コードを実行の後、続けて本体制御マイコンμ２の命令コードを実行するループ構造のポーリング型の形態で構成されている。操作制御マイコンμ１と本体制御マイコンμ２は、シリアル通信手段５０によって相互で通信しながらシステムを構築している。実際に通信することはできないので、ここでは、マスター側の操作制御マイコンμ１の命令コードで生成された通信データを一時的に第３のメモリ（共有ＲＡＭ）Ｍ３に退避させた後で、スレーブ側の本体制御マイコンμ２の命令コードで受信処理を実行する際、退避しておいた通信データを第３のメモリ（共有ＲＡＭ）Ｍ３より取得し、シリアル通信の手続きに見立てる。
【００４９】
かかる構成によれば、複数のターゲットが逐次処理されている構成において、その実行プロセスをシミュレートすることが可能となる。
【００５０】
（２）シミュレーション実行手段は、リアルタイムＯＳを用いてイベントドリブン型の形態で実行してもよい。リアルタイムＯＳは、組み込みシステムで用いられるＯＳで、一般的なＰＣ（パソコン）やワークステーション向けのＯＳとは異なり、応答やタスク切り替えが一定時間内に収まることを最重視して設計されている。イベントドリブン（event driven）は、発生したイベントに対しての処理を記述することでアプリケーション全体が記述されるソフトウェアの形態をいう。ユーザー側からの動作のすべてはＯＳを経由してイベントというかたちで各ソフトウェアに渡される。Windows（登録商標）やMacintosh（登録商標）はイベントドリブンなＯＳである。
【００５１】
図４は、リアルタイムＯＳを用いたイベントドリブン型の形態によるシミュレーションの実行プロセスのフロー図を示したものである。操作制御マイコンμ１の命令コード、本体制御マイコンμ２の命令コードおよびシミュレーションプログラムの命令コードは、タスク化され、リアルタイムＯＳによって管理、実行される。
【００５２】
かかる構成によれば、複数のターゲットが非同期に処理されている構成において、その実行プロセスをシミュレートすることが可能となる。
【００５３】
（３）さらに、シミュレーション実行手段は、命令セットシミュレータの割り込みイベントを用いて実行してもよい。
【００５４】
図５は、命令セットシミュレータの割り込みイベント（例えば、定期的なタイマ割り込みイベント）を使用したシミュレーション実行手段のフロー図を示したものである。マスター側となる操作制御マイコンμ１の命令コードがループ構造の構成で順次処理されている。そして、命令セットシミュレータの割り込みイベントが発生すると、操作制御マイコンμ１を一時的に止め、スレーブ側の本体制御マイコンμ２の命令コードの処理を行う。
【００５５】
かかる構成によれば、複数のターゲットが非同期に処理されている構成において、マスターとなるターゲットの処理から要求されるタイミングによってスレーブとなるターゲットが処理される場合に、その実行プロセスをシミュレートすることが可能となる。
【産業上の利用可能性】
【００５６】
シミュレーションデバッグが浸透しなかった背景として、シミュレーション装置のライセンスや開発環境にコストがかかり、また、仮想ターゲットの製作に要する工数が必要となり、ソフトウェア検証までに必要な導入コストがネックになっていたことが挙げられる。
【００５７】
本発明のシミュレーション装置は、複数ターゲットのソフトウェアデバッグを、ただ１つの命令セットシミュレータの導入コストと、最小の仮想ターゲットの導入コストで実現できるため、容易に実開発にシミュレーションデバッグを組み込むことができる。
【００５８】
また、複数ターゲットのソフトウェアを同時に協調シミュレートすることができるため、特に、複数ターゲットで制御されるシステムにおいて、各ターゲットの協調動作に関する動作確認を行う上で有用である。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施の形態におけるシミュレーション装置の構成を示すブロック図
【図２】本発明の実施の形態における複数マイコンで構成されるシステムの一例を示すシステムブロック図
【図３】本発明の実施の形態におけるループ構造によるポーリング型のシミュレーション実行プロセスの処理フロー図
【図４】本発明の実施の形態におけるリアルタイムＯＳを用いたイベントドリブン型のシミュレーション実行プロセスの処理フロー図
【図５】本発明の実施の形態における命令セットシミュレータのイベント割り込みに応答してシミュレーションを行うシミュレーション実行プロセスの処理フロー図
【図６】従来の技術におけるシミュレーション装置の構成を示すブロック図
【図７】従来の技術におけるデバッガのパネルツールの例示図
【図８】特許文献１に記載のシミュレーション装置の構成を示すブロック図
【図９】特許文献２に記載のシミュレーション装置の構成を示すブロック図
【符号の説明】
【００６０】
ＩＳ１  命令セットシミュレータ（本発明実施の形態）
ＩＳ２  命令セットシミュレータ（従来技術）
Ｍ１  第１のメモリ
Ｍ２  第２のメモリ
Ｍ３  第３のメモリ（共有ＲＡＭ）
Ｍ４  第４のメモリ（命令セットデータ）
１  スタックポインタ（ＳＰ）
２  アドレスレジスタ
３  データレジスタ
４  プロセッサステータスワード（ＰＳＷ）
５  プログラムカウンタ
６  ＡＬＵ
７  プログラムアドレス
８  オペランドアドレス
９  ＲＡＭ
１０  ＲＯＭ
１１  ターゲットＡのＲＡＭ、ＲＯＭメモリ（第１のメモリ）
１２  ターゲットＢのＲＡＭ、ＲＯＭメモリ（第１のメモリ）
２１  命令キュー
２２  割り込み制御部
２３  命令デコーダ
２４  命令セット
２５  クロック発生部
２６  ターミナル（パネルツール）
２７  シミュレータ周辺機能
２８  ターゲットＭＰＸ（第１および第２の切り換え手段）
２９  ターゲットベースアドレス
３０  ターゲットリクエスト信号
３１  命令セットＭＰＸ（第３の切り換え手段）
４１  ターゲットＡのレジスタメモリ（第２のメモリ）
４２  ターゲットＢのレジスタメモリ（第２のメモリ）
５１  キーパネル
５２  表示管パネル
５３  出力信号パネル
６１  ソフトウェアシミュレータ
６２  ＨＤＬシミュレータ
６３  シミュレーションモデル
【図１】
2010224865.tif 000003
【図２】
2010224865.tif 000004
【図３】
2010224865.tif 000005
【図４】
2010224865.tif 000006
【図５】
2010224865.tif 000007
【図６】
2010224865.tif 000008
【図７】
2010224865.tif 000009
【図８】
2010224865.tif 000010
【図９】
2010224865.tif 000011