JP2012088951A - シミュレーション制御方法、システム及びプログラム - Google Patents

シミュレーション制御方法、システム及びプログラム Download PDF

Info

Publication number
JP2012088951A
JP2012088951A JP2010235295A JP2010235295A JP2012088951A JP 2012088951 A JP2012088951 A JP 2012088951A JP 2010235295 A JP2010235295 A JP 2010235295A JP 2010235295 A JP2010235295 A JP 2010235295A JP 2012088951 A JP2012088951 A JP 2012088951A
Authority
JP
Japan
Prior art keywords
simulator
instruction
peripheral
instruction set
scheduler
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.)
Granted
Application number
JP2010235295A
Other languages
English (en)
Other versions
JP5528294B2 (ja
Inventor
Shingo Nagai
真吾 長井
Fumitomo Osawa
史朋 大澤
Hideaki Komatsu
秀昭 小松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010235295A priority Critical patent/JP5528294B2/ja
Priority to US13/246,052 priority patent/US20120101791A1/en
Publication of JP2012088951A publication Critical patent/JP2012088951A/ja
Application granted granted Critical
Publication of JP5528294B2 publication Critical patent/JP5528294B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ISSの出力タイミング及びそれに対するペリフェラルからの入力タイミングを予測することにより、シミュレーションの速度を向上させる。
【解決手段】ISS216のプログラム・コードを解析して、プログラム・カウンタ毎に、I/O命令到達予測時間を推定し、そのとき出されるI/O命令の種類とともに、第1段階テーブル206に記録する。スケジューラは、ISSを介して、その実行のプログラム・カウンタの値で第1段階テーブルを引くことによって、I/O命令到達予測時間と、そのとき出力されるI/O命令の情報を得る。さらに、I/O命令で第2段階テーブル212を引くことで、ペリフェラルからの最速イベント時間を得る。これらの情報を用いて、スケジューラは、プラント・シミュレータ、ペリフェラル・シミュレータ及びISSのうち、最も近い将来に起こるイベントの時間を知り、そのイベントの時間までシステムを一気に進める。
【選択図】図6

Description

本発明は、自動車などの物理システムのシミュレーションに関し、より詳しくは、ソフトウェア・ベースでのシミュレーション・システムに関するものである。
自動車は、その初期の時代の20世紀初頭は、動力としてのエンジンと、ブレーキ、アクセル、ハンドル、トランスミッション、サスペンジョンを含む、機構部品からなっていたが、エンジンのプラグの点火、ヘッドライト以外は、電気的な仕組みはほとんど利用していなかった。
ところが、1970年代頃から、大気汚染、石油危機などに備えて、エンジンを効率的に制御する必要性が生じ、このためエンジンの制御に、ECUが使用されるようになってきた。ECUは、一般的に、センサからの入力信号を、例えばA/D変換する入力インターフェースと、決められた論理に従ってディジタル入力信号を処理する論理演算部(マイクロコンピュータ)と、その処理結果を、アクチュエータ作動信号に変換する出力インターフェースとから構成される。
いまや、エンジンやトランスミッションなどの制御システム、Anti-lock Breaking System (ABS)、Electronic Stability Control (ESC)、パワーステアリングだけでなく、ワイパー制御やセキュリティ・モニタリング・システムなどに至るまで、最近の自動車では、機構部品だけでなく、エレクトロニクス部品やソフトウエアが重要な比率を占める。後者に関する開発費は全体の25%とも40%とも言われ、ハイブリッド型の自動車では70%を占める。
ところで、自動車は、エンジンなどの動力装置や動力伝達装置、ステアリングなどの走行装置、ブレーキ装置、その他ボディ系などの機械部品(プラント)で構成され、また、これらのプラントの動作は、30〜70以上の電子制御ユニット(ECU)のプログラムがセンサ入力(速度など)や人間からの入力(アクセルなど)に応じて、動的に決定する。
ECUは、基本的に各々が一つのプラントの動作を制御する。たとえば、エンジンへの燃料噴射(Fuel Injection)や点火(Ignition)は、エンジン・コントロール・ユニットがその量やタイミングをソフトウエアにより決定する。ソフトウエアなので、「スポーツ」モードを用意するような高級車では、モードに応じて燃料噴射量を増量・減量することもできる。また、シフトダウンのタイミングにあわせて、自動的にブリッピング(空ぶかし)してエンジンの回転数を合わせることもできる。この場合には、エンジンのECUとトランスミッションのECUが連携して動作する必要がある。自動車の横滑りなどを防止するための統合車両姿勢安定制御(ESC: Electronic Stability Control)システムでは、さらにブレーキなどの制動装置との連動も必要となり、ECUソフトウエアは複雑になる。なお、このような「介入」機能は、ソフトウエアであるがゆえに、容易にカットすることができる。
さて、プラントの性能を十分に引き出し、かつ、安全に動作させるためには、ECUソフトウエアの設計開発の過程において、動作パラメータのチューニングとテストを十分に行うことが重要である。一般に、実車をプロトタイプしてから、チューニングとテストを繰り返すのではコストと時間がかかりすぎるので、プロトタイプする前にコントローラとプラントを計算機の中で仮想的に実現して、高速にかつ正確に動かして、その動作を確認する方法が強く望まれる。このようなECUシミュレーションは、(1)ステートマシンなどの表現形式を用いてコントローラの動作を論理的に表現する Model-in-the-Loop Simulation (MILS)、(2)その論理動作に、データ精度などハードウエアの制約を一部導入した Software-in-the-Loop Simulation (SILS)、(3)ソフトウエアを完全に実装してECUプロセッサをエミュレートするProcessor-in-the-Loop Simulation (PILS)あるいは Virtual Hardware-in-the-Loop Simulation (V−HILS)、そして、(4)ECUボードを完全に実装して、リアルタイム・プラント・シミュレーションと接続する Hardware-in-the-Loop Simulation (HILS) の4種類の方式があり、 この順序で、よりプロトタイプに近くなる。
MILS/SILSは主に、プラントの基本的な性能を引き出すための試行錯誤フェーズに用いられている。しかし、実際にECUに搭載されるソフトウエアとは異なる動作をするので、製品の検証用途には利用することができない。一方、V−HILSは完成したECUソフトウエアを利用するので、ソフトウエアの期待しない動作(バグ)を発見して解決するための方式として非常に有望視されているが、再現性のある動作を達成するものとしては、まだ実現した例はない。HILSは、完成したECUボードの最終的な動作確認のために必ず実施されるが、障害が見つかっても再現性が保証されないのでデバッグ目的には利用できない。
このように、HILSの構成のまま、すなわち、ECUボードとプラント・シミュレータとの疎結合という構成のままでは、それぞれのコンポーネントを高速化しても動作の一貫性は実現できない。コミュニケーションの順序の一貫性を実現することが、動作の再現性を実現するために必要である。V−HILSは特に、この問題を解消することが期待される。
従来の概念に従う、典型的なV−HILSの構成は、複数のECUエミュレータと、複数のプラント・シミュレータと、全体の動作をスケジュールするグローバル・スケジューラからなる。
ECUエミュレータは、プロセッサ・エミュレータと、ペリフェラル・エミュレータからなる。一方、プラント・シミュレータには、ブレーキ・シミュレータ、エンジン・シミュレータなどが含まれる。
このとき、プロセッサ・エミュレータは例えば、80MHzという相対的に高解像度のクロックで動作する。一方、プラント・シミュレータは、物理機構のシミュレータであるため、例えば、10KHzという相対的に低解像度で動作する。一般に、低解像度のほうが高速にシミュレーションできるので、プラント・シミュレータのほうが高速である場合が多い。
プラント・シミュレータは必ずしも、固定長の処理ステップ時間で繰り返して数値計算を行うわけではなく、計算誤差の影響を抑えたり、不連続な変化点のタイミングなどに応じて可変ステップが必要となるケースが多い。いずれにしても、各ステップにおいてコントローラから指示信号を受け取り、また、センサーに向けて内部状態を出力する。なお、指示信号は、スイッチのオンとオフを表現するためにパルス状であることが多い。
ペリフェラル・エミュレータは、ECUエミュレータのI/Oのインターフェイス部にあたり、プラント・シミュレータとプロセッサ・エミュレータを相互に接続する。典型的には(平均的には)10MHz 程度の解像度で動作すると捉えることができる。これは、プラント・シミュレータより高速だが、プロセッサ・エミュレータよりは低速となる。ペリフェラル・エミュレータは、プラント・シミュレータに対しては、パルス状の信号を送る。また、プラント・シミュレータから内部状態を量的なデータとして読み取る。
一側面からみると、ペリフェラルは、プラントとプロセッサ、及びプロセッサ間を相互に接続する、システムの中心である。ペリフェラルを通過する信号の順序を互いに区別できるだけの時間解像度があれば、プラントとプロセッサ間の相互作用に関しては、その順序は正しく再現できる。しかし、次の信号までにかかる時間がデータの精度を決定する(速度の算出など)なら、時間解像度は細かければ細かいほど良い。つまり、時間解像度に応じてデータ誤差の大きさが決まる。
データ誤差の問題以外にもオーバヘッドの問題がある。すなわち、固定の同期間隔を設ける方法では、同期の間隔を短くすれば、より正しい動作を実現できるが、逆に、同期処理にかかるオーバヘッドを大きくするので全体処理にかかる時間が増加する。
したがって、同期の間隔を固定にして最大限まで小さくする、というアプローチは、データ誤差とオーバヘッドの両面から現実的な解法とはなりえない。
上述したことから理解されるように、シミュレーションの高速化には同期頻度の軽減が必要であるが、そのためには、各シミュレータまたはエミュレータ間の出力イベントのタイミングを予測する必要がある。
トランザクション・レベルのシミュレーションでは、出力イベントは入力時点で登録されるため、出力のタイミングは予測可能である。しかし、ECUエミュレータあるいはプロセッサ・エミュレータである命令セット・シミュレータ(ISS:Instruction Set Simulator)は、実行するまで出力のタイミングが分からないため、ISSだけがイベント同期できないという問題がある。そしてこのことが、I/Oクロック精度でシミュレーションを高速化する上での阻害要因になっている。
V−HILSの従来技術として、特開2007−11720号公報は、複雑な構成のシステムに対応しつつ、システムシミュレータの構成を柔軟に変更可能とすることを解決すべき課題とするもので、システムシミュレータを、CPUの動作をシミュレートするインストラクションセットシミュレータ、バスの動作をシミュレートするバスシミュレータ、ペリフェラルの動作をシミュレートするペリフェラルシミュレータの3種類で構成し、各シミュレータ間で互いの状態を参照・変更可能な各インターフェースをそれぞれ設けることを開示する。しかし、この従来技術は、ペリフェラルとCPUあるいはECUの間の同期を最適化する技法について示唆するものではない。
特開2010−134839号公報は、コンピュータによって実装される、シミュレーション・システムにおいて、連続系シミュレータと、離散系シミュレータと、前記連続系シミュレータから前記離散系シミュレータに送られるパルスのエッジ信号の情報を時間付きで保存するエッジ保存手段と、前記離散系シミュレータのイベントの発生時間を、ロールバック可能時間として保存する手段と、前記連続系シミュレータのロールバック動作に応答して、該ロールバックの発生時間より前の前記離散系シミュレータの前記ロールバック可能時間を検索する検索手段と、前記検索手段によって見出された前記ロールバック可能時間に対応する前記エッジ信号を、前記エッジ保存手段から読み出して、前記離散系シミュレータに送る手段を設けることを開示する。特に、エッジ保存手段などは、テーブルとして記録される。しかし、この従来技術も、ペリフェラルとECUの間の同期軽減の問題に対する解決策を示唆するものではない。
特開2007−11720号公報 特開2010−134839号公報
従って、この発明の目的は、シミュレーションで使用されるISSの出力タイミングを高い精度で予測可能とする技法を提供することにある。
この発明の他の目的は、ISSの出力タイミングを予測することにより、シミュレーションの速度を向上させることにある。
この発明が適用されるシミュレーション・システムは、典型的には、プラント・シミュレータと、プロセッサ・エミュレータであるISSと、プラント・シミュレータとISSの間をインターフェースするペリフェラル・シミュレータと、全体のタイミングを取り仕切るためのスケジューラを有する。
ペリフェラル・シミュレータは、プラント・シミュレータからの連続パルス信号を受け取り、割込みイベント信号に変換して、プロセッサ・エミュレータに入力する。プロセッサ・エミュレータは、割込みイベント信号に応答してペリフェラル・シミュレータに、I/O命令を返す。ペリフェラル・シミュレータはさらに、プロセッサ・エミュレータから入力されたI/O命令を、パルスに変換して、プラント・シミュレータに入力する。
そのとき、プラント・シミュレータからの連続パルス信号のタイミングも、ペリフェラル・シミュレータの割込みイベント信号も、所定のスケジュールに従い予測可能であるが、プロセッサ・エミュレータ(ISS)からのI/O命令のタイミングは従来予測不可能であった。
そこで、本発明によれば、ISSにより実行されるプログラム・コードを予め解析して、ISSの実行のプログラム・カウンタ毎に、命令のサイクル数に基づき、I/O命令到達予測時間が推定され、そのとき出されるI/O命令の種類とともに、第1段階テーブルとして、システムのハードディスク・ドライブなどに記録される。この処理は、好適には、所定のプログラム・ツールにより、ISSにより実行されるプログラム・コードを静的に解析することによって実行される。
このようにして第1段階テーブルが作成されると、スケジューラは、命令セット・シミュレータを介して、その実行プログラム・カウンタの値で、第1段階テーブルを引くことによって、I/O命令到達予測時間と、そのとき出力されるI/O命令の情報を得る。
この発明の別の側面によれば、I/O命令に対するペリフェラル・シミュレータからの最速出力イベント時間の表(第2段階テーブル)が用意され、やはりシステムのハードディスク・ドライブなどに記録される。第2段階テーブルは、第1段階テーブルから得られたI/O命令で以って表引きされ、同期の削減に伴う、より高速なシミュレーションの実行を可能ならしめる。
この情報を用いると、スケジューラは、プラント・シミュレータ、ペリフェラル・シミュレータ及びISSのうち、最も近い将来に起こるイベントの時間を知ることができるので、シミュレーションの細粒クロックに拘ることなく、そのイベントの時間まで、プラント・シミュレータ、ペリフェラル・シミュレータ及びISSを一気に進めることによって、シミュレーションを高速に実行することができる。
この発明によれば、ISSの処理番地に基づき表引きされてI/O命令到達予測時間を返す第1段階テーブルを用意したことによって、ISSがI/O命令を出力するタイミングを正確に予測することが可能となり、そのタイミング情報を用いることにより、スケジューラが、プラント・シミュレータ、ペリフェラル・シミュレータ及びISSのうち、最も近い将来に起こるイベントの時間を知ることができるので、そのイベントの時間まで、プラント・シミュレータ、ペリフェラル・シミュレータ及びISSを一気に進めることによって、シミュレーションを高速に実行することができる。
また、I/O命令からペリフェラル・シミュレータの最速イベント出力時間を与える第2段階テーブルを用いることによって、最も近い将来に起こるイベントの時間をより先まで予測して、シミュレーションをさらに高速に実行することができる。
本発明を実施するためのハードウェアの一例の構成を示すブロック図である。 本発明を実施するための機能構成の一例の構成を示すブロック図である。 第1段階テーブルを作成する処理のフローチャートを示す図である。 第1段階テーブルを作成する処理のフローチャートを示す図である。 第2段階テーブルを作成する処理のフローチャートを示す図である。 第1段階テーブルと第2段階テーブルの関係を示す図である。 シミュレーション動作のフローチャートを示す図である。 本発明によるシミュレーション動作におけるタイミングを示す図である。 従来の典型的なシミュレーション動作におけるタイミングを示す図である。
以下、図面を参照して、本発明の一実施例の構成及び処理を説明する。以下の記述では、特に断わらない限り、図面に亘って、同一の要素は同一の符号で参照されるものとする。なお、ここで説明する構成と処理は、一実施例として説明するものであり、本発明の技術的範囲をこの実施例に限定して解釈する意図はないことを理解されたい。
図1を参照すると、本発明の一実施例に係るシステム構成及び処理を実現するためのコンピュータ・ハードウェアのブロック図が示されている。図1において、システム・バス102には、CPU104と、主記憶(RAM)106と、ハードディスク・ドライブ(HDD)108と、キーボード110と、マウス112と、ディスプレイ114が接続されている。CPU104は、好適には、32ビットまたは64ビットのアーキテクチャに基づくものであり、例えば、インテル社のPentium(商標)4、インテル社のCore(商標) 2 DUO、Core(商標) 2 quad、Xeon(商標)、AMD社のAthlon(商標)などを使用することができる。主記憶106は、好適には、2GB以上の容量、より好ましくは、4GB以上の容量をもつものである。
ハードディスク・ドライブ108には、オペレーティング・システムが、格納されている。オペレーティング・システムは、Linux(商標)、マイクロソフト社のWindows 7、Windows XP(商標)、Windows(商標)2000、アップルコンピュータのMac OS(商標)などの、CPU104に適合する任意のものでよい。
ハードティスク・ドライブ108にはさらに、図2に関連して後述する命令セット・シミュレータ216で実行されるプログラム・コード202、第1段階テーブル作成モジュール204、作成された第1段階テーブル206、ペリフェラル・シミュレータの仕様情報のファイル208、第2段階テーブル作成モジュール210、作成された第2段階テーブル212、プラント・シミュレータ214、命令セット・シミュレータ216、ペリフェラル・シミュレータ218及びスケジューラ220が保存されている。
第1段階テーブル作成モジュール204及び第2段階テーブル作成モジュール210は、C、C++、C#、Java(R)などの任意のプログラム言語で書くことができる。
第1段階テーブル206及び第2段階テーブル212は、CSV、XMLなどの、表を表現可能な任意の形式で、ハードティスク・ドライブ108に保存され、シミュレーションの実行時には、好適には、命令セット・シミュレータ216によってアクセスしやすいように、予め主記憶106にロードされる。
プラント・シミュレータ214は、好適には、MATLAB(R)/Simulink(R)のような連続的数値シミュレーション・モデリング・システムで作成される。ペリフェラル・シミュレータ218は、トランザクション型のエミュレータであり、好適には、SystemC/TLMで作成される。命令セット・シミュレータ(ISS)216は、プロセッサ・エミュレータとも呼ばれ、自動車のシステムでは、エンジン、ブレーキなどのプラントを制御するためのECUの役割を果たす。
キーボード110及びマウス112は、オペレーティング・システムが提供するグラフィック・ユーザ・インターフェースに従い、シミュレーションを開始したり、所定のパラメータを入力したりするために使用される。
次に、図2のブロック図を参照して、本発明を実施するための機能構成について説明する。図2において、ISSで実行されるゲスト・コード202は、命令セット・シミュレータ(ISS)216が実行するコードであり、好適には、実行可能なバイナリ・コードである。第1段階テーブル作成モジュール204は、ISSで実行されるゲスト・コード202を、命令番地に沿って静的に解析し、第1段階テーブル206を作成して、ハードティスク・ドライブ108に書き込み、保存する。第1段階テーブル206の作成処理は、図3及び図4のフローチャートを参照して、後で説明する。
仕様入力208と示されているブロックは、好適には、ペリフェラル・シミュレータ218の仕様を記述した所定のフォーマットのファイルによる入力であるが、キーボード110を用いた手入力でもよい。
第2段階テーブル作成モジュール210は、仕様入力208の情報に基づき、第2段階テーブル212をを作成して、ハードティスク・ドライブ108に書き込み、保存する。第2段階テーブル212の作成処理は、図5のフローチャートを参照して後で説明する。
プラント・シミュレータ214は、エンジンなどの動力装置、トランスミッションなどの動力伝達装置、ステアリングなどの走行装置、及びブレーキ装置などの自動車の機構装置をシミュレートする。
ペリフェラル・シミュレータ218は、プラント・シミュレータ214からの連続パルス信号を受け取り、割込みイベント信号に変換して、プロセッサ・エミュレータあるいはECUエミュレータである命令セット・シミュレータ216に入力する。命令セット・シミュレータ216は割込みイベント信号に応答してペリフェラル・シミュレータ218に、I/O命令を返す。ペリフェラル・シミュレータ218はさらに、ペリフェラル・シミュレータ218から入力されたI/O命令を、パルスに変換して、プラント・シミュレータ214に入力する。
スケジューラ220は、プラント・シミュレータ214、命令セット・シミュレータ216及びペリフェラル・シミュレータ218の個々に対して、時間tを与えてその時間まで進めることと、完了後にプラント・シミュレータ214、命令セット・シミュレータ216及びペリフェラル・シミュレータ218の個々から完了通知を受け取る機能をもつ。
従来技術の問題点は、命令セット・シミュレータ216からI/O命令が出されるタイミングが予測不可能であったことである。これを解消するため、本発明によれば、命令セット・シミュレータ216は、スケジューラ220からの問い合わせに応答して、そのプログラム・カウンタの値に基づき、予め用意された第1段階テーブル206を表引き(table look-up)して、I/O命令を出力するタイミングの予測値を提供する。
命令セット・シミュレータ216はさらに、第1段階テーブル206の表引きによって得られたI/O命令の種類に基づき、第2段階テーブル212を表引きして、ペリフェラル・シミュレータからの最速出力イベント時間の値を得る。図8に示すように、第1段階テーブル206の表引きによって得られたI/O命令到達予測時間の値と、第2段階テーブル212の表引きによって得られたペリフェラル・シミュレータからの最速出力イベント時間の値の合計が、次のイベントまでの予測時間となる。
第1段階テーブル206及び第2段階テーブル212を表引きしつつシミュレーションを行う処理については、図7のフローチャートを参照して、後で説明する。
次に、図3及び図4のフローチャートを参照して、第1段階テーブル作成モジュール204が第1段階テーブルを作成する処理を説明する。
第1段階テーブル作成モジュール204は、命令セット・シミュレータ(ISS)216が停止する可能性のある全てのアドレスについて1つずつ、ステップ302からステップ308までを繰り返す。ここで、命令セット・シミュレータ216が停止しなければならないケースとは、ペリフェラル・シミュレータ218から割り込みを受ける場合と、ペリフェラル・シミュレータ218に、Read/Writeコマンドを出力する場合の2つである。ペリフェラル・シミュレータ218は、I/Oクロックで動作しているため、命令セット・シミュレータ216は、ペリフェラル・シミュレータ218からの割り込みを、I/Oクロックの境界で受け取ることになる。従って、命令セット・シミュレータ216が停止する可能性があるのは、「I/Oクロックの境界」及び「Read/Writeコマンドを実行するタイミング」の2つで、これらは、命令セット・シミュレータ216のバイナリ・コードを静的に解析することによって検出することができる。
第1段階テーブル作成モジュール204は、ステップ304で、探索ルーチンを呼び出す。この探索ルーチンについては、図4のフローチャートを参照して、後で説明する。
ステップ306では、第1段階テーブル作成モジュール204は、ステップ304での探索中にチャージしたサイクル数から、I/O命令到着予測時間を求め、次のI/O命令の種別とともに、表、すなわち、第1段階テーブル206に登録する。図7には、第1段階テーブル206が、「プログラムカウンタ」、「I/O命令到達予測時間」、及び「次のI/O命令」という3つのフィールドをもつことと、その具体的なエントリの例が示されている。1クロックの時間幅は既知なので、それに得られたサイクル数を掛けることで、I/O命令到着予測時間が得られる。
ステップ308は、ループの終端であり、処理は、命令セット・シミュレータ(ISS)216が停止する可能性のある全てのアドレスを走査するまで、ステップ302に戻る。
次に、図4のフローチャートを参照して、ステップ304での探索ルーチンについて説明する。
第1段階テーブル作成モジュール204は、ステップ402で、命令を読み込み、ステップ404で、読み込んだ命令のサイクル数をチャージ、すなわちある所定の変数に加算する。ここで、命令のサイクル数とは、その命令が占めるサイクルの数である。
ステップ406で、第1段階テーブル作成モジュール204は、読み込んだ命令がLoadまたはStoreかどうかを判断し、もしそうなら、ステップ408に進みそこで、Load/Storeの対象アドレス範囲をチェックする。これは、例えば、次のような処理により行われる。これは、Load/Storeアクセスが、メインメモリに対するものか、ペリフェラルに対するものかを判別するため、Load/Storeで指定されたアドレスの範囲をチェックすることを意図している。その処理をプログラムのコードで示すと以下のとおりである。
あるCPUのメインメモリが「0x00000000 - 0x10000000」のアドレス・レンジにマップされているとすると、このチェックを行うコードは、
if ((address >= 0x00000000) && (address <= 0x10000000)) {
Load/Storeの対象がメインメモリの場合の処理
}
else { /* メインメモリ以外へのアクセスは全てペリフェラルへのアクセスであると判断する */
Load/Storeの対象がペリフェラルの場合の処理
}
その処理の結果、ステップ410で、第1段階テーブル作成モジュール204が、ペリフェラル・シミュレータ218に対するLoad/Storeであると判断すると、ステップ412で、これまでにチャージしたサイクル数を次のI/O命令までの予測サイクル数として処理を終了する。
ステップ410で、Unknown、すなわちアドレスから判別できない場合は、全てペリフェラル・シミュレータ218に対するLoad/Storeであると保守的に判断して、ステップ412の処理を行う。
ステップ410で、第1段階テーブル作成モジュール204が、ペリフェラル・シミュレータ218に対するLoad/Storeでないと判断すると、ステップ414で、CPU待ち状態かどうかの判断を行う。CPU待ち状態とは、busy loop, yieldなどである。もしそうなら、ステップ416に進み、第1段階テーブル作成モジュール204は、次のI/O命令までのサイクル数を∞、すなわち現実的にはありえない大きい数字としてセットし、処理を終了する。
ステップ414で、第1段階テーブル作成モジュール204がCPU待ち状態でないと判断すると、ステップ418で、読み込んだ命令が分岐命令かどうかの判断を行う。もしそうなら、ステップ420で、第1段階テーブル作成モジュール204は、分岐幅を幅優先に探索し、次のI/O命令までのサイクル数が最も少ない経路が確定した時点で、予測サイクル数を確定し、分岐先の探索を終了する。こうして、処理を終了する。
ステップ418で、読み込んだ命令が分岐命令でないなら、第1段階テーブル作成モジュール204は、ステップ422で、解析対象アドレスを次の命令に進め、ステップ402に戻る。
次に、図5のフローチャートを参照して、第2段階テーブル作成モジュール210が第2段階テーブル212を作成する処理を説明する。
図5において、ステップ502からステップ518までのループにおいて、第2段階テーブル作成モジュール210は、I/O命令のリストから、表、すなわち第2段階テーブル212に、未登録の命令を一つずつ処理していく。ここでの命令の入力は、図2で仕様入力208のブロックで示したように、仕様を記述したファイルから命令の仕様を1つずつ読み込んでもいいし、担当者が仕様を見ながら、手入力で打ち込んでもいい。あるいは、第2段階テーブル作成モジュール210が、データを入力するためのパネルを表示してもよい。すなわち、そのパネルには、図5のフローチャートの判断ブロックに示すような選択肢があり、適宜ラジオ・ボタンをクリックしながら、エントリを埋めていくようにしてもよい。
ステップ504では、第2段階テーブル作成モジュール210は、当該のI/O命令の種類がReadかどうか判断する。もしそうなら、第2段階テーブル作成モジュール210は、ステップ506で、0を第2段階テーブル212に登録して、ステップ502に戻る。
当該のI/O命令の種類がReadでないなら、第2段階テーブル作成モジュール210は、ステップ508で、当該のI/O命令の種類が割り込みを引き起こすWriteかどうか判断し、もしそうでないなら、特に出力イベントはないので、ステップ510で∞を第2段階テーブル212に登録して、ステップ502に戻る。
当該のI/O命令の種類が割り込みを引き起こすWriteであるなら、第2段階テーブル作成モジュール210は、ステップ512で、割り込み発生までの時間がペリフェラル・シミュレータ218の状態に拘わらず一定かどうか判断し、そうでないなら、ステップ514で0を第2段階テーブル212に登録して、ステップ502に戻る。
割り込み発生までの時間がペリフェラル・シミュレータ218の状態に拘わらず一定であるなら、第2段階テーブル作成モジュール210は、ステップ516で、バス・トランザクションの終了から割り込み発生までの時間を、仕様に基づき第2段階テーブル212に登録して、ステップ502に戻る。
こうして、想定される全てのI/O命令を網羅したと確認する担当者の操作に応答して、第2段階テーブル作成モジュール210は、ステップ518で抜けて、処理を終了する。このような処理の結果として作成された第2段階テーブル212のエントリの例を、図6に示す。
次に、図7のフローチャートを参照して、第1段階テーブル206及び第2段階テーブル212を用いたシミュレーション動作について説明する。
図7のステップ702では、スケジューラ220が、各シミュレータ、すなわち、プラント・シミュレータ214、ペリフェラル・シミュレータ218及び命令セット・シミュレータ216に、次の出力イベントまでの時間を問い合わせる。
ステップ704で、プラント・シミュレータ214とペリフェラル・シミュレータ218は、入力があった時点で、予め出力イベントの時間を計算しているので、その時間をスケジューラ220に通知する。一方、命令セット・シミュレータ216は、本来は、予め出力イベントの時間を計算することはできないが、スケジューラ220から問い合わせを受けた時点での自身のプログラム・カウンタの値を基に、第1段階テーブル206を表引きし、その表引きの結果の「次のI/O命令」のエントリで以って、第2段階テーブル206を表引きする。そして、第1段階テーブル206を表引きして得られた「I/O命令到達予測時間」の値と、第2段階テーブル212の表引きによって得られた「ペリフェラル・シミュレータからの最速出力イベント時間」の値の合計を、次の出力イベントまでの時間として、スケジューラ220に返す。この様子は、図8のタイミング図に示されている。
次に、ステップ706では、スケジューラ220は、最も近い将来における出力イベントまでの時間を次のタイムクォンタムとする。
ステップ708では、スケジューラ220は、ステップ706で決定したタイムクォンタムで、プラント・シミュレータ214、命令セット・シミュレータ216及びペリフェラル・シミュレータ218を実行する。
ステップ710では、シミュレーション終了かどうか判断され、もしそうならシミュレーションが終了し、そうでないならステップ702に戻って、シミュレーションが継続される。
図9は、比較のため、従来のシミュレーション・システムのタイミング図を示す。すなわち、従来の手法では、命令セット・シミュレータ216がI/O命令を出力するタイミングが予測できないので、システムのクロック毎にプラント・シミュレータ214、命令セット・シミュレータ216及びペリフェラル・シミュレータ218を同期させる必要があり、このことは明らかにシミュレーション速度の低下をもたらす。
なお、この実施例では、図6に示すように、第1段階テーブル206と第2段階テーブル212の両方が使用されているが、第1段階テーブル206だけ使用し、第2段階テーブル212は使用しないでも、所定の目的は達成できる。その場合、スケジューラ220からの問い合わせに応答して、命令セット・シミュレータ216は、第1段階テーブル206を表引きし、「I/O命令到達予測時間」の値を得て、その時間を次のイベントまでの時間としてスケジューラ220に返すことになる。第1段階テーブル206だけを使用する実施例では、「次のI/O命令」のフィールドが不要である。第2段階テーブル212をもたない実施例では、第1段階テーブルを、イベント予測テーブルと呼んでもよい。
また、一般的に、自動車システムは複数のECUをもつので、そのシミュレーション・システムは対応して複数の命令セット・シミュレータをもつことになるが、その場合、個々の命令セット・シミュレータ毎に、第1段階テーブル及び第2段階テーブルが用意されることになる。
以上、特定の実施例に関して本発明の実施例を説明してきたが、本発明は、特定のコンピュータのアーキテクチャやプラットフォームに限定されることなく、マルチタスクを実現可能な任意のプラットフォームで実装可能である。
104 CPU
106 主記憶
108 ハードディスク・ドライブ
202 命令セット・シミュレータで実行されるゲスト・コード
204 第1段階テーブル作成モジュール
206 第1段階テーブル
208 仕様入力
210 第2段階テーブル作成モジュール
212 第2段階テーブル
214 プラント・シミュレータ
216 命令セット・シミュレータ
218 ペリフェラル・シミュレータ
220 スケジューラ

Claims (15)

  1. コンピュータ上で動作するプラント・シミュレータと、命令セット・シミュレータと、ペリフェラル・シミュレータと、スケジューラをもち、前記命令セット・シミュレータに割り込み信号を入力し、前記命令セット・シミュレータは前記ペリフェラル・シミュレータにI/O命令を入力し、前記ペリフェラル・シミュレータは、前記プラント・シミュレータにパルス信号を入力し、前記スケジューラは、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの動作を進める命令を出すシミュレーション・システムの制御方法であって、
    前記コンピュータの記憶手段に、前記命令セット・シミュレータのプログラム・カウンタ毎にI/O命令到着予測時間の値と、I/O命令の種類をエントリとしてもつ第1段階テーブルを保持するステップと、
    前記コンピュータの記憶手段に、前記I/O命令の種類毎に、前記ペリフェラル・シミュレータからの最速出力イベント時間の値をエントリとしてもつ第2段階テーブルを保持するステップと、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータに、次のイベント時間を問い合わせるステップと、
    前記プラント・シミュレータが、前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返すステップと、
    前記ペリフェラル・シミュレータが、前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返すステップと、
    前記命令セット・シミュレータが、前記スケジューラからの問い合わせに応答して、そのプログラム・カウンタの値に基づき、前記第1段階テーブルを表引きして、I/O命令の種類とI/O命令到達予測時間の値を得るとともに、得られたI/O命令の種類に基づき、前記第2段階テーブルを表引きして、ペリフェラル・シミュレータからの最速出力イベント時間の値を得て、該I/O命令到達予測時間の値と、該ペリフェラル・シミュレータからの最速出力イベント時間の値の合計を、次のイベント時間として返すステップと、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの各々から返された次のイベント時間のうち一番早いイベント時間まで、シミュレーションを進めるステップを有する、
    シミュレーション・システムの制御方法。
  2. 前記第1段階テーブルは、前記命令セット・シミュレータが実行するバイナリ・コードの静的解析により作成される、請求項1に記載の方法。
  3. 前記第1段階テーブルは、前記命令セット・シミュレータが停止する可能性がある命令のアドレスでエントリが作成される、請求項2に記載の方法。
  4. コンピュータ上で動作するプラント・シミュレータと、命令セット・シミュレータと、ペリフェラル・シミュレータと、スケジューラをもち、前記命令セット・シミュレータに割り込み信号を入力し、前記命令セット・シミュレータは前記ペリフェラル・シミュレータにI/O命令を入力し、前記ペリフェラル・シミュレータは、前記プラント・シミュレータにパルス信号を入力し、前記スケジューラは、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの動作を進める命令を出すシミュレーション・システムの制御プログラムであって、
    前記コンピュータに、
    前記コンピュータの記憶手段に、前記命令セット・シミュレータのプログラム・カウンタ毎にI/O命令到着予測時間の値と、I/O命令の種類をエントリとしてもつ第1段階テーブルを保持するステップと、
    前記コンピュータの記憶手段に、前記I/O命令の種類毎に、前記ペリフェラル・シミュレータからの最速出力イベント時間の値をエントリとしてもつ第2段階テーブルを保持するステップと、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータに、次のイベント時間を問い合わせるステップと、
    前記プラント・シミュレータが、前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返すステップと、
    前記ペリフェラル・シミュレータが、前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返すステップと、
    前記セット・シミュレータが、前記スケジューラからの問い合わせに応答して、そのプログラム・カウンタの値に基づき、前記第1段階テーブルを表引きして、I/O命令の種類とI/O命令到達予測時間の値を得るとともに、得られたI/O命令の種類に基づき、前記第2段階テーブルを表引きして、ペリフェラル・シミュレータからの最速出力イベント時間の値を得て、該I/O命令到達予測時間の値と、該ペリフェラル・シミュレータからの最速出力イベント時間の値の合計を、次のイベント時間として返すステップと、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの各々から返された次のイベント時間のうち一番早いイベント時間まで、シミュレーションを進めるステップを実行させる、
    シミュレーション・システムの制御プログラム。
  5. 前記第1段階テーブルは、前記命令セット・シミュレータのバイナリ・コードの静的解析により作成される、請求項4に記載のプログラム。
  6. 前記第1段階テーブルは、前記命令セット・シミュレータが停止する可能性がある命令のアドレスでエントリが作成される、請求項5に記載のプログラム。
  7. コンピュータ上で動作するプラント・シミュレータと、命令セット・シミュレータと、ペリフェラル・シミュレータと、スケジューラをもち、前記命令セット・シミュレータに割り込み信号を入力し、前記命令セット・シミュレータは前記ペリフェラル・シミュレータにI/O命令を入力し、前記ペリフェラル・シミュレータは、前記プラント・シミュレータにパルス信号を入力し、前記スケジューラは、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの動作を進める命令を出すシミュレーション・システムであって、
    記憶手段と、
    前記記憶手段に保持され、前記命令セット・シミュレータのプログラム・カウンタ毎にI/O命令到着予測時間の値と、I/O命令の種類をエントリとしてもつ第1段階テーブルと、
    前記コンピュータの記憶手段に保持され、前記I/O命令の種類毎に、前記ペリフェラル・シミュレータからの最速出力イベント時間の値をエントリとしてもつ第2段階テーブルと、
    前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータに、次のイベント時間を問い合わせる機能をもつ前記スケジューラと、
    前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返す機能をもつ前記プラント・シミュレータと、
    前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返す機能をもつ前記ペリフェラル・シミュレータと、
    前記スケジューラからの問い合わせに応答して、そのプログラム・カウンタの値に基づき、前記第1段階テーブルを表引きして、I/O命令の種類とI/O命令到達予測時間の値を得るとともに、得られたI/O命令の種類に基づき、前記第2段階テーブルを表引きして、ペリフェラル・シミュレータからの最速出力イベント時間の値を得て、該I/O命令到達予測時間の値と、該ペリフェラル・シミュレータからの最速出力イベント時間の値の合計を、次のイベント時間として返す機能をもつ前記命令セット・シミュレータとを有し、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの各々から返された次のイベント時間のうち一番早いイベント時間まで、シミュレーションを進める機能をさらに有する、
    シミュレーション・システム。
  8. 前記第1段階テーブルは、前記命令セット・シミュレータのバイナリ・コードの静的解析により作成される、請求項7に記載のシステム。
  9. 前記第1段階テーブルは、前記命令セット・シミュレータが停止する可能性がある命令のアドレスでエントリが作成される、請求項8に記載のシステム。
  10. コンピュータ上で動作するプラント・シミュレータと、命令セット・シミュレータと、ペリフェラル・シミュレータと、スケジューラをもち、前記命令セット・シミュレータに割り込み信号を入力し、前記命令セット・シミュレータは前記ペリフェラル・シミュレータにI/O命令を入力し、前記ペリフェラル・シミュレータは、前記プラント・シミュレータにパルス信号を入力し、前記スケジューラは、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの動作を進める命令を出すシミュレーション・システムの制御方法であって、
    前記コンピュータの記憶手段に、前記命令セット・シミュレータのプログラム・カウンタ毎にI/O命令到着予測時間の値をエントリとしてもつイベント予測テーブルを保持するステップと、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータに、次のイベント時間を問い合わせるステップと、
    前記プラント・シミュレータが、前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返すステップと、
    前記ペリフェラル・シミュレータが、前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返すステップと、
    前記命令セット・シミュレータが、前記スケジューラからの問い合わせに応答して、そのプログラム・カウンタの値に基づき、前記イベント予測テーブルを表引きして、I/O命令到達予測時間の値を得て、次のイベント時間として返すステップと、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの各々から返された次のイベント時間のうち一番早いイベント時間まで、シミュレーションを進めるステップを有する、
    シミュレーション・システムの制御方法。
  11. 前記イベント予測テーブルは、前記命令セット・シミュレータが実行するバイナリ・コードの静的解析により作成される、請求項10に記載の方法。
  12. 前記イベント予測テーブルは、前記命令セット・シミュレータが停止する可能性がある命令のアドレスでエントリが作成される、請求項11に記載の方法。
  13. コンピュータ上で動作するプラント・シミュレータと、命令セット・シミュレータと、ペリフェラル・シミュレータと、スケジューラをもち、前記命令セット・シミュレータに割り込み信号を入力し、前記命令セット・シミュレータは前記ペリフェラル・シミュレータにI/O命令を入力し、前記ペリフェラル・シミュレータは、前記プラント・シミュレータにパルス信号を入力し、前記スケジューラは、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの動作を進める命令を出すシミュレーション・システムの制御プログラムであって、
    前記コンピュータに、
    前記コンピュータの記憶手段に、前記命令セット・シミュレータのプログラム・カウンタ毎にI/O命令到着予測時間の値をエントリとしてもつイベント予測テーブルを保持するステップと、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータに、次のイベント時間を問い合わせるステップと、
    前記プラント・シミュレータが、前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返すステップと、
    前記ペリフェラル・シミュレータが、前記スケジューラからの問い合わせに応答して、予め計算した次のイベント時間を返すステップと、
    前記命令セット・シミュレータが、前記スケジューラからの問い合わせに応答して、そのプログラム・カウンタの値に基づき、前記イベント予測テーブルを表引きして、I/O命令到達予測時間の値を得て、次のイベント時間として返すステップと、
    前記スケジューラが、前記プラント・シミュレータと、前記命令セット・シミュレータと、前記ペリフェラル・シミュレータの各々から返された次のイベント時間のうち一番早いイベント時間まで、シミュレーションを進めるステップを実行させる、
    シミュレーション・システムの制御プログラム。
  14. 前記イベント予測テーブルは、前記命令セット・シミュレータが実行するバイナリ・コードの静的解析により作成される、請求項13に記載のプログラム。
  15. 前記イベント予測テーブルは、前記命令セット・シミュレータが停止する可能性がある命令のアドレスでエントリが作成される、請求項14に記載のプログラム。
JP2010235295A 2010-10-20 2010-10-20 シミュレーション制御方法、システム及びプログラム Expired - Fee Related JP5528294B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010235295A JP5528294B2 (ja) 2010-10-20 2010-10-20 シミュレーション制御方法、システム及びプログラム
US13/246,052 US20120101791A1 (en) 2010-10-20 2011-09-27 Controlling simulation systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010235295A JP5528294B2 (ja) 2010-10-20 2010-10-20 シミュレーション制御方法、システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2012088951A true JP2012088951A (ja) 2012-05-10
JP5528294B2 JP5528294B2 (ja) 2014-06-25

Family

ID=45973706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010235295A Expired - Fee Related JP5528294B2 (ja) 2010-10-20 2010-10-20 シミュレーション制御方法、システム及びプログラム

Country Status (2)

Country Link
US (1) US20120101791A1 (ja)
JP (1) JP5528294B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014211806A (ja) * 2013-04-19 2014-11-13 キヤノン株式会社 統合シミュレータ装置、シミュレーション方法、及びプログラム
JP2015022544A (ja) * 2013-07-19 2015-02-02 スパンション エルエルシー シミュレーション制御方法、シミュレーション制御プログラム、およびシミュレーション制御装置
JP2015170081A (ja) * 2014-03-06 2015-09-28 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2515685B (en) * 2012-03-30 2019-02-20 Mitsubishi Electric Corp Air conditioner testing system, air-conditioning system simulator, and program
EP2866111B1 (de) * 2013-10-28 2019-05-15 dSPACE digital signal processing and control engineering GmbH Testen eines Steuergerätes mittels einer Testumgebung
WO2016020477A1 (en) * 2014-08-07 2016-02-11 Osr Enterprises Ag Device, system and method for automated installation and operating environment configuration of a computer system
WO2016194028A1 (ja) * 2015-05-29 2016-12-08 三菱電機株式会社 シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
WO2017039680A1 (en) 2015-09-04 2017-03-09 Halliburton Energy Services, Inc. Time-to-finish simulation forecaster
US10037016B2 (en) * 2016-03-23 2018-07-31 GM Global Technology Operations LLC Hybrid dual-duplex fail-operational pattern and generalization to arbitrary number of failures
WO2020089664A1 (en) * 2018-10-29 2020-05-07 Siemens Industry Software Ltd. A method and a system for synchronizing a first and a second simulation system
CN110007962A (zh) * 2019-03-08 2019-07-12 浙江大学 一种基于代码自动生成的指令集模拟方法
US11550958B2 (en) * 2020-12-15 2023-01-10 Robert Bosch Gmbh System and method for confidential multi-party software in the loop simulation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074214A (ja) * 1996-08-30 1998-03-17 Toshiba Corp ハードウェア/ソフトウェア協調シミュレータ及びシミュレーション方法
JPH1091480A (ja) * 1996-09-12 1998-04-10 Nec Corp コンピュータプログラムのシミュレーション装置および方法
JP2006350549A (ja) * 2005-06-14 2006-12-28 Hitachi Ltd 統合シミュレーションシステム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4468410B2 (ja) * 2007-06-21 2010-05-26 株式会社東芝 ソフトウェア実行装置および協調動作方法
JP5179249B2 (ja) * 2008-05-09 2013-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 制御装置シミュレーション方法、システム及びプログラム
JP5395397B2 (ja) * 2008-10-16 2014-01-22 富士通テン株式会社 シミュレーションシステム
JP5065344B2 (ja) * 2009-07-14 2012-10-31 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP4802266B2 (ja) * 2009-09-04 2011-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム及びコンピュータ・システムにおけるデータ転送方法
CN103098032B (zh) * 2010-08-20 2015-10-14 国际商业机器公司 仿真方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074214A (ja) * 1996-08-30 1998-03-17 Toshiba Corp ハードウェア/ソフトウェア協調シミュレータ及びシミュレーション方法
JPH1091480A (ja) * 1996-09-12 1998-04-10 Nec Corp コンピュータプログラムのシミュレーション装置および方法
JP2006350549A (ja) * 2005-06-14 2006-12-28 Hitachi Ltd 統合シミュレーションシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014211806A (ja) * 2013-04-19 2014-11-13 キヤノン株式会社 統合シミュレータ装置、シミュレーション方法、及びプログラム
JP2015022544A (ja) * 2013-07-19 2015-02-02 スパンション エルエルシー シミュレーション制御方法、シミュレーション制御プログラム、およびシミュレーション制御装置
JP2015170081A (ja) * 2014-03-06 2015-09-28 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム

Also Published As

Publication number Publication date
US20120101791A1 (en) 2012-04-26
JP5528294B2 (ja) 2014-06-25

Similar Documents

Publication Publication Date Title
JP5528294B2 (ja) シミュレーション制御方法、システム及びプログラム
Gerstlauer et al. RTOS modeling for system level design
JP5379862B2 (ja) シミュレーション方法、システム及びプログラム
US7155690B2 (en) Method for co-verifying hardware and software for a semiconductor device
Müller et al. Design of an automotive traffic sign recognition system targeting a multi-core SoC implementation
US8161502B2 (en) Method and apparatus for implementing a task-based interface in a logic verification system
US20230376281A1 (en) Systems and methods for generating service access points for rte services in code or other rte service information for use with the code
Di Guglielmo et al. UNIVERCM: the UNIversal VERsatile Computational Model for heterogeneous system integration
JP5224957B2 (ja) シミュレーション方法、システム及びプログラム
US20110218795A1 (en) Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores
Zimmermann et al. Model-driven virtual prototyping for real-time simulation of distributed embedded systems
Plyaskin et al. High-level timing analysis of concurrent applications on MPSoC platforms using memory-aware trace-driven simulations
US8412496B2 (en) Simulation system, method, and program
US9507741B2 (en) System-on-chip design structure
US9612863B2 (en) Hardware device for accelerating the execution of a systemC simulation in a dynamic manner during the simulation
do Nascimento et al. Modes: Embedded systems design methodology and tools based on mde
Ishikawa et al. CPU model-based hardware/software co-design, co-simulation and analysis technology for real-time embedded control systems
JP6249827B2 (ja) シミュレーション装置及びシミュレーションプログラム
Ishikawa et al. CPU model-based hardware/software co-design for real-time embedded control systems
Chakraborty et al. Timing and schedulability analysis for distributed automotive control applications
Lu et al. Removal of unnecessary context switches from the systemc simulation kernel for fast vp simulation
Madlener et al. SC-DEVS: An efficient SystemC extension for the DEVS model of computation
Ruf et al. Checking temporal properties under simulation of executable system descriptions
Martin et al. Configurable, extensible processor system simulation
Ouni High-level energy characterization, modeling and estimation for OS-based platforms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140415

R150 Certificate of patent or registration of utility model

Ref document number: 5528294

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees