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

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

Info

Publication number
JP5379862B2
JP5379862B2 JP2011536125A JP2011536125A JP5379862B2 JP 5379862 B2 JP5379862 B2 JP 5379862B2 JP 2011536125 A JP2011536125 A JP 2011536125A JP 2011536125 A JP2011536125 A JP 2011536125A JP 5379862 B2 JP5379862 B2 JP 5379862B2
Authority
JP
Japan
Prior art keywords
peripheral
emulators
emulator
processor
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011536125A
Other languages
English (en)
Other versions
JPWO2011046089A1 (ja
Inventor
周一 清水
秀昭 小松
浩一 梶谷
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 JP2011536125A priority Critical patent/JP5379862B2/ja
Publication of JPWO2011046089A1 publication Critical patent/JPWO2011046089A1/ja
Application granted granted Critical
Publication of JP5379862B2 publication Critical patent/JP5379862B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

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プロセッサをエミュレートする Virtual Processor-in-the-Loop Simulation (V−PILS)、そして、(4)ECUボードを完全に実装して、リアルタイム・プラント・シミュレーションと接続する Hardware-in-the-Loop Simulation (HILS) の4種類の方式があり、 この順序で、よりプロトタイプに近くなる。
MILS/SILSは主に、プラントの基本的な性能を引き出すための試行錯誤フェーズに用いられている。しかし、実際にECUに搭載されるソフトウエアとは異なる動作をするので、製品の検証用途には利用することができない。一方、V−PILSは完成したECUソフトウエアを利用するので、ソフトウエアの期待しない動作(バグ)を発見して解決するための方式として非常に有望視されているが、再現性のある動作を達成するものとしては、まだ実現した例はない。HILSは、完成したECUボードの最終的な動作確認のために必ず実施されるが、障害が見つかっても再現性が保障されないのでデバッグ目的には利用できない。
HILSにおいて動作が再現できない理由は、HILSの構成が不完全だからではなく、CANなどのネットワークにより各ECUが相互に接続しているためである。一般に、ネットワークはモジュール間の疎な結合を実現しているため、モジュール動作の微妙なタイミングの違いでデータの到着順序が入れ替わり、結果として、システム全体の挙動が異なることがある。したがって、たとえ実車をプロトタイプしたとしても、動作の再現性は期待できない。並列分散システムのデバッグが非常に困難であることと同じ理由である。
このように、HILSの構成のまま、すなわち、ECUボードとプラント・シミュレータとの疎結合という構成のままでは、それぞれのコンポーネントを高速化しても動作の一貫性は実現できない。コミュニケーションの順序の一貫性を実現することが、動作の再現性を実現するために必要である。V−PILSは特に、この問題を解消することが期待される。
従来の概念に従う、典型的なV−PILSの構成を図1に示す。この構成は、複数のECUエミュレータと、複数のプラント・シミュレータと、全体の動作をスケジュールするグローバル・スケジューラ110からなる。図1では便宜上、2つのECUエミュレータ102及び104と、2つのプラント・シミュレータ106及び108が図示されているが、実際は図示されているよりも多いECUエミュレータとプラント・シミュレータからなることを理解されたい。
ECUエミュレータ102は、プロセッサ・エミュレータ102aと、ペリフェラル・エミュレータ102bからなる。ECUエミュレータ104も同様であるので、ECUエミュレータ104については、詳しい説明を省略する。
一方、プラント・シミュレータ106には、クロック・コンバータ106aが接続されている。プラント・シミュレータ108も同様であるので、プラント・シミュレータ108については、詳しい説明を省略する。プラント・シミュレータ106は例えは、ブレーキ・シミュレータであり、プラント・シミュレータ108は、エンジン・シミュレータである。
さて、図示されている周波数は、例示的な典型的な動作クロック数である。すなわち、プロセッサ・エミュレータ102aは、80MHzという相対的に高速のクロックで動作する。一方、プラント・シミュレータ106は、物理機構のシミュレータであるため、10KHzという相対的に低速で動作する。
次に、図2のタイミング図を参照して、図1の構成の動作について説明する。固定ステップのクロックででシミュレートされるプラント・シミュレータでは、例えば10KHz、すなわち、100μsの時間ステップで入出力を繰り返す。入力は主にコントローラからの指示信号であり、出力はセンサーに送られる。
ペリフェラル・エミュレータは、ECUエミュレータのI/O のインターフェイス部にあたり、プラント・シミュレータとプロセッサ・エミュレータを相互に接続する。典型的には(平均的には)10MHz 程度の解像度で動作すると捉えることができる。これは、プラント・シミュレータより高速だが、プロセッサ・エミュレータよりは低速となる。ペリフェラル・エミュレータは、プラント・シミュレータに対しては、パルス状の信号を送る。
クロック・コンバータは、ペリフェラル・エミュレータとプラント・シミュレータの間に介在配置されて、ペリフェラル・エミュレータからのクロック信号の周波数を、プラント・シミュレータに適合するように低減し、且つ、プラント・シミュレータからの信号を、ペリフェラル・エミュレータに適合するように周基数を逓増させる機能をもつ。
ペリフェラル・エミュレータは、プロセッサ・エミュレータに対しては、読み書き(R/W)の要求を受けてデータを送受信することと、割り込み(INT)を送ることを行う。特に、プロセッサ間を相互に接続するCAN(controller area network)などネットワークの機能は、ペリフェラル間の通信を必要とする。
組み込み用のプロセッサは、80-100MHz 程度で動作するものが多く、従って、ペリフェラルの時間解像度と比べると10倍程度高速である。プロセッサは、ペリフェラルに対しては、読み書き(R/W)操作を行う。また、ペリフェラルから割り込み信号(INT)を受け取る。
一側面からみると、ペリフェラルは、プラントとプロセッサ、及びプロセッサ間を相互に接続する、システムの中心である。プロセッサは、ペリフェラルよりも細かい時間解像度で R/W 操作を行うが、そのための信号がプラントや他のプロセッサに伝達されるときは、ペリフェラルの時間解像度に支配される。従って、シミュレーション・システム全体では、ペリフェラルの時間解像度でセンサーデータなどの同期処理を行えば、I/O データや割り込みの処理順序は正しく再現される(細粒同期=minimum synchronization)。
一般に、同期の時間間隔を短くすれば、より正しい動作を実現できるが、逆に処理時間のオーバヘッドを大きくするので全体処理にかかる時間が増加する。細粒同期は、これ以上細かくする必要がないという、時間解像度の上限を与えるものである。
1つの解決策は、グローバル・スケジューラ110に従って、図3に示すように、同期の時間間隔を最大公約数まで引き下げることである。これによって、正確性は達成できるが、不要なタイミングでの同期処理が増えるので、同期処理のオーバヘッドが非常に大きくなる。これによって、シミュレーション・システムの処理速度が著しく低下してしまう。
もし、ペリフェラルの処理区切りを明示的に利用することができなければ、最大公約数さえも知ることは難しいので、時間解像度を引き上げる対応により、さらにオーバヘッドは大きくなる。
一方、時間解像度を粗くすると、多くのI/Oデータや割り込みが同一の時間ステップに押し込められることになり、その時間的前後関係の情報が失われる。これは、シミュレーションを正しく実行できていない、つまり、正確性が達成されていない状況である。特に、割り込み処理の実行順序は、ソフトウエアを意図どおりに動作させるためにも非常に重要である。数少ない現存の V−PILSシステムは、この不正確なシミュレーション状況にあり、その順序情報喪失のために、ECUソフトウエアのデバッグも十分に行えていないという重大な問題がある。
特開2007−11720号公報は、複雑な構成のシステムに対応しつつ、システムシミュレータの構成を柔軟に変更可能とすることを解決すべき課題とするもので、システムシミュレータを、CPUの動作をシミュレートするインストラクションセットシミュレータ、バスの動作をシミュレートするバスシミュレータ、ペリフェラルの動作をシミュレートするペリフェラルシミュレータの3種類で構成し、各シミュレータ間で互いの状態を参照・変更可能な各インターフェースをそれぞれ設けることを開示する。しかし、この従来技術は、ペリフェラルとCPU間の同期を最適化する技法について示唆するものではない。
特開2007−11720号公報
この発明の目的は、動作速度を妥当に維持しつつ、シミュレーション動作の再現性を実現することを可能ならしめる、V−PILSを提供することにある。
この発明は、上記課題を解決するためになされたものであり、この発明によれば、ペリフェラル・エミュレータ、プロセッサ・エミュレータ、及びプラント・シミュレータ全体の動作タイミングを制御するペリフェラル・スケジューラが用意される。
この発明によれば、ペリフェラル・スケジューラによる制御を可能ならしめるために、ペリフェラル・エミュレータ、プロセッサ・エミュレータ、及びプラント・シミュレータの各々に個別に対応する完了フラグが用意される。
個々のペリフェラル・エミュレータはそれぞれ、固有の処理の区切りをもつ。典型的にはペリフェラル・エミュレータはSystemCで記述されるので、そのソースコードを、プログラムを用いてスキャンすることによって、固有の処理の区切りを確認することができる。典型的には、wait()と記述された行が区切りとなる。
そのようにして確認された個々のペリフェラル・エミュレータの処理の区切りの情報は、ペリフェラル・スケジューラに関連づけられる。
このような準備の下で、ペリフェラル・スケジューラは、全てのペリフェラル・エミュレータの完了フラグを解除(OFF)することによって、並列動作を開始する。そうして、ペリフェラル・スケジューラは、個々のペリフェラル・エミュレータの処理の区切りの情報に基づき、最も早く処理の区切りを迎える予定のペリフェラル・エミュレータを見出す。それをペリフェラルPと呼ぶことにする。その処理の区切りの時間をTとすると、ペリフェラル・スケジューラは、時間Tに達する時点まで、各プロセッサ・エミュレータと、各プラント・シミュレータの実行を進める。
そうして、ペリフェラル・スケジューラは、ペリフェラルPの完了フラグが設定されるのを待つ。ペリフェラルPは、自身が処理の区切りに達すると、完了フラグを設定する。ペリフェラルPの完了フラグが設定されたことに応答して、ペリフェラル・スケジューラは、ペリフェラルPと、プロセッサ・エミュレータ及びプラント・シミュレータの間でデータを同期させる。
次にペリフェラル・スケジューラは、ペリフェラルPの完了フラグを解除(OFF)して、その動作を再開する。これにより再び、全てのペリフェラル・エミュレータが並列に動作する。
その後、ペリフェラル・スケジューラは、設定された個々のペリフェラル・エミュレータの区切りの情報に基づき、次に最も早く処理の区切りを迎える予定のペリフェラル・エミュレータを見出す。ペリフェラル・スケジューラは、このような、ペリフェラル・エミュレータの処理の区切りのタイミングを基準とした動作スケジューリングで、シミュレーション・システム全体を動作させる。
以上のように、この発明によれば、ペリフェラルを介して個々のモジュールが通信するシミュレーション・システムにおいて、ペリフェラル・エミュレータの処理の区切りのタイミングを基準とした動作スケジューリングによって、処理の再現性が保証される、という効果が得られる。また、ペリフェラル・エミュレータの処理の区切りの情報という、細粒同期よりも粗く且つ処理の再現性が保証される最適な粒度で処理の同期が行われるので、シミュレーションの最適化が達成される。
従来のV−PILSシステムの構成を示すブロック図である。 従来のV−PILSシステムの動作を示すタイミング図である。 最大の粒度で同期させる、従来のV−PILSシステムの動作のタイミング図である。 コンピュータのハードウェア構成のブロック図である。 ペリフェラル・スケジューラ、ペリフェラル・エミュレータ、プロセッサ・エミュレータ及びプラント・シミュレータの論理的な接続関係を示すブロック図である。 本発明のシミュレーション・システムの構成の動作を示すタイミング図である。 ペリフェラル・エミュレータに対する完了フラグの機能を示す図である。 ペリフェラル・スケジューラの動作のフローチャートを示す図である。 ペリフェラル・エミュレータの動作のフローチャートを示す図である。 プロセッサ・エミュレータに対する完了フラグの機能を示す図である。 プラント・シミュレータに対する完了フラグの機能を示す図である。 プラント・シミュレータの動作のフローチャートを示す図である。
以下、図面を参照して、本発明の一実施例の構成及び処理を説明する。以下の記述では、特に断わらない限り、図面に亘って、同一の要素は同一の符号で参照されるものとする。なお、ここで説明する構成と処理は、一実施例として説明するものであり、本発明の技術的範囲をこの実施例に限定して解釈する意図はないことを理解されたい。
先ず、図4を参照して、本発明を実施するために使用されるコンピュータのハードウェアについて説明する。図4において、ホスト・バス402には、複数のCPU1 404a、CPU2 404b、CPU3 404c、・・・CPUn 404nが接続されている。ホスト・バス402にはさらに、CPU1 404a、CPU2 404b、CPU3 404c、・・・CPUn 404nの演算処理のためのメイン・メモリ406が接続されている。
一方、I/Oバス408には、キーボード410、マウス412、ディスプレイ414及びハードティスク・ドライブ416が接続されている。I/Oバス408は、I/Oブリッジ418を介して、ホスト・バス402に接続されている。キーボード410及びマウス412は、オペレータが、コマンドを打ち込んだり、メニューをクリックするなどして、操作するために使用される。ディスプレイ414は、必要に応じて、処理をGUIで操作するためのメニューを表示するために使用される。
この目的のために使用される好適なコンピュータ・システムのハードウェアとして、IBM(R)System Xがある。その際、CPU1 404a、CPU2 404b、CPU3 404c、・・・CPUn 404nは、例えば、インテル(R)Xeon(R)であり、オペレーティング・システムは、Windows(商標)Server 2003である。オペレーティング・システムは、好適には、マルチタスクの機能を有するものである。オペレーティング・システムは、ハードティスク・ドライブ416に格納され、コンピュータ・システムの起動時に、ハードティスク・ドライブ416からメイン・メモリ406に読み込まれる。
本発明を実施するためには、マルチプロセッサ・システムを用いることが望ましい。ここでマルチプロセッサ・システムとは、一般に、独立に演算処理し得るプロセッサ機能のコアを複数もつプロセッサを用いるシステムを意図しており、従って、マルチコア・シングルプロセッサ・システム、シングルコア・マルチプロセッサ・システム、及びマルチコア・マルチプロセッサ・システムのどれかでよいことを理解されたい。
なお、本発明を実施するために使用可能なコンピュータ・システムのハードウェアは、IBM(R)System Xに限定されず、本発明のシミュレーション・プログラムを走らせることができるものであれば、任意のコンピュータ・システムを使用することができる。オペレーティング・システムも、Windows(R)に限定されず、Linux(R)、Mac OS(R)など、任意のオペレーティング・システムを使用することができる。さらに、シミュレーション・プログラムを高速で動作させるために、POWER(商標)6ベースで、オペレーティング・システムがAIX(商標)のIBM(R)System Pなどのコンピュータ・システムを使用してもよい。
ハードティスク・ドライブ416にはさらに、後述するプロセッサ・エミュレータ、ペリフェラル・スケジューラ、ペリフェラル・エミュレータ、クロック・コンバータ及びプラント・シミュレータなどのプログラムが格納されており、その各々は、コンピュータ・システムの起動時にメイン・メモリにロードされて、個別のスレッドまたはプロセスとして個々のCPU1〜CPUnに割当てられて、実行される。このため、図4に示すコンピュータ・システムは、好適には、プロセッサ・エミュレータ、ペリフェラル・スケジューラ、ペリフェラル・エミュレータ、クロック・コンバータ及びプラント・シミュレータの個々のスレッドに割り当てるに十分な個数のCPUをもつ。
図5は、そのように個々のCPU1〜CPUnに割当てられて個別のスレッドまたはプロセスとして動作するプロセッサ・エミュレータ、ペリフェラル・スケジューラ、ペリフェラル・エミュレータ、クロック・コンバータ及びプラント・シミュレータの間の協働関係を示す機能ブロック図である。
図5に示すように、本発明の特徴は、それ自身が1つのスレッドまたはプロセスであるペリフェラル・スケジューラ502が、それとは独立のスレッドまたはプロセスであるペリフェラル・エミュレータ504a、504b、504c、・・・504zを緊密に制御することである。この特徴は、ペリフェラル・エミュレータが個々のECUエミュレータ内にあって互いに独立に動作する図1の典型的な従来の構成と対比することで一層より理解されるであろう。
図5において、それぞれが独立のスレッドまたはプロセスであるプロセッサ・エミュレータ506a、506b、506c、・・・506mは、基本的には、関連するペリフェラル・エミュレータ504a、504b、504c、・・・504zから割り込みを受けて、通信しつつ動作するが、直接ペリフェラル・スケジューラ502からの制御も受ける。その制御の仕組みは、後述する。
一方、それぞれが独立のスレッドまたはプロセスであるプラント・シミュレータ508a、508b、・・・508nは、ペリフェラル・エミュレータ504a、504b、504c、・・・504zと通信する。なお、図示しないが、プラント・シミュレータ508a、508b、・・・508nは、図1に示すクロック・コンバータの機能を果たすモジュールを内蔵している。一般的に、プラント・シミュレータの動作クロックよりも、ペリフェラル・エミュレータの動作クロックの方が1000倍程度細かいので、そのようなクロック・コンバータの機能を設けて、ペリフェラル・エミュレータからプラント・シミュレータに到来するパルスを間引き、一方、プラント・シミュレータからペリフェラル・エミュレータに送出されるパルスを増加させることによって、インターフェースを合わせる必要がある。
図6は、ペリフェラル・スケジューラの制御の下での、ペリフェラル・エミュレータ、プロセッサ・エミュレータ及びプラント・シミュレータの動作の概要を示すタイミング図である。
ペリフェラル・エミュレータの各々は、固有の処理の区切り位置に対応する時間の情報をもち、その値は例えば、ペリフェラル・エミュレータを記述するためのSystemCのソースコードを、コンピュータ・プログラムによって解析することにより、取得することができる。ペリフェラル・エミュレータの区切り位置は例えば、SystemCで記述した場合における、wait()と記述された行に対応する。
このようにして取得された各ペリフェラル・エミュレータの処理の区切り位置に対応する時間の情報は、ペリフェラル・スケジューラ502に予め関連づけられ、ペリフェラル・スケジューラ502は、これらの処理の区切り位置の時間を値を用いて、任意の時点で最も近いペリフェラル・エミュレータの処理の区切りのタイミングを確定して、そのタイミングに向けて、全てのプロセッサ・エミュレータと、全てのプラント・シミュレータを実行させ、同期の足並みを揃えさせる。
このとき、もし各ペリフェラル・エミュレータの処理の区切り位置が周期的であるなら、ペリフェラル・エミュレータ毎にそのような周期の値を予め記憶しておけば、それらを整数倍することで、ペリフェラル・スケジューラ502は、次の処理の区切りのタイミングを計算することができる。しかし、非常に限られた場合を除き、ペリフェラル・エミュレータの処理の区切り位置は、一般的には周期的にはならない。
そこで、ペリフェラル・スケジューラ502が、タイミングを合わせるべきペリフェラル・エミュレータを選ぶ処理は、次のようなものである。すなわち、例えば、所定のプログラムによって予めペリフェラル・エミュレータのSystemCのソースコードをスキャンすることで、ペリフェラル・エミュレータ毎に、その処理の区切り間の時間を含むテーブルを、共有メモリなどに保存しておき、ペリフェラル・スケジューラ502がこのテーブルを参照可能にする。これにより、ペリフェラル・スケジューラ502は、テーブルのエントリに基づき、加算的に次回の処理の区切りを計算することができ、現在のシミュレーション時間から最も近い処理の区切りを、次の目標の時間として選択することが可能となる。
図6に示す例では、ペリフェラル2に関連するタイミングT1が、シミュレーション・システム開始後の最初のペリフェラル・エミュレータの処理の区切りのタイミングであるとペリフェラル・スケジューラ502が認識するタイミングであり、タイミングT1に向けて、ペリフェラル・スケジューラ502は、全てのプロセッサ・エミュレータと、全てのプラント・シミュレータを実行させる。
次にペリフェラル・スケジューラ502は、ペリフェラルnに関連するタイミングT2が、シミュレーション・システム開始後の次のペリフェラル・エミュレータの処理の区切りのタイミングであると認識して、タイミングT2に向けて、ペリフェラル・スケジューラ502は、全てのプロセッサ・エミュレータと、全てのプラント・シミュレータを実行させる。
ペリフェラル・スケジューラ502による、このような順次のペリフェラル・エミュレータの処理の区切りのタイミングの確定は、ペリフェラル・スケジューラ502が予め記憶している全てのペリフェラル・エミュレータの処理の区切り位置の時間の情報に基づき、シミュレーション・システムの開始時点から順次、どれかのペリフェラル・エミュレータの最も近いタイミングを見つけることによって行われる。
図7は、ペリフェラル・スケジューラ502による同期制御する仕組みを模式的に示す図である。すなわち、本発明のこの実施例によれば、メイン・メモリ406の所定の領域に、各ペリフェラル・エミュレータ502a、502b、502c・・・に対応する完了フラグ702a、702b、702c・・・が設けられ、このような完了フラグ702a、702b、702c・・・を使って、ペリフェラル・スケジューラ502は、各ペリフェラル・エミュレータ502a、502b、502cに対する同期制御を実行する。
次に、図8のフローチャートを参照して、ペリフェラル・スケジューラ502の処理について説明する。図8において、ステップ802では、ペリフェラル・スケジューラ502は、初期化して、全ての全てのペリフェラル・エミュレータの処理を開始させる。この初期化には、各ペリフェラル・エミュレータ502a、502b、502c・・・に対応する完了フラグ702a、702b、702c・・・を全てOFFにリセットする処理も含まれる。
ステップ804では、ペリフェラル・スケジューラ502が、前述のように、ペリフェラル・エミュレータ毎の、処理の区切り間の時間を含むテーブルを参照することにより、最も近い時点で処理の区切りが来ると見込まれるペリフェラル・エミュレータを見出す。
ステップ806では、ペリフェラル・スケジューラ502が、全てのプロセッサ・エミュレータと、全てのプラント・シミュレータを、ステップ804で見出された最も近いタイミングで示される時点に向けて、同時並列的に実行させる。そして、その完了を待つ。
ステップ808では、ペリフェラル・スケジューラ502が。ステップ804で見出されたタイミングに関連するペリフェラル・エミュレータが処理の区切りが到来するのを待つ。
ステップ804で見出されたタイミングを処理の区切りとしてもつペリフェラル・エミュレータが処理の区切りが来ると、そのペリフェラル・エミュレータは、完了フラグをONにして処理を一旦停止する。この処理は、図9のフローチャートを参照してより詳細に説明する。スレッド間通信によりそのことはペリフェラル・スケジューラ502に伝えられ、ペリフェラル・スケジューラ502はステップ810で、ペリフェラル・エミュレータとプロセッサ・エミュレータの間、及びペリフェラル・エミュレータとI/Oデータとプラント・シミュレータの間で、I/Oデータの同期と、割込みを同期させる。それが完了すると、ペリフェラル・スケジューラ502は、ステップ804で見出されたタイミングに関連するペリフェラル・エミュレータの完了フラグをOFFにして、ステップ804に戻る。
ステップ804では、ペリフェラル・スケジューラ502は、次に最も近い時点で処理の区切りが来ると見込まれるペリフェラル・エミュレータを見出す。ここでいう次に最も近い時点で処理が完了すると見込まれるペリフェラル・エミュレータとは、図6の例では、ペリフェラルnであり、それに関連して、タイミングT2が選ばれる。
次に、図9のフローチャートを参照して、ペリフェラル・エミュレータの動作を説明する。この動作では最初に、その完了フラグはONになっていると仮定する。そこでステップ902では、ペリフェラル・エミュレータは、完了フラグがクリア(OFF)されるのを待つ。
完了フラグがペリフェラル・スケジューラ502によってクリアされると、処理はステップ904に進み、そこで、ペリフェラル・エミュレータは固有の処理を行う。その処理が完了すると、ペリフェラル・エミュレータはステップ906で完了フラグをセット(ON)して、ステップ902に戻り、完了フラグがクリア(OFF)されるのを待つ。
次に、ペリフェラル・スケジューラ502による、プロセッサ・エミュレータの制御について、説明する。この実施例におけるシミュレーション・システムでは、ホストのプロセッサ、すなわち、図4に示すCPU1、CPU2、・・・CPUnにおいて、ゲスト用プロセッサ、すなわち、自動車の組込みシステムなどの実機用に開発されたプログラムが実行される。その際、ソースコードがある場合でも、ゲスト用のバイナリしかない場合でも、コードは、ホスト・プロセッサ上のバイナリ・コードに変換されてから実行されることになる。
但し、本発明によれば、そのコード変換の際に、ペリフェラル・スケジューラ502と同期をとるために、特殊なコードが、要所に挿入される。
先ず、コードの基本ブロックの先頭やループの最後には、プロセッサ時刻をあらわすデータ(T_CPU)を更新して増やすためのコードが挿入される。すなわち、下記のようにある定数ConstがT_CPUに加算されるのであるが、この定数は、ゲスト・コードの時間解析に基づいて、予め決定される。
T_CPU += Const
また、例えば80サイクルに1つ程度の割合で、停止すべきシミュレーション時刻(T_Peripheral)と、自身の進行時刻を比較して、待機すべきかどうかを判断するための次のようなコードを、ホスト・プロセッサ上で実行されるコードに挿入する。
if ( T_CPU > T_Peripheral ) {
POST Completion_flag;
do { SLEEP_TEMPORARY; } while (T_CPU > T_Peripheral);
}
ここで、POST Completion_flagは、完了フラグ(Completion_flag)を設定(ON)する処理である。完了フラグの領域は好適には、共有メモリ上に確保される。while (T_CPU > T_Peripheral)のループは、共有メモリ上に確保されているT_Peripheralの値が、ペリフェラル・スケジューラ502等によって上書きされ、T_CPU > T_Peripheralの判断がfalseになるまで、SLEEP_TEMPORARYという待機の動作を行う。
図10は、上記の処理を機能ブロック的に説明する図である。すなわち、ペリフェラル・スケジューラ502が、最も早く処理の区切りが来るペリフェラル・エミュレータのタイミングに基づき、T_Peripheral1002という時間を設定し、各プロセッサ・エミュレータ506a、506b、506c・・・は、上述したT_CPUと同等のものである固有の時間T_CPU1、T_CPU2、T_CPU3・・・をそれぞれもつ。
初期化段階では、ペリフェラル・スケジューラ502は、各プロセッサ・エミュレータ506a、506b、506c・・・の完了フラグ1004a、1004b、1004c・・・をクリア(OFF)し、各プロセッサ・エミュレータは、T_CPU > T_Peripheralとなった時点で、上述のコードによって待機状態に入る。
各プロセッサ・エミュレータの動作を再開させるためには、ペリフェラル・スケジューラ502は、T_CPU < T_Peripheralとなる新たなT_Peripheral1002を提供し、且つ、各プロセッサ・エミュレータ506a、506b、506c・・・の完了フラグ1004a、1004b、1004c・・・をクリア(OFF)する。
次に、図11を参照して、ペリフェラル・スケジューラ502と、プラント・シミュレータ508a、508b、・・・508nの間の同期処理を、機能ブロック的に説明する。プラント・シミュレータはもともと、時間を短いステップに刻んで、近似的に微分方程式などの内部状態を計算して更新する。従って、与えられた時刻まで処理を進めることは、適合性が高いと言える。
図11において、ペリフェラル・スケジューラ502が、最も早く処理の区切りが来るペリフェラル・エミュレータのタイミングに基づき、T_Peripheral1002という時間を設定し、各プラント・シミュレータ508a、508b、508c・・・はそれぞれ固有の完了時間1104a、1104b、1104c・・・をもつ。初期化段階では、ペリフェラル・スケジューラ502は、各プラント・シミュレータ508a、508b、508c・・・の完了フラグ1102a、1102b、1102c・・・をクリア(OFF)する。なお、完了フラグ1102a、1102b、1102c・・・は、好適には、共有メモリ上にに確保される。
次に、図12のフローチャートを参照して、ペリフェラル・スケジューラ502によるプラント・シミュレータの同期処理をより詳細に説明する。図12において、ステップ1202では、プラント・シミュレータは、ペリフェラル・スケジューラが新しい時間Tをセットするまで待つ。この時間とは、図11に示した、T_Peripheral1002である。
ステップ1204では、プラント・シミュレータは、my_time > Tであるかどうかの判断を行う。ここで、my_timeとは、図11に示した、プラント・シミュレータに対応する完了時間1104a、1104bなどである。
もし、my_time > Tでないなら、プラント・シミュレータは、ステップ1206に行って、所定の処理ステップを進める。そして、ステップ1208でmy_timeを進めて、ステップ1204に戻る。
ステップ1204で、プラント・シミュレータが、my_time <= Tであると判断したなら、プラント・シミュレータは、対応する完了フラグをセット(ON)して、ステップ1202に戻る。
ところで、プラント・シミュレータ及びプロセッサ・エミュレータの完了フラグは、一実施例として、カウンタ・セマフォという仕組みで実施することができる。
そのために、ペリフェラル・スケジューラ側では、次のようなコードが書かれる。
extern sem_t sem_start[]; /* binary semaphores */
extern sem_t sem_finish; /* counter semaphore */
extern int n_plants; /* number of plant tasks */
extern int n_all; /* number of all tasks */
{
・・・
/* タスクを実行する準備をする */
/* 例えば、T_Peripheral の更新など */
・・・
/* プラント・タスクを並列実行する */
for (int k=0; k<n_plants; k++)
sem_post(&sem_start[k]);
・・・
/* すべてのタスクが終了するまで待つ */
for (int k=0; k<n_all; k++)
sem_wait(&sem_finish);
・・・
}
一方、プラント・シミュレータ側では、次のようなコードが書かれる。
extern sem_t sem_start[]; /* binary semaphores */
extern sem_t sem_finish; /* counter semaphore */
{
・・・
/* 処理開始の指示を待つ */
sem_wait(&sem_start[k]);
・・・
/* 独自の処理を進める */
・・・
/* 処理の終了を告げる */
sem_post(&sem_finish);
・・・
}
ここで、n_plants は、シミュレーション・システムで実行されるプラント・シミュレータの数である。
ペリフェラル・スケジューラにおける
for (int k=0; k<n_plants; k++)
sem_post(&sem_start[k]);
というコードは、n_plants 個のタスクまたはスレッドの各々に処理開始を指示すことであり、これを受けて、プラント・シミュレータ側では、
sem_wait(&sem_start[k]);
により、開始の指示を受け取ることになる。
一方、プロセッサ・エミュレータ及びプラント・シミュレータ側のsem_post(&sem_finish)は、ペリフェラル・スケジューラにおける
for (int k=0; k<n; k++)
sem_wait(&sem_finish);
によって待機されており、すなわち、ペリフェラル・スケジューラは、全てのプロセッサ・エミュレータ及びプラント・シミュレータの処理の終了が告げられるのを待つことになる。なお、プロセッサ・エミュレータのコードに挿入されるコードにおいて、POST Completion_flag と記述した部分が、プロセッサ・エミュレータにおけるsem_post(&sem_finish) に当たる。図10や図11では、完了フラグを分けて示したが、上記のようにカウンタ型のセマフォを利用するなら、1つでよい。
以上、自動車用の複数のシミュレーション・システムに関連して、本発明の特定の実施例を説明してきたが、本発明はこのような特定の実施例に限定されず、飛行機用のシミュレーション・システムなど、一般的な電子機械制御系システムのシミュレーション・システムに適用可能であることを、この分野の当業者であるなら、理解するであろう。
また、本発明は、特定のコンピュータのアーキテクチャやプラットフォームに限定されることなく、マルチタスクを実現可能な任意のプラットフォームで実装可能である。
404・・・プロセッサ
502・・・ペリフェラル・スケジューラ
504・・・ペリフェラル・エミュレータ
506・・・プロセッサ・エミュレータ
508・・・プラント・シミュレータ
702、1004、1102・・・完了フラグ

Claims (15)

  1. コンピュータの処理により、シミュレーションを行なうシミュレーション・システムにおいて、
    前記コンピュータ上で実行される複数のプロセッサ・エミュレータと、
    前記コンピュータ上で実行される複数のプラント・シミュレータと、
    前記コンピュータ上で実行され、各々が固有の処理の区切りタイミングをもち、前記プロセッサ・エミュレータと前記プラント・シミュレータ間のデータの通信を行う、複数のペリフェラル・エミュレータと、
    前記ペリフェラル・エミュレータのうち、前記固有の処理の区切りタイミングに基づき、最も早く処理の区切りを迎えるペリフェラル・エミュレータとその処理の区切りのタイミングを見出す手段と、
    前記見出されたタイミングで、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させる手段を有する、
    シミュレーション・システム。
  2. 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、それぞれが個別のスレッドまたはプロセスとして実行される、請求項1に記載のシミュレーション・システム。
  3. 前記コンピュータが、マルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに割り当てられて個別のスレッドまたはプロセスとして実行される、請求項2に記載のシミュレーション・システム。
  4. 前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させる手段は、前記コンピュータのメモリに確保され、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータの各々に対応して設けられた完了フラグをセットすることによって同期を達成する、請求項2に記載のシミュレーション・システム。
  5. 前記完了フラグは、カウンタ・セマフォにより実現される、請求項4に記載のシミュレーション・システム。
  6. コンピュータの処理により、シミュレーションを行なうシミュレーション方法において、
    前記コンピュータ上で複数のプロセッサ・エミュレータを実行するステップと、
    前記コンピュータ上で複数のプラント・シミュレータを実行するステップと、
    前記コンピュータ上で、各々が固有の処理の区切りタイミングをもち、前記プロセッサ・エミュレータと前記プラント・シミュレータ間のデータの通信を行う、複数のペリフェラル・エミュレータを実行するステップと、
    前記ペリフェラル・エミュレータのうち、前記固有の処理の区切りタイミングに基づき、最も早く処理の区切りを迎えるペリフェラル・エミュレータとその処理の区切りのタイミングを見出すステップと、
    前記見出されたタイミングで、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させるステップを有する、
    シミュレーション方法。
  7. 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、それぞれが個別のスレッドまたはプロセスとして実行される、請求項6に記載のシミュレーション方法。
  8. 前記コンピュータが、マルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに割り当てられて個別のスレッドまたはプロセスとして実行される、請求項7に記載のシミュレーション方法。
  9. 前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させる手段は、前記コンピュータのメモリに確保され、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータの各々に対応して設けられた完了フラグをセットすることによって同期を達成する、請求項7に記載のシミュレーション方法。
  10. 前記完了フラグは、カウンタ・セマフォにより実現される、請求項9に記載のシミュレーション方法。
  11. コンピュータの処理により、シミュレーションを行なうシミュレーション・プログラムであって、前記コンピュータをして、
    複数のプロセッサ・エミュレータを実行するステップと、
    複数のプラント・シミュレータを実行するステップと、
    各々が固有の処理の区切りタイミングをもち、前記プロセッサ・エミュレータと前記プラント・シミュレータ間のデータの通信を行う、複数のペリフェラル・エミュレータを実行するステップと、
    前記ペリフェラル・エミュレータのうち、前記固有の処理の区切りタイミングに基づき、最も早く処理の区切りを迎えるペリフェラル・エミュレータとその処理の区切りのタイミングを見出すステップと、
    前記見出されたタイミングで、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させるステップを実行させる、
    シミュレーション・プログラム。
  12. 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、それぞれが個別のスレッドまたはプロセスとして実行される、請求項11に記載のシミュレーション・プログラム。
  13. 前記コンピュータが、マルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに割り当てられて個別のスレッドまたはプロセスとして実行される、請求項12に記載のシミュレーション・プログラム。
  14. 前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させる手段は、前記コンピュータのメモリに確保され、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータの各々に対応して設けられた完了フラグをセットすることによって同期を達成する、請求項12に記載のシミュレーション・プログラム。
  15. 前記完了フラグは、カウンタ・セマフォにより実現される、請求項14に記載のシミュレーション・プログラム。
JP2011536125A 2009-10-16 2010-10-08 シミュレーション方法、システム及びプログラム Expired - Fee Related JP5379862B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011536125A JP5379862B2 (ja) 2009-10-16 2010-10-08 シミュレーション方法、システム及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009238954 2009-10-16
JP2009238954 2009-10-16
JP2011536125A JP5379862B2 (ja) 2009-10-16 2010-10-08 シミュレーション方法、システム及びプログラム
PCT/JP2010/067772 WO2011046089A1 (ja) 2009-10-16 2010-10-08 シミュレーション方法、システム及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2011046089A1 JPWO2011046089A1 (ja) 2013-03-07
JP5379862B2 true JP5379862B2 (ja) 2013-12-25

Family

ID=43876139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011536125A Expired - Fee Related JP5379862B2 (ja) 2009-10-16 2010-10-08 シミュレーション方法、システム及びプログラム

Country Status (5)

Country Link
JP (1) JP5379862B2 (ja)
CN (1) CN102576325B (ja)
DE (1) DE112010004037T5 (ja)
GB (1) GB2486136B (ja)
WO (1) WO2011046089A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360322B2 (en) 2015-12-01 2019-07-23 International Business Machines Corporation Simulation of virtual processors

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5583773B2 (ja) 2010-08-20 2014-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
US9251308B2 (en) 2012-07-23 2016-02-02 International Business Machines Corporation Simulation method, system, and program
EP2851815A1 (de) * 2013-09-18 2015-03-25 dSPACE digital signal processing and control engineering GmbH Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts
US10776139B2 (en) 2015-05-29 2020-09-15 Mitsubishi Electric Corporation Simulation apparatus, simulation method, and computer readable medium
DE102015226249A1 (de) * 2015-12-21 2017-06-22 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Bereitstellen einer Mehrzahl von reproduzierbaren Werten
JP6770935B2 (ja) * 2017-07-03 2020-10-21 日立オートモティブシステムズ株式会社 車両制御装置用の検証装置
US11010510B2 (en) 2019-04-30 2021-05-18 Disney Enterprises, Inc. Soft-real-time hub providing data transport for processor-in-the-loop (PIL) simulations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312315A (ja) * 1997-05-12 1998-11-24 Nec Corp ソフトウェア/ハードウェア協調シミュレーション方式
JP2004013626A (ja) * 2002-06-07 2004-01-15 Fujitsu Ten Ltd マイコンのロジック開発装置
JP2007011720A (ja) * 2005-06-30 2007-01-18 Sharp Corp システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522029A (en) * 1993-04-23 1996-05-28 International Business Machines Corporation Fault tolerant rendezvous and semaphore for multiple parallel processors
CN101256502B (zh) * 2007-02-27 2011-02-09 国际商业机器公司 模拟多处理器系统的系统和方法
CN100573456C (zh) * 2007-12-10 2009-12-23 华中科技大学 一种并行多处理器虚拟机系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312315A (ja) * 1997-05-12 1998-11-24 Nec Corp ソフトウェア/ハードウェア協調シミュレーション方式
JP2004013626A (ja) * 2002-06-07 2004-01-15 Fujitsu Ten Ltd マイコンのロジック開発装置
JP2007011720A (ja) * 2005-06-30 2007-01-18 Sharp Corp システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360322B2 (en) 2015-12-01 2019-07-23 International Business Machines Corporation Simulation of virtual processors
US11010505B2 (en) 2015-12-01 2021-05-18 International Business Machines Corporation Simulation of virtual processors

Also Published As

Publication number Publication date
GB201205094D0 (en) 2012-05-09
CN102576325A (zh) 2012-07-11
GB2486136B (en) 2012-12-26
CN102576325B (zh) 2015-04-15
JPWO2011046089A1 (ja) 2013-03-07
DE112010004037T5 (de) 2013-01-03
WO2011046089A1 (ja) 2011-04-21
GB2486136A (en) 2012-06-06

Similar Documents

Publication Publication Date Title
JP5379862B2 (ja) シミュレーション方法、システム及びプログラム
US9251308B2 (en) Simulation method, system, and program
JP5528294B2 (ja) シミュレーション制御方法、システム及びプログラム
KR101522477B1 (ko) 시뮬레이션 방법, 시스템 및 프로그램
US8676560B2 (en) Simulation method, system and program for simulating physical unit controlled by electronic control unit
US10552560B2 (en) Controlling real time during embedded system development
JP2007510992A (ja) 制御システムをシミュレーションおよび検証するためのシミュレーションシステムおよびコンピュータにより実施される方法
JP2009271870A (ja) 制御装置シミュレーション方法、システム及びプログラム
US8670967B2 (en) Simulation method, system and article of manufacture
JP2011022702A (ja) シミュレーション方法、システム及びプログラム
Wurst et al. System performance modelling of heterogeneous hw platforms: An automated driving case study
JP2010033130A (ja) シミュレーション方法、システム及びプログラム
US9612863B2 (en) Hardware device for accelerating the execution of a systemC simulation in a dynamic manner during the simulation
JP5186290B2 (ja) シミュレーション方法、システム及びプログラム
US8412496B2 (en) Simulation system, method, and program
CN112783197A (zh) 一种飞行器制导控制系统一体化集成解决方案
JP5460010B2 (ja) シミュレーション方法、システム及びプログラム
US20210141710A1 (en) Development support device
JP5500820B2 (ja) シミュレーション方法、システム及びプログラム
Depoyster et al. Rapid prototyping of chassis control systems
US20230409383A1 (en) Simulation system and method
Vaas et al. The R2-D2 toolchain—automated porting of safety-critical applications to FPGAs
Weinstock et al. Work-in-Progress: AMVP-A High Performance Virtual Platform using Parallel SystemC for Multicore ARM Architectures
KR20240070718A (ko) 분할된 임베디드 시스템에서 결정론적 데이터 통신을 위한 컴퓨터 구현 방법 및 전자 제어 장치
CN118227324A (zh) 用于异构系统加速的方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130425

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: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130927

R150 Certificate of patent or registration of utility model

Ref document number: 5379862

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees