(57)【要約】【課題】  システムのリアルタイム性を正確に評価することができるプロセッサシミュレータを提供する。【解決手段】  プロセッサ１１０は、プロセッサ１１０の状態を割込許可状態および割込禁止状態のいずれかに遷移させるプログラムコントローラ２０と、クロックに基づいてカウント動作を行う割込遅延カウンタ２２とを備える。プログラムコントローラ２０は、プロセッサ１１０の状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの間、割込遅延カウンタ２２によるカウントを行い、割込遅延カウンタ２２のカウント値を含むログ情報を出力する。【選択図】  図１
2005100017.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの割込遅延をシミュレートする装置であって、
前記プロセッサの状態を割込許可状態および割込禁止状態のいずれかに遷移させるプログラム制御手段と、クロックに基づいてカウント動作を行う割込遅延カウンタとを備え、
前記プログラム制御手段は、前記プロセッサの状態が前記割込禁止状態に遷移してから前記割込許可状態に遷移するまでの間、前記割込遅延カウンタによるカウントを行い、前記割込遅延カウンタのカウント値を含むログ情報を出力するようになっていることを特徴とするプロセッサシミュレータ。
【請求項２】
請求項１において、
前記プログラム制御手段は、前記割込禁止状態への遷移時および前記割込許可状態への遷移時にプログラムカウンタのカウント値をそれぞれ取得し、取得したカウント値および前記割込遅延カウンタのカウント値を含むログ情報を出力するようになっていることを特徴とするプロセッサシミュレータ。
【請求項３】
請求項１および２のいずれかにおいて、
前記プロセッサは、パイプライン処理を行う演算器を含み、
前記プログラム制御手段は、前記プロセッサが前記パイプライン処理を開始するときは、前記プロセッサの状態を前記割込禁止状態に遷移させるようになっていることを特徴とするプロセッサシミュレータ。
【請求項４】
プロセッサの割込遅延をシミュレートする装置であって、
所定周期で割込信号を発生させる割込発生手段と、前記割込信号に応じて前記プロセッサの割込を制御する割込制御手段と、クロックに基づいてカウント動作を行う割込遅延カウンタとを備え、
前記割込発生手段は、前記プロセッサからの割込禁止命令を入力したときは、前記割込信号の発生を一時的に停止させるようになっており、
前記所定周期で前記割込信号が発生している間、前記割込遅延カウンタによるカウントを行い、前記割込遅延カウンタのカウント値を含むログ情報を出力するようになっていることを特徴とするプロセッサシミュレータ。
【請求項５】
請求項４において、
前記プロセッサの状態が割込禁止状態に遷移した時および前記プロセッサの状態が割込許可状態に遷移した時にプログラムカウンタのカウント値をそれぞれ取得し、取得したカウント値および前記割込遅延カウンタのカウント値を含むログ情報を出力するようになっていることを特徴とするプロセッサシミュレータ。
【請求項６】
請求項４および５のいずれかにおいて、
前記プロセッサは、パイプライン処理を行う演算器を含み、前記パイプライン処理を開始するときは、前記割込禁止命令を出力するようになっていることを特徴とするプロセッサシミュレータ。
【請求項７】
プロセッサの割込遅延をシミュレートする装置であって、
所定周期で割込信号を発生させる割込発生手段と、前記割込信号に応じて前記プロセッサの割込を制御する割込制御手段と、タイマと、記憶手段とを備え、
前記プロセッサは、前記割込制御手段の制御に応じて、前記割込発生手段に対応する割込遅延カウントプログラムを実行するようになっており、
前記割込発生手段は、前記プロセッサからの割込禁止命令を入力したときは、前記割込信号の発生を一時的に停止させるようになっており、
前記割込遅延カウントプログラムは、前記タイマの値を起動時に取得し、取得したタイマ値を前記記憶手段に記憶するようになっていることを特徴とするプロセッサシミュレータ。
【請求項８】
請求項７において、
前記割込遅延カウントプログラムは、プログラムカウンタのカウント値および前記タイマ値を起動時に取得し、取得したカウント値を前記タイマ値と対応付けて前記記憶手段に記憶するようになっていることを特徴とするプロセッサシミュレータ。
【請求項９】
請求項７および８のいずれかにおいて、
前記プロセッサは、パイプライン処理を行う演算器を含み、前記パイプライン処理を開始するときは、前記割込禁止命令を出力するようになっていることを特徴とするプロセッサシミュレータ。
【請求項１０】
請求項７記載の割込遅延カウントプログラムであって、
前記タイマの値を起動時に取得し、取得したタイマ値を前記記憶手段に記憶する処理をコンピュータに実行させるためのプログラムであることを特徴とする割込遅延カウントプログラム。
【請求項１１】
プロセッサの割込遅延をシミュレートする方法であって、
前記プロセッサの状態を割込許可状態および割込禁止状態のいずれかに遷移させるプログラム制御ステップを含み、
前記プログラム制御ステップは、前記プロセッサの状態が前記割込禁止状態に遷移してから前記割込許可状態に遷移するまでの間、割込遅延カウンタによるカウントを行い、前記割込遅延カウンタのカウント値を含むログ情報を出力することを特徴とするプロセッサのシミュレート方法。
【請求項１２】
プロセッサの割込遅延をシミュレートする方法であって、
所定周期で割込信号を発生させ、前記割込信号に応じて前記プロセッサの割込を制御する割込制御手段に前記割込信号を出力する割込発生ステップと、
前記プロセッサからの割込禁止命令を入力したときは、前記割込信号の発生を一時的に停止させる割込発生停止ステップと、
前記所定周期で前記割込信号が発生している間、割込遅延カウンタによるカウントを行い、前記割込遅延カウンタのカウント値を含むログ情報を出力する割込遅延カウントステップとを含むことを特徴とするプロセッサのシミュレート方法。
【請求項１３】
プロセッサの割込遅延をシミュレートする方法であって、
所定周期で割込信号を発生させ、前記割込信号に応じて前記プロセッサの割込を制御する割込制御手段に前記割込信号を出力する割込発生ステップと、
前記プロセッサからの割込禁止命令を入力したときは、前記割込信号の発生を一時的に停止させる割込発生停止ステップと、
前記割込制御手段の制御に応じて、前記割込信号の発生タイミングでタイマの値を取得し、取得したタイマ値を記憶手段に記憶する割込遅延カウントステップとを含むことを特徴とするプロセッサのシミュレート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサの割込遅延をシミュレートする装置およびプログラム、並びに方法に係り、特に、システムのリアルタイム性を正確に評価することができるプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法に関する。
【背景技術】
【０００２】
パイプライン処理を行うプロセッサとしては、パイプラインの状態を乱さないため、パイプライン処理中は割込処理を禁止するものがある。割込処理には、プロセッサの内部要因により発生する内部割込のほか、ノンマスカブル割込やマスカブル割込のようにプロセッサの外部要因により発生する外部割込がある。マスカブル割込は、複数の割込ソースに対して割込優先順位を設定し、各割込ソースごとに割込処理ができるようになっている。これは、逆にいえば、割込処理を待機させることができることを意味する。
【０００３】
しかしながら、割込処理の待機は、システムのリアルタイム性を阻害する。システムのリアルタイム性は、割込処理の遅延時間が基本となって定まるが、その原因の多くは、通常、割込ソースが過剰にあること、割込が発生してからＯＳ（Operating System）が割込処理を行うのに時間を要することと考えられている。
ＤＳＰ（Digital Signal Processor）に代表される信号処理に特化したプロセッサの場合、割込処理の遅延時間は、そこで動作するミドルウェアのコーディング如何によって変わる。そのため、ミドルウェアをコーディングするときに、割込処理の遅延時間を把握し、システムのリアルタイム性を見積もる必要がある。
【０００４】
割込処理の遅延時間を、机上で計算することは意外に難しい。例えば、Ｃ言語等の高級言語を用いてプログラムを記述する場合は、マシン語コードがコンパイラによって生成されるため、プログラマは、どの部分でパイプライン処理を使用しているかを直接把握することはできない。
また、プロセッサシミュレータを用いて割込処理の遅延時間を測定することもできる。従来のプロセッサシミュレータとしては、例えば、特許文献１に開示されているデータ処理速度の評価方法がある。
【特許文献１】特許第３３６６４７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、マスカブル割込は、プロセッサに対して非同期の割込であるため、プロセッサシミュレータに組み込みにくく、割込処理の遅延時間を正確に測定することが困難である。そのため、システムのリアルタイム性を正確に評価することができないという問題があった。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、システムのリアルタイム性を正確に評価することができるプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
〔発明１〕  上記目的を達成するために、発明１のプロセッサシミュレータは、
プロセッサの割込遅延をシミュレートする装置であって、
前記プロセッサの状態を割込許可状態および割込禁止状態のいずれかに遷移させるプログラム制御手段と、クロックに基づいてカウント動作を行う割込遅延カウンタとを備え、
前記プログラム制御手段は、前記プロセッサの状態が前記割込禁止状態に遷移してから前記割込許可状態に遷移するまでの間、前記割込遅延カウンタによるカウントを行い、前記割込遅延カウンタのカウント値を含むログ情報を出力するようになっていることを特徴とする。
【０００７】
このような構成であれば、プログラム制御手段により、プロセッサの状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの間、割込遅延カウンタによるカウントが行われ、割込遅延カウンタのカウント値を含むログ情報が出力される。割込遅延カウンタは、クロックに基づいてカウント動作を行うので、割込遅延カウンタのカウント値は、プロセッサの状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの時間に応じた値となる。
【０００８】
これにより、プロセッサの状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの時間に応じたカウント値が得られるので、割込処理の遅延時間を比較的正確に測定することができる。したがって、従来に比して、システムのリアルタイム性を比較的正確に評価することができるという効果が得られる。
ここで、ログ情報は、割込遅延カウンタのカウント値を含む情報であって、カウント値を含むこととしては、割込遅延カウンタのカウント値そのものを含む場合のほか、割込遅延カウンタのカウント値に応じた値を含む場合がある。後者の場合、例えば、割込遅延カウンタのカウント値を所定演算式で演算した値を含めることが考えられる。以下、発明４および７のプロセッサシミュレータ、並びに発明１１ないし１３のプロセッサのシミュレート方法において同じである。
【０００９】
〔発明２〕  さらに、発明２のプロセッサシミュレータは、発明１のプロセッサシミュレータにおいて、
前記プログラム制御手段は、前記割込禁止状態への遷移時および前記割込許可状態への遷移時にプログラムカウンタのカウント値をそれぞれ取得し、取得したカウント値および前記割込遅延カウンタのカウント値を含むログ情報を出力するようになっていることを特徴とする。
【００１０】
このような構成であれば、プログラム制御手段により、割込禁止状態への遷移時および割込許可状態への遷移時にプログラムカウンタのカウント値がそれぞれ取得され、取得されたカウント値および割込遅延カウンタのカウント値を含むログ情報が出力される。
これにより、割込禁止状態への遷移時のプログラムカウンタのカウント値、および割込許可状態への遷移時のプログラムカウンタのカウント値が得られるので、プロセッサの状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの間のプログラムの進行度合いを把握することができる。したがって、システムのリアルタイム性をさらに正確に評価することができるという効果が得られる。
【００１１】
ここで、ログ情報は、プログラムカウンタのカウント値を含む情報であって、カウント値を含むこととしては、プログラムカウンタのカウント値そのものを含む場合のほか、プログラムカウンタのカウント値に応じた値を含む場合がある。後者の場合、例えば、プログラムカウンタのカウント値を所定演算式で演算した値を含めることが考えられる。以下、発明５および８のプロセッサシミュレータにおいて同じである。
【００１２】
〔発明３〕  さらに、発明３のプロセッサシミュレータは、発明１および２のいずれかのプロセッサシミュレータにおいて、
前記プロセッサは、パイプライン処理を行う演算器を含み、
前記プログラム制御手段は、前記プロセッサが前記パイプライン処理を開始するときは、前記プロセッサの状態を前記割込禁止状態に遷移させるようになっていることを特徴とする。
【００１３】
このような構成であれば、プロセッサがパイプライン処理を開始すると、プログラム制御手段により、プロセッサの状態が割込禁止状態に遷移する。
これにより、パイプライン処理の影響を考慮して割込処理の遅延時間を測定することができるという効果が得られる。
〔発明４〕  さらに、発明４のプロセッサシミュレータは、
プロセッサの割込遅延をシミュレートする装置であって、
所定周期で割込信号を発生させる割込発生手段と、前記割込信号に応じて前記プロセッサの割込を制御する割込制御手段と、クロックに基づいてカウント動作を行う割込遅延カウンタとを備え、
前記割込発生手段は、前記プロセッサからの割込禁止命令を入力したときは、前記割込信号の発生を一時的に停止させるようになっており、
前記所定周期で前記割込信号が発生している間、前記割込遅延カウンタによるカウントを行い、前記割込遅延カウンタのカウント値を含むログ情報を出力するようになっていることを特徴とする。
【００１４】
このような構成であれば、割込発生手段により、所定周期で割込信号が発生し、割込制御手段により、割込信号に応じてプロセッサの割込が制御される。また、プロセッサからの割込禁止命令を入力すると、割込発生手段により、割込信号の発生が一時的に停止する。そして、所定周期で割込信号が発生している間、割込遅延カウンタによるカウントが行われ、割込遅延カウンタのカウント値を含むログ情報が出力される。割込遅延カウンタは、クロックに基づいてカウント動作を行うので、割込遅延カウンタのカウント値は、プロセッサの状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの時間に応じた値となる。
【００１５】
これにより、プロセッサの状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの時間に応じたカウント値が得られるので、割込処理の遅延時間を比較的正確に測定することができる。したがって、従来に比して、システムのリアルタイム性を比較的正確に評価することができるという効果が得られる。
〔発明５〕  さらに、発明５のプロセッサシミュレータは、発明４のプロセッサシミュレータにおいて、
前記プロセッサの状態が割込禁止状態に遷移した時および前記プロセッサの状態が割込許可状態に遷移した時にプログラムカウンタのカウント値をそれぞれ取得し、取得したカウント値および前記割込遅延カウンタのカウント値を含むログ情報を出力するようになっていることを特徴とする。
【００１６】
このような構成であれば、割込禁止状態への遷移時および割込許可状態への遷移時にプログラムカウンタのカウント値がそれぞれ取得され、取得されたカウント値および割込遅延カウンタのカウント値を含むログ情報が出力される。
これにより、割込許可状態への遷移時のプログラムカウンタのカウント値、および割込禁止状態への遷移時のプログラムカウンタのカウント値が得られるので、プロセッサの状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの間のプログラムの進行度合いを把握することができる。したがって、システムのリアルタイム性をさらに正確に評価することができるという効果が得られる。
【００１７】
〔発明６〕  さらに、発明６のプロセッサシミュレータは、発明４および５のいずれかのプロセッサシミュレータにおいて、
前記プロセッサは、パイプライン処理を行う演算器を含み、前記パイプライン処理を開始するときは、前記割込禁止命令を出力するようになっていることを特徴とする。
このような構成であれば、プロセッサがパイプライン処理を開始すると、プロセッサにより、割込禁止命令が出力され、割込発生手段により、割込信号の発生が一時的に停止する。
【００１８】
これにより、パイプライン処理の影響を考慮して割込処理の遅延時間を測定することができるという効果が得られる。
〔発明７〕  さらに、発明７のプロセッサシミュレータは、
プロセッサの割込遅延をシミュレートする装置であって、
所定周期で割込信号を発生させる割込発生手段と、前記割込信号に応じて前記プロセッサの割込を制御する割込制御手段と、タイマと、記憶手段とを備え、
前記プロセッサは、前記割込制御手段の制御に応じて、前記割込発生手段に対応する割込遅延カウントプログラムを実行するようになっており、
前記割込発生手段は、前記プロセッサからの割込禁止命令を入力したときは、前記割込信号の発生を一時的に停止させるようになっており、
前記割込遅延カウントプログラムは、前記タイマの値を起動時に取得し、取得したタイマ値を前記記憶手段に記憶するようになっていることを特徴とする。
【００１９】
このような構成であれば、割込発生手段により、所定周期で割込信号が発生し、割込制御手段により、割込信号に応じてプロセッサの割込が制御される。そして、プロセッサにより、割込制御手段の制御に応じて、割込発生手段に対応する割込遅延カウントプログラムが実行される。割込遅延カウントプログラムが起動すると、割込遅延カウントプログラムにより、タイマの値が起動時に取得され、取得されたタイマ値が記憶手段に記憶される。したがって、記憶手段のタイマ値は、割込信号の発生した時刻に応じた値となる。また、プロセッサからの割込禁止命令を入力すると、割込発生手段により、割込信号の発生が一時的に停止する。
【００２０】
これにより、記憶手段のタイマ値を参照すれば、プロセッサの状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの時間を導出することができるので、割込処理の遅延時間を比較的正確に測定することができる。したがって、従来に比して、システムのリアルタイム性を比較的正確に評価することができるという効果が得られる。
〔発明８〕  さらに、発明８のプロセッサシミュレータは、発明７のプロセッサシミュレータにおいて、
前記割込遅延カウントプログラムは、プログラムカウンタのカウント値および前記タイマ値を起動時に取得し、取得したカウント値を前記タイマ値と対応付けて前記記憶手段に記憶するようになっていることを特徴とする。
【００２１】
このような構成であれば、割込遅延カウントプログラムにより、プログラムカウンタのカウント値およびタイマ値が起動時に取得され、取得されたカウント値がタイマ値と対応付けられて記憶手段に記憶される。したがって、記憶手段のカウント値は、割込信号の発生した時点での値となる。
これにより、記憶手段のカウント値およびタイマ値を参照すれば、プロセッサの状態が割込許可状態に遷移した時のプログラムカウンタのカウント値、およびプロセッサの状態が割込禁止状態に遷移した時のプログラムカウンタのカウント値が得られるので、プロセッサの状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの間のプログラムの進行度合いを把握することができる。したがって、システムのリアルタイム性をさらに正確に評価することができるという効果が得られる。
【００２２】
〔発明９〕  さらに、発明９のプロセッサシミュレータは、発明７および８のいずれかのプロセッサシミュレータにおいて、
前記プロセッサは、パイプライン処理を行う演算器を含み、前記パイプライン処理を開始するときは、前記割込禁止命令を出力するようになっていることを特徴とする。
このような構成であれば、プロセッサがパイプライン処理を開始すると、プロセッサにより、割込禁止命令が出力され、割込発生手段により、割込信号の発生が一時的に停止する。
【００２３】
これにより、パイプライン処理の影響を考慮して割込処理の遅延時間を測定することができるという効果が得られる。
〔発明１０〕  一方、上記目的を達成するために、発明１０の割込遅延カウントプログラムは、
発明７の割込遅延カウントプログラムであって、
前記タイマの値を起動時に取得し、取得したタイマ値を前記記憶手段に記憶する処理をコンピュータに実行させるためのプログラムであることを特徴とする。
【００２４】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明７のプロセッサシミュレータと同等の作用および効果が得られる。
〔発明１１〕  一方、上記目的を達成するために、発明１１のプロセッサのシミュレート方法は、
プロセッサの割込遅延をシミュレートする方法であって、
前記プロセッサの状態を割込許可状態および割込禁止状態のいずれかに遷移させるプログラム制御ステップを含み、
前記プログラム制御ステップは、前記プロセッサの状態が前記割込禁止状態に遷移してから前記割込許可状態に遷移するまでの間、割込遅延カウンタによるカウントを行い、前記割込遅延カウンタのカウント値を含むログ情報を出力することを特徴とする。
【００２５】
これにより、発明１のプロセッサシミュレータと同等の作用および効果が得られる。
〔発明１２〕  さらに、発明１２のプロセッサのシミュレート方法は、
プロセッサの割込遅延をシミュレートする方法であって、
所定周期で割込信号を発生させ、前記割込信号に応じて前記プロセッサの割込を制御する割込制御手段に前記割込信号を出力する割込発生ステップと、
前記プロセッサからの割込禁止命令を入力したときは、前記割込信号の発生を一時的に停止させる割込発生停止ステップと、
前記所定周期で前記割込信号が発生している間、割込遅延カウンタによるカウントを行い、前記割込遅延カウンタのカウント値を含むログ情報を出力する割込遅延カウントステップとを含むことを特徴とする。
【００２６】
これにより、発明４のプロセッサシミュレータと同等の作用および効果が得られる。
〔発明１３〕  さらに、発明１３のプロセッサのシミュレート方法は、
プロセッサの割込遅延をシミュレートする方法であって、
所定周期で割込信号を発生させ、前記割込信号に応じて前記プロセッサの割込を制御する割込制御手段に前記割込信号を出力する割込発生ステップと、
前記プロセッサからの割込禁止命令を入力したときは、前記割込信号の発生を一時的に停止させる割込発生停止ステップと、
前記割込制御手段の制御に応じて、前記割込信号の発生タイミングでタイマの値を取得し、取得したタイマ値を記憶手段に記憶する割込遅延カウントステップとを含むことを特徴とする。
【００２７】
これにより、発明７のプロセッサシミュレータと同等の作用および効果が得られる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の第１の実施の形態を図面を参照しながら説明する。図１は、本発明に係るプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法の第１の実施の形態を示す図である。
本実施の形態は、本発明に係るプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法を、図１に示すように、パイプライン処理を行うプロセッサ１１０の割込処理の遅延時間を測定する場合について適用したものである。
【００２９】
まず、本発明を適用するパイプライン処理システム１００の構成を図１を参照しながら説明する。
図１は、パイプライン処理システム１００の構成を示すブロック図である。
パイプライン処理システム１００は、図１に示すように、プロセッサ１１０と、メモリ１２０とで構成されており、これらは、データを転送するための信号線であるバス１９９で相互にかつデータ授受可能に接続されている。
【００３０】
メモリ１２０は、プロセッサ１１０の制御プログラムをあらかじめ所定領域に格納しているＲＯＭと、ＲＯＭ等から読み出したデータやプロセッサ１１０の演算過程で必要な演算結果を格納するためのＲＡＭとを有して構成されている。
プロセッサ１１０は、パイプライン処理を行う演算ユニット１０と、メモリ１２０から読み出したデータを保持するレジスタファイル１２と、メモリ１２０から読み出した命令コードをデコードする命令デコーダ１４と、命令デコーダ１４のデコード結果に基づいてプログラムの分岐を制御する分岐制御部１６と、割込信号に応じてプロセッサ１１０の割込を制御する割込コントローラ１８と、プロセッサ１１０の状態を割込許可状態および割込禁止状態のいずれかに遷移させるプログラムコントローラ２０と、クロックに基づいてカウント動作を行う割込遅延カウンタ２２とで構成されている。
【００３１】
演算ユニット１０は、分岐制御部１６および割込コントローラ１８の制御に応じて動作を行い、命令デコーダ１４のデコード結果に基づいてパイプライン処理その他の演算処理を行うようになっている。例えば、ロードを行うことを示す命令コードが与えられた場合、バス１９９を介してメモリ１２０のデータをレジスタファイル１２に読み込む。また、演算処理を行うことを示す命令コードが与えられた場合、レジスタファイル１２のデータに対してパイプライン処理その他の演算処理を行う。また、ストアを行うことを示す命令コードが与えられた場合、バス１９９を介してレジスタファイル１２のデータをメモリ１２０に書き込む。
【００３２】
プログラムコントローラ２０は、命令デコーダ１４、分岐制御部１６および割込コントローラ１８の状態に応じて、プロセッサ１１０の割込禁止が必要となったか否かを判定するようになっている。例えば、演算ユニット１０がパイプライン処理を開始すると判定したときは、割込コントローラ１８および割込遅延カウンタ２２に割込禁止信号を出力することによりプロセッサ１１０の状態を割込禁止状態に遷移させる。またこれと同時に、プログラムカウンタ（不図示）のカウント値を取得する。
【００３３】
プログラムコントローラ２０は、命令デコーダ１４、分岐制御部１６および割込コントローラ１８の状態に応じて、プロセッサ１１０の割込禁止が不要となったか否かを判定するようになっている。例えば、演算ユニット１０がパイプライン処理を終了すると判定したときは、割込コントローラ１８および割込遅延カウンタ２２に割込許可信号を出力することによりプロセッサ１１０の状態を割込許可状態に遷移させる。またこれと同時に、プログラムカウンタのカウント値を取得し、割込禁止状態への遷移時および割込許可状態への遷移時に取得したプログラムカウンタのカウント値、並びに割込遅延カウンタ２２のカウント値を含むログ情報を出力する。
【００３４】
割込遅延カウンタ２２は、プログラムコントローラ２０からの割込禁止信号に応じてカウント値を初期化しカウントを開始する。また、プログラムコントローラ２０からの割込許可信号に応じてカウントを終了する。
なお、本実施の形態では、割込を発生させるプログラムは、必ずしも必要としない。プログラムの状態をみて、割込遅延カウンタ２２を動作させることが可能である。
【００３５】
次に、本実施の形態の動作を説明する。
まず、命令デコーダ１４により、命令コードがメモリ１２０から読み出され、命令コードがデコードされる。このとき、命令コードがパイプライン処理を行うことを示すものであると、プログラムコントローラ２０により、割込コントローラ１８および割込遅延カウンタ２２に割込禁止信号が出力され、これによりプロセッサ１１０の状態が割込禁止状態に遷移する。またこれと同時に、プログラムカウンタのカウント値が取得される。
【００３６】
割込禁止信号が出力されると、割込コントローラ１８によりプロセッサ１１０の割込処理が禁止されるとともに、割込遅延カウンタ２２によりカウントが開始される。このカウントは、割込禁止状態が継続している間、クロックに基づいて一定の時間間隔で行われる。
そして、演算ユニット１０により、レジスタファイル１２のデータに対してパイプライン処理が行われる。
【００３７】
次に、パイプライン処理が終了すると、プログラムコントローラ２０により、割込コントローラ１８および割込遅延カウンタ２２に割込許可信号が出力され、これによりプロセッサ１１０の状態が割込許可状態に遷移する。またこれと同時に、プログラムカウンタのカウント値が取得される。
割込許可信号が出力されると、割込コントローラ１８によりプロセッサ１１０の割込処理が許可されるとともに、割込遅延カウンタ２２によりカウントが終了する。
【００３８】
そして、プログラムコントローラ２０により、取得されたプログラムカウンタのカウント値、および割込遅延カウンタ２２のカウント値を含むログ情報が出力される。
得られたログ情報には、割込遅延カウンタ２２のカウント値が含まれているが、このカウント値は、プロセッサ１１０の状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの時間に応じた値となる。
【００３９】
このようにして、本実施の形態では、プロセッサ１１０の状態を割込許可状態および割込禁止状態のいずれかに遷移させるプログラムコントローラ２０と、クロックに基づいてカウント動作を行う割込遅延カウンタ２２とを備え、プログラムコントローラ２０は、プロセッサ１１０の状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの間、割込遅延カウンタ２２によるカウントを行い、割込遅延カウンタ２２のカウント値を含むログ情報を出力するようになっている。
【００４０】
これにより、プロセッサ１１０の状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの時間に応じたカウント値が得られるので、割込処理の遅延時間を比較的正確に測定することができる。したがって、従来に比して、システムのリアルタイム性を比較的正確に評価することができる。
さらに、本実施の形態では、プログラムコントローラ２０は、割込禁止状態への遷移時および割込許可状態への遷移時にプログラムカウンタのカウント値をそれぞれ取得し、取得したカウント値および割込遅延カウンタ２２のカウント値を含むログ情報を出力するようになっている。
【００４１】
これにより、割込禁止状態への遷移時のプログラムカウンタのカウント値、および割込許可状態への遷移時のプログラムカウンタのカウント値が得られるので、プロセッサ１１０の状態が割込禁止状態に遷移してから割込許可状態に遷移するまでの間のプログラムの進行度合いを把握することができる。したがって、システムのリアルタイム性をさらに正確に評価することができる。
【００４２】
さらに、本実施の形態では、プログラムコントローラ２０は、プロセッサ１１０がパイプライン処理を開始するときは、プロセッサ１１０の状態を割込禁止状態に遷移させるようになっている。
これにより、パイプライン処理の影響を考慮して割込処理の遅延時間を測定することができる。
【００４３】
上記第１の実施の形態において、演算ユニット１０は、発明３の演算器に対応し、プログラムコントローラ２０は、発明１ないし３のプログラム制御手段に対応している。
次に、本発明の第２の実施の形態を図面を参照しながら説明する。図２は、本発明に係るプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法の第２の実施の形態を示す図である。
【００４４】
本実施の形態は、本発明に係るプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法を、図２に示すように、パイプライン処理を行うプロセッサ２１０の割込処理の遅延時間を測定する場合について適用したものであり、上記第１の実施の形態と異なるのは、割込コントローラ２４に割込遅延カウンタ２８を設けた点にある。以下、上記第１の実施の形態と異なる部分についてのみ説明し、上記第１の実施の形態と重複する部分については同一の符号を付して説明を省略する。
【００４５】
まず、本発明を適用するパイプライン処理システム２００の構成を図２を参照しながら説明する。
図２は、パイプライン処理システム２００の構成を示すブロック図である。
パイプライン処理システム２００は、図２に示すように、プロセッサ２１０と、メモリ１２０と、割込発生回路２２０とで構成されており、これらは、データを転送するための信号線であるバス１９９で相互にかつデータ授受可能に接続されている。
【００４６】
割込発生回路２２０は、所定周期で割込信号を発生させ、プロセッサ２１０からの割込禁止命令を入力したときは、所定クロック数に相当する時間だけ割込信号の発生を停止させるようになっている。
プロセッサ２１０は、演算ユニット１０、レジスタファイル１２、命令デコーダ１４および分岐制御部１６のほか、割込発生回路２２０からの割込信号に応じてプロセッサ２１０の割込を制御する割込コントローラ２４と、プロセッサ２１０の状態を割込許可状態および割込禁止状態のいずれかに遷移させるプログラムコントローラ２６と、クロックに基づいてカウント動作を行う割込遅延カウンタ２８とで構成されている。
【００４７】
プロセッサ２１０は、演算ユニット１０がパイプライン処理を行っている間は、割込禁止命令を割込発生回路２２０に出力するようになっている。
割込遅延カウンタ２８は、割込コントローラ２４に所定周期で割込信号が入力されているか否かを監視し、割込信号の入力が停止したと判定したときは、カウントを終了し、プログラムカウンタのカウント値を取得する。
【００４８】
割込遅延カウンタ２８は、割込信号の入力が再開したと判定したときは、プログラムカウントのカウント値を取得し、割込信号の入力停止時および割込信号の入力再開時に取得したプログラムカウンタのカウント値、並びに割込遅延カウンタ２８のカウント値を含むログ情報を出力する。またこれと同時に、カウント値を初期化してカウントを開始する。
次に、本実施の形態の動作を説明する。
【００４９】
まず、割込発生回路２２０により、所定周期で割込信号が発生し、発生した割込信号が割込コントローラ２４に入力される。割込信号が入力されると、割込遅延カウンタ２８により、カウントが開始される。このカウントは、クロックに基づいて一定の時間間隔で行われる。
次に、命令デコーダ１４により、命令コードがメモリ１２０から読み出され、命令コードがデコードされる。このとき、命令コードがパイプライン処理を行うことを示すものであると、プロセッサ２１０により、割込禁止命令が割込発生回路２２０に出力される。割込禁止命令が入力されると、割込発生回路２２０により、所定クロック数に相当する時間だけ割込信号の発生が停止する。
【００５０】
割込信号の発生が停止すると、割込遅延カウンタ２８により、カウントが終了し、プログラムカウンタのカウント値が取得される。
そして、演算ユニット１０により、レジスタファイル１２のデータに対してパイプライン処理が行われる。
次に、パイプライン処理が終了すると、割込発生回路２２０により、所定周期で割込信号が発生し、発生した割込信号が割込コントローラ２４に入力される。割込信号の入力が再開すると、割込遅延カウンタ２８により、プログラムカウンタのカウント値が取得され、取得されたプログラムカウンタのカウント値、および割込遅延カウンタ２８のカウント値を含むログ情報が出力される。またこれと同時に、カウントが開始される。
【００５１】
得られたログ情報には、割込遅延カウンタ２８のカウント値が含まれているが、このカウント値は、プロセッサ２１０の状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの時間に応じた値となる。
このようにして、本実施の形態では、所定周期で割込信号を発生させる割込発生回路２２０と、割込信号に応じてプロセッサ２１０の割込を制御する割込コントローラ２４と、クロックに基づいてカウント動作を行う割込遅延カウンタ２８とを備え、割込発生回路２２０は、プロセッサ２１０からの割込禁止命令を入力したときは、割込信号の発生を一時的に停止させるようになっており、所定周期で割込信号が発生している間、割込遅延カウンタ２８によるカウントを行い、割込遅延カウンタ２８のカウント値を含むログ情報を出力するようになっている。
【００５２】
これにより、プロセッサ２１０の状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの時間に応じたカウント値が得られるので、割込処理の遅延時間を比較的正確に測定することができる。したがって、従来に比して、システムのリアルタイム性を比較的正確に評価することができる。
また、上記第１の実施の形態と比して、測定精度は、割込発生回路２２０の動作クロックに制約されるが、構造上大きな改変がなく実装が比較的容易である。
【００５３】
さらに、本実施の形態では、割込信号の入力停止時および割込信号の入力再開時にプログラムカウンタのカウント値をそれぞれ取得し、取得したカウント値および割込遅延カウンタ２８のカウント値を含むログ情報を出力するようになっている。
これにより、割込許可状態への遷移時のプログラムカウンタのカウント値、および割込禁止状態への遷移時のプログラムカウンタのカウント値が得られるので、プロセッサ２１０の状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの間のプログラムの進行度合いを把握することができる。したがって、システムのリアルタイム性をさらに正確に評価することができる。
【００５４】
さらに、本実施の形態では、プロセッサ２１０は、演算ユニット１０がパイプライン処理を行っている間は、割込禁止命令を割込発生回路２２０に出力するようになっている。
これにより、パイプライン処理の影響を考慮して割込処理の遅延時間を測定することができる。
上記第２の実施の形態において、演算ユニット１０は、発明６の演算器に対応し、割込コントローラ２４は、発明４または１２の割込制御手段に対応し、割込発生回路２２０は、発明４の割込発生手段に対応している。
【００５５】
次に、本発明の第３の実施の形態を図面を参照しながら説明する。図３は、本発明に係るプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法の第３の実施の形態を示す図である。
本実施の形態は、本発明に係るプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法を、図３に示すように、パイプライン処理を行うプロセッサ３１０の割込処理の遅延時間を測定する場合について適用したものであり、上記第２の実施の形態と異なるのは、タイマ３２０を利用して割込遅延カウントプログラムにより遅延時間を測定する点にある。以下、上記第２の実施の形態と異なる部分についてのみ説明し、上記第２の実施の形態と重複する部分については同一の符号を付して説明を省略する。
【００５６】
まず、本発明を適用するパイプライン処理システム３００の構成を図３を参照しながら説明する。
図３は、パイプライン処理システム３００の構成を示すブロック図である。
パイプライン処理システム３００は、図３に示すように、プロセッサ３１０と、メモリ１２０と、割込発生回路２２０と、タイマ３２０とで構成されており、これらは、データを転送するための信号線であるバス１９９で相互にかつデータ授受可能に接続されている。
【００５７】
メモリ１２０は、割込発生回路２２０に対応する割込遅延カウントプログラム３４０を記憶している。
プロセッサ３１０は、演算ユニット１０、レジスタファイル１２、命令デコーダ１４、分岐制御部１６、割込コントローラ２４およびプログラムコントローラ２６で構成されている。
【００５８】
プロセッサ３１０は、演算ユニット１０がパイプライン処理を行っている間は、割込禁止命令を割込発生回路２２０に出力し、割込コントローラ２４の制御に応じて割込遅延カウントプログラム３４０を実行するようになっている。
割込遅延カウントプログラム３４０は、プログラムカウンタのカウント値およびタイマ３２０の値を起動時に取得し、取得したカウント値をタイマ値と対応付けてメモリ１２０に順次記憶していく。
【００５９】
次に、本実施の形態の動作を説明する。
まず、割込発生回路２２０により、所定周期で割込信号が発生し、発生した割込信号が割込コントローラ２４に入力される。割込信号が入力されると、割込コントローラ２４が動作し、プロセッサ３１０により、割込コントローラ２４の制御に応じて割込遅延カウントプログラム３４０が実行される。
【００６０】
割込遅延カウントプログラム３４０が起動すると、割込遅延カウントプログラム３４０により、プログラムカウンタのカウント値およびタイマ３２０の値が起動時に取得され、取得されたカウント値がタイマ値と対応付けられてメモリ１２０に記憶される。したがって、メモリ１２０のタイマ値は、割込信号の発生した時刻に応じた値となる。
次に、命令デコーダ１４により、命令コードがメモリ１２０から読み出され、命令コードがデコードされる。このとき、命令コードがパイプライン処理を行うことを示すものであると、プロセッサ３１０により、割込禁止命令が割込発生回路２２０に出力される。割込禁止命令が入力されると、割込発生回路２２０により、所定クロック数に相当する時間だけ割込信号の発生が停止する。
【００６１】
割込信号の発生が停止すると、その間は、割込遅延カウントプログラム３４０が実行されないので、タイマ値が記憶されることはない。
そして、演算ユニット１０により、レジスタファイル１２のデータに対してパイプライン処理が行われる。
次に、パイプライン処理が終了すると、割込発生回路２２０により、所定周期で割込信号が発生し、発生した割込信号が割込コントローラ２４に入力される。割込信号の入力が再開すると、割込コントローラ２４が動作し、プロセッサ３１０により、割込コントローラ２４の制御に応じて割込遅延カウントプログラム３４０が実行される。
【００６２】
このようにして、本実施の形態では、所定周期で割込信号を発生させる割込発生回路２２０と、割込信号に応じてプロセッサ３１０の割込を制御する割込コントローラ２４と、タイマ３２０と、割込発生回路２２０に対応する割込遅延カウントプログラム３４０を記憶したメモリ１２０とを備え、プロセッサ３１０は、割込コントローラ２４の制御に応じて割込遅延カウントプログラム３４０を実行し、割込発生回路２２０は、プロセッサ３１０からの割込禁止命令を入力したときは、割込信号の発生を一時的に停止させ、割込遅延カウントプログラム３４０は、タイマ３２０の値を起動時に取得し、取得したタイマ値をメモリ１２０に記憶するようになっている。
【００６３】
これにより、メモリ１２０のタイマ値を参照すれば、プロセッサ３１０の状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの時間を導出することができるので、割込処理の遅延時間を比較的正確に測定することができる。したがって、従来に比して、システムのリアルタイム性を比較的正確に評価することができる。
また、上記第１および第２の実施の形態に比して、プロセッサ３１０に割込遅延カウンタ２２，２８を設けていないため、実機上でも実現でき、シミュレーションと、実機との比較もとりやすい。
【００６４】
さらに、本実施の形態では、割込遅延カウントプログラム３４０は、プログラムカウンタのカウント値およびタイマ値を起動時に取得し、取得したカウント値をタイマ値と対応付けてメモリ１２０に記憶するようになっている。
これにより、メモリ１２０のカウント値およびタイマ値を参照すれば、割込許可状態への遷移時のプログラムカウンタのカウント値、および割込禁止状態への遷移時のプログラムカウンタのカウント値が得られるので、プロセッサ３１０の状態が割込許可状態に遷移してから割込禁止状態に遷移するまでの間のプログラムの進行度合いを把握することができる。したがって、システムのリアルタイム性をさらに正確に評価することができる。
【００６５】
さらに、本実施の形態では、プロセッサ３１０は、パイプライン処理を開始するときは、割込禁止命令を出力するようになっている。
これにより、パイプライン処理の影響を考慮して割込処理の遅延時間を測定することができる。
上記第３の実施の形態において、演算ユニット１０は、発明９の演算器に対応し、割込コントローラ２４は、発明７または１３の割込制御手段に対応し、メモリ１２０は、発明７、８、１０または１３の記憶手段に対応し、割込発生回路２２０は、発明７の割込発生手段に対応している。
【００６６】
なお、上記第１の実施の形態において、プログラムコントローラ２０は、プロセッサ１１０の状態が割込許可状態に遷移したときにログ情報を出力するように構成したが、これに限らず、ログ情報を保持しておき、プログラム等からの取得要求に応じてログ情報を出力するように構成することができる。
また、上記第２の実施の形態において、割込遅延カウンタ２８は、割込信号の入力が再開したと判定したときにログ情報を出力するように構成したが、これに限らず、ログ情報を保持しておき、プログラム等からの取得要求に応じてログ情報を出力するように構成することができる。
【００６７】
また、上記第２の実施の形態において、割込遅延カウンタ２８は、割込コントローラ２４に所定周期で割込信号が入力されている間は、カウントを行い、それ以外の間は、カウントを停止させるように構成したが、これに限らず、割込コントローラ２４に所定周期で割込信号が入力されている間は、カウントを停止し、それ以外の間は、カウントを行うように構成することもできる。
【００６８】
また、上記第３の実施の形態において、プロセッサ３１０は、割込コントローラ２４の制御に応じて割込遅延カウントプログラム３４０を実行し、割込遅延カウントプログラム３４０は、タイマ３２０の値を起動時に取得し、取得したタイマ値をメモリ１２０に記憶するように構成したが、これに限らず、ハードウェアだけで構成することもできる。この場合、例えば、割込遅延カウント回路をバス１９９上に設け、割込発生回路２２０からの割込信号またはプロセッサ３１０からの割込禁止命令に応じてタイマ３２０の値を取得し、取得したタイマ値をメモリ１２０に記憶する。
【００６９】
また、上記第２および第３の実施の形態において、割込発生回路２２０は、所定周期で割込信号を発生させ、割込禁止命令を入力したときは、割込信号の発生を一時的に停止させるように構成したが、これに限らず、通常時は割込信号を発生させず、割込禁止命令を入力したときは、所定周期で割込信号を一時的に発生させるように構成することもできる。
【００７０】
また、上記第１ないし第３の実施の形態においては、本発明に係るプロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法を、パイプライン処理を行うプロセッサ３１０の割込処理の遅延時間を測定する場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【図面の簡単な説明】
【００７１】
【図１】パイプライン処理システム１００の構成を示すブロック図である。
【図２】パイプライン処理システム２００の構成を示すブロック図である。
【図３】パイプライン処理システム３００の構成を示すブロック図である。
【符号の説明】
【００７２】
１００…パイプライン処理システム，１１０…プロセッサ，１２０…メモリ，１９９…バス，１０…演算ユニット，１２…レジスタファイル，１４…命令デコーダ，１６…分岐制御部，１８…割込コントローラ，２０…プログラムコントローラ，２２…割込遅延カウンタ，２００…パイプライン処理システム，２１０…プロセッサ，２２０…割込発生回路，２４…割込コントローラ，２６…プログラムコントローラ，２８…割込遅延カウンタ，３００…パイプライン処理システム，３１０…プロセッサ，３２０…タイマ，３４０…割込遅延カウントプログラム
【図１】
2005100017.tif 000003
【図２】
2005100017.tif 000004
【図３】
2005100017.tif 000005