JP5251586B2 - 検証支援プログラム、検証支援装置および検証支援方法 - Google Patents

検証支援プログラム、検証支援装置および検証支援方法 Download PDF

Info

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
Application number
JP2009036363A
Other languages
English (en)
Other versions
JP2010191758A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2009036363A priority Critical patent/JP5251586B2/ja
Publication of JP2010191758A publication Critical patent/JP2010191758A/ja
Application granted granted Critical
Publication of JP5251586B2 publication Critical patent/JP5251586B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなう検証支援プログラム、検証支援装置および検証支援方法に関する。
近年、車載用途の電子機器など、ある一定以上の規模をもつシステムの場合、複数のCPUを用意して、各CPUを協調動作させることにより処理速度の向上を図るマルチCPUシステムに関する技術、また、機能ごとに1つのCPUを割り当てることにより開発の簡便を図るマルチCPUシステムに関する技術が多く用いられている。これらマルチCPUシステムによって実行させるソフトウェアを検証する際には、実機に比べユーザの利便性が高く、高速なシミュレートが可能なことから、マルチCPUをソフトウェアによって実現したマルチCPUモデルシミュレータが多く利用されている(たとえば、下記特許文献1参照。)。
図13は、従来のマルチCPUシミュレータの構成を示すブロック図である。図13のように、従来のマルチCPUシミュレータ1300は、マルチCPUスケジューラ10によって、複数のCPUモデル11(たとえば、CPUモデル1,2)の実行制御ならびにCPU間通信制御をおこなう。なお、図13のマルチCPUシミュレータ1300では、2つのCPUが協調動作する場合のシミュレーションをおこなうため、2つのCPUモデル11が用意されている。したがって、さらに多数のCPUを備えたマルチCPUシステムによる動作のシミュレーションをおこなう場合には、システムの構成に応じたCPUモデルを用意する。
そして、図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の処理が完了すると、次の実行時刻の処理に移行する。
また、従来のマルチCPUシステムには、CPU間のデータ送受信を実現するために複数のCPU間を所定のネットワークによって接続した構成もあり、このようなシステムに対応したマルチCPUシミュレータも提供されている。図15は、CPU間をネットワーク回路で接続したマルチCPUシミュレータの構成を示すブロック図である。図15のようにマルチCPUシミュレータ1500では、各CPUモデル11を接続するネットワーク回路12が用意されている。したがって、マルチCPUスケジューラ10は、ネットワーク回路12を介してCPU間通信制御をおこなうことによって各CPUモデル11に実行させる命令を管理する。
そして、図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へ通知される。
特開2008−59192号公報
しかしながら、上述したような従来のマルチCPUシミュレータの場合、マルチCPUシステムの高集積化や処理性能の向上に伴い、CPU間のデータの伝送速度が高速化すると、トランザクションの同期がとれなくなってしまう恐れがある。ここで、図17は、CPU間を高速なネットワーク回路で接続したマルチCPUシミュレータの動作を示す説明図である。図17を用いて、図15にて説明したマルチCPUシミュレータ1500のネットワーク回路12の伝送速度が1[Mbps]に高速化した場合のCPU間のデータ送信について説明する。
図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からのデータの送信要求を通知できない。したがって、正常なトランザクションとして処理できないという問題があった。
高速な伝送環境のマルチCPUシステムであっても、正常なトランザクション処理をおこなうには、各CPU間の同期をとる単位時間の間隔をより短く設定しなければならない。たとえば、マルチCPUスケジューラ10を図17の0.5〜0.75[ms]間に示したように25[μs]間隔ごとに同期をとるような設定にすれば、正常なトランザクションが可能になるが、同期をとるための計算回数だけでも10倍になってしまうため、処理負荷が大幅に増加し、シミュレーション速度が低下してしまうという問題があった。
この発明は、上述した従来技術による問題点を解消するため、マルチCPUシステムのシミュレーションを高速かつ効率的に実行させる検証支援プログラム、検証支援装置および検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この検証支援プログラム、検証支援装置および検証支援方法は、複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータにおいて、前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートする処理と、ソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する処理と、算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える処理と、を含むことを要件とする。
この検証支援プログラム、検証支援装置および検証支援方法によれば、マルチCPUシステムなど複数のプロセッサが協調動作をおこなうシステムにおける動作を検証したい検証対象ソフトウェアの命令群を取得すると、各命令は実行時刻順にソートされ、各命令の実行間隔を算出する。マルチプロセッサモデルでは、算出された実行間隔にのみ該当する処理を実行すれば、取得した命令群のシミュレーションをおこなうことができる。
この検証支援プログラム、検証支援装置および検証支援方法によれば、マルチCPUシステムのシミュレーションを高速かつ効率的に実行させることができるという効果を奏する。
本実施の形態にかかる検証支援処理の概要を示す説明図である。 本実施の形態にかかるマルチCPUシステムのシミュレータの構成を示す説明図である。 検証支援装置のハードウェア構成を示すブロック図である。 検証支援装置の機能的構成を示すブロック図である。 実施の形態1における検証支援装置の動作を示す説明図である。 実施の形態1の検証支援装置におけるデータ送信時の動作を示す説明図である。 検証支援装置によって用いる各データの構成を示す説明図である。 実施の形態1におけるマルチCPUスケジューラの処理手順を示すフローチャートである。 実施の形態1におけるCPUモデルの処理手順を示すフローチャートである。 実施の形態2における検証支援装置の動作を示す説明図である。 実施の形態2の検証支援装置におけるデータ送信時の動作を示す説明図である。 実施の形態2におけるマルチCPUモデルの処理手順を示すフローチャートである。 従来のマルチCPUシミュレータの構成を示すブロック図である。 従来のマルチCPUシミュレータの動作を示す説明図である。 CPU間をネットワーク回路で接続したマルチCPUシミュレータの構成を示すブロック図である。 CPU間をネットワーク回路で接続したマルチCPUシミュレータの動作を示す説明図である。 CPU間を高速なネットワーク回路で接続したマルチCPUシミュレータの動作を示す説明図である。
以下に添付図面を参照して、この検証支援プログラム、検証支援装置および検証支援方法の好適な実施の形態を詳細に説明する。この検証支援プログラム、検証支援装置および検証支援方法では、マルチCPUシステムに実行させる命令群を時刻順にソートして命令群の実行間隔を算出し、当該実行間隔ごと該当する命令の実行指示を与えるため、必要最低限の処理によって命令群のシミュレーションを実行できる。
(検証支援処理の概要)
まず、本実施の形態にかかる検証支援処理の概要について説明する。図1は、本実施の形態にかかる検証支援処理の概要を示す説明図である。図1のように、検証支援装置100は、マルチCPUシミュレータ110によって検証対象ソフトウェア101のシミュレーションを実行してシミュレーション結果102を得ることができる。
マルチCPUシミュレータ110は、マルチCPUシステムの動作をソフトウェアによって実現した機能部であり、マルチCPUスケジューラ200と、マルチCPUモデル210によって構成されている。マルチCPUスケジューラ200は、検証支援装置100が取得した検証対象ソフトウェア101を構成する命令群を実行時刻順にソートし、実行時刻順に該当する命令の実行指示をマルチCPUモデル210に与える。
マルチCPUモデル210は、検証対象ソフトウェア101を処理する際に協調動作する複数のCPUの動作をソフトウェアによって実現したCPUモデル1〜Nによって構成されている。したがって、マルチCPUモデル210は、マルチCPUスケジューラ200から命令の実行指示を受け付けると、該当するCPUモデルによって処理を実行させる。そして、マルチCPUモデル210による検証対象ソフトウェア101の実行結果はシミュレーション結果102として出力される。
このように、本実施の形態にかかる検証支援処理では、マルチCPUスケジューラ200によって、各CPUモデルが処理をおこなう時刻を取得し、取得した時刻に該当するCPUへ実行指示を与えるため、必要最低限の検証対象ソフトウェア101のシミュレーションを実現することができる。また、命令に応じた実行時刻に実行指示を送信すればよいため、CPU間の伝送速度にかかわらず、正常なトランザクションが可能となる。以下に、上述したような本実施の形態にかかる検証支援処理を実現するための具体的な構成について、実施の形態1,2の2つの例を挙げて説明する。
(マルチCPUシミュレータの構成)
まず、実施の形態1,2に共通して検証対象ソフトウェア101のシミュレーションをおこなうマルチCPUシミュレータ110の構成について説明する。図2は、本実施の形態にかかるマルチCPUシミュレータの構成を示す説明図である。図2のように、マルチCPUシミュレータ120は、マルチCPUスケジューラ200と、CPUモデル1,2を含んだマルチCPUモデル210とによって構成されている。また、各CPUモデル内には、CPUモデル内の動作タイミングを制御するCPU内スケジューラと、実際のCPU内部のハードウェアに対応したハードウェアモデルと、これらハードウェアに実行させるソフトウェアに対応したソフトウェアモデルとが用意されている。
(検証支援装置のハードウェア構成)
つぎに、検証支援装置100の具体的なハードウェア構成について説明する。図3は、実施の形態にかかる検証支援装置のハードウェア構成を示すブロック図である。検証支援装置100の構成も実施の形態1,2に共通であり、図3に示したような汎用の情報処理装置に本実施の形態にかかる検証支援処理を実現させる検証支援プログラムを実行させることによって、検証支援装置100としての機能を実現することができる。
図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によってそれぞれ接続されている。
ここで、CPU301は、検証支援装置100の全体の制御を司る。ROM302は、ブートプログラムや、本実施の形態にかかる検証支援処理を実現するための検証支援プログラムなどの各種プログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータの更新/参照を制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。なお、図3のハードウェア構成では、検証支援装置100の記録媒体の実装例、磁気ディスク305を用いているが、光ディスクや、フラッシュメモリなど他の記録媒体を利用してもよい。
通信I/F306は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク(NET)309に接続され、このネットワーク309を介して他の検証支援装置100やその他の外部装置に接続される。そして、通信I/F306は、ネットワーク309と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F306の構成例としては、たとえばモデムやLANアダプタなどを採用することができる。
入力デバイス307は、検証支援装置100に対しての外部からの入力を受け付ける。入力デバイス307としては、具体的には、キーボード、マウスなどが挙げられる。なお、図1に示したように検証支援装置100によって、シミュレーションをおこなう検証対象ソフトウェア101は、ROM302、RAM303、磁気ディスク305などの記憶領域にあらかじめ格納されていてもよいが、入力デバイス307から入力されて、上述の記憶領域に格納されてもよい。
また、キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
出力デバイス308は、検証支援装置100に格納された各種データや、シミュレーション結果102などを出力する。出力デバイス308としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
(検証支援装置の機能的構成)
つぎに、本実施の形態にかかる検証支援装置100の機能的構成について説明する。図4は、検証支援装置の機能的構成を示すブロック図である。ここでは、検証支援装置100が、図1にて説明したようなマルチCPUスケジューラ200ならびにマルチCPUモデル210として動作を実現するための機能的構成について説明する。なお、マルチCPUモデル210の動作については、従来のマルチCPUモデルの機能を利用しているため、本実施の形態にかかる検証支援処理を実現する際の独自の構成のみ説明する。
図4のように、検証支援装置100は、ソート部401と、算出部402と、制御部403と、判断部404と、通知部405と、抽出部406とを含む構成である。これら、マルチCPUスケジューラ200およびマルチCPUモデル210を実現する機能(ソート部401〜抽出部406)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク305などの記憶領域に記憶された検証支援プログラムをCPU301に実行させることにより、または、通信I/F306により、その機能を実現する。
ソート部401は、マルチCPUモデル210に実行させる検証対象ソフトウェア101を取得すると、検証対象ソフトウェア101内の命令群を実行時刻順にソートする機能を有する。検証対象ソフトウェア101内の各命令には、マルチCPUモデル210の中の実行対象となるCPUモデル(たとえば、CPUモデル1)と実行時刻との情報が含まれている。したがって、ソート部401は、各命令の実行時刻を参照して、実行時刻の早い命令から遅い命令の順に命令群をソートする。
なお、各命令には、実行時刻に関する情報は、検証支援装置100の時計を基準とした絶対時間が設定されている場合や、先頭の命令を基準とした相対時間が設定されている場合など様々であるが、いずれの場合であっても、マルチCPUスケジューラ200の時刻に同期した状態で動作させる。そして、ソートされた命令群は、RAM303、磁気ディスク305などの記憶領域に記憶される。
算出部402は、ソート部401によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する機能を有する。連続する命令とは、実行時刻の隣接した命令同士を指す。具体的には、図1に例示した命令1〜3であれば命令1と命令2、命令2と命令3とが連続した命令同士となる。そして、算出部402では、これら連続した命令の実行時刻の差分を求めて命令を実行する間隔を算出する。なお、算出された実行間隔は、RAM303、磁気ディスク305などの記憶領域に記憶される。
制御部403は、算出部402によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるCPUモデルに与える。たとえば、命令1が0.22[ms]のタイミングにCPUモデル1に実行させ、命令2が0.5[ms]のタイミングにCPUモデル2に実行させる処理の場合であれば、それぞれのタイミングにマルチCPUモデル210の中の実行対象となるCPUモデルに対して実行指示を与える。なお、制御部403から出力された実行指示は、RAM303、磁気ディスク305などの記憶領域に記憶される。
以上説明したようにソート部401、算出部402および制御部403によって検証対象ソフトウェア101の命令群をシミュレーションすることができるが、各命令は、さらに、その実行内容、実行結果に応じて同一の命令の次回実行が決定する。そこで、マルチCPUモデル210には、実行した命令の次回実行予定を判断する機能部(判断部404)が用意されている。
判断部404は、マルチCPUモデル210によって実行された命令に次回実行予定があるか否かを判断する。そして、判断部404によって次回実行予定があると判断された場合には、ソート部401に、次回実行予定の命令を含んだ命令群を加える。ソート部401では、あらたに加えられた命令を含んだ各命令を再度実行時刻順にソートする。
また、マルチCPUモデル210によって実行される命令には、他のCPUモデルにデータを送信する処理がある。マルチCPUモデル210には、このようなデータの送信をおこなう命令を実行した場合に、データの送信先となる他のCPUモデルに通知する機能部(通知部405)が用意されている。
通知部405は、マルチCPUモデル210によって実行された命令に他のプロセッサモデルへの任意のデータの送信要求が含まれていた場合、送信要求に対応した命令をソート部401に通知する。そして、ソート部401では、通知部405から送信要求を含んだ命令が通知された場合、この送信要求に対応した命令を含んだ命令群を実行時刻順にソートする。さらに、制御部403は、ある実行間隔に実行指示を与えた命令が上述の送信要求に対応した命令であった場合、この命令の実行指示とともに対応するデータを送信先となる他のCPUモデルへ与える。
以上説明した各機能部401〜405を用いることによって、マルチCPUスケジューラ200は、マルチCPUモデル210に対して、検証対象ソフトウェア101に含まれた命令群の実行予定時刻にのみ実行指示を与えればよい。したがって、必要最低限の処理で検証対象ソフトウェア101のシミュレーションが可能になる。また、マルチCPUシステム内の伝送速度にかかわらず、正しいタイミングで正常なトランザクションを実現することができる。
検証支援装置100は、上述したような命令の実行間隔を求める手法のほかに、抽出部406を用いて、単位時間ごとのタイミングを基準時刻として、この基準時刻をトリガに設定し、マルチCPUモデル210への実行指示を送信するタイミングを含む実行時刻にのみ、実際にマルチCPUスケジューラ200を動作させる手法を用いることができる。
抽出部406は、任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内にソート部401によってソートされたいずれかの命令の実行時刻が含まれている基準時刻を抽出する。すなわち、0からスタートして250[μs]を単位時間として加算した時刻を基準時刻とする。したがって、0,250,500,750,1000,…[μs]がそれぞれ基準時刻となる。この単位時間は任意の間隔を設定することができる。
そして、抽出部406は、ソート部401によってソートされた順番に各命令の実行時刻が基準時刻から250[μs]未満に含まれる基準時刻を抽出する。たとえば、命令1(実行時刻:250[μs])、命令2(実行時刻:770[μs])と命令群がソートされている場合、基準時刻として250,750[μs]が抽出される。
抽出部406によって、命令の実行時刻が含まれている基準時刻が抽出されると、制御部403は、それぞれの基準時刻に該当するCPUモデルへ命令の実行指示を与える。上述のように、命令の実行時刻と基準時刻とは一致しないことがある。したがって、制御部403は、実行指示とともに、基準時刻から実行時刻までの差分を待機時間としてCPUモデルへ送信する。
CPUモデルでは、実行指示を受け付けると、待機時間分待機したのち、実行指示に応じた処理を実行する。上述した命令1の場合、該当するCPUモデルは、基準時刻(250[μs])と実行時刻(250[μs])との差分が0[μs]であるため、基準時刻から0[μs]後、すなわち待機なしに命令に応じた処理を実行する。また、命令2の場合、該当するCPUは、基準時刻(750[μs])と実行時刻(770[μs])との差分が20[μs]であるため、20[μs]待機後に、命令に応じた処理を実行する。
このように、抽出部406を用いた場合、検証支援装置100のマルチCPUスケジューラ200は、単位時間ごとに、実行する処理がある場合にのみ、対象となるCPUモデル210に実行指示を送信すればよい。また、CPUモデルによって各CPUモデル間のデータ送信など遅延が発生する処理を実行する場合であっても、マルチCPUスケジューラ200に送信処理が完了する時刻を通知する処理を追加することによって、正常なトランザクションを実現することができる。
以下に、算出部402によって算出されたタイミングに実行指示を与える場合の具体的な処理を実施の形態1として、抽出部406によって抽出された基準時刻に実行指示を与える場合の具体的な処理を実施の形態2としてそれぞれ説明する。
(実施の形態1)
図5は、実施の形態1における検証支援装置の動作を示す説明図である。実施の形態1では、検証対象ソフトウェア101の命令によって処理が予定されているタイミングにのみマルチCPUスケジューラ200からマルチCPUモデル210の中の該当するCPUモデル(CPUモデル1,2)への実行指示が送信される。
図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へ送信される。
マルチCPUスケジューラ200では、検証対象ソフトウェア101の命令群の実行時刻として得られたすべての処理が完了すると、各CPUモデルから送信された返却値に次回実行する命令が含まれていた場合には、この命令の実行予定時刻まで処理を進めて、対象となるCPUモデルへ実行指示を送信する。マルチCPUスケジューラ200は、命令の実行予定がなくなるまで上述の処理を繰り返す。
また、図6は、実施の形態1の検証支援装置におけるデータ送信時の動作を示す説明図である。図6では、CPUモデル間のデータ送信がある場合の処理について説明する。図6の命令1は、CPUモデル1からCPUモデル2へデータを送信する処理である。この場合、CPUモデル1によって命令1が実行されると、CPU2へのデータの「送信要求」と、この命令を実行させる「次の時刻」が返却値としてマルチCPUスケジューラ200へ送信される。
命令2は、CPUモデル1から送信された送信要求を実行する命令である。したがって、マルチCPUスケジューラ200は、CPUモデル1から送信された「次の時刻」まで処理を進め、「送信要求」に応じてCPUモデル2へデータを送信する。マルチCPUスケジューラ200は、CPUモデル2による命令2の実行結果の返却値を受け取ると、この返却値に基づいて、次回の命令3を実行させる。CPUモデル1では、命令3に応じた処理を実行し、この実行結果をマルチCPUスケジューラ200へ送信する。マルチCPUスケジューラ200では、実行結果を受け付け、つぎの命令4まで処理を進める。
<データの構成>
つぎに、図5,6によって説明した処理の際に扱われるデータについて、さらに詳細に説明する。検証支援装置100によって検証対象ソフトウェア101をシミュレートする際に使用するデータの構成について説明する。図7は、検証支援装置によるシミュレータによって用いるデータの構成を示す説明図である。図7のように、検証支援装置100では、実行パラメータA、返却値B、スケジューラ管理データCを表す3種類のデータ群710〜730が利用される。各データは、それぞれ下記のような構成となっている。
・実行パラメータA
CPUモデルに実行指示を与える際に、CPUモデルに送信するデータ群であり、[実行時刻、受信データの長さ(受信データがない場合には“0”)、受信データ(ある場合のみ)]の3種類のデータによって構成されている。
・返却値B
CPUモデルによって命令が実行された後、マルチCPUスケジューラ200に返却されるデータ群であり、[実行予定時刻(実行予定有りの場合のみ)、実行予定の有無、送信データの長さリスト(送信データがない場合には“0”)、送信データのリスト、送信先CPU番号のリスト]の5種類のデータによって構成されている。
・スケジューラ管理データC
マルチCPUスケジューラ200において、各CPUモデルの実行順序を管理するために用いられるデータ群であり、[CPU番号(処理対象となるCPUの識別子)、実行予定時刻、受信データの長さ(受信データがない場合には“0”)、受信データ]の4種類のデータによって構成されている。
<マルチCPUスケジューラの処理手順>
つぎに、上述した各データを用いて検証対象ソフトウェア101のシミュレーションをおこなう際の、マルチCPUスケジューラ200の処理手順について説明する。図8は、実施の形態1におけるマルチCPUスケジューラの処理手順を示すフローチャートである。図8のフローチャートにおいて、まず、各CPUモデルのスケジューラ管理データCを取得し、実行リストに格納する(ステップS801)。
つぎに、スケジューラ管理データCから実行パラメータAを作成する(ステップS802)。ステップS802では、実行リストとして格納されているスケジューラ管理データCのうち、下記の条件に一致する実行パラメータAを作成する。
・実行リストの先頭のスケジューラ管理データC
・実行リストの先頭のスケジューラ管理データCとCPU番号ならびに実行予定時刻が一致するスケジューラ管理データ
また、ステップS802では、下記のように、実行パラメータAの各データをスケジューラ管理データCの情報を用いて作成する。
実行パラメータA
・実行時刻 ←スケジューラ管理データCの実行予定時刻
・受信データの長さ ←スケジューラ管理データCの受信データの長さ
・受信データ ←スケジューラ管理データCの受信データ
ステップS802によって実行パラメータAが作成されると、実行パラメータAを作成済みのスケジューラ管理データCを実行リストから削除する(ステップS803)。その後、実行パラメータAを参照してマルチCPUモデル210の中の対象CPUモデルの処理を実行させる(ステップS804)。
ステップS804によって対象CPUモデルが実行パラメータに応じた処理を実行すると、つぎに、対象CPUモデルの実行結果に応じた返却値Bを回収する(ステップS805)。そして、回収した返却値Bを参照して次回以降の命令の実行予定があるか否かを判断する(ステップS806)。ここで、実行予定があると判断された場合には(ステップS806:Yes)、実行予定に応じたスケジューラ管理データCを作成し、実行リストに格納する(ステップS807)。
ステップS807では、実行予定がある場合、下記のようにしてスケジューラ管理データCを生成する。
スケジューラ管理データC
・CPU番号 ←直前に処理を実行したCPUモデルのCPU番号
・実行予定時刻 ←返却値Bの次回実行予定時刻
・受信データの長さ ←なし
・受信データ ←なし
ステップS807の処理が完了した後、もしくは、ステップS806において、実行予定がないと判断された場合(ステップS806:No)、つぎに、他のCPUモデルへの送信データがあるか否かを判断する(ステップS808)。ここで、送信データがあると判断された場合(ステップS808:Yes)、送信内容に応じたスケジューラ管理データCを作成し、実行リストに格納する(ステップS809)。
ステップS809では、ステップS805にて回収した返却値Bの送信データのリストの要素数が0になるまで下記の処理を繰り返す。
1.スケジューラ管理データCを作成
CPU番号:返却値Bの送信先CPU番号リストの先頭要素
実行予定時刻:直前に実行した実行時刻+返却値Bの送信データの長さ×遅延係数
受信データの長さ:返却値Bの送信データの長さの先頭要素
受信データ:返却値Bの送信データリストの先頭要素
2.1によって作成されたスケジューラ管理データCを実行リストに格納
3.格納後、返却値Bの送信先CPU番号のリスト、送信データの長さリスト、送信データのリストのそれぞれの先頭要素を取り除く
ステップS809の処理が完了した後、もしくは、送信データがないと判断された場合(ステップS808:No)、スケジューラ管理データCの実行予定時刻で実行リストをソートする(ステップS810)。その後、続いて実行リスト内が0になっているか否かを判断する(ステップS811)。
ステップS811によって、実行リスト内が0になったと判断された場合(ステップS811:Yes)、そのまま一連の処理を終了する。また、実行リスト内にスケジューラ管理データCが残っている場合(ステップS811:No)、ステップS802の処理に戻り、すべての命令のシミュレーションをおこなう。
<マルチCPUモデルの処理手順>
つぎに、マルチCPUモデル210の処理手順について説明する。図9は、実施の形態1におけるCPUモデルの処理手順を示すフローチャートである。なお、以下説明するマルチCPUモデル210の処理は、マルチCPUスケジューラ200から送信された実行指示の受信をトリガとする。図9のフローチャートにおいて、まず、マルチCPUモデル210内のシミュレータの時刻に実行パラメータAの実行時刻を設定する(ステップS901)。
つぎに、実行パラメータAを格納したリスト内のデータが0になっているか否かを判断する(ステップS902)。このステップS902によって、実行パラメータAが格納されたリスト内のデータ数が0になっていると判断された場合(ステップS902:Yes)、指定された時刻にシミュレーションを実行する(ステップS906)。一方、リストに実行パラメータAのデータが残っていると判断された場合(ステップS902:No)、先頭の実行パラメータAに受信データがあるか否かを判断する(ステップS903)。
ステップS903によって、受信データがあると判断された場合(ステップS903:Yes)、受信データイベントを対象となるCPUモデルへ通知し(ステップS904)、通知済みの実行パラメータAをリストから削除した後(ステップS905)、再度ステップS902の処理に戻る。一方、先頭の実行パラメータAに受信データがないと判断された場合(ステップS903:No)、そのまま、指定された時刻にシミュレーションを実行する(ステップS906)。
ステップS906によってシミュレーションが実行された後、次回の実行モデルがあるか否かを判断する(ステップS907)。次回の実行モデルがあると判断された場合(ステップS907:Yes)、スケジューラ管理データCの次回実行予定をありに設定し(ステップS908)、次回実行予定が最も早い実行モデルの実行予定時刻を返却値Bに格納する(ステップS909)。一方、次回の実行モデルがないと判断された場合(ステップS907:No)、スケジューラ管理データCの次回実行予定をなしに設定する(ステップS910)。
ステップS908,S910によって、スケジューラ管理データCの次回実行予定が設定されると、つぎに、処理中のCPUモデルから他のCPUモデルへの送信データがあるか否かを判断する(ステップS911)。ここで、送信データがあると判断された場合(ステップS911:Yes)、送信データに関する情報(送信先CPU番号、データの長さ、送信データ)を返却値Bに格納し(ステップS912)、一連の処理を終了する。また、送信データがないと判断された場合(ステップS911:No)、ステップS912の処理をスキップしてそのまま一連の処理を終了する。
以上説明したように、実施の形態1では、検証対象ソフトウェア101に含まれた命令群の実行予定時刻にのみ実行指示を送信することができる。したがって、命令を実行するタイミングのみにマルチCPUモデル210を動作させればよく、必要最低限の処理で検証対象ソフトウェア101のシミュレーションが可能になる。また、実際のマルチCPUシステム内の伝送速度が高速であっても、正しいタイミングで正常なトランザクションを実現することができる。
(実施の形態2)
図10は、実施の形態2における検証支援装置の動作を示す説明図である。実施の形態2は、単位時間ごとの基準時刻に実行させる命令がある場合にのみ、マルチCPUスケジューラ200から実行指示を送信して、マルチCPUモデル210によって対応する処理を実行させる。
マルチCPUスケジューラ200は、0を初期値として25[μs]を単位時間として加算するごとに基準時刻とする(図10のタイミングの右側の目盛り参照)。そして、図10では、マルチCPUスケジューラ200が、270,302,400,510[μs]のタイミングに対応するCPUモデルへ命令の実行指示を送信する処理を例示している。
したがって、タイミング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へ送信される。
また、マルチCPUスケジューラ200では、検証対象ソフトウェア101の命令群の実行時刻として得られたすべての処理が完了すると、各CPUモデルから送信された返却値に次回実行する命令が含まれていた場合には、この命令の実行予定時刻まで処理を進めて、対象となるCPUモデルへ実行指示を送信する。マルチCPUスケジューラ200は、命令の実行予定がなくなるまで上述の処理を繰り返す。
実施の形態2の場合、マルチCPUスケジューラ200では、単位時間のうち命令の実行指示の送信、返却値の受信をおこなう時刻が含まれる単位時間、そして、マルチCPUモデル210では、実行指示を受け付けて命令に応じた処理を実行する時刻を含む単位時間のみ、すなわち、図10の網掛け部分のみCPU(検証支援装置100のCPU301)が実行される。そして、その他の時刻では処理をスキップするため、効率的なシミュレーションが可能となる。
また、図11は、実施の形態2の検証支援装置におけるデータ送信時の動作を示す説明図である。図11では、CPUモデル間のデータ送信がある場合の処理について説明する。図11の命令1は、CPUモデル1からCPUモデル2へデータを送信する処理である。この場合、CPUモデル1によって命令1が実行されると、CPUモデル2へのデータの「送信要求」と、この命令を実行させる「次の時刻」が返却値としてマルチCPUスケジューラ200へ送信される。
命令2は、CPUモデル1から送信された送信要求を実行する命令である。したがって、CPUモデル2では、マルチCPUスケジューラ200からのデータを受信すると、モデルAを実行した後、タイミング302[μs]まで待機し、本来のイベント受信時刻に受信イベントが通知されるように、遅延を含むイベントを実行させる。
<マルチCPUスケジューラの処理手順>
つぎに、検証対象ソフトウェア101のシミュレーションをおこなう際の、マルチCPUスケジューラ200の処理手順について説明する。なお、実施の形態2の場合も、実施の形態1と同様に図7にて説明した各データを利用する。また、マルチCPUスケジューラ200の処理自体は、図8を用いて説明した実施の形態1の処理手順と同様である。この処理のうち、実行パラメータを送信する際には、実行時刻と基準時刻との差分情報を待機時間として提供する。マルチCPUモデル210では、この差分情報に基づいて処理を遅延させることができる。
<マルチCPUモデルの処理手順>
つぎに、つぎに、マルチCPUモデル210の処理手順について説明する。図12は、実施の形態2におけるマルチCPUモデルの処理手順を示すフローチャートである。なお、以下説明するマルチCPUモデル210の処理は、マルチCPUスケジューラ200から送信された実行指示の受信をトリガとする。図12のフローチャートにおいて、まず、マルチCPUモデル210内のシミュレータの時刻に実行パラメータAの実行時刻を設定する(ステップS1201)。
つぎに、実行パラメータAを格納したリスト内のデータが0になっているか否かを判断する(ステップS1202)。このステップS1202によって、実行パラメータAが格納されたリスト内のデータ数が0になっていると判断された場合(ステップS1202:Yes)、指定された時刻から単位時間(図11の場合は25[μs])の区切りまでにシミュレーションを実行する(ステップS1206)。このステップS1206の処理と後述するステップS1204が実施の形態1にかかるマルチCPUモデル210の処理との差分となる。一方、リストに実行パラメータAのデータが残っていると判断された場合(ステップS1202:No)、先頭の実行パラメータAに受信データがあるか否かを判断する(ステップS1203)。
ステップS1203によって、受信データがあると判断された場合(ステップS1203:Yes)、受信データイベントを対象となるCPUモデルへ遅延通知(遅延情報を含んだイベント通知)し(ステップS1204)、通知済みの実行パラメータAをリストから削除した後(ステップS1205)、再度ステップS1202の処理に戻る。一方、先頭の実行パラメータAに受信データがないと判断された場合(ステップS1203:No)、そのまま、指定された時刻にシミュレーションを実行する(ステップS1206)。
ステップS1206によってシミュレーションが実行された後、次回の実行モデルがあるか否かを判断する(ステップS1207)。次回の実行モデルがあると判断された場合(ステップS1207:Yes)、スケジューラ管理データCの次回実行予定をありに設定し(ステップS1208)、次回実行予定が最も早い実行モデルの実行予定時刻を返却値Bに格納する(ステップS1209)。一方、次回の実行モデルがないと判断された場合(ステップS1207:No)、スケジューラ管理データCの次回実行予定をなしに設定する(ステップS1210)。
ステップS1208,S1210によって、スケジューラ管理データCの次回実行予定が設定されると、つぎに、処理中のCPUモデルから他のCPUモデルへの送信データがあるか否かを判断する(ステップS1211)。ここで、送信データがあると判断された場合(ステップS1211:Yes)、送信データに関する情報(送信先CPU番号、データの長さ、送信データ)を返却値Bに格納し(ステップS1212)、一連の処理を終了する。また、送信データがないと判断された場合(ステップS1211:No)、ステップS1212の処理をスキップしてそのまま一連の処理を終了する。
以上説明したように、本実施の形態2によれば、単位時間ごとに、実行する処理がある場合にのみ、対象となるマルチCPUモデル210に実行指示を送信すればよい。また、CPUモデルによってCPU間のデータ送信など遅延が発生する処理を実行する場合であっても、マルチCPUスケジューラ200に送信処理が完了する時刻を通知する処理を追加することによって、正常なトランザクションを実現することができる。
以上説明したように、本実施の形態によれば、検証対象ソフトウェア101の命令群を取得すると、各命令は実行時刻順にソートされ、各命令の実行間隔を算出する。マルチCPUモデル210では、算出された実行間隔にのみ該当する処理を実行すれば、取得した命令群のシミュレーションをおこなうことができる。したがって、マルチCPUシステムのシミュレーションを高速かつ効率的に実行させることができる。
また、図17にて説明したように、従来のマルチCPUシミュレータ1500の場合、CPU間の伝送速度の高速化に反比例してシミュレーション速度が低下してしまうという問題を抱えていた。それに対して本実施の形態では、CPUモデル間の伝送速度にかかわらず、CPUモデル間のデータ送信を含む処理のシミュレーションを実現できる。すなわち、任意のマルチCPUシステムに対して所望するソフトウェアを実行させた場合の協調動作の検証ができるという効果も併せ持つ。
なお、本実施の形態で説明した検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
また、本実施の形態で説明した検証支援装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した検証支援装置100の機能(ソート部401〜抽出部406)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、検証支援装置100を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータを、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段、
前記ソート手段によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出手段、
前記算出手段によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える制御手段、
として機能させることを特徴とする検証支援プログラム。
(付記2)前記コンピュータを、さらに、
前記コンピュータによって実行された命令に次回実行予定があるか否かを判断する判断手段、として機能させ、
前記ソート手段は、前記判断手段によって次回実行予定があると判断された場合に、当該次回実行予定の命令を含んだ命令群を実行時刻順にソートすることを特徴とする付記1に記載の検証支援プログラム。
(付記3)前記コンピュータを、さらに、
前記コンピュータによって実行された命令に他のプロセッサモデルへの任意のデータの送信要求が含まれていた場合、当該送信要求に対応した命令を前記ソート手段に通知する通知手段、として機能させ、
前記ソート手段は、前記通知手段によって通知された送信要求に対応した命令を含んだ命令群を実行時刻順にソートし、
前記制御手段は、前記実行間隔に該当する命令が前記送信要求に対応した命令の場合、当該命令の実行指示とともに前記任意のデータを前記他のプロセッサモデルへ与えることを特徴とする付記1または2に記載の検証支援プログラム。
(付記4)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータを、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段、
任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート手段によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出手段、
前記抽出手段によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える制御手段、
として機能させることを特徴とする検証支援プログラム。
(付記5)前記コンピュータを、さらに、
前記コンピュータによって実行された命令の次回実行予定があるか否かを判断する判断手段、として機能させ、
前記ソート手段は、前記判断手段によって次回実行予定があると判断された場合に、当該次回実行予定の命令を含んだ命令群を実行時刻順にソートすることを特徴とする付記4に記載の検証支援プログラム。
(付記6)前記コンピュータを、さらに、
前記コンピュータによって実行された命令に他のプロセッサモデルへの任意のデータの送信要求が含まれていた場合、当該送信要求に対応した命令を前記ソート手段に通知する通知手段、として機能させ、
前記ソート手段は、前記通知手段によって通知された送信要求に対応した命令を含んだ命令群を実行時刻順にソートし、
前記制御手段は、前記抽出手段によって抽出された基準時刻ごとに、該当する命令が前記送信命令に対応した命令の場合、当該命令の実行指示とともに前記任意のデータを前記他のプロセッサモデルへ与えることを特徴とする付記5に記載の検証支援プログラム。
(付記7)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなう検証支援装置であって、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段と、
前記ソート手段によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出手段と、
前記算出手段によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える制御手段と、
を備えることを特徴とする検証支援装置。
(付記8)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなう検証支援装置であって、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段と、
任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート手段によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出手段と、
前記抽出手段によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える制御手段と、
を備えることを特徴とする検証支援装置。
(付記9)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータが、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート工程と、
前記ソート工程によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出工程と、
前記算出工程によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える指示工程と、
を実行することを特徴とする検証支援方法。
(付記10)複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータが、
前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート工程と、
任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート工程によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出工程と、
前記抽出工程によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える指示工程と、
を実行することを特徴とする検証支援方法。
100 検証支援装置
101 検証対象ソフトウェア
102 シミュレーション結果
110 マルチCPUシミュレータ
200 マルチCPUスケジューラ
210 マルチCPUモデル
401 ソート部
402 算出部
403 制御部
404 判断部
405 通知部
406 抽出部

Claims (5)

  1. 複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータを、
    前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段、
    前記ソート手段によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出手段、
    前記算出手段によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える制御手段、
    として機能させることを特徴とする検証支援プログラム。
  2. 複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータを、
    前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段、
    任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート手段によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出手段、
    前記抽出手段によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える制御手段、
    として機能させることを特徴とする検証支援プログラム。
  3. 複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなう検証支援装置であって、
    前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段と、
    前記ソート手段によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出手段と、
    前記算出手段によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える制御手段と、
    を備えることを特徴とする検証支援装置。
  4. 複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなう検証支援装置であって、
    前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート手段と、
    任意の時刻から単位時間ごとの時刻を基準時刻として、当該各基準時刻から前記単位時間内に前記ソート手段によってソートされたいずれかの命令の実行時刻が含まれているような基準時刻を前記各基準時刻の中から抽出する抽出手段と、
    前記抽出手段によって抽出された基準時刻ごとに、該当する命令の実行指示と、当該実行指示の実行までの待機時間とを、前記実行対象となるプロセッサモデルに与える制御手段と、
    を備えることを特徴とする検証支援装置。
  5. 複数のプロセッサをソフトウェアによって実現したマルチプロセッサモデルを用いて実行指示を受けた命令のシミュレーションをおこなうコンピュータが、
    前記マルチプロセッサモデルの中の実行対象となるプロセッサモデルと実行時刻との情報を含んだ命令群を実行時刻順にソートするソート工程と、
    前記ソート工程によってソートされた命令群のそれぞれ連続する命令同士の実行時刻を参照して命令群の実行間隔を算出する算出工程と、
    前記算出工程によって算出された実行間隔ごとに、該当する命令の実行指示を実行対象となるプロセッサモデルに与える指示工程と、
    を実行することを特徴とする検証支援方法。
JP2009036363A 2009-02-19 2009-02-19 検証支援プログラム、検証支援装置および検証支援方法 Expired - Fee Related JP5251586B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009036363A JP5251586B2 (ja) 2009-02-19 2009-02-19 検証支援プログラム、検証支援装置および検証支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009036363A JP5251586B2 (ja) 2009-02-19 2009-02-19 検証支援プログラム、検証支援装置および検証支援方法

Publications (2)

Publication Number Publication Date
JP2010191758A JP2010191758A (ja) 2010-09-02
JP5251586B2 true JP5251586B2 (ja) 2013-07-31

Family

ID=42817726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009036363A Expired - Fee Related JP5251586B2 (ja) 2009-02-19 2009-02-19 検証支援プログラム、検証支援装置および検証支援方法

Country Status (1)

Country Link
JP (1) JP5251586B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6119442B2 (ja) * 2013-06-11 2017-04-26 株式会社ソシオネクスト シミュレーション装置、シミュレーション装置の動作方法およびシミュレーションプログラム
JP6770935B2 (ja) * 2017-07-03 2020-10-21 日立オートモティブシステムズ株式会社 車両制御装置用の検証装置
JP7017871B2 (ja) * 2017-07-06 2022-02-09 日立Astemo株式会社 車両制御模擬装置
CN114924810B (zh) * 2021-05-14 2024-02-23 武汉深之度科技有限公司 一种异构程序执行方法、装置、计算设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
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 (ja) * 1990-03-06 1991-11-14 Fujitsu Ltd 並列計算機シミュレート方式
JPH0535690A (ja) * 1991-07-29 1993-02-12 Fujitsu Ltd 並列計算機シミユレート方式及び方法
JP2002323978A (ja) * 2001-04-25 2002-11-08 Nec Corp 試験設備システム及びそれに用いるアプリケーションソフトウェアの時刻同期方法並びにそのプログラム
JP4681513B2 (ja) * 2006-06-30 2011-05-11 トヨタテクニカルディベロップメント株式会社 リアルタイム並列分散シミュレーションシステム

Also Published As

Publication number Publication date
JP2010191758A (ja) 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
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
JP4655240B2 (ja) タイミング解析支援装置
JP2008547128A5 (ja)
JP2013175242A (ja) 画像センサベースのヒューマンマシンインタフェースを提供する方法システムおよびソフトウェア
JP5251586B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP5034916B2 (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
US8255846B2 (en) Development tool for comparing netlists
CN107491311B (zh) 生成页面文件的方法、***以及计算机设备
US20090234620A1 (en) Verification support apparatus, verification support method, and computer product
JP2012203451A (ja) 半導体集積回路シミュレーション装置及び半導体集積回路のシミュレーション方法
CN101211254A (zh) 用于生成可变数据图像的可变数据图像生成设备、可变数据图像形成***及方法
JP4716964B2 (ja) タイミングダイアグラム編集プログラム、タイミングダイアグラム編集装置およびタイミングダイアグラム編集方法
JP4406028B2 (ja) データ提示装置,データ提示プログラム及びデータ提示方法
CN105046017B (zh) 一种机电抗震设计的快速布点方法和***
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 (ja) Ipモデル生成装置、ipモデル生成方法、およびipモデル生成プログラム
JP4645843B2 (ja) データ処理装置、データ処理方法およびプログラム
JP2013200851A (ja) 設計支援プログラム、設計支援方法、および設計支援装置
WO2021220424A1 (ja) ダイヤグラム変更装置、ダイヤグラム変更方法およびダイヤグラム変更プログラム
JP2008217071A (ja) 高位合成装置および高位合成方法
JP4802130B2 (ja) 図面作成プログラム、図面作成装置および図面作成方法
JP6184217B2 (ja) シミュレーション制御方法、シミュレーション制御プログラム、およびシミュレーション制御装置
JP2006185316A (ja) 業務分析支援プログラム、業務分析支援装置および業務分析支援方法

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