JP5251586B2 - Verification support program, verification support apparatus, and verification support method - Google Patents
Verification support program, verification support apparatus, and verification support method Download PDFInfo
- Publication number
- JP5251586B2 JP5251586B2 JP2009036363A JP2009036363A JP5251586B2 JP 5251586 B2 JP5251586 B2 JP 5251586B2 JP 2009036363 A JP2009036363 A JP 2009036363A JP 2009036363 A JP2009036363 A JP 2009036363A JP 5251586 B2 JP5251586 B2 JP 5251586B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- time
- cpu
- model
- 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
Links
Images
Description
この発明は、複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなう検証支援プログラム、検証支援装置および検証支援方法に関する。 The present invention relates to a verification support program, a verification support apparatus, and a verification support method for simulating an instruction that has received an execution instruction using a multiprocessor model in which a plurality of processors are implemented by software.
近年、車載用途の電子機器など、ある一定以上の規模をもつシステムの場合、複数のCPUを用意して、各CPUを協調動作させることにより処理速度の向上を図るマルチCPUシステムに関する技術、また、機能ごとに1つのCPUを割り当てることにより開発の簡便を図るマルチCPUシステムに関する技術が多く用いられている。これらマルチCPUシステムによって実行させるソフトウェアを検証する際には、実機に比べユーザの利便性が高く、高速なシミュレートが可能なことから、マルチCPUをソフトウェアによって実現したマルチCPUモデルシミュレータが多く利用されている(たとえば、下記特許文献1参照。)。
In recent years, in the case of a system having a certain scale or more, such as an electronic device for in-vehicle use, a technology related to a multi-CPU system that improves processing speed by preparing a plurality of CPUs and operating each CPU in a coordinated manner, Many technologies related to a multi-CPU system that facilitates development by assigning one CPU for each function are used. When verifying software to be executed by these multi-CPU systems, the multi-CPU model simulator in which the multi-CPU is realized by software is often used because it is more convenient for the user than the actual machine and can be simulated at high speed. (For example, see
図13は、従来のマルチCPUシミュレータの構成を示すブロック図である。図13のように、従来のマルチCPUシミュレータ1300は、マルチCPUスケジューラ10によって、複数のCPUモデル11(たとえば、CPUモデル1,2)の実行制御ならびにCPU間通信制御をおこなう。なお、図13のマルチCPUシミュレータ1300では、2つのCPUが協調動作する場合のシミュレーションをおこなうため、2つのCPUモデル11が用意されている。したがって、さらに多数のCPUを備えたマルチCPUシステムによる動作のシミュレーションをおこなう場合には、システムの構成に応じたCPUモデルを用意する。
FIG. 13 is a block diagram showing a configuration of a conventional multi-CPU simulator. As shown in FIG. 13, the conventional
そして、図14は、従来のマルチCPUシミュレータの動作を示す説明図である。マルチCPUスケジューラ10では、検証対象となるソフトウェアを読み込むと、所定の単位時間ごとに該当する命令(トランザクションなど)の実行指示を各CPUモデル11へ送信することによって各CPUモデルの同期をとっている。たとえば、マルチCPUスケジューラ10の場合、0.25[ms]の単位時間ごとに命令(実行する命令がある場合には)が実行される。したがって、図14に例示した動作では、単位時間経過ごとのタイミング0.25,0.5,0.75[ms]にマルチCPUスケジューラ10から命令の実行指示が送信され、各CPUモデル11の同期が管理される。そして、マルチCPUスケジューラ10の管理下にあるすべてのCPUモデル11の処理が完了すると、次の実行時刻の処理に移行する。
And FIG. 14 is explanatory drawing which shows operation | movement of the conventional multi CPU simulator. When the
また、従来のマルチCPUシステムには、CPU間のデータ送受信を実現するために複数のCPU間を所定のネットワークによって接続した構成もあり、このようなシステムに対応したマルチCPUシミュレータも提供されている。図15は、CPU間をネットワーク回路で接続したマルチCPUシミュレータの構成を示すブロック図である。図15のようにマルチCPUシミュレータ1500では、各CPUモデル11を接続するネットワーク回路12が用意されている。したがって、マルチCPUスケジューラ10は、ネットワーク回路12を介してCPU間通信制御をおこなうことによって各CPUモデル11に実行させる命令を管理する。
In addition, a conventional multi-CPU system has a configuration in which a plurality of CPUs are connected by a predetermined network in order to realize data transmission / reception between CPUs, and a multi-CPU simulator corresponding to such a system is also provided. . FIG. 15 is a block diagram showing a configuration of a multi-CPU simulator in which CPUs are connected by a network circuit. As shown in FIG. 15, in the
そして、図16は、CPU間をネットワーク回路で接続したマルチCPUシミュレータの動作を示す説明図である。図16を用いて、CPUモデル1から0.27[ms]のタイミングで1[byte]のデータをCPUモデル2へ送信する場合について説明する。なお、ネットワーク回路12の伝送速度は19.2[kbps]とする。すると、CPUモデル2へのデータ送信は0.67[ms]のタイミングに完了するため、約400[μs]の遅延が発生する。上述したように、マルチCPUスケジューラ10は、0.25[ms]のタイミングごとにマルチCPUモデル11の各CPUモデル間の同期をとるため、0.5[ms]のタイミングにて、CPUモデル1からのデータの送信要求がCPUモデル2へ通知される。
FIG. 16 is an explanatory diagram showing the operation of the multi-CPU simulator in which the CPUs are connected by a network circuit. A case where 1 [byte] data is transmitted from the
しかしながら、上述したような従来のマルチCPUシミュレータの場合、マルチCPUシステムの高集積化や処理性能の向上に伴い、CPU間のデータの伝送速度が高速化すると、トランザクションの同期がとれなくなってしまう恐れがある。ここで、図17は、CPU間を高速なネットワーク回路で接続したマルチCPUシミュレータの動作を示す説明図である。図17を用いて、図15にて説明したマルチCPUシミュレータ1500のネットワーク回路12の伝送速度が1[Mbps]に高速化した場合のCPU間のデータ送信について説明する。
However, in the case of the conventional multi-CPU simulator as described above, if the multi-CPU system is highly integrated and the processing performance is improved, if the data transmission speed between the CPUs is increased, the transaction may not be synchronized. There is. FIG. 17 is an explanatory diagram showing the operation of the multi-CPU simulator in which the CPUs are connected by a high-speed network circuit. The data transmission between the CPUs when the transmission speed of the
図17のように、CPUモデル1から270[μs]のタイミング(図16の0.27[ms]と同じタイミング)で4[byte]のデータをCPUモデル2へ送信する場合、約32[μs]の遅延が発生する。すなわち、CPUモデル2へのデータ送信は302[μs]のタイミングに完了する。しかしながら、マルチCPUスケジューラ10による次回の同期管理のタイミングは0.50[ms]であるため、データ送信の完了時にCPUモデル2にCPUモデル1からのデータの送信要求を通知できない。したがって、正常なトランザクションとして処理できないという問題があった。
As shown in FIG. 17, when data of 4 [bytes] is transmitted to the
高速な伝送環境のマルチCPUシステムであっても、正常なトランザクション処理をおこなうには、各CPU間の同期をとる単位時間の間隔をより短く設定しなければならない。たとえば、マルチCPUスケジューラ10を図17の0.5〜0.75[ms]間に示したように25[μs]間隔ごとに同期をとるような設定にすれば、正常なトランザクションが可能になるが、同期をとるための計算回数だけでも10倍になってしまうため、処理負荷が大幅に増加し、シミュレーション速度が低下してしまうという問題があった。
Even in a multi-CPU system in a high-speed transmission environment, in order to perform normal transaction processing, it is necessary to set a shorter unit time interval for synchronization between CPUs. For example, if the
この発明は、上述した従来技術による問題点を解消するため、マルチCPUシステムのシミュレーションを高速かつ効率的に実行させる検証支援プログラム、検証支援装置および検証支援方法を提供することを目的とする。 An object of the present invention is to provide a verification support program, a verification support apparatus, and a verification support method for executing a simulation of a multi-CPU system at high speed and efficiently in order to solve the above-described problems caused by the prior art.
上述した課題を解決し、目的を達成するため、この検証支援プログラム、検証支援装置および検証支援方法は、複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータにおいて、前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートする処理と、ソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する処理と、算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える処理と、を含むことを要件とする。 In order to solve the above-described problems and achieve the object, the verification support program, the verification support apparatus, and the verification support method perform a simulation of an instruction received an execution instruction using a multiprocessor model in which a plurality of processors are realized by software. In the executing computer, processing for sorting the instruction group including information on the processor model to be executed in the multiprocessor model and the execution time in order of execution time, and execution of the instructions that are consecutive in the sorted instruction group It is a requirement to include a process for calculating an execution interval of an instruction group with reference to time and a process for giving an instruction to execute a corresponding instruction to a processor model to be executed for each calculated execution interval.
この検証支援プログラム、検証支援装置および検証支援方法によれば、マルチCPUシステムなど複数のプロセッサが協調動作をおこなうシステムにおける動作を検証したい検証対象ソフトウェアの命令群を取得すると、各命令は実行時刻順にソートされ、各命令の実行間隔を算出する。マルチプロセッサモデルでは、算出された実行間隔にのみ該当する処理を実行すれば、取得した命令群のシミュレーションをおこなうことができる。 According to the verification support program, the verification support apparatus, and the verification support method, when an instruction group of verification target software for which the operation in a system in which a plurality of processors perform cooperative operations such as a multi-CPU system is acquired is acquired, It is sorted and the execution interval of each instruction is calculated. In the multiprocessor model, the acquired instruction group can be simulated by executing processing corresponding only to the calculated execution interval.
この検証支援プログラム、検証支援装置および検証支援方法によれば、マルチCPUシステムのシミュレーションを高速かつ効率的に実行させることができるという効果を奏する。 According to the verification support program, the verification support apparatus, and the verification support method, there is an effect that the simulation of the multi-CPU system can be executed at high speed and efficiently.
以下に添付図面を参照して、この検証支援プログラム、検証支援装置および検証支援方法の好適な実施の形態を詳細に説明する。この検証支援プログラム、検証支援装置および検証支援方法では、マルチCPUシステムに実行させる命令群を時刻順にソートして命令群の実行間隔を算出し、当該実行間隔ごと該当する命令の実行指示を与えるため、必要最低限の処理によって命令群のシミュレーションを実行できる。 Exemplary embodiments of a verification support program, a verification support apparatus, and a verification support method will be described below in detail with reference to the accompanying drawings. In the verification support program, the verification support apparatus, and the verification support method, the instruction group to be executed by the multi-CPU system is sorted in order of time, the execution interval of the instruction group is calculated, and the execution instruction of the corresponding instruction is given for each execution interval The instruction group can be simulated with the minimum necessary processing.
(検証支援処理の概要)
まず、本実施の形態にかかる検証支援処理の概要について説明する。図1は、本実施の形態にかかる検証支援処理の概要を示す説明図である。図1のように、検証支援装置100は、マルチCPUシミュレータ110によって検証対象ソフトウェア101のシミュレーションを実行してシミュレーション結果102を得ることができる。
(Overview of verification support processing)
First, an overview of verification support processing according to the present embodiment will be described. FIG. 1 is an explanatory diagram showing an overview of verification support processing according to the present embodiment. As shown in FIG. 1, the
マルチCPUシミュレータ110は、マルチCPUシステムの動作をソフトウェアによって実現した機能部であり、マルチCPUスケジューラ200と、マルチCPUモデル210によって構成されている。マルチCPUスケジューラ200は、検証支援装置100が取得した検証対象ソフトウェア101を構成する命令群を実行時刻順にソートし、実行時刻順に該当する命令の実行指示をマルチCPUモデル210に与える。
The
マルチCPUモデル210は、検証対象ソフトウェア101を処理する際に協調動作する複数のCPUの動作をソフトウェアによって実現したCPUモデル1〜Nによって構成されている。したがって、マルチCPUモデル210は、マルチCPUスケジューラ200から命令の実行指示を受け付けると、該当するCPUモデルによって処理を実行させる。そして、マルチCPUモデル210による検証対象ソフトウェア101の実行結果はシミュレーション結果102として出力される。
The
このように、本実施の形態にかかる検証支援処理では、マルチCPUスケジューラ200によって、各CPUモデルが処理をおこなう時刻を取得し、取得した時刻に該当するCPUへ実行指示を与えるため、必要最低限の検証対象ソフトウェア101のシミュレーションを実現することができる。また、命令に応じた実行時刻に実行指示を送信すればよいため、CPU間の伝送速度にかかわらず、正常なトランザクションが可能となる。以下に、上述したような本実施の形態にかかる検証支援処理を実現するための具体的な構成について、実施の形態1,2の2つの例を挙げて説明する。
As described above, in the verification support processing according to the present embodiment, the
(マルチCPUシミュレータの構成)
まず、実施の形態1,2に共通して検証対象ソフトウェア101のシミュレーションをおこなうマルチCPUシミュレータ110の構成について説明する。図2は、本実施の形態にかかるマルチCPUシミュレータの構成を示す説明図である。図2のように、マルチCPUシミュレータ120は、マルチCPUスケジューラ200と、CPUモデル1,2を含んだマルチCPUモデル210とによって構成されている。また、各CPUモデル内には、CPUモデル内の動作タイミングを制御するCPU内スケジューラと、実際のCPU内部のハードウェアに対応したハードウェアモデルと、これらハードウェアに実行させるソフトウェアに対応したソフトウェアモデルとが用意されている。
(Configuration of multi-CPU simulator)
First, the configuration of the
(検証支援装置のハードウェア構成)
つぎに、検証支援装置100の具体的なハードウェア構成について説明する。図3は、実施の形態にかかる検証支援装置のハードウェア構成を示すブロック図である。検証支援装置100の構成も実施の形態1,2に共通であり、図3に示したような汎用の情報処理装置に本実施の形態にかかる検証支援処理を実現させる検証支援プログラムを実行させることによって、検証支援装置100としての機能を実現することができる。
(Hardware configuration of verification support device)
Next, a specific hardware configuration of the
図3において、検証支援装置100は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、通信I/F(Interface)306と、入力デバイス307と、出力デバイス308と、を備えている。また、各構成部はバス310によってそれぞれ接続されている。
In FIG. 3, a
ここで、CPU301は、検証支援装置100の全体の制御を司る。ROM302は、ブートプログラムや、本実施の形態にかかる検証支援処理を実現するための検証支援プログラムなどの各種プログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータの更新/参照を制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。なお、図3のハードウェア構成では、検証支援装置100の記録媒体の実装例、磁気ディスク305を用いているが、光ディスクや、フラッシュメモリなど他の記録媒体を利用してもよい。
Here, the
通信I/F306は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク(NET)309に接続され、このネットワーク309を介して他の検証支援装置100やその他の外部装置に接続される。そして、通信I/F306は、ネットワーク309と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F306の構成例としては、たとえばモデムやLANアダプタなどを採用することができる。
The communication I /
入力デバイス307は、検証支援装置100に対しての外部からの入力を受け付ける。入力デバイス307としては、具体的には、キーボード、マウスなどが挙げられる。なお、図1に示したように検証支援装置100によって、シミュレーションをおこなう検証対象ソフトウェア101は、ROM302、RAM303、磁気ディスク305などの記憶領域にあらかじめ格納されていてもよいが、入力デバイス307から入力されて、上述の記憶領域に格納されてもよい。
The
また、キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。 In the case of a keyboard, for example, keys for inputting characters, numbers, various instructions, and the like are provided to input data. Moreover, a touch panel type input pad or a numeric keypad may be used. In the case of a mouse, for example, the cursor is moved, a range is selected, or a window is moved or the size is changed. Further, a trackball or a joystick may be used as long as they have the same function as a pointing device.
出力デバイス308は、検証支援装置100に格納された各種データや、シミュレーション結果102などを出力する。出力デバイス308としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
The
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。 In the case of a display, for example, data such as a cursor, an icon or a tool box, a document, an image, and function information is displayed. Further, a CRT, a TFT liquid crystal display, a plasma display, or the like can be employed as this display. In the case of a printer, for example, image data and document data are printed. Further, a laser printer or an ink jet printer can be employed.
(検証支援装置の機能的構成)
つぎに、本実施の形態にかかる検証支援装置100の機能的構成について説明する。図4は、検証支援装置の機能的構成を示すブロック図である。ここでは、検証支援装置100が、図1にて説明したようなマルチCPUスケジューラ200ならびにマルチCPUモデル210として動作を実現するための機能的構成について説明する。なお、マルチCPUモデル210の動作については、従来のマルチCPUモデルの機能を利用しているため、本実施の形態にかかる検証支援処理を実現する際の独自の構成のみ説明する。
(Functional configuration of verification support device)
Next, a functional configuration of the
図4のように、検証支援装置100は、ソート部401と、算出部402と、制御部403と、判断部404と、通知部405と、抽出部406とを含む構成である。これら、マルチCPUスケジューラ200およびマルチCPUモデル210を実現する機能(ソート部401〜抽出部406)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク305などの記憶領域に記憶された検証支援プログラムをCPU301に実行させることにより、または、通信I/F306により、その機能を実現する。
As illustrated in FIG. 4, the
ソート部401は、マルチCPUモデル210に実行させる検証対象ソフトウェア101を取得すると、検証対象ソフトウェア101内の命令群を実行時刻順にソートする機能を有する。検証対象ソフトウェア101内の各命令には、マルチCPUモデル210の中の実行対象となるCPUモデル(たとえば、CPUモデル1)と実行時刻との情報が含まれている。したがって、ソート部401は、各命令の実行時刻を参照して、実行時刻の早い命令から遅い命令の順に命令群をソートする。
When the
なお、各命令には、実行時刻に関する情報は、検証支援装置100の時計を基準とした絶対時間が設定されている場合や、先頭の命令を基準とした相対時間が設定されている場合など様々であるが、いずれの場合であっても、マルチCPUスケジューラ200の時刻に同期した状態で動作させる。そして、ソートされた命令群は、RAM303、磁気ディスク305などの記憶領域に記憶される。
Note that each instruction has various information regarding the execution time, such as when an absolute time is set based on the clock of the
算出部402は、ソート部401によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する機能を有する。連続する命令とは、実行時刻の隣接した命令同士を指す。具体的には、図1に例示した命令1〜3であれば命令1と命令2、命令2と命令3とが連続した命令同士となる。そして、算出部402では、これら連続した命令の実行時刻の差分を求めて命令を実行する間隔を算出する。なお、算出された実行間隔は、RAM303、磁気ディスク305などの記憶領域に記憶される。
The
制御部403は、算出部402によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるCPUモデルに与える。たとえば、命令1が0.22[ms]のタイミングにCPUモデル1に実行させ、命令2が0.5[ms]のタイミングにCPUモデル2に実行させる処理の場合であれば、それぞれのタイミングにマルチCPUモデル210の中の実行対象となるCPUモデルに対して実行指示を与える。なお、制御部403から出力された実行指示は、RAM303、磁気ディスク305などの記憶領域に記憶される。
For each execution interval calculated by the
以上説明したようにソート部401、算出部402および制御部403によって検証対象ソフトウェア101の命令群をシミュレーションすることができるが、各命令は、さらに、その実行内容、実行結果に応じて同一の命令の次回実行が決定する。そこで、マルチCPUモデル210には、実行した命令の次回実行予定を判断する機能部(判断部404)が用意されている。
As described above, the instruction group of the
判断部404は、マルチCPUモデル210によって実行された命令に次回実行予定があるか否かを判断する。そして、判断部404によって次回実行予定があると判断された場合には、ソート部401に、次回実行予定の命令を含んだ命令群を加える。ソート部401では、あらたに加えられた命令を含んだ各命令を再度実行時刻順にソートする。
The
また、マルチCPUモデル210によって実行される命令には、他のCPUモデルにデータを送信する処理がある。マルチCPUモデル210には、このようなデータの送信をおこなう命令を実行した場合に、データの送信先となる他のCPUモデルに通知する機能部(通知部405)が用意されている。
Further, the command executed by the
通知部405は、マルチCPUモデル210によって実行された命令に他のプロセッサモデルへの任意のデータの送信要求が含まれていた場合、送信要求に対応した命令をソート部401に通知する。そして、ソート部401では、通知部405から送信要求を含んだ命令が通知された場合、この送信要求に対応した命令を含んだ命令群を実行時刻順にソートする。さらに、制御部403は、ある実行間隔に実行指示を与えた命令が上述の送信要求に対応した命令であった場合、この命令の実行指示とともに対応するデータを送信先となる他のCPUモデルへ与える。
When the instruction executed by the
以上説明した各機能部401〜405を用いることによって、マルチCPUスケジューラ200は、マルチCPUモデル210に対して、検証対象ソフトウェア101に含まれた命令群の実行予定時刻にのみ実行指示を与えればよい。したがって、必要最低限の処理で検証対象ソフトウェア101のシミュレーションが可能になる。また、マルチCPUシステム内の伝送速度にかかわらず、正しいタイミングで正常なトランザクションを実現することができる。
By using the
検証支援装置100は、上述したような命令の実行間隔を求める手法のほかに、抽出部406を用いて、単位時間ごとのタイミングを基準時刻として、この基準時刻をトリガに設定し、マルチCPUモデル210への実行指示を送信するタイミングを含む実行時刻にのみ、実際にマルチCPUスケジューラ200を動作させる手法を用いることができる。
In addition to the method for obtaining the instruction execution interval as described above, the
抽出部406は、任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内にソート部401によってソートされたいずれかの命令の実行時刻が含まれている基準時刻を抽出する。すなわち、0からスタートして250[μs]を単位時間として加算した時刻を基準時刻とする。したがって、0,250,500,750,1000,…[μs]がそれぞれ基準時刻となる。この単位時間は任意の間隔を設定することができる。
The
そして、抽出部406は、ソート部401によってソートされた順番に各命令の実行時刻が基準時刻から250[μs]未満に含まれる基準時刻を抽出する。たとえば、命令1(実行時刻:250[μs])、命令2(実行時刻:770[μs])と命令群がソートされている場合、基準時刻として250,750[μs]が抽出される。
Then, the
抽出部406によって、命令の実行時刻が含まれている基準時刻が抽出されると、制御部403は、それぞれの基準時刻に該当するCPUモデルへ命令の実行指示を与える。上述のように、命令の実行時刻と基準時刻とは一致しないことがある。したがって、制御部403は、実行指示とともに、基準時刻から実行時刻までの差分を待機時間としてCPUモデルへ送信する。
When the
CPUモデルでは、実行指示を受け付けると、待機時間分待機したのち、実行指示に応じた処理を実行する。上述した命令1の場合、該当するCPUモデルは、基準時刻(250[μs])と実行時刻(250[μs])との差分が0[μs]であるため、基準時刻から0[μs]後、すなわち待機なしに命令に応じた処理を実行する。また、命令2の場合、該当するCPUは、基準時刻(750[μs])と実行時刻(770[μs])との差分が20[μs]であるため、20[μs]待機後に、命令に応じた処理を実行する。
In the CPU model, when an execution instruction is received, the CPU model waits for a waiting time and then executes a process according to the execution instruction. In the case of the
このように、抽出部406を用いた場合、検証支援装置100のマルチCPUスケジューラ200は、単位時間ごとに、実行する処理がある場合にのみ、対象となるCPUモデル210に実行指示を送信すればよい。また、CPUモデルによって各CPUモデル間のデータ送信など遅延が発生する処理を実行する場合であっても、マルチCPUスケジューラ200に送信処理が完了する時刻を通知する処理を追加することによって、正常なトランザクションを実現することができる。
As described above, when the
以下に、算出部402によって算出されたタイミングに実行指示を与える場合の具体的な処理を実施の形態1として、抽出部406によって抽出された基準時刻に実行指示を与える場合の具体的な処理を実施の形態2としてそれぞれ説明する。
In the following, specific processing when an execution instruction is given at the timing calculated by the
(実施の形態1)
図5は、実施の形態1における検証支援装置の動作を示す説明図である。実施の形態1では、検証対象ソフトウェア101の命令によって処理が予定されているタイミングにのみマルチCPUスケジューラ200からマルチCPUモデル210の中の該当するCPUモデル(CPUモデル1,2)への実行指示が送信される。
(Embodiment 1)
FIG. 5 is an explanatory diagram illustrating the operation of the verification support apparatus according to the first embodiment. In the first embodiment, the execution instruction from the
図5では、マルチCPUスケジューラ200が、270,400,510[μs]のタイミングに各CPUモデルへ命令の実行指示を送信する処理を例示している(図5中の250,500[μs]はタイミングの目安を表すメモリ)。タイミング270,400[μs]では命令1,2がそれぞれCPUモデル1へ送信されるため、CPUモデル1では、命令1,2に応じた処理を実行する。また、タイミング510[μs]では、命令3がCPUモデル2へ送信されるため、CPUモデル2では、命令3に応じた処理が実行される。また、各CPUモデルにおける命令の実行結果は、返却値(詳しくは後述する)としてマルチCPUスケジューラ200へ送信される。
FIG. 5 illustrates a process in which the
マルチCPUスケジューラ200では、検証対象ソフトウェア101の命令群の実行時刻として得られたすべての処理が完了すると、各CPUモデルから送信された返却値に次回実行する命令が含まれていた場合には、この命令の実行予定時刻まで処理を進めて、対象となるCPUモデルへ実行指示を送信する。マルチCPUスケジューラ200は、命令の実行予定がなくなるまで上述の処理を繰り返す。
In the
また、図6は、実施の形態1の検証支援装置におけるデータ送信時の動作を示す説明図である。図6では、CPUモデル間のデータ送信がある場合の処理について説明する。図6の命令1は、CPUモデル1からCPUモデル2へデータを送信する処理である。この場合、CPUモデル1によって命令1が実行されると、CPU2へのデータの「送信要求」と、この命令を実行させる「次の時刻」が返却値としてマルチCPUスケジューラ200へ送信される。
FIG. 6 is an explanatory diagram showing an operation at the time of data transmission in the verification support apparatus of the first embodiment. In FIG. 6, a process when there is data transmission between CPU models will be described.
命令2は、CPUモデル1から送信された送信要求を実行する命令である。したがって、マルチCPUスケジューラ200は、CPUモデル1から送信された「次の時刻」まで処理を進め、「送信要求」に応じてCPUモデル2へデータを送信する。マルチCPUスケジューラ200は、CPUモデル2による命令2の実行結果の返却値を受け取ると、この返却値に基づいて、次回の命令3を実行させる。CPUモデル1では、命令3に応じた処理を実行し、この実行結果をマルチCPUスケジューラ200へ送信する。マルチCPUスケジューラ200では、実行結果を受け付け、つぎの命令4まで処理を進める。
The
<データの構成>
つぎに、図5,6によって説明した処理の際に扱われるデータについて、さらに詳細に説明する。検証支援装置100によって検証対象ソフトウェア101をシミュレートする際に使用するデータの構成について説明する。図7は、検証支援装置によるシミュレータによって用いるデータの構成を示す説明図である。図7のように、検証支援装置100では、実行パラメータA、返却値B、スケジューラ管理データCを表す3種類のデータ群710〜730が利用される。各データは、それぞれ下記のような構成となっている。
<Data structure>
Next, data handled in the process described with reference to FIGS. 5 and 6 will be described in more detail. The configuration of data used when the
・実行パラメータA
CPUモデルに実行指示を与える際に、CPUモデルに送信するデータ群であり、[実行時刻、受信データの長さ(受信データがない場合には“0”)、受信データ(ある場合のみ)]の3種類のデータによって構成されている。
・ Execution parameter A
This is a data group to be transmitted to the CPU model when an execution instruction is given to the CPU model, [execution time, length of received data (“0” when there is no received data), received data (only when there is)] It is comprised by three types of data.
・返却値B
CPUモデルによって命令が実行された後、マルチCPUスケジューラ200に返却されるデータ群であり、[実行予定時刻(実行予定有りの場合のみ)、実行予定の有無、送信データの長さリスト(送信データがない場合には“0”)、送信データのリスト、送信先CPU番号のリスト]の5種類のデータによって構成されている。
・ Return value B
This is a data group that is returned to the
・スケジューラ管理データC
マルチCPUスケジューラ200において、各CPUモデルの実行順序を管理するために用いられるデータ群であり、[CPU番号(処理対象となるCPUの識別子)、実行予定時刻、受信データの長さ(受信データがない場合には“0”)、受信データ]の4種類のデータによって構成されている。
・ Scheduler management data C
In the
<マルチCPUスケジューラの処理手順>
つぎに、上述した各データを用いて検証対象ソフトウェア101のシミュレーションをおこなう際の、マルチCPUスケジューラ200の処理手順について説明する。図8は、実施の形態1におけるマルチCPUスケジューラの処理手順を示すフローチャートである。図8のフローチャートにおいて、まず、各CPUモデルのスケジューラ管理データCを取得し、実行リストに格納する(ステップS801)。
<Processing procedure of multi-CPU scheduler>
Next, the processing procedure of the
つぎに、スケジューラ管理データCから実行パラメータAを作成する(ステップS802)。ステップS802では、実行リストとして格納されているスケジューラ管理データCのうち、下記の条件に一致する実行パラメータAを作成する。
・実行リストの先頭のスケジューラ管理データC
・実行リストの先頭のスケジューラ管理データCとCPU番号ならびに実行予定時刻が一致するスケジューラ管理データ
Next, the execution parameter A is created from the scheduler management data C (step S802). In step S802, an execution parameter A that matches the following conditions is created from the scheduler management data C stored as an execution list.
-Scheduler management data C at the top of the execution list
Scheduler management data whose CPU number and scheduled execution time coincide with the first scheduler management data C in the execution list
また、ステップS802では、下記のように、実行パラメータAの各データをスケジューラ管理データCの情報を用いて作成する。
実行パラメータA
・実行時刻 ←スケジューラ管理データCの実行予定時刻
・受信データの長さ ←スケジューラ管理データCの受信データの長さ
・受信データ ←スケジューラ管理データCの受信データ
In step S802, each data of the execution parameter A is created using information of the scheduler management data C as described below.
Execution parameter A
-Execution time ← Scheduled execution time of scheduler management data C-Length of received data ← Length of received data for scheduler management data C-Received data ← Received data for scheduler management data C
ステップS802によって実行パラメータAが作成されると、実行パラメータAを作成済みのスケジューラ管理データCを実行リストから削除する(ステップS803)。その後、実行パラメータAを参照してマルチCPUモデル210の中の対象CPUモデルの処理を実行させる(ステップS804)。
When the execution parameter A is created in step S802, the scheduler management data C for which the execution parameter A has been created is deleted from the execution list (step S803). Thereafter, the processing of the target CPU model in the
ステップS804によって対象CPUモデルが実行パラメータに応じた処理を実行すると、つぎに、対象CPUモデルの実行結果に応じた返却値Bを回収する(ステップS805)。そして、回収した返却値Bを参照して次回以降の命令の実行予定があるか否かを判断する(ステップS806)。ここで、実行予定があると判断された場合には(ステップS806:Yes)、実行予定に応じたスケジューラ管理データCを作成し、実行リストに格納する(ステップS807)。 When the target CPU model executes the process according to the execution parameter in step S804, the return value B corresponding to the execution result of the target CPU model is collected (step S805). Then, with reference to the collected return value B, it is determined whether or not the next and subsequent instructions are scheduled to be executed (step S806). If it is determined that there is an execution schedule (step S806: Yes), scheduler management data C corresponding to the execution schedule is created and stored in the execution list (step S807).
ステップS807では、実行予定がある場合、下記のようにしてスケジューラ管理データCを生成する。
スケジューラ管理データC
・CPU番号 ←直前に処理を実行したCPUモデルのCPU番号
・実行予定時刻 ←返却値Bの次回実行予定時刻
・受信データの長さ ←なし
・受信データ ←なし
In step S807, if there is an execution schedule, scheduler management data C is generated as follows.
Scheduler management data C
-CPU number ← CPU number of the CPU model that executed the process immediately before-Scheduled execution time ← Scheduled next execution time of return value B-Length of received data ← None-Received data ← None
ステップS807の処理が完了した後、もしくは、ステップS806において、実行予定がないと判断された場合(ステップS806:No)、つぎに、他のCPUモデルへの送信データがあるか否かを判断する(ステップS808)。ここで、送信データがあると判断された場合(ステップS808:Yes)、送信内容に応じたスケジューラ管理データCを作成し、実行リストに格納する(ステップS809)。 After the process of step S807 is completed, or when it is determined in step S806 that there is no execution schedule (step S806: No), it is next determined whether or not there is data to be transmitted to another CPU model. (Step S808). If it is determined that there is transmission data (step S808: Yes), scheduler management data C corresponding to the transmission content is created and stored in the execution list (step S809).
ステップS809では、ステップS805にて回収した返却値Bの送信データのリストの要素数が0になるまで下記の処理を繰り返す。
1.スケジューラ管理データCを作成
CPU番号:返却値Bの送信先CPU番号リストの先頭要素
実行予定時刻:直前に実行した実行時刻+返却値Bの送信データの長さ×遅延係数
受信データの長さ:返却値Bの送信データの長さの先頭要素
受信データ:返却値Bの送信データリストの先頭要素
2.1によって作成されたスケジューラ管理データCを実行リストに格納
3.格納後、返却値Bの送信先CPU番号のリスト、送信データの長さリスト、送信データのリストのそれぞれの先頭要素を取り除く
In step S809, the following processing is repeated until the number of elements in the transmission data list of the return value B collected in step S805 becomes zero.
1. Create scheduler management data C CPU number: Top element of destination CPU number list of return value B Scheduled execution time: Execution time immediately before execution + length of transmission data of return value B x delay coefficient Length of received data: 2. The first element of the length of the transmission data of the return value B. Reception data: the first element of the transmission data list of the return value B. The scheduler management data C created by 2.1 is stored in the execution list. After the storage, the top elements of the return value B destination CPU number list, transmission data length list, and transmission data list are removed.
ステップS809の処理が完了した後、もしくは、送信データがないと判断された場合(ステップS808:No)、スケジューラ管理データCの実行予定時刻で実行リストをソートする(ステップS810)。その後、続いて実行リスト内が0になっているか否かを判断する(ステップS811)。 After the process of step S809 is completed, or when it is determined that there is no transmission data (step S808: No), the execution list is sorted by the scheduled execution time of the scheduler management data C (step S810). Thereafter, it is determined whether or not the execution list is 0 (step S811).
ステップS811によって、実行リスト内が0になったと判断された場合(ステップS811:Yes)、そのまま一連の処理を終了する。また、実行リスト内にスケジューラ管理データCが残っている場合(ステップS811:No)、ステップS802の処理に戻り、すべての命令のシミュレーションをおこなう。 If it is determined in step S811 that the execution list has become 0 (step S811: Yes), the series of processing ends. If scheduler management data C remains in the execution list (step S811: No), the process returns to step S802, and all instructions are simulated.
<マルチCPUモデルの処理手順>
つぎに、マルチCPUモデル210の処理手順について説明する。図9は、実施の形態1におけるCPUモデルの処理手順を示すフローチャートである。なお、以下説明するマルチCPUモデル210の処理は、マルチCPUスケジューラ200から送信された実行指示の受信をトリガとする。図9のフローチャートにおいて、まず、マルチCPUモデル210内のシミュレータの時刻に実行パラメータAの実行時刻を設定する(ステップS901)。
<Processing procedure of multi-CPU model>
Next, the processing procedure of the
つぎに、実行パラメータAを格納したリスト内のデータが0になっているか否かを判断する(ステップS902)。このステップS902によって、実行パラメータAが格納されたリスト内のデータ数が0になっていると判断された場合(ステップS902:Yes)、指定された時刻にシミュレーションを実行する(ステップS906)。一方、リストに実行パラメータAのデータが残っていると判断された場合(ステップS902:No)、先頭の実行パラメータAに受信データがあるか否かを判断する(ステップS903)。 Next, it is determined whether or not the data in the list storing the execution parameter A is 0 (step S902). If it is determined in step S902 that the number of data in the list in which the execution parameter A is stored is 0 (step S902: Yes), the simulation is executed at the designated time (step S906). On the other hand, when it is determined that the data of the execution parameter A remains in the list (step S902: No), it is determined whether there is reception data in the first execution parameter A (step S903).
ステップS903によって、受信データがあると判断された場合(ステップS903:Yes)、受信データイベントを対象となるCPUモデルへ通知し(ステップS904)、通知済みの実行パラメータAをリストから削除した後(ステップS905)、再度ステップS902の処理に戻る。一方、先頭の実行パラメータAに受信データがないと判断された場合(ステップS903:No)、そのまま、指定された時刻にシミュレーションを実行する(ステップS906)。 If it is determined in step S903 that there is received data (step S903: Yes), the received data event is notified to the target CPU model (step S904), and the notified execution parameter A is deleted from the list (step S904). Step S905), the process returns to step S902 again. On the other hand, if it is determined that there is no reception data in the first execution parameter A (step S903: No), the simulation is executed as it is at the designated time (step S906).
ステップS906によってシミュレーションが実行された後、次回の実行モデルがあるか否かを判断する(ステップS907)。次回の実行モデルがあると判断された場合(ステップS907:Yes)、スケジューラ管理データCの次回実行予定をありに設定し(ステップS908)、次回実行予定が最も早い実行モデルの実行予定時刻を返却値Bに格納する(ステップS909)。一方、次回の実行モデルがないと判断された場合(ステップS907:No)、スケジューラ管理データCの次回実行予定をなしに設定する(ステップS910)。 After the simulation is executed in step S906, it is determined whether there is a next execution model (step S907). If it is determined that there is a next execution model (step S907: Yes), the next execution schedule of the scheduler management data C is set to be present (step S908), and the execution schedule time of the execution model with the earliest next execution schedule is returned. Stored in the value B (step S909). On the other hand, if it is determined that there is no next execution model (step S907: No), the next execution schedule of the scheduler management data C is set to none (step S910).
ステップS908,S910によって、スケジューラ管理データCの次回実行予定が設定されると、つぎに、処理中のCPUモデルから他のCPUモデルへの送信データがあるか否かを判断する(ステップS911)。ここで、送信データがあると判断された場合(ステップS911:Yes)、送信データに関する情報(送信先CPU番号、データの長さ、送信データ)を返却値Bに格納し(ステップS912)、一連の処理を終了する。また、送信データがないと判断された場合(ステップS911:No)、ステップS912の処理をスキップしてそのまま一連の処理を終了する。 When the next execution schedule of the scheduler management data C is set in steps S908 and S910, it is next determined whether there is transmission data from the CPU model being processed to another CPU model (step S911). If it is determined that there is transmission data (step S911: Yes), information (transmission destination CPU number, data length, transmission data) regarding the transmission data is stored in the return value B (step S912), and a series of Terminate the process. If it is determined that there is no transmission data (step S911: No), the process of step S912 is skipped and the series of processes ends.
以上説明したように、実施の形態1では、検証対象ソフトウェア101に含まれた命令群の実行予定時刻にのみ実行指示を送信することができる。したがって、命令を実行するタイミングのみにマルチCPUモデル210を動作させればよく、必要最低限の処理で検証対象ソフトウェア101のシミュレーションが可能になる。また、実際のマルチCPUシステム内の伝送速度が高速であっても、正しいタイミングで正常なトランザクションを実現することができる。
As described above, in the first embodiment, the execution instruction can be transmitted only at the scheduled execution time of the instruction group included in the
(実施の形態2)
図10は、実施の形態2における検証支援装置の動作を示す説明図である。実施の形態2は、単位時間ごとの基準時刻に実行させる命令がある場合にのみ、マルチCPUスケジューラ200から実行指示を送信して、マルチCPUモデル210によって対応する処理を実行させる。
(Embodiment 2)
FIG. 10 is an explanatory diagram illustrating the operation of the verification support apparatus according to the second embodiment. In the second embodiment, only when there is an instruction to be executed at the reference time for each unit time, an execution instruction is transmitted from the
マルチCPUスケジューラ200は、0を初期値として25[μs]を単位時間として加算するごとに基準時刻とする(図10のタイミングの右側の目盛り参照)。そして、図10では、マルチCPUスケジューラ200が、270,302,400,510[μs]のタイミングに対応するCPUモデルへ命令の実行指示を送信する処理を例示している。
The
したがって、タイミング250,400[μs]の単位時間に命令1,3がそれぞれCPUモデル1へ送信される。そして、CPUモデル1では、命令1,3に応じた処理を270,400[μs]に実行するため、単位時間(250,400[μs])の後、差分時間分待機して命令に応じた処理を実行する。また、タイミング300,500[μs]の単位時間に命令2,4がそれぞれCPUモデル2へ送信される。そして、CPUモデル2では、命令2,4に応じた処理を302,510[μs]に実行するため、単位時間(300,500[μs])の後、差分時間分待機して命令2,4に応じた処理を実行する。また、各CPUモデルにおける命令の実行結果は、返却値(詳しくは後述する)としてマルチCPUスケジューラ200へ送信される。
Therefore, the
また、マルチCPUスケジューラ200では、検証対象ソフトウェア101の命令群の実行時刻として得られたすべての処理が完了すると、各CPUモデルから送信された返却値に次回実行する命令が含まれていた場合には、この命令の実行予定時刻まで処理を進めて、対象となるCPUモデルへ実行指示を送信する。マルチCPUスケジューラ200は、命令の実行予定がなくなるまで上述の処理を繰り返す。
In the
実施の形態2の場合、マルチCPUスケジューラ200では、単位時間のうち命令の実行指示の送信、返却値の受信をおこなう時刻が含まれる単位時間、そして、マルチCPUモデル210では、実行指示を受け付けて命令に応じた処理を実行する時刻を含む単位時間のみ、すなわち、図10の網掛け部分のみCPU(検証支援装置100のCPU301)が実行される。そして、その他の時刻では処理をスキップするため、効率的なシミュレーションが可能となる。
In the case of the second embodiment, the
また、図11は、実施の形態2の検証支援装置におけるデータ送信時の動作を示す説明図である。図11では、CPUモデル間のデータ送信がある場合の処理について説明する。図11の命令1は、CPUモデル1からCPUモデル2へデータを送信する処理である。この場合、CPUモデル1によって命令1が実行されると、CPUモデル2へのデータの「送信要求」と、この命令を実行させる「次の時刻」が返却値としてマルチCPUスケジューラ200へ送信される。
FIG. 11 is an explanatory diagram showing an operation at the time of data transmission in the verification support apparatus of the second embodiment. In FIG. 11, a process when there is data transmission between CPU models will be described. An
命令2は、CPUモデル1から送信された送信要求を実行する命令である。したがって、CPUモデル2では、マルチCPUスケジューラ200からのデータを受信すると、モデルAを実行した後、タイミング302[μs]まで待機し、本来のイベント受信時刻に受信イベントが通知されるように、遅延を含むイベントを実行させる。
The
<マルチCPUスケジューラの処理手順>
つぎに、検証対象ソフトウェア101のシミュレーションをおこなう際の、マルチCPUスケジューラ200の処理手順について説明する。なお、実施の形態2の場合も、実施の形態1と同様に図7にて説明した各データを利用する。また、マルチCPUスケジューラ200の処理自体は、図8を用いて説明した実施の形態1の処理手順と同様である。この処理のうち、実行パラメータを送信する際には、実行時刻と基準時刻との差分情報を待機時間として提供する。マルチCPUモデル210では、この差分情報に基づいて処理を遅延させることができる。
<Processing procedure of multi-CPU scheduler>
Next, a processing procedure of the
<マルチCPUモデルの処理手順>
つぎに、つぎに、マルチCPUモデル210の処理手順について説明する。図12は、実施の形態2におけるマルチCPUモデルの処理手順を示すフローチャートである。なお、以下説明するマルチCPUモデル210の処理は、マルチCPUスケジューラ200から送信された実行指示の受信をトリガとする。図12のフローチャートにおいて、まず、マルチCPUモデル210内のシミュレータの時刻に実行パラメータAの実行時刻を設定する(ステップS1201)。
<Processing procedure of multi-CPU model>
Next, the processing procedure of the
つぎに、実行パラメータAを格納したリスト内のデータが0になっているか否かを判断する(ステップS1202)。このステップS1202によって、実行パラメータAが格納されたリスト内のデータ数が0になっていると判断された場合(ステップS1202:Yes)、指定された時刻から単位時間(図11の場合は25[μs])の区切りまでにシミュレーションを実行する(ステップS1206)。このステップS1206の処理と後述するステップS1204が実施の形態1にかかるマルチCPUモデル210の処理との差分となる。一方、リストに実行パラメータAのデータが残っていると判断された場合(ステップS1202:No)、先頭の実行パラメータAに受信データがあるか否かを判断する(ステップS1203)。
Next, it is determined whether or not the data in the list storing the execution parameter A is 0 (step S1202). If it is determined in this step S1202 that the number of data in the list in which the execution parameter A is stored is 0 (step S1202: Yes), the unit time (in the case of FIG. 11, 25 [ The simulation is executed up to the break of [mu] s]) (step S1206). A difference between the process of step S1206 and the process of later-described step S1204 of the
ステップS1203によって、受信データがあると判断された場合(ステップS1203:Yes)、受信データイベントを対象となるCPUモデルへ遅延通知(遅延情報を含んだイベント通知)し(ステップS1204)、通知済みの実行パラメータAをリストから削除した後(ステップS1205)、再度ステップS1202の処理に戻る。一方、先頭の実行パラメータAに受信データがないと判断された場合(ステップS1203:No)、そのまま、指定された時刻にシミュレーションを実行する(ステップS1206)。 If it is determined in step S1203 that there is received data (step S1203: Yes), the received data event is notified of a delay to the target CPU model (event notification including delay information) (step S1204). After deleting the execution parameter A from the list (step S1205), the process returns to the process of step S1202. On the other hand, when it is determined that there is no received data in the first execution parameter A (step S1203: No), the simulation is executed as it is at the designated time (step S1206).
ステップS1206によってシミュレーションが実行された後、次回の実行モデルがあるか否かを判断する(ステップS1207)。次回の実行モデルがあると判断された場合(ステップS1207:Yes)、スケジューラ管理データCの次回実行予定をありに設定し(ステップS1208)、次回実行予定が最も早い実行モデルの実行予定時刻を返却値Bに格納する(ステップS1209)。一方、次回の実行モデルがないと判断された場合(ステップS1207:No)、スケジューラ管理データCの次回実行予定をなしに設定する(ステップS1210)。 After the simulation is executed in step S1206, it is determined whether there is a next execution model (step S1207). If it is determined that there is a next execution model (step S1207: Yes), the next execution schedule of the scheduler management data C is set to be present (step S1208), and the execution schedule time of the execution model with the earliest next execution schedule is returned. Stored in the value B (step S1209). On the other hand, if it is determined that there is no next execution model (step S1207: No), the next execution schedule of the scheduler management data C is set to none (step S1210).
ステップS1208,S1210によって、スケジューラ管理データCの次回実行予定が設定されると、つぎに、処理中のCPUモデルから他のCPUモデルへの送信データがあるか否かを判断する(ステップS1211)。ここで、送信データがあると判断された場合(ステップS1211:Yes)、送信データに関する情報(送信先CPU番号、データの長さ、送信データ)を返却値Bに格納し(ステップS1212)、一連の処理を終了する。また、送信データがないと判断された場合(ステップS1211:No)、ステップS1212の処理をスキップしてそのまま一連の処理を終了する。 When the next execution schedule of the scheduler management data C is set in steps S1208 and S1210, it is next determined whether or not there is transmission data from the CPU model being processed to another CPU model (step S1211). If it is determined that there is transmission data (step S1211: Yes), information about the transmission data (destination CPU number, data length, transmission data) is stored in the return value B (step S1212). Terminate the process. If it is determined that there is no transmission data (step S1211: No), the process of step S1212 is skipped, and the series of processes ends.
以上説明したように、本実施の形態2によれば、単位時間ごとに、実行する処理がある場合にのみ、対象となるマルチCPUモデル210に実行指示を送信すればよい。また、CPUモデルによってCPU間のデータ送信など遅延が発生する処理を実行する場合であっても、マルチCPUスケジューラ200に送信処理が完了する時刻を通知する処理を追加することによって、正常なトランザクションを実現することができる。
As described above, according to the second embodiment, an execution instruction may be transmitted to the target
以上説明したように、本実施の形態によれば、検証対象ソフトウェア101の命令群を取得すると、各命令は実行時刻順にソートされ、各命令の実行間隔を算出する。マルチCPUモデル210では、算出された実行間隔にのみ該当する処理を実行すれば、取得した命令群のシミュレーションをおこなうことができる。したがって、マルチCPUシステムのシミュレーションを高速かつ効率的に実行させることができる。
As described above, according to the present embodiment, when the instruction group of the
また、図17にて説明したように、従来のマルチCPUシミュレータ1500の場合、CPU間の伝送速度の高速化に反比例してシミュレーション速度が低下してしまうという問題を抱えていた。それに対して本実施の形態では、CPUモデル間の伝送速度にかかわらず、CPUモデル間のデータ送信を含む処理のシミュレーションを実現できる。すなわち、任意のマルチCPUシステムに対して所望するソフトウェアを実行させた場合の協調動作の検証ができるという効果も併せ持つ。
Also, as described with reference to FIG. 17, the conventional
なお、本実施の形態で説明した検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。 Note that the verification support method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. Further, this program may be a medium that can be distributed via a network such as the Internet.
また、本実施の形態で説明した検証支援装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した検証支援装置100の機能(ソート部401〜抽出部406)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、検証支援装置100を製造することができる。
In addition, the
上述した実施の形態に関し、さらに以下の付記を開示する。 The following additional notes are disclosed with respect to the embodiment described above.
(付記1)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータを、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段、
前記ソート手段によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出手段、
前記算出手段によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える制御手段、
として機能させることを特徴とする検証支援プログラム。
(Supplementary note 1) A computer that simulates an instruction received an execution instruction using a multiprocessor model in which a plurality of processors is realized by software.
Sorting means for sorting an instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A calculation unit that calculates an execution interval of the instruction group with reference to an execution time of each successive instruction of the instruction group sorted by the sorting unit;
Control means for giving an instruction to execute a corresponding instruction to a processor model to be executed for each execution interval calculated by the calculating means;
Verification support program characterized by functioning as
(付記2)前記コンピュータを、さらに、
前記コンピュータによって実行された命令に次回実行予定があるか否かを判断する判断手段、として機能させ、
前記ソート手段は、前記判断手段によって次回実行予定があると判断された場合に、当該次回実行予定の命令を含んだ命令群を実行時刻順にソートすることを特徴とする付記1に記載の検証支援プログラム。
(Supplementary note 2)
Functioning as a determination means for determining whether or not an instruction executed by the computer is scheduled to be executed next time,
The verification support according to
(付記3)前記コンピュータを、さらに、
前記コンピュータによって実行された命令に他のプロセッサモデルへの任意のデータの送信要求が含まれていた場合、当該送信要求に対応した命令を前記ソート手段に通知する通知手段、として機能させ、
前記ソート手段は、前記通知手段によって通知された送信要求に対応した命令を含んだ命令群を実行時刻順にソートし、
前記制御手段は、前記実行間隔に該当する命令が前記送信要求に対応した命令の場合、当該命令の実行指示とともに前記任意のデータを前記他のプロセッサモデルへ与えることを特徴とする付記1または2に記載の検証支援プログラム。
(Supplementary note 3)
When the instruction executed by the computer includes a request to transmit arbitrary data to another processor model, the instruction corresponding to the transmission request is made to function as a notification unit that notifies the sorting unit,
The sorting means sorts the instruction group including the instructions corresponding to the transmission request notified by the notifying means in order of execution time,
The control means, when an instruction corresponding to the execution interval is an instruction corresponding to the transmission request, gives the arbitrary data to the other processor model together with an instruction to execute the instruction. The verification support program described in 1.
(付記4)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータを、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段、
任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート手段によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出手段、
前記抽出手段によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える制御手段、
として機能させることを特徴とする検証支援プログラム。
(Supplementary Note 4) A computer that simulates an instruction received an execution instruction using a multiprocessor model in which a plurality of processors is realized by software.
Sorting means for sorting an instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A reference time such that the execution time of any instruction sorted by the sorting means is included in the unit time from each reference time is set as the reference time from any time to the unit time. Extraction means for extracting from the reference time,
Control means for giving an execution instruction of the corresponding instruction and a waiting time until execution of the execution instruction to the execution target processor model for each reference time extracted by the extraction means,
Verification support program characterized by functioning as
(付記5)前記コンピュータを、さらに、
前記コンピュータによって実行された命令の次回実行予定があるか否かを判断する判断手段、として機能させ、
前記ソート手段は、前記判断手段によって次回実行予定があると判断された場合に、当該次回実行予定の命令を含んだ命令群を実行時刻順にソートすることを特徴とする付記4に記載の検証支援プログラム。
(Supplementary note 5)
Functioning as a determination means for determining whether or not there is a next execution schedule of the instruction executed by the computer,
5. The verification support according to
(付記6)前記コンピュータを、さらに、
前記コンピュータによって実行された命令に他のプロセッサモデルへの任意のデータの送信要求が含まれていた場合、当該送信要求に対応した命令を前記ソート手段に通知する通知手段、として機能させ、
前記ソート手段は、前記通知手段によって通知された送信要求に対応した命令を含んだ命令群を実行時刻順にソートし、
前記制御手段は、前記抽出手段によって抽出された基準時刻ごとに、該当する命令が前記送信命令に対応した命令の場合、当該命令の実行指示とともに前記任意のデータを前記他のプロセッサモデルへ与えることを特徴とする付記5に記載の検証支援プログラム。
(Supplementary note 6)
When the instruction executed by the computer includes a request to transmit arbitrary data to another processor model, the instruction corresponding to the transmission request is made to function as a notification unit that notifies the sorting unit,
The sorting means sorts the instruction group including the instructions corresponding to the transmission request notified by the notifying means in order of execution time,
The control means, for each reference time extracted by the extraction means, when the corresponding instruction is an instruction corresponding to the transmission instruction, gives the arbitrary data together with an instruction to execute the instruction to the other processor model. The verification support program according to appendix 5, characterized by:
(付記7)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなう検証支援装置であって、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段と、
前記ソート手段によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出手段と、
前記算出手段によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える制御手段と、
を備えることを特徴とする検証支援装置。
(Supplementary note 7) A verification support apparatus for simulating an instruction received an execution instruction using a multiprocessor model in which a plurality of processors are realized by software,
Sorting means for sorting an instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A calculation unit that calculates an execution interval of the instruction group with reference to an execution time of each successive instruction of the instruction group sorted by the sorting unit;
Control means for giving an instruction to execute a corresponding instruction to a processor model to be executed for each execution interval calculated by the calculating means;
A verification support apparatus comprising:
(付記8)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなう検証支援装置であって、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段と、
任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート手段によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出手段と、
前記抽出手段によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える制御手段と、
を備えることを特徴とする検証支援装置。
(Supplementary note 8) A verification support apparatus for simulating an instruction received an execution instruction using a multiprocessor model in which a plurality of processors are realized by software,
Sorting means for sorting an instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A reference time such that the execution time of any instruction sorted by the sorting means is included in the unit time from each reference time is set as the reference time from any time to the unit time. Extraction means for extracting from the reference time;
For each reference time extracted by the extraction means, a control means for giving an execution instruction of the corresponding instruction and a waiting time until execution of the execution instruction to the processor model to be executed,
A verification support apparatus comprising:
(付記9)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータが、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート工程と、
前記ソート工程によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出工程と、
前記算出工程によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える指示工程と、
を実行することを特徴とする検証支援方法。
(Additional remark 9) The computer which simulates the instruction | indication which received the execution instruction using the multiprocessor model which implement | achieved several processors by software,
A sorting step of sorting the instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A calculation step of calculating an execution interval of the instruction group with reference to an execution time of each successive instruction of the instruction group sorted by the sorting step;
An instruction step for giving an instruction to execute a corresponding instruction to a processor model to be executed for each execution interval calculated by the calculation step;
The verification support method characterized by performing this.
(付記10)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータが、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート工程と、
任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート工程によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出工程と、
前記抽出工程によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える指示工程と、
を実行することを特徴とする検証支援方法。
(Additional remark 10) The computer which simulates the instruction which received the execution instruction using the multiprocessor model which realized a plurality of processors by software,
A sorting step of sorting the instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
With each unit time as a reference time from an arbitrary time, each reference time such that the execution time of any instruction sorted by the sorting step is included in the unit time from each reference time An extraction process for extracting from the reference time;
For each reference time extracted by the extraction step, an instruction step for giving an instruction to execute the corresponding instruction and a waiting time until execution of the execution instruction to the processor model to be executed;
The verification support method characterized by performing this.
100 検証支援装置
101 検証対象ソフトウェア
102 シミュレーション結果
110 マルチCPUシミュレータ
200 マルチCPUスケジューラ
210 マルチCPUモデル
401 ソート部
402 算出部
403 制御部
404 判断部
405 通知部
406 抽出部
DESCRIPTION OF
Claims (5)
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段、
前記ソート手段によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出手段、
前記算出手段によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える制御手段、
として機能させることを特徴とする検証支援プログラム。 A computer that simulates instructions that have received instructions for execution using a multiprocessor model in which multiple processors are implemented by software.
Sorting means for sorting an instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A calculation unit that calculates an execution interval of the instruction group with reference to an execution time of each successive instruction of the instruction group sorted by the sorting unit;
Control means for giving an instruction to execute a corresponding instruction to a processor model to be executed for each execution interval calculated by the calculating means;
Verification support program characterized by functioning as
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段、
任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート手段によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出手段、
前記抽出手段によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える制御手段、
として機能させることを特徴とする検証支援プログラム。 A computer that simulates instructions that have received instructions for execution using a multiprocessor model in which multiple processors are implemented by software.
Sorting means for sorting an instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A reference time such that the execution time of any instruction sorted by the sorting means is included in the unit time from each reference time is set as the reference time from any time to the unit time. Extraction means for extracting from the reference time,
Control means for giving an execution instruction of the corresponding instruction and a waiting time until execution of the execution instruction to the execution target processor model for each reference time extracted by the extraction means,
Verification support program characterized by functioning as
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段と、
前記ソート手段によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出手段と、
前記算出手段によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える制御手段と、
を備えることを特徴とする検証支援装置。 A verification support apparatus that simulates an instruction received an execution instruction using a multiprocessor model in which a plurality of processors is realized by software,
Sorting means for sorting an instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A calculation unit that calculates an execution interval of the instruction group with reference to an execution time of each successive instruction of the instruction group sorted by the sorting unit;
Control means for giving an instruction to execute a corresponding instruction to a processor model to be executed for each execution interval calculated by the calculating means;
A verification support apparatus comprising:
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段と、
任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート手段によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出手段と、
前記抽出手段によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える制御手段と、
を備えることを特徴とする検証支援装置。 A verification support apparatus that simulates an instruction received an execution instruction using a multiprocessor model in which a plurality of processors is realized by software,
Sorting means for sorting an instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A reference time such that the execution time of any instruction sorted by the sorting means is included in the unit time from each reference time is set as the reference time from any time to the unit time. Extraction means for extracting from the reference time;
For each reference time extracted by the extraction means, a control means for giving an execution instruction of the corresponding instruction and a waiting time until execution of the execution instruction to the processor model to be executed,
A verification support apparatus comprising:
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート工程と、
前記ソート工程によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出工程と、
前記算出工程によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える指示工程と、
を実行することを特徴とする検証支援方法。 A computer that simulates an instruction received an execution instruction using a multiprocessor model in which a plurality of processors is realized by software.
A sorting step of sorting the instruction group including information on a processor model to be executed and execution time in the multiprocessor model in order of execution time;
A calculation step of calculating an execution interval of the instruction group with reference to an execution time of each successive instruction of the instruction group sorted by the sorting step;
An instruction step for giving an instruction to execute a corresponding instruction to a processor model to be executed for each execution interval calculated by the calculation step;
The verification support method characterized by performing this.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009036363A JP5251586B2 (en) | 2009-02-19 | 2009-02-19 | Verification support program, verification support apparatus, and verification support method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009036363A JP5251586B2 (en) | 2009-02-19 | 2009-02-19 | Verification support program, verification support apparatus, and verification support method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010191758A JP2010191758A (en) | 2010-09-02 |
JP5251586B2 true JP5251586B2 (en) | 2013-07-31 |
Family
ID=42817726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009036363A Expired - Fee Related JP5251586B2 (en) | 2009-02-19 | 2009-02-19 | Verification support program, verification support apparatus, and verification support method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5251586B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6119442B2 (en) * | 2013-06-11 | 2017-04-26 | 株式会社ソシオネクスト | Simulation apparatus, operation method of simulation apparatus, and simulation program |
JP6770935B2 (en) * | 2017-07-03 | 2020-10-21 | 日立オートモティブシステムズ株式会社 | Verification device for vehicle control device |
JP7017871B2 (en) * | 2017-07-06 | 2022-02-09 | 日立Astemo株式会社 | Vehicle control simulation device |
CN113127100B (en) * | 2021-05-14 | 2022-07-12 | 武汉深之度科技有限公司 | Heterogeneous program execution method and device, computing device and readable storage medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901260A (en) * | 1987-10-28 | 1990-02-13 | American Telephone And Telegraph Company At&T Bell Laboratories | Bounded lag distributed discrete event simulation method and apparatus |
JPH03255565A (en) * | 1990-03-06 | 1991-11-14 | Fujitsu Ltd | Parallel computer simulating system |
JPH0535690A (en) * | 1991-07-29 | 1993-02-12 | Fujitsu Ltd | System and method for parallel computer simulation |
JP2002323978A (en) * | 2001-04-25 | 2002-11-08 | Nec Corp | Test facility system, time synchronizing method for application software to be used therefor and program therefor |
JP4681513B2 (en) * | 2006-06-30 | 2011-05-11 | トヨタテクニカルディベロップメント株式会社 | Real-time parallel distributed simulation system |
-
2009
- 2009-02-19 JP JP2009036363A patent/JP5251586B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010191758A (en) | 2010-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zeng et al. | Stochastic analysis of can-based real-time automotive systems | |
Hrischuk et al. | Automatic generation of a software performance model using an object-oriented prototype | |
JP4655240B2 (en) | Timing analysis support device | |
JP2008547128A5 (en) | ||
JP2012502344A (en) | Method system and software for providing an image sensor based human machine interface | |
JP5251586B2 (en) | Verification support program, verification support apparatus, and verification support method | |
CN113407284A (en) | Navigation interface generation method and device, storage medium and electronic equipment | |
JP5034916B2 (en) | Performance evaluation model generation method, system performance evaluation method, and performance evaluation model generation apparatus | |
US8255846B2 (en) | Development tool for comparing netlists | |
CN107491311B (en) | Method and system for generating page file and computer equipment | |
US8074192B2 (en) | Verification support apparatus, verification support method, and computer product | |
JP2012203451A (en) | Semiconductor integrated circuit simulation device and semiconductor integrated circuit simulation method | |
JP4716964B2 (en) | Timing diagram editing program, timing diagram editing apparatus, and timing diagram editing method | |
JP4406028B2 (en) | Data presentation device, data presentation program, and data presentation method | |
CN105046017B (en) | A kind of quick points distributing method and system of electromechanics Aseismic Design | |
Ladry et al. | Formal description techniques to support the design, construction and evaluation of fusion engines for sure (safe, usable, reliable and evolvable) multimodal interfaces | |
JP5163308B2 (en) | IP model generation device, IP model generation method, and IP model generation program | |
JP4645843B2 (en) | Data processing apparatus, data processing method and program | |
Du et al. | Temporal patterns for complex interaction design | |
JP2013200851A (en) | Design support program, design support method, and design support apparatus | |
WO2021220424A1 (en) | Diagram modification device, diagram modification method, and diagram modification program | |
JPH1166131A (en) | Cad and cae device and its analytic result display method | |
JP2008217071A (en) | High-level synthesis apparatus and high-level synthesis method | |
JP2015170031A (en) | Association method, association program, and association device | |
JP4802130B2 (en) | Drawing creation program, drawing creation apparatus, and drawing creation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130305 |
|
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: 20130319 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130401 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160426 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |