JP5625710B2 - シミュレーション装置、方法、及びプログラム - Google Patents

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

Info

Publication number
JP5625710B2
JP5625710B2 JP2010226079A JP2010226079A JP5625710B2 JP 5625710 B2 JP5625710 B2 JP 5625710B2 JP 2010226079 A JP2010226079 A JP 2010226079A JP 2010226079 A JP2010226079 A JP 2010226079A JP 5625710 B2 JP5625710 B2 JP 5625710B2
Authority
JP
Japan
Prior art keywords
task
group
time
priority
interrupt
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
JP2010226079A
Other languages
English (en)
Other versions
JP2012079241A (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 JP2010226079A priority Critical patent/JP5625710B2/ja
Priority to US13/198,828 priority patent/US9058207B2/en
Priority to EP11176656.4A priority patent/EP2447837A3/en
Publication of JP2012079241A publication Critical patent/JP2012079241A/ja
Application granted granted Critical
Publication of JP5625710B2 publication Critical patent/JP5625710B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、シミュレーションによりソフトウェアを検証するシミュレーション装置、方法、及びプログラムに関する。
近年、ソフトウェアを組み込んだ種々の電化製品、精密機器などの製品が普及すると共に、ソフトウェアを含めたシステムの仕組みが複雑化、及び大規模化している。そのため、シミュレーションによるソフトウェアの検証工数が肥大化し、処理時間が問題となっている。
ソフトウェアの検証に利用されるマルチタスク処理に関する従来技術として、たとえば、リアルタイム処理が行われないタスクについてはタスク間の優先順位にかかわらず、実行中のタスクの終了を待って処理する手法(特許文献1)や、割り込み禁止期間に発生した複数の割り込みを、割り込み許可後に、割り込みの発生順に処理する手法(特許文献2)がある。
特開平10−289114号公報 特開平4−074229号公報
しかしながら、上述した従来技術では、マルチタスクを行うRTOS(Real Time Operating System)上でのソフトウェアの検証をする場合、タスクの割込みがない場合でも、タスクグループの実行を許可する時間間隔で割り込みを発生させ、タスクの割込みがあったかどうかをチェックする等の処理が一定時間毎に行われる仕組みを必要とするため、シミュレーションの処理に負荷を与えると言った問題を解決することができていなかった。
開示の技術は、シミュレーションによるソフトウェアタスクを起動するイベント生時に、記憶領域に格納された複数のタスクグループに対するCPU割当ての優先度を管理する優先度管理テーブルと前記優先度管理テーブルで管理される前記タスクグループの優先度を切換える時刻を参照し、前記シミュレーションの現在時刻から計算して、前記現在時刻で優先されるタスクグループを決定し、前記複数のタスクグループの優先度を変更するグループ切換機構手段を有するシミュレーション装置のように構成される。
また、上記課題を解決するための手段として、シミュレーション方法、コンピュータに上記シミュレーション装置として機能させるための及びプログラムとすることもできる。
開示の技術では、シミュレーションによるソフトウェア検証にて、タスク起動のイベント発生時に、複数のタスクグループの優先度変更を行うため、ソフトウェアが動作していない期間のシミュレーションの負荷を削減でき、高速に処理を行うことができる。
シミュレーション装置のハードウェア構成を示すブロック図である。 シミュレーション装置の第一実施例に係る機能構成例を示す図である。 図2に示す機能構成例におけるタスク追加部による処理を説明するための図である。 図2に示す機能構成例におけるグループ切換機構部による処理を説明するための図である。 図2に示す機能構成例における遅延割込み部による処理を説明するための図である。 図2に示す機能構成例におけるスケジューラによる処理を説明するための図である。 図2に示す機能構成例におけるシミュレータ本体からのイベント発生による処理を説明するための図である。 シミュレーション装置の第二実施例に係る機能構成例を示す図である。 図8に示す機能構成例における遅延割込み部による処理を説明するための図である。 本実施例を適用した場合の割込み発生状態を説明するための図である。
以下、本発明の実施の形態を図面に基づいて説明する。本実施形態に係るシミュレーション装置は、マルチタスクを可能とするRTOS(Real Time Operating System)を組み込んでおり、RTOS上で動作する検証対象のソフトウェアを高速にシミュレーションするためのコンピュータ装置であって、図1に示すようなハードウェア構成を有する。図1は、シミュレーション装置のハードウェア構成を示すブロック図である。
図1において、シミュレーション装置100は、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とを有し、システムバスBに接続される。
CPU11は、メモリユニット12に格納されたプログラムに従ってシミュレーション装置100を制御する。メモリユニット12には、RAM(Random Access Memory)及びROM(Read-Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、利用者がシミュレーション装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。
シミュレーション装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によってシミュレーション装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。
尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
[第一実施例]
本実施形態に係るシミュレーション装置100の第一実施例について説明する。図2は、シミュレーション装置の第一実施例に係る機能構成例を示す図である。図2において、シミュレーション装置100は、主に、シミュレータ本体110と、タスクグループ切替制御部120とを有する。シミュレータ本体110と、タスクグループ切替制御部120とは、対応するプログラムをCPU11が実行することによって実現される。
シミュレータ本体110は、タイムホイールTWを有し、製品に組み込まれるソフトウェアのRTOS環境をシミュレーションして、イベント駆動型でソフトウェアを動作させて検証するための処理部である。
タスクグループ切換制御部120は、タスクグループ(以下、単に「グループ」と言う)に優先度を設定し、実行するタスクグループの切換制御を行う処理部である。タスクグループ切換制御部120は、現在時刻更新部30と、タスク追加部31と、グループ切換機構部32と、遅延割込み部33と、スケジューラ34と、タスク実行部35とを有する。
現在時刻更新部30は、シミュレータ本体110のタイムホイールTWからシミュレーション時刻(以下、単に、時刻という)が通知されると、現在時刻管理領域30aに時刻を書き込む処理部である。例えば、時刻t2の状態で、時刻t3の通知を受けると、現在時刻管理領域30aに時刻t3が格納される。
タスク追加部31は、割り込み、タスク起動など、実行可能なタスクを登録するイベントを発生させる処理部である。新たなタスクは、タスク領域32a内の対応するグループ内に追加されることによって登録される。
グループ切換機構部32は、シミュレータ本体110又はタスク追加部31からのイベント発生によって駆動され、優先度管理テーブルT21を参照して、タスク領域32a内のグループA、B、C、Dに対して優先度を変更する処理部である。グループ切換機構部32は、また、タスク追加部31によって追加されたタスクが現在時刻では優先度が低く実行されない場合、遅延割込み部33に割込みの設定を指示する。
優先度管理テーブルT21は、参照時刻t1、t2、t3、t4毎に、グループA、B、C、Dの優先度が設定されたテーブルであり、メモリユニット12又は記憶装置17の記憶領域(以下、単に記憶領域と言う)に格納される。この例では、最も優先度が高いグループに「高」が設定され、それ以外のグループには「低」が設定されている。参照時刻t1では、グループAのタスクが優先的に実行され、参照時刻t2では、グループBのタスクが優先的に実行され、参照時刻t3では、グループCのタスクが優先的に実行され、参照時刻t4では、グループDのタスクが優先的に実行されることを示している。
優先度管理テーブルT21では、所定のシミュレーション時間間隔で、グループA〜Dのタスクが順に一様にCPUに割り当てられるように参照時刻が設定され、グループ数に応じた参照時刻となる。従って、優先度管理テーブルT21で管理される総時間で現在時刻を割った余りが参照時刻を指定する。
遅延割込み部33は、遅延割込みテーブルT23を有し、グループ切換機構部32からの設定指示に応じて、優先度管理テーブルT21に基づいて、追加されたタスクの所属するグループの優先度が高く設定されている参照時刻から最も近い未来の時刻を計算し、その時刻にイベントが発生するように、シミュレータ本体110のタイムホイールTWの対応する時刻にイベントを追加する。そして、遅延割込みテーブルT23に対して、追加されたタスクのグループの割り込み時刻に計算した時刻を設定する。
遅延割込みテーブルT23は、グループを識別するキーに対して割込み時刻が設定された連想配列によるテーブルであり、記憶領域内に格納される。例えば、グループAを実行するためにイベントを発生させる割込み時刻T1が120msecの場合、
delay["グループA"]=120msec
のように連想配列が構成される。
スケジューラ34は、グループ切換機構部32の処理終了に応じて駆動され、タスク領域32a内の最も優先度の高いグループのタスクに対して実行順をスケジュールして、その実行順に従ってタスク実行部35にグループ内のタスクを実行させる。
タスク実行部35は、スケジューラ34によって指定されたタスクを実行する。
第一実施例におけるタスクグループ切替制御部120による処理全体の流れをステップで示しながら説明する。
<タスク登録イベント発生>
ステップS1にて、タスク追加部31が、割込み、タスク起動など、実行可能なタスクが登録されるイベントを発生する。
<タスクグループ切換え>
ステップS2にて、タスク追加部31によるイベント発生によって、グループ切換機構部32が駆動される。
ステップS3にて、グループ切換機構部32は、現在時刻管理領域30aを参照して、現在時刻を取得する。
ステップS4にて、グループ切換機構部32は、優先度管理テーブルT21を参照して、現在時刻の各グループの優先度を取得し、優先度の最も高いグループを特定する。例えば、現在時刻がt3ならば、時刻t3の各グループの優先度は、グループA、B及びDは「低」、グループCは「高」である。グループCが優先度の最も高いグループとして特定される。
ステップS5にて、グループ切換機構部32は、追加するタスクのグループが現在時刻の割当てか否かを優先度の値で判断する。優先度が「高」の場合(例えば、現在時刻がt3で追加されたタスクがグループCの場合)、ステップS6及びS7を省略してステップS8へと進む。
一方、優先度が「低」の場合(例えば、現在時刻がt3で追加されたタスクがグループA、B、Dのいずれかである場合)、現在時刻に割当てではないと判断し、タスクのグループの割当て時刻のうち、最も近い未来の時刻にタスクを実行するために遅延割込みを遅延割込み部33に設定を指示する。
ステップS6にて、遅延割込み部33は、グループ切換機構部32からの遅延割込みの設定指示に応じて、優先度管理テーブルT21を参照して、現在時刻から追加されたタスクのグループの優先度が高くなる最も近い未来の時刻を計算する。そして、シミュレータ本体110のタイムホイールTWに対して、最も近い未来の時刻にイベントを追加し、また、遅延割込みテーブルT23の追加されたタスクのグループにその時刻を設定する。グループAにタスクが追加されたとすると、優先度が高くなる最も近い未来の時刻T1が、遅延割込み部33によって、遅延割込みテーブルT23のグループAをキーとする割込み時刻に設定される。
ステップS7にて、グループ切換機構部32は、割込み時刻におけるシミュレータ本体110のタイムホイールTWに追加されたイベントの発生によって駆動される。駆動されたグループ切換機構部32は、タスクが追加されたときと同様に、現在時刻を取得し(ステップS3)、優先度管理テーブルT21を参照して、現在時刻の各グループの優先度を取得し、優先度の最も高いグループを特定して(ステップS4)、ステップS8へと進む。
例えば、時刻T1でイベントが発生された場合、グループ切換機構部32は、優先度管理テーブルT21を参照することによって、グループAの優先度が最も高いと判断される。
ステップS8にて、グループ切換機構部32は、ステップS4で取得した内容に従ってタスク領域32a内のグループの優先度を変更する。例えば、現在時刻t3の場合、前回の時刻t2において、グループBの優先度「高」が優先度「低」に変更され、グループCの優先度「低」が優先度「高」に変更される。
<スケジューリング>
ステップS9にて、グループ切換機構部32は、優先度変更の処理を終了すると、スケジューラ34を駆動する。
ステップS10にて、スケジューラ34は、タスク領域32aを参照して、グループ切換機構部32によって変更された優先度を取得する。
ステップS11にて、スケジューラ34は、変更された優先度に基づいて、優先度の高いグループのタスクをタスク実行部35に実行させる。
ステップS12にて、タスク実行部35は、スケジューラ34から指示されたタスクを実行し、タスクの処理が終了すると、スケジューラ34を駆動する。優先度の高いグループのタスクが終了するまで、ステップS11及びS12が繰り返される。
上述したように、タスクグループ切換制御部120は、タスクが追加されたとき、又は、追加されたタスクの優先度が高くなる時刻に動作するのみでよいため、所定間隔で割り込みを発生させて優先度を変更するなどの処理を不要とすることができる。従って、検証対象のソフトウェアの実行されない間の無駄な処理が削減され、シミュレーションを高速に行うことができる。
以下に、各処理部による処理を説明する。
図3は、図2に示す機能構成例におけるタスク追加部による処理を説明するための図である。図3において、タスク追加部31は、実行可能なタスクをタスク領域32aの対応するグループに追加する(ステップS11)。そして、タスク追加部31は、グループ切換機構部32を駆動する(ステップS12)。
図4は、図2に示す機能構成例におけるグループ切換機構部による処理を説明するための図である。図4において、グループ切換機構部32は、現在時刻管理領域30aを参照して、現在時刻を取得する(ステップS21)。
そして、グループ切換機構部32は、優先度管理テーブルT21で管理される参照時刻毎の各グループの優先度を取得して(ステップS22)、現在時刻でCPUに割り当てるグループを計算する(ステップS23)。
ステップS23の処理では、グループ切換機構部32は、現在時刻を優先度管理テーブルT21に割り当てられた総時間で割った余りから参照時間を求め、優先度管理テーブルT21における求めた参照時間での優先度「高」のグループを特定する。
グループ切換機構部32は、追加されたタスクのグループがステップS23で特定した優先度「高」のグループであるかをチェックし(ステップS24)、追加されたタスクのグループの優先度が別の時刻で高いか否かを判断する(ステップS25)。グループ切換機構部32は、追加されたタスクのグループが優先度「高」のグループである場合、現在時刻で優先度が高いと判断し、ステップS27へと進む。
一方、グループ切換機構部32は、追加されたタスクのグループが優先度「高」のグループでない場合、別の時刻で優先度が高いと判断すると、追加されたタスクが所属するグループがCPUに割り当てられる最も近い未来の時刻に起動するように遅延割込みを遅延割込み部33に設定させる(ステップS26)。
最も近い未来の時刻は、ステップS22で取得した参照時刻毎の各グループの優先度を用いて、最初に優先度が「高」となる参照時刻を取得して、取得した参照時刻と現在時刻とから算出される。
そして、グループ切換機構部32は、ステップS22において優先度管理テーブルT21から取得した優先度に基づいて、タスクのグループ毎の優先度を現在時刻における優先度に変更した後(ステップS27)、スケジューラ34を駆動する(ステップS28)。
図5は、図2に示す機能構成例における遅延割込み部による処理を説明するための図である。図5において、遅延割込み部33は、追加されたタスクが所属しているグループの割込み時刻を遅延割込みテーブルT23から取得する(ステップS31)。
そして、遅延割込み部33は、ステップS31で取得した割込み時刻と現在時刻とを比較して、割込み時刻が過去の時刻か否かを判断する(ステップS32)。割込み時刻が未来の時刻である場合、遅延割込み部33による処理は終了する。
一方、過去の時刻である場合、遅延割込み部33は、優先度管理テーブルT21に基づいて、追加されたタスクのグループにCPUが割り当てられる最も近い未来の時刻を計算する(ステップS33)。
遅延割込み部33は、ステップS33で計算した時刻にグループ切換機構部32が駆動されるように、シミュレータ本体110のタイムホイールTWにイベントを追加する(ステップS34)。
また、遅延割込み部33は、ステップS33で計算した時刻を、遅延割込みテーブルT23の追加したタスクのグループの割込み時刻に設定する(ステップS35)。遅延割込みテーブルT23が連想配列の場合、例えば、グループBを実行するためにイベントを発生させる割込み時刻T2が150msecの場合、
delay["グループB"]=150msec
のようにして割込み時刻が設定される。
図6は、図2に示す機能構成例におけるスケジューラによる処理を説明するための図である。図6において、スケジューラ34は、スケジューリング対象となるタスクの中から最も優先度の高いグループに所属するタスクを検索する(ステップS41)。
スケジューラ34は、実行されるタスクが存在したか否かを判断する(ステップS42)。実行されるタスクが存在しない場合、スケジューラ34による処理を終了する。一方、実行されるタスクが存在する場合、スケジューラ34はタスク実行部35にタスクを実行させ(ステップS43)、タスク実行部35によってタスクの実行が終了すると、ステップS41へと戻り、実行されるタスクが存在しなくなるまで上述同様の処理を繰り返す。
図7は、図2に示す機能構成例におけるシミュレータ本体からのイベント発生による処理を説明するための図である。図7において、シミュレータ本体110のタイムホイールTWにおいて、遅延割込み部33によってイベントが追加された割込み時刻になると、シミュレータ本体110からのイベント発生によってグループ切換機構部32が駆動され、図4で説明したグループ切換機構部32による処理が行われる(ステップS51)。
[第二実施例]
第一実施例では、シミュレータ本体110から追加されたタスクを実行するために、タスクが所属するグループの優先度が高くなる時刻にイベントを発生させる仕組みであったが、タスクグループ切換制御部内にその仕組みを備える構成を第二実施例として以下に説明する。
図8は、シミュレーション装置の第二実施例に係る機能構成例を示す図である。図8中、図2と同じ構成部分には同一の符号を付し、その説明を省略する。図8において、シミュレーション装置100は、主に、シミュレータ本体110と、タスクグループ切替制御部120−2とを有する。シミュレータ本体110と、タスクグループ切替制御部120−2とは、対応するプログラムをCPU11が実行することによって実現される。
タスクグループ切換制御部120−2は、第一実施例と同様に、現在時刻更新部30と、タスク追加部31と、グループ切換機構部32と、遅延割込み部33−2と、スケジューラ34と、タスク実行部35とを有する。第一実施例との違いにおいて、遅延割込み部33−2は、タイマモデルTMを有し、タイマモデルTMを用いて、遅延割込み部33−2からグループ切換機構部32を駆動させることができる。
第二実施例におけるタスクグループ切替制御部120−2による処理全体の流れのうち、第一実施例と異なる処理部分は、ステップS5にてグループ切換機構部32からの遅延割込みの設定指示に応じて、遅延割込み部33−2による処理のステップS6−2及びS7−2である。ステップS6−2及びS7−2について説明する。
ステップS6−2にて、遅延割込み部33−2は、グループ切換機構部32からの遅延割込みの設定指示に応じて、優先度管理テーブルT21を参照して、現在時刻から追加されたタスクのグループの優先度が高くなる最も近い未来の時刻を計算する。そして、遅延割込みテーブルT23の追加されたタスクのグループに最も近い未来の時刻を設定して、この時刻をタイマモデルTMの起動時刻に設定する。
ステップS7−2にて、遅延割込み部33−2のタイマモデルTMは、所定間隔で遅延割込みテーブルT23を参照し、割込み時刻となったグループが存在する場合には、グループ切換機構部32を駆動させる。
第一実施例とは異なる動作をする遅延割込み部33−2について説明する。図9は、図8に示す機能構成例における遅延割込み部による処理を説明するための図である。図9において、遅延割込み部33−2は、追加されたタスクが所属しているグループの割込み時刻を遅延割込みテーブルT23から取得する(ステップS81)。
そして、遅延割込み部33−2は、ステップS81で取得した割込み時刻と現在時刻とを比較して、割込み時刻が過去の時刻か否かを判断する(ステップS82)。割込み時刻が未来の時刻である場合、遅延割込み部33による処理は終了する。
一方、過去の時刻である場合、遅延割込み部33−2は、優先度管理テーブルT21に基づいて、追加されたタスクのグループにCPUが割り当てられる最も近い未来の時刻を計算する(ステップS33)。
そして、遅延割込み部33−2は、ステップS83で計算した時刻を、遅延割込みテーブルT23の追加したタスクのグループの割込み時刻に設定する(ステップS84)。遅延割込みテーブルT23が連想配列の場合、例えば、グループBを実行するためにイベントを発生させる割込み時刻T2が150msecの場合、
delay["グループB"]=150msec
のようにして割込み時刻が設定される。
また、遅延割込み部33−2は、ステップS83で計算した時刻でグループ切換機構部32が駆動されるように、タイマモデルTMに設定する駆動時刻を計算して(ステップS85)、計算した駆動時刻をタイマモデルTMに設定する(ステップS86)。
上述した第一実施例及び第二実施例に係る効果について説明する。図10は、本実施例を適用した場合の割込み発生状態を説明するための図である。図10中、横軸にシミュレーション時刻を示す。
図10(A)では、本実施例が適用されない場合の割込み発生状態を例示している。図10(A)において、タスクの所属するグループに対する優先度の変更が、所定間隔(例えば、1ms間隔)でタイマ割込みを発生させることによって行われる。100msのタイマ割込みでグループAに優先度が変更されグループAのタスクが最も優先的に実行される期間に、周辺モデルからグループAへの割込み70aが発生すると、ISR(Interrupt Service Routine:割り込みサービスルーチン)実行71aにより、タスクのうちグループAに所属するタスクが起動されてタスク処理が実行される。
一方、周辺モデルからグループBへの割込み70bが発生したときには、優先的に実行されるタスクのグループがグループAであるため、タイマ割込みによってグループBに優先度が変更された時点でISR実行71bによりタスクが実行される。
本実施例が適用されない図10(A)に示す例では、実際には検証対象のソフトウェアが動作しない期間10aにおいても、所定間隔でタイマ割込みの処理が行われ、優先度の高いグループへの切換処理が行われてしまう。
図10(B)では、本実施例が適用された場合の割込み発生状態を例示している。図10(B)において、所定間隔でタイマ割込みを発生させて優先度を変更する処理は行われない。
周辺モデルからグループAへの割込み70aが発生すると、グループ切換機構部が、その時刻でCPUへ割り当てられるグループを、図4に示すフローチャートに従って計算する。割込み70aの場合、グループAへの割当ての時間であるため、ISR実行72aによりタスクが起動されてタスク処理が実行される。
一方、周辺モデルからグループBへの割込み70bが発生したときには、優先的に実行されるタスクのグループがグループAであるため、グループBへの割当ての時間となる最も近い未来の時刻にISR実行72bによって遅延割込みの処理が行われる。
従って、上述した第一又は第二実施例により、検証対象のソフトウェアの動作を開始するイベントの発生時にグループを切換えるため、検証対象のソフトウェアが実行されない期間10aにおいて無駄な処理が行われないためシミュレーションを高速に実行することができる。
タスクを起動するイベントは、IRQ、ActiveTask、SetEvent、WaitEvent、IRQ終了、TASK終了などである。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の第一及び第二実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
シミュレーションによるソフトウェアの検証において、実行するタスクを起動するイベントの発生時に、記憶領域に格納された複数のタスクグループに対するCPU割当ての優先度を管理する優先度管理テーブルを参照し、該複数のタスクグループの優先度を変更するグループ切換機構手段を有することを特徴とするシミュレーション装置。
(付記2)
前記グループ切換機構手段は、前記優先度管理テーブルで管理される前記タスクグループの優先度を切換える時刻を参照してシミュレーションの現在時刻から計算して、該現在時刻で優先されるタスクグループを決定することを特徴とする付記1記載のシミュレーション装置。
(付記3)
前記タスクの所属するタスクグループが優先的にCPUに割当てられる時刻に、前記イベントを遅延割込みさせて前記グループ切換機構手段を駆動する遅延割込み手段を更に有することを特徴とする付記1又は2記載のシミュレーション装置。
(付記4)
前記遅延割込み手段は、
前記優先度管理テーブルで管理される前記タスクが所属するタスクグループの優先度が高くなる時刻を参照してシミュレーションの現在時刻から計算して、該タスクグループの優先度が高くなる最も近い未来の時刻を決定することを特徴とする付記3記載のシミュレーション装置。
(付記5)
前記遅延割込み手段は、
シミュレータ本体のタイムホイールの前記遅延割込みさせる時刻にイベントを追加することを特徴とする付記3又は4記載のシミュレーション装置。
(付記6)
前記遅延割込み手段は、タイマモデルを有し、前記遅延割込みさせる時刻を該タイマモデルに設定して遅延させたイベントを発生させることを特徴とする付記3又は4記載のシミュレーション装置。
(付記7)
コンピュータがソフトウェアを検証するためのシミュレーション方法であって、該コンピュータが、
実行するタスクを起動するイベントの発生時に、記憶領域に格納された複数のタスクグループに対するCPU割当ての優先度を管理する優先度管理テーブルを参照し、該複数のタスクグループの優先度を変更するグループ切換機構手順を実行することを特徴とするシミュレーション方法。
(付記8)
前記タスクの所属するタスクグループが優先的にCPUに割当てられる時刻に、前記イベントを遅延割込みさせて前記グループ切換機構手段を駆動する遅延割込み手順を更に有することを特徴とする付記7記載のシミュレーション方法。
(付記9)
シミュレーション装置としてコンピュータを機能させるためのプログラムを格納した記憶媒体であって、該コンピュータが、
実行するタスクを起動するイベントの発生時に、記憶領域に格納された複数のタスクグループに対するCPU割当ての優先度を管理する優先度管理テーブルを参照し、該複数のタスクグループの優先度を変更するグループ切換機構手順を実行させるためのプログラムを格納したコンピュータ読取可能な記憶媒体。
(付記10)
前記タスクの所属するタスクグループが優先的にCPUに割当てられる時刻に、前記イベントを遅延割込みさせて前記グループ切換機構手段を駆動する遅延割込み手順を更に有することを特徴とする付記9記載のコンピュータ読取可能な記憶媒体。
(付記11)
シミュレーション装置としてコンピュータを機能させるためのプログラムであって、該コンピュータに、
実行するタスクを起動するイベントの発生時に、記憶領域に格納された複数のタスクグループに対するCPU割当ての優先度を管理する優先度管理テーブルを参照し、該複数のタスクグループの優先度を変更するグループ切換機構手順を実行させるためのプログラム。
(付記12)
前記タスクの所属するタスクグループが優先的にCPUに割当てられる時刻に、前記イベントを遅延割込みさせて前記グループ切換機構手段を駆動する遅延割込み手順を更に有することを特徴とする付記11記載のプログラム。
11 CPU
12 メモリユニット
13 表示ユニット
14 出力ユニット
15 入力ユニット
16 通信ユニット
17 記憶装置
18 ドライバ
19 記憶媒体
30 現在時刻更新部
30a 現在時刻管理領域
31 タスク追加部
32 グループ切換機構部
33 遅延割込み部
33−2 遅延割込み部
34 スケジューラ
35 タスク実行部
100 シミュレーション装置
110 シミュレータ本体
120 タスクグループ切換制御部
120−2 タスクグループ切換制御部
T21 優先度管理テーブル
T23 遅延割込みテーブル
TW タイムホイール
TM タイマモデル

Claims (7)

  1. シミュレーションによるソフトウェアタスクを起動するイベント生時に、記憶領域に格納された複数のタスクグループに対するCPU割当ての優先度を管理する優先度管理テーブルと前記優先度管理テーブルで管理される前記タスクグループの優先度を切換える時刻を参照し、前記シミュレーションの現在時刻から計算して、前記現在時刻で優先されるタスクグループを決定し、前記複数のタスクグループの優先度を変更するグループ切換機構手段を有することを特徴とするシミュレーション装置。
  2. 前記タスクの所属するタスクグループが優先的にCPUに割当てられる時刻に、前記イベントを遅延割込みさせて前記グループ切換機構手段を駆動する遅延割込み手段を更に有することを特徴とする請求項記載のシミュレーション装置。
  3. 前記遅延割込み手段は、
    前記優先度管理テーブルで管理される前記タスクが所属するタスクグループの優先度が高くなる時刻を参照して、前記現在時刻から計算して、前記タスクグループの優先度が高くなる前記現在時刻に最も近い未来の時刻を決定することを特徴とする請求項記載のシミュレーション装置。
  4. 前記遅延割込み手段は、
    シミュレータ本体の前記現在時刻を通知するタイムホイールの遅延割込みさせる割込み時刻に前記イベントを追加することを特徴とする請求項又は記載のシミュレーション装置。
  5. 前記遅延割込み手段は、割込み時刻を設定するタイマモデルを有し、前記タイマモデルに設定して遅延させた前記イベントを発生させることを特徴とする請求項又は記載のシミュレーション装置。
  6. コンピュータが
    ソフトウェア実行するタスクを起動するイベントの発生時に、記憶領域に格納された複数のタスクグループに対するCPU割当ての優先度を管理する優先度管理テーブルと前記優先度管理テーブルで管理される前記タスクグループの優先度を切換える時刻を参照し、前記ソフトウェア検証するシミュレーションの現在時刻から計算して、前記現在時刻で優先されるタスクグループを決定し前記複数のタスクグループの優先度を変更するグループ切換機構手順を実行することを特徴とするシミュレーション方法。
  7. シミュレーション装置としてコンピュータを機能させ、
    ソフトウェア検証を実行するタスクを起動するイベントの発生時に、記憶領域に格納された複数のタスクグループに対するCPU割当ての優先度を管理する優先度管理テーブルと前記優先度管理テーブルで管理される前記タスクグループの優先度を切換える時刻を参照し、前記ソフトウェア検証するシミュレーションの現在時刻から計算して、前記現在時刻で優先されるタスクグループを決定し前記複数のタスクグループの優先度を変更するグループ切換機構手順を前記コンピュータに実行させるためのプログラム。
JP2010226079A 2010-10-05 2010-10-05 シミュレーション装置、方法、及びプログラム Expired - Fee Related JP5625710B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010226079A JP5625710B2 (ja) 2010-10-05 2010-10-05 シミュレーション装置、方法、及びプログラム
US13/198,828 US9058207B2 (en) 2010-10-05 2011-08-05 Simulation apparatus, method, and computer-readable recording medium
EP11176656.4A EP2447837A3 (en) 2010-10-05 2011-08-05 Simulation apparatus, method, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010226079A JP5625710B2 (ja) 2010-10-05 2010-10-05 シミュレーション装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2012079241A JP2012079241A (ja) 2012-04-19
JP5625710B2 true JP5625710B2 (ja) 2014-11-19

Family

ID=44508884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010226079A Expired - Fee Related JP5625710B2 (ja) 2010-10-05 2010-10-05 シミュレーション装置、方法、及びプログラム

Country Status (3)

Country Link
US (1) US9058207B2 (ja)
EP (1) EP2447837A3 (ja)
JP (1) JP5625710B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10666596B2 (en) 2011-12-12 2020-05-26 Pure Storage, Inc. Messaging via a shared memory of a distributed computing system
JP6540107B2 (ja) 2015-03-09 2019-07-10 富士通株式会社 並列演算装置、並列演算システム、およびジョブ制御プログラム
US10521267B2 (en) * 2015-12-21 2019-12-31 Telefonaktiebolaget Lm Ericsson (Publ) Priority trainer for many core processing system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0474229A (ja) 1990-07-17 1992-03-09 Toshiba Corp 情報処理装置
JPH10289114A (ja) 1997-04-14 1998-10-27 Sony Corp マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器
EP1022654A3 (en) * 1999-01-14 2001-02-14 Interuniversitair Microelektronica Centrum Vzw Concurrent timed digital system design method and environment
JP2001236236A (ja) 2000-02-25 2001-08-31 Nec Microsystems Ltd タスク制御装置およびそのタスクスケジューリング方法
JP3891936B2 (ja) * 2001-02-28 2007-03-14 富士通株式会社 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
US20030037091A1 (en) 2001-08-09 2003-02-20 Kozo Nishimura Task scheduling device
US7150021B1 (en) * 2001-10-12 2006-12-12 Palau Acquisition Corporation (Delaware) Method and system to allocate resources within an interconnect device according to a resource allocation table
JP2003186686A (ja) * 2001-12-19 2003-07-04 Canon Inc リソース制御装置、方法及び記憶媒体
TW200502847A (en) * 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
US8161453B2 (en) * 2004-11-16 2012-04-17 Rabih Chrabieh Method and apparatus for implementing task management of computer operations
FR2882169B1 (fr) * 2005-02-14 2007-05-25 Cofluent Design Sarl Procede de simulation d'un systeme complexe incluant une hierarchie d'ordonnanceurs, produit programme d'ordinateur et moyen de stockage correspondants
US7802256B2 (en) * 2005-06-27 2010-09-21 Microsoft Corporation Class scheduler for increasing the probability of processor access by time-sensitive processes
JP2007133723A (ja) * 2005-11-11 2007-05-31 Hitachi Ltd マルチプロセッサ、タスクスケジューリング方法、及びコンパイラ
US7801635B2 (en) * 2007-01-30 2010-09-21 Tokyo Electron Limited Real-time parameter tuning for etch processes
JP2009025939A (ja) * 2007-07-18 2009-02-05 Renesas Technology Corp タスク制御方法及び半導体集積回路
US8117621B2 (en) * 2007-10-24 2012-02-14 International Business Machines Corporation Simulating a multi-queue scheduler using a single queue on a processor
JP2009110404A (ja) * 2007-10-31 2009-05-21 Toshiba Corp 仮想計算機システム及び同システムにおけるゲストosスケジューリング方法
US7957950B2 (en) * 2008-02-28 2011-06-07 Oki Semiconductor Co., Ltd. Hard/soft cooperative verifying simulator
US8392924B2 (en) 2008-04-03 2013-03-05 Sharp Laboratories Of America, Inc. Custom scheduling and control of a multifunction printer
JP5293165B2 (ja) * 2008-12-25 2013-09-18 富士通セミコンダクター株式会社 シミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法

Also Published As

Publication number Publication date
EP2447837A2 (en) 2012-05-02
US20120204184A1 (en) 2012-08-09
US9058207B2 (en) 2015-06-16
EP2447837A3 (en) 2014-04-09
JP2012079241A (ja) 2012-04-19

Similar Documents

Publication Publication Date Title
JP6383518B2 (ja) 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
JP2007034414A5 (ja)
US7555671B2 (en) Systems and methods for implementing reliability, availability and serviceability in a computer system
JP5625710B2 (ja) シミュレーション装置、方法、及びプログラム
JP2020513613A (ja) 電力パフォーマンス管理のためのアプリケーションプロファイリング
WO2007099624A1 (ja) コンピュータシステムの時刻管理制御方法及びコンピュータシステム
CN102736954A (zh) 通过禁用应用来解决系统退化
JP2019114173A (ja) 情報処理装置、情報処理方法及びプログラム
JP5621613B2 (ja) 情報処理装置、制御方法及びプログラム
WO2015075803A1 (ja) 情報処理装置、方法、プログラム及び記録媒体
JP2011108140A (ja) データ処理装置
JP2636722B2 (ja) マルチタスク実行管理方式
JP2009116618A (ja) 情報処理装置
WO2010103727A1 (ja) マルチタスクシステムにおけるシステム起動方法
JP2018018446A (ja) 並列処理装置、並列処理装置の電源制御プログラム、及び並列処理装置の電源制御方法
JP2010102567A (ja) 周期駆動タスク実行装置、周期駆動タスク実行方法及びプログラム
JP2007193744A (ja) 情報処理装置、プログラム、およびスケジューリング方法
CN110795223A (zh) 一种针对资源统一管理的集群调度系统及方法
JP4297796B2 (ja) プラント監視操作装置
CN111124686B (zh) 资源调度方法、装置及相关设备
JP2011209846A (ja) マルチプロセッサシステムとそのタスク割り当て方法
JP2005135137A (ja) 仮想計算機システム
WO2019188171A1 (ja) コード生成方法、コード生成装置
JP2015191282A (ja) ジョブスケジュールプログラム、ジョブスケジュール方法、及びジョブスケジュール装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130628

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140529

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140915

R150 Certificate of patent or registration of utility model

Ref document number: 5625710

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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