JP5293165B2 - シミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法 - Google Patents

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

Info

Publication number
JP5293165B2
JP5293165B2 JP2008330113A JP2008330113A JP5293165B2 JP 5293165 B2 JP5293165 B2 JP 5293165B2 JP 2008330113 A JP2008330113 A JP 2008330113A JP 2008330113 A JP2008330113 A JP 2008330113A JP 5293165 B2 JP5293165 B2 JP 5293165B2
Authority
JP
Japan
Prior art keywords
state
simulation
channel
read
write
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
JP2008330113A
Other languages
English (en)
Other versions
JP2010152645A (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 JP2008330113A priority Critical patent/JP5293165B2/ja
Priority to US12/618,137 priority patent/US8364458B2/en
Publication of JP2010152645A publication Critical patent/JP2010152645A/ja
Application granted granted Critical
Publication of JP5293165B2 publication Critical patent/JP5293165B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

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

Description

この発明は、組み込みシステムのハードウェアモデルとソフトウェアプログラムとの協調シミュレーションに関し、特に、ソフトウェアプログラムの実行を高速化する技術に関する。
ハードウェアとソフトウェアとが混在するシステムを開発する場合、ハードウェアとソフトウェアとを同時に取り扱って、システム全体のシミュレーションをおこなう。近年では、短期間で高品質のシステムを開発するために、より高速なシミュレータが求められている。特に、生産性に大きな影響を及ぼすようになったソフトウェアプログラムを高速に実行する技術が求められている。
一般に、ハードウェアモデルとソフトウェアの協調シミュレーションでは、命令単位でシミュレーションを実行するシミュレータ(ISS:Instruction Set Simulator)が用いられている。このとき、ISSは、命令ごとに、周辺回路をシミュレートするシミュレータとスケジューリングしながらハードウェアとソフトウェアの協調シミュレーションを実行する。
また、ISSを用いない協調シミュレーションとして、ソフトウェアを組み込んだCPU模擬ブロックとハードウェアモデルとを並列動作させる技術が開示されている(たとえば、下記特許文献1参照。)。この技術では、ソフトウェアからハードウェアモデルへのアクセス関数内にシミュレーションの実行権を開放する記述を埋め込むことにより、上記並列動作を実現している。
また、ハードウェア/ソフトウェア協調設計において、処理をブロックごとに細分化し、ブロック間のデータ依存関係を示す情報に基づいて、各ブロックのスケジューリングをおこなう技術が開示されている(たとえば、下記特許文献2参照。)。これによれば、ソフトウェアでおこなうシステム処理に対して、使用する資源を抑えることができる。
特開2005−18623号公報 特開2002−215703号公報
しかしながら、上述した従来技術では、ソフトウェアの処理内容に関係なくスケジューリングがおこなわれるため、シミュレーション結果に影響しない無駄なスケジューリングがおこなわれる場合がある。これでは、シミュレータ内のスケジューリング/コンテキストスイッチの回数が増加し、シミュレーション速度が低下してしまう。この結果、シミュレーションにかかる処理時間が増大し、ひいては開発期間の長期化を招くという問題がある。
この発明は、上述した従来技術による問題点を解消するため、ハードウェアモデル/ソフトウェア協調シミュレーションにおいて、無駄なスケジューリングによるオーバーヘッドを削減して開発期間の短縮化を図るシミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、このシミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法は、第1および第2のシミュレーション対象の協調シミュレーションの実行中に、前記第1および第2のシミュレーション対象間のデータの読出・書込に使用される複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する読出要求を受信し、前記読出要求が受信された場合、前記チャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶するテーブルに記憶されている前記一のチャネルの状態が読出待ち状態か否かを判定し、読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に格納されているデータを前記アクセス元に送信し、前記データが送信された結果、前記テーブルに記憶されている前記一のチャネルの状態を初期状態に変更することを要件とする。
このシミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法によれば、第1および第2のシミュレーション対象間で依存関係のあるデータのやり取りの順序を保障することができる。
このシミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法によれば、ハードウェアモデル/ソフトウェア協調シミュレーションにおいて、無駄なスケジューリングによるオーバーヘッドを削減して開発期間の短縮化を図ることができるという効果を奏する。
以下に添付図面を参照して、このシミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法の好適な実施の形態を詳細に説明する。このシミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法では、HW/SW協調シミュレーションにおいて、シミュレータ内のスケジューリングを特定の命令に限定しておこなうことにより、スケジューリング回数を減らしてオーバーヘッドを削減し、シミュレーションの高速化を図る。
(本スケジューリング方式の概要)
まず、実施の形態にかかるハードウェアモデルとソフトウェアとの協調シミュレーションにおけるスケジューリング方式の概要について説明する。図1は、スケジューリング方式の概要を示す説明図である。ここでは、ハードウェアモデル(図1中、「HW」と表記)の動作結果を、ソフトウェア(図1中、「SW」と表記)のload命令で読み込むモデルを例に挙げて説明する。
図1中、t1〜t8は、スケジューリングのオーバーヘッドをあらわしている。また、図1中、□は、ソフトウェアの命令の実行時間に合わせて、ハードウェアモデルのシミュレーション時刻を進めるための時間をあらわしている。また、時間軸Tは、シミュレーションにかかる実際の所要時間をあらわしている。なお、この例では、ソフトウェアのadd命令、mul命令、mul命令が終了した時点で、ハードウェアモデルの動作は完了していることとする。
従来のスケジューリング方式(図1中上段)では、たとえば、命令(add命令、mul命令、mul命令)ごとに、ソフトウェアのスケジューリングがおこなわれる。具体的には、ソフトウェアの各命令が実行されたあとスケジューリングがおこなわれ、ハードウェアモデルのシミュレーション時刻が各命令の実行時間分(図1中□)だけ進められている。
すなわち、従来のスケジューリング方式では、各命令の処理内容に関係なく、ハードウェアモデルとソフトウェアとの協調が求められており、命令ごとにシミュレーション時刻を合わせるためのスケジューリングがおこなわれている。ところが、これらスケジューリングの中には、シミュレーション結果に影響しない無駄なスケジューリングが含まれている。
図1の例では、add命令、mul命令、mul命令は、ハードウェアモデルとの協調が求められていない命令であり、シミュレーション時刻を合わせる必要がない。したがって、load命令の実行前に、ハードウェアモデルのシミュレーション時刻を合わせるだけで十分であり、それ以外のスケジューリングはシミュレーション結果に影響しない無駄なスケジューリングである。
通常、シミュレータ内のスケジューリング/コンテキストスイッチの回数が増加すると、シミュレーション速度が低下してしまう。このため、無駄なスケジューリング回数が多くなるほど、スケジューリングのオーバーヘッドが増大してしまい、シミュレーションの低速化を招くという問題がある。
そこで、本スケジューリング方式では、ハードウェアモデルとソフトウェアとの間で依存関係のあるデータのやり取りのタイミングによってスケジューリングをおこなう。図1の例では、ソフトウェアのload命令だけがハードウェアモデルとの依存関係があるため、load命令前にのみスケジューリングをおこなう。
すなわち、HW/SW間で依存関係のあるデータのやり取りの実行順序に着目して、その実行順序を維持するようにスケジューリングをおこなう。これにより、シミュレーション結果に影響しない無駄なスケジューリングのオーバーヘッドを削減することが可能となり、シミュレーションにかかる処理時間の短縮化を図ることができる。
(シミュレーション装置のハードウェア構成)
つぎに、実施の形態にかかるシミュレーション装置のハードウェア構成について説明する。図2は、シミュレーション装置のハードウェア構成を示すブロック図である。図2において、シミュレーション装置200は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス220によってそれぞれ接続されている。
ここで、CPU201は、シミュレーション装置200の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、シミュレーション装置200内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(シミュレーションシステムのシステム構成)
つぎに、シミュレーション装置200上に構築されるシミュレーションシステムのシステム構成について説明する。図3は、シミュレーションシステムのシステム構成図である。図3において、シミュレーションシステム300は、シミュレーション対象310と、シミュレーションライブラリ320と、を含む構成である。
シミュレーション対象310は、ユーザプログラムPおよびハードウェアモデルMを有する。ここで、ユーザプログラムPは、シミュレーション対象となるソフトウェアである。ユーザプログラムPには、ターゲットOS(Operation System)上で動作するタスクプログラムとISR(Interrupt Service Routine)プログラムが含まれている。また、ハードウェアモデルMは、シミュレーション対象となるハードウェアのモデルである。なお、ユーザプログラムPおよびハードウェアモデルMの具体例については、図3および図4を用いて後述する。
シミュレーションライブラリ320は、OSモデル321と、HWシミュレータ322と、チャネルCと、を有する。ここで、OSモデル321は、ユーザプログラムPをスケジュールするためのOSのモデルである。OSモデル321としては、たとえば、OSEKを用いることができる。また、HWシミュレータ322は、ハードウェアモデルMのシミュレータである。HWシミュレータ322には、たとえば、SystemCが用いられる。
また、チャネルCは、ハードウェアモデルMとユーザプログラムPとの間でのデータのやり取りに使用するデータパスである。このチャネルCは、ユーザプログラムPとハードウェアモデルMとを1対1に接続する。また、このチャネルCは、片方向の接続(「ユーザプログラムP→ハードウェアモデルM」または「ハードウェアモデルM→ユーザプログラムP」)ごとに設けられている。具体的には、たとえば、チャネルCは、ユーザプログラムP内のタスクまたはISRと、ハードウェアモデルMとを1対1に接続する。
さらに、チャネルCは、ハードウェアモデルMとユーザプログラムPのいずれか一方から他方に対する書込要求を処理する機能を有する。また、チャネルCは、ハードウェアモデルMとユーザプログラムPのいずれか一方から他方に対する読出要求を処理する機能を有する。また、チャネルCは、ハードウェアモデルMとユーザプログラムPのいずれか一方が読出待ち状態または書込待ち状態に遷移する場合に、待ち状態に遷移する一方のシミュレーションを中断する中断処理を実行する機能を有する。以下において、本実施の形態では、複数のチャネルC1〜Cnが存在すると仮定する。なお、チャネルCの構成については図5を用いて説明する。
このシミュレーションシステム300では、ハードウェアモデルM上で動作するユーザプログラムP(検証対象)の振る舞いを検証する。このとき、ハードウェアモデルMとユーザプログラムPとの間で依存関係のあるデータのやり取りをおこなう場合に、直接やり取りするのではなくチャネルCを介しておこなう。具体的には、たとえば、HWシミュレータ322が、チャネルCからの要求に応じて、並列して動作するハードウェアモデルMとユーザプログラムPとの間の実行処理および中断処理をおこなう。
ここで、シミュレーションシステム300のシステム概要を説明する。まず、シミュレーションを実行するコンピュータ(たとえば、シミュレーション装置200)向けに、ユーザプログラムPとハードウェアモデルMとをコンパイルしてバイナリを生成する。このあと、バイナリとシミュレーションライブラリ320とをリンクして実行ファイルを生成する。そして、実行ファイルを実行して、ユーザプログラムPとハードウェアモデルMとをシミュレーションする。
(ユーザプログラムPの具体例)
図4は、ユーザプログラムの具体例を示す説明図である。図4において、ユーザプログラムP1は、C言語を用いて記述されたソフトウェアプログラムである。このユーザプログラムP1では、ハードウェアモデルMとのインターフェースとして、read関数およびwrite関数が使用されている。
具体的には、read、write関数内には、ハードウェアモデルMとのデータのやり取りに使用するチャネルCのチャネル番号が記述されている。たとえば、ソースコード401のread関数内には、ハードウェアモデルMとのデータのやり取りに使用するチャネルC1のチャネル番号「C1」が記述されている。なお、ユーザプログラムP1では、OSEKのAPIをすべて呼び出すことが可能であり、振る舞いも仕様と同じものである。
(ハードウェアモデルMの具体例)
つぎに、ハードウェアモデルMの具体例について説明する。図5は、ハードウェアモデルの具体例を示す説明図である。図5において、ハードウェアモデルMは、SystemCを用いて記述されたハードウェアのモデルである。このハードウェアモデルMでは、ユーザプログラムP1とのインターフェースとして、read関数およびwrite関数が使用されている。
具体的には、read、write関数内には、ユーザプログラムP1とのデータのやり取りに使用するチャネルCのチャネル番号が記述されている。たとえば、ソースコード501のwrite関数内には、ユーザプログラムP1とのデータのやり取りに使用するチャネルC1のチャネル番号「C1」が記述されている。
(チャネルCの構成)
つぎに、チャネルCの構成について説明する。ここでは、複数のチャネルC1〜Cnのうち任意のチャネルCiを例に挙げて説明する。図6は、チャネルの構成を示す説明図である。図6において、チャネルCiは、インターフェースI/Fiと、データバッファBiと、を含む構成である。
インターフェースI/Fiは、ユーザプログラムPやハードウェアモデルMからの書込要求および読出要求を受け付ける機能を有する。データバッファBiは、チャネルCiに割り当てられた記憶領域であり、ユーザプログラムPとハードウェアモデルMとの間でデータの書き込み・読み出しをおこなう際に使用される。
なお、データバッファBiは、たとえば、図2に示したRAM203、磁気ディスク205、光ディスク207などの記憶領域によって実現される。また、チャネルCiは、初期状態、write待ち状態およびread待ち状態のいずれかの状態を有している。チャネルCiの状態は、たとえば、図7に示す状態テーブル700を用いて管理されている。
(状態テーブルの記憶内容)
つぎに、状態テーブルの記憶内容について説明する。図7は、状態テーブルの記憶内容の一例を示す説明図である。図7において、状態テーブル700は、チャネル番号および状態のフィールド項目を有している。各フィールド項目に情報を設定することで、各チャネルC1〜Cnの状態がレコードとして記憶されている。
チャネル番号は、各チャネルC1〜Cnを識別する識別子である。状態は、各チャネルC1〜Cnの状態である。ここでは、状態のフィールド項目には、初期状態フラグ、write待ちフラグおよびread待ちフラグが設定されている。これら初期状態フラグ、write待ちフラグおよびread待ちフラグのうちONとなっているものが、各チャネルC1〜Cnの状態を示している。
なお、シミュレーション実行前の時点では、全チャネルC1〜Cnの状態が初期状態となっている。状態テーブル700は、たとえば、図2に示したRAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されている。
(動作シーケンス)
つぎに、ユーザプログラムPとハードウェアモデルMとの動作シーケンスについて説明する。ここでは、図4に示したユーザプログラムP1と、図5に示したハードウェアモデルMとを例に挙げて説明する。図8は、動作シーケンスの一例を示すシーケンス図である。なお、図8中、時間軸Tは、シミュレーションにかかる実際の所要時間をあらわしている。
(1)ハードウェアモデルMがチャネルC1のデータバッファB1にdataを書き込む(図5中、ソースコード501)。これにより、ハードウェアモデルMは、チャネルC1のread待ち状態となる。すなわち、ハードウェアモデルMは、ユーザプログラムP1がチャネルC1のデータバッファB1からdataを読み出すまでの間、つぎの処理(図5中、ソースコード502)を実行することなく待機することになる。
(2)ユーザプログラムP1が、チャネルC1からdataを読み出す(図4中、ソースコード401)。この結果、ハードウェアモデルMに対するread通知が発生する。これにより、チャネルC1のread待ち状態にあったハードウェアモデルM1が、つぎの処理を実行可能な状態となる。
(3)ユーザプログラムP1が、チャネルC2にdataを書き込む(図4中、ソースコード402)。これにより、ユーザプログラムP1は、チャネルC2のread待ち状態となる。すなわち、ユーザプログラムP1は、ハードウェアモデルMがチャネルC2のデータバッファB2からdataを読み出すまでの間、つぎの処理を実行することなく待機することになる。
(4)ハードウェアモデルMが、チャネルC2からdataを読み出す(図5中、ソースコード503)。この結果、ユーザプログラムP1に対するread通知がおこなわれる。これにより、チャネルC2のread待ち状態にあったユーザプログラムP1が、つぎの処理を実行可能な状態となる。
この動作シーケンスでは、(1)において、ユーザプログラムPがチャネルC1のデータバッファB1からdataが読み出すまでの期間、ハードウェアモデルMを待機させることによってスケジューリングを実現している。また、(3)において、ハードウェアモデルMがチャネルC2のデータバッファB2からdataが読み出すまでの期間、ユーザプログラムP1を待機させることによってスケジューリングを実現している。
(シミュレーション装置の機能的構成)
つぎに、シミュレーション装置200の機能的構成について説明する。シミュレーション装置200は、図3に示したシミュレーションシステム300を構築して、ハードウェアモデルMとユーザプログラムPとの協調シミュレーションを実行するコンピュータ装置である。
図9は、シミュレーション装置の機能的構成を示すブロック図である。図9において、シミュレーション装置200は、受信部901と、判定部902と、送信部903と、変更部904と、通知部905と、格納部906と、を含む構成である。この制御部となる機能(受信部901〜格納部906)は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。
受信部901は、協調シミュレーションの実行中に、チャネルCi(i=1,2,…,n)を介して、ハードウェアモデルMまたはユーザプログラムPのいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対するアクセス要求を受信する機能を有する。具体的には、たとえば、受信部901が、チャネルCiのインターフェースI/Fiを介して、アクセス元からアクセス先に対するread要求またはwrite要求を受信する。
また、read要求、write要求には、たとえば、チャネル番号「Ci」が含まれている。これにより、データのやり取りに使用するチャネルCiを認識することができる。なお、受信された受信結果は、図2に示したRAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
判定部902は、read要求が受信された場合、図7に示した状態テーブル700に記憶されているチャネルCiの状態がread待ち状態か否かを判定する機能を有する。具体的には、たとえば、判定部902が、状態テーブル700を参照して、read要求に含まれるチャネル番号を手掛かりに、チャネルCiのread待ち状態フラグがONとなっているか否かを判定する。なお、判定された判定結果は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
送信部903は、read待ち状態と判定された場合、チャネルCiに割り当てられたデータバッファBiに格納されているデータをアクセス元に送信する機能を有する。具体的には、たとえば、送信部903が、チャネルCiのインターフェースI/Fiを介して、データバッファBiに格納されているデータをアクセス元に送信する。
変更部904は、データが送信された結果、状態テーブル700に記憶されているチャネルCiの状態を初期状態に変更する機能を有する。具体的には、たとえば、変更部904が、状態テーブル700内のチャネルCiのread待ち状態フラグをOFFにし、初期状態フラグをONにする(後述の図10中(A))。
ここで、変更部904による変更処理について説明する。図10は、変更処理の一例を示す説明図である。図10の(A)では、アクセス元にデータが送信された結果、チャネルCiのread待ち状態フラグがONからOFFにセットされ、初期状態フラグがOFFからONにセットされている。
通知部905は、read要求が受信され、かつ、read待ち状態と判定された場合、チャネルCiに割り当てられたデータバッファBiに対するread要求を受け付けたことを示すread通知をアクセス先に送信する機能を有する。具体的には、たとえば、送信部903が、チャネルCiのインターフェースI/Fiを介して、read通知をアクセス先に送信する。これにより、データバッファBiに格納されているデータのread待ち状態にあったアクセス先が、つぎの処理を実行可能な状態になる。
変更部904は、read要求が受信され、かつ、read待ち状態ではないと判定された場合、状態テーブル700に記憶されているチャネルCiの状態をwrite待ち状態に変更する機能を有する。具体的には、たとえば、変更部904が、状態テーブル700内のチャネルCiの初期状態フラグをOFFにし、write待ち状態フラグをONにする(図10中(B))。
図10の(B)では、read要求が受信され、かつ、read待ち状態ではないと判定された結果、チャネルCiの初期状態フラグがONからOFFにセットされ、write待ち状態フラグがOFFからONにセットされている。これにより、アクセス元が、データバッファBiに対するデータのwrite待ち状態となり、つぎの処理を実行することなく待機することになる。
判定部902は、write要求が受信された場合、チャネルCiの状態がwrite待ち状態か否かを判定する機能を有する。具体的には、たとえば、判定部902が、状態テーブル700を参照して、write要求に含まれるチャネル番号を手掛かりに、チャネルCiのwrite待ち状態フラグがONとなっているか否かを判定する。
格納部906は、write要求が受信され、かつ、write待ち状態と判定された場合、チャネルCiに割り当てられたデータバッファBiにデータを格納する機能を有する。具体的には、たとえば、格納部906が、write要求に含まれているデータをデータバッファBiに格納する。これにより、アクセス元からアクセス先に対するデータの書き込みが実現される。
変更部904は、データが格納された結果、状態テーブル700に記憶されているチャネルCiの状態をread待ち状態に変更する機能を有する。具体的には、たとえば、変更部904が、状態テーブル700内のチャネルCiのwrite待ち状態をOFFにし、read待ち状態フラグをONにする(図10中(C))。
図10の(C)では、write要求が受信され、かつ、write待ち状態と判定された結果、チャネルCiのwrite待ち状態がONからOFFにセットされ、read待ち状態フラグがOFFからONにセットされている。これにより、アクセス元が、データバッファBiに格納されているデータのread待ち状態となり、つぎの処理を実行することなく待機することになる。
通知部905は、write要求が受信され、かつ、write待ち状態と判定された場合、チャネルCiに割り当てられたデータバッファBiに対するwrite要求を受け付けたことを示すwrite通知をアクセス先に送信する機能を有する。具体的には、たとえば、通知部905が、チャネルCiのインターフェースI/Fiを介して、write通知をアクセス先に送信する。これにより、データバッファBiに対するデータのwrite待ち状態にあったアクセス先が、つぎの処理を実行可能な状態になる。
格納部906は、write要求が受信され、かつ、write待ち状態ではないと判定された場合、チャネルCiに割り当てられたデータバッファBiにデータを格納する機能を有する。具体的には、たとえば、格納部906が、write要求に含まれているデータをデータバッファBiに格納する。
変更部904は、write要求を受け付け、かつ、write待ち状態ではないと判定された場合、状態テーブル700に記憶されているチャネルCiの状態をread待ち状態に変更する機能を有する。具体的には、たとえば、変更部904が、状態テーブル700内のチャネルCiの初期状態フラグをOFFにし、read待ち状態フラグをONにする(図10中(D))。
図10の(D)では、write要求が受信され、かつ、write待ち状態ではないと判定された結果、チャネルCiの初期状態がONからOFFにセットされ、read待ち状態フラグがOFFからONにセットされている。これにより、アクセス元が、データバッファBiに格納されているデータのread待ち状態となり、つぎの処理を実行することなく待機することになる。
なお、ハードウェアモデルMとユーザプログラムP(タスク、ISR)とは1対1に接続されているため、たとえば、read待ち状態となっているチャネルCiを使用したwrite要求は発生しない。また、write待ち状態となっているチャネルCiを使用したread要求は発生しない。
(シミュレーション装置のシミュレーション支援処理手順)
つぎに、シミュレーション装置200のシミュレーション支援処理手順について説明する。図11および図12は、シミュレーション装置のシミュレーション支援処理手順の一例を示すフローチャートである。
図11のフローチャートにおいて、まず、受信部901により、協調シミュレーションの実行中に、チャネルCiを介して、ハードウェアモデルMまたはユーザプログラムPのいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対するアクセス要求を受信したか否かを判断する(ステップS1101)。
ここで、アクセス要求を受信するのを待って(ステップS1101:No)、アクセス要求を受信した場合(ステップS1101:Yes)、判定部902により、アクセス要求がread要求か否かを判断する(ステップS1102)。
ここで、アクセス要求がwrite要求の場合(ステップS1102:No)、図12に示すステップS1201に移行する。一方、アクセス要求がread要求の場合(ステップS1102:Yes)、判定部902により、状態テーブル700に記憶されているチャネルCiの状態がread待ち状態か否かを判定する(ステップS1103)。
ここで、read待ち状態と判定された場合(ステップS1103:Yes)、通知部905により、チャネルCiに割り当てられたデータバッファBiに対するread要求を受け付けたことを示すread通知をアクセス先に送信する(ステップS1104)。そして、送信部903により、チャネルCiに割り当てられたデータバッファBiに格納されているデータをアクセス元に送信する(ステップS1105)。
最後に、変更部904により、状態テーブル700に記憶されているチャネルCiの状態を初期状態に変更して(ステップS1106)、本フローチャートによる一連の処理を終了する。また、ステップS1103において、read待ち状態ではないと判定された場合(ステップS1103:No)、状態テーブル700に記憶されているチャネルCiの状態をwrite待ち状態に変更して(ステップS1107)、本フローチャートによる一連の処理を終了する。
図12のフローチャートにおいて、まず、判定部902により、チャネルCiの状態がwrite待ち状態か否かを判定する(ステップS1201)。ここで、write待ち状態と判定された場合(ステップS1201:Yes)、格納部906により、write要求に含まれているデータを、チャネルCiに割り当てられたデータバッファBiに格納する(ステップS1202)。
このあと、通知部905により、チャネルCiに割り当てられたデータバッファBiに対するwrite要求を受け付けたことを示すwrite通知をアクセス先に送信する(ステップS1203)。最後に、変更部904により、状態テーブル700に記憶されているチャネルCiの状態をread待ち状態に変更して(ステップS1204)、本フローチャートによる一連の処理を終了する。
また、ステップS1201において、write待ち状態ではないと判定された場合(ステップS1201:No)、格納部906により、write要求に含まれているデータを、チャネルCiに割り当てられたデータバッファBiに格納する(ステップS1205)。最後に、変更部904により、状態テーブル700に記憶されているチャネルCiの状態をread待ち状態に変更して(ステップS1206)、本フローチャートによる一連の処理を終了する。
以上説明したように、本実施の形態によれば、HW/SW間を1対1に接続するチャネルC1〜Cnの状態に基づいて、HW/SW間のアクセスを制御することにより、データのやり取りの順序を保障することができる。この結果、HW/SW間での依存関係のあるデータのやり取りのタイミングでのスケジューリングを実現することができる。
これにより、HW/SW協調シミュレーションにおける無駄なスケジューリングを排除して、スケジューリング回数を減らすことができる。この結果、スケジューラ上で実行することのオーバーヘッドが削減され、ソフトウェアの実行を高速化することができる。
このように、このシミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法によれば、HW/SW協調シミュレーションにおいて、無駄なスケジューリングを排除してスケジューリング回数を減らすことにより、シミュレーションにかかる処理時間を削減し開発期間の短縮化を図ることができる。
なお、本実施の形態で説明したシミュレーション支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1および第2のシミュレーション対象の協調シミュレーションを実行するコンピュータを、
前記第1および第2のシミュレーション対象間のデータの読出・書込に使用されるチャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶する記憶手段、
前記協調シミュレーションの実行中に、前記複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する読出要求を受信する受信手段、
前記受信手段によって前記読出要求が受信された場合、前記記憶手段に記憶されている前記一のチャネルの状態が読出待ち状態か否かを判定する判定手段、
前記判定手段によって読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に格納されているデータを前記アクセス元に送信する送信手段、
前記送信手段によって前記データが送信された結果、前記記憶手段に記憶されている前記一のチャネルの状態を初期状態に変更する変更手段、
として機能させることを特徴とするシミュレーション支援プログラム。
(付記2)前記コンピュータを、
前記判定手段によって読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に対する読出要求を受け付けたことを示す読出通知を前記アクセス先に通知する通知手段として機能させることを特徴とする付記1に記載のシミュレーション支援プログラム。
(付記3)前記変更手段は、
前記判定手段によって読出待ち状態ではないと判定された場合、前記記憶手段に記憶されている一のチャネルの状態を書込待ち状態に変更することを特徴とする付記1または2に記載のシミュレーション支援プログラム。
(付記4)前記コンピュータを、
前記記憶領域にデータを格納する格納手段として機能させ、
前記受信手段は、
前記協調シミュレーションの実行中に、前記一のチャネルを介して、前記アクセス元からアクセス先に対する書込要求を受信し、
前記判定手段は、
前記受信手段によって前記書込要求が受信された場合、前記記憶手段に記憶されている前記一のチャネルの状態が書込待ち状態か否かを判定し、
前記格納手段は、
前記判定手段によって書込待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に前記データを格納し、
前記変更手段は、
前記格納手段によって前記データが格納された結果、前記記憶手段に記憶されている前記一のチャネルの状態を読出待ち状態に変更することを特徴とする付記2または3に記載のシミュレーション支援プログラム。
(付記5)前記通知手段は、
前記判定手段によって書込待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に対する書込要求を受け付けたことを示す書込通知を前記アクセス先に通知することを特徴とする付記4に記載のシミュレーション支援プログラム。
(付記6)前記変更手段は、
前記判定手段によって書込待ち状態ではないと判定された場合、前記記憶手段に記憶されている一のチャネルの状態を読出待ち状態に変更することを特徴とする付記4または5に記載のシミュレーション支援プログラム。
(付記7)第1および第2のシミュレーション対象の協調シミュレーションを実行するコンピュータを、
前記第1および第2のシミュレーション対象間のデータの読出・書込に使用されるチャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶する記憶手段、
前記協調シミュレーションの実行中に、前記複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する書込要求を受信する受信手段、
前記受信手段によって前記書込要求が受信された場合、当該一のチャネルの状態が書込待ち状態か否かを判定する判定手段、
前記判定手段によって書込待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に前記データを格納する格納手段、
前記格納手段によって前記データが格納された結果、前記記憶手段に記憶されている前記一のチャネルの状態を初期状態に変更する変更手段、
として機能させることを特徴とするシミュレーション支援プログラム。
(付記8)前記コンピュータを、
前記判定手段によって書込待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に対する書込要求を受け付けたことを示す書込通知を前記アクセス先に通知する通知手段として機能させることを特徴とする付記7に記載のシミュレーション支援プログラム。
(付記9)前記変更手段は、
前記判定手段によって書込待ち状態ではないと判定された場合、前記記憶手段に記憶されている一のチャネルの状態を読出待ち状態に変更することを特徴とする付記7または8に記載のシミュレーション支援プログラム。
(付記10)前記コンピュータを、
前記記憶領域に格納されているデータを前記アクセス元に送信する送信手段として機能させ、
前記受信手段は、
前記協調シミュレーションの実行中に、前記一のチャネルを介して、前記アクセス元から前記アクセス先に対する読出要求を受信し、
前記判定手段は、
前記受信手段によって前記読出要求が受信された場合、前記記憶手段に記憶されている前記一のチャネルの状態が読出待ち状態か否かを判定し、
前記送信手段は、
前記判定手段によって読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に格納されているデータを前記アクセス元に送信し、
前記変更手段は、
前記送信手段によって前記データが送信された結果、前記記憶手段に記憶されている前記一のチャネルの状態を初期状態に変更することを特徴とする付記8または9に記載のシミュレーション支援プログラム。
(付記11)前記通知手段は、
前記判定手段によって読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に対する読出要求を受け付けたことを示す読出通知を前記アクセス先に通知する通知手段として機能させることを特徴とする付記10に記載のシミュレーション支援プログラム。
(付記12)前記変更手段は、
前記判定手段によって読出待ち状態ではないと判定された場合、前記記憶手段に記憶されている一のチャネルの状態を書込待ち状態に変更することを特徴とする付記10または11に記載のシミュレーション支援プログラム。
(付記13)第1および第2のシミュレーション対象の協調シミュレーションを実行するシミュレーション装置であって、
前記第1および第2のシミュレーション対象間のデータの読出・書込に使用されるチャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶する記憶手段と、
前記協調シミュレーションの実行中に、前記複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する読出要求を受信する受信手段と、
前記受信手段によって前記読出要求が受信された場合、前記記憶手段に記憶されている前記一のチャネルの状態が読出待ち状態か否かを判定する判定手段と、
前記判定手段によって読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に格納されているデータを前記アクセス元に送信する送信手段と、
前記送信手段によって前記データが送信された結果、前記記憶手段に記憶されている前記一のチャネルの状態を初期状態に変更する変更手段と、
を備えることを特徴とするシミュレーション装置。
(付記14)第1および第2のシミュレーション対象の協調シミュレーションを実行するシミュレーション装置であって、
前記第1および第2のシミュレーション対象間のデータの読出・書込に使用されるチャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶する記憶手段と、
前記協調シミュレーションの実行中に、前記複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する書込要求を受信する受信手段と、
前記受信手段によって前記書込要求が受信された場合、当該一のチャネルの状態が書込待ち状態か否かを判定する判定手段と、
前記判定手段によって書込待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に前記データを格納する格納手段と、
前記格納手段によって前記データが格納された結果、前記記憶手段に記憶されている前記一のチャネルの状態を初期状態に変更する変更手段と、
を備えることを特徴とするシミュレーション装置。
(付記15)ハードウェアとソフトウェアの協調検証を実行するシミュレーション装置であって、
前記ハードウェアと前記ソフトウェア間を一対一かつ片方向の接続ごとに設けられ、それぞれが対応する前記ハードウェアと前記ソフトウェアとのシミュレーションの実行を制御するために、前記ハードウェアと前記ソフトウェアのいずれか一方(以下、「書込側」)から他方(以下、「読出側」)に対する書込要求を処理する機能、前記読出側から前記書込側に対する読出要求を処理する機能、初期状態、書込待ち状態、読出待ち状態のいずれかの状態を保持する第1の変数、前記書込側と前記読出側との間で、データの伝送に使用される第2の変数、前記書込側が読出待ち状態に、または、前記読出側が書込待ち状態に遷移する場合、読出待ち状態または書込待ち状態に遷移する前記ハードウェアまたは前記ソフトウェアのシミュレーションを中断する中断処理を実行する機能を備えた複数のチャネルと、
前記チャネルからの要求に応じて、並列して動作する前記ハードウェアおよび前記ソフトウェア間の実行処理および中断処理をおこなうシミュレータ本体と、
を備えることを特徴とするシミュレーション装置。
(付記16)制御手段および記憶手段を備え、第1および第2のシミュレーション対象の協調シミュレーションを実行するコンピュータが、
前記制御手段により、前記協調シミュレーションの実行中に、前記複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する読出要求を受信して、前記記憶手段に記憶する受信工程と、
前記制御手段により、前記受信工程によって前記読出要求が受信された場合、前記第1および第2のシミュレーション対象間のデータの読出・書込に使用されるチャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶するテーブルに記憶されている前記一のチャネルの状態が読出待ち状態か否かを判定して、前記記憶手段に記憶する判定工程と、
前記制御手段により、前記判定工程によって読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に格納されているデータを前記アクセス元に送信する送信工程と、
前記制御手段により、前記送信工程によって前記データが送信された結果、前記テーブルに記憶されている前記一のチャネルの状態を初期状態に変更する変更工程と、
を実行することを特徴とするシミュレーション支援方法。
(付記17)制御手段および記憶手段を備え、第1および第2のシミュレーション対象の協調シミュレーションを実行するコンピュータが、
前記制御手段により、前記協調シミュレーションの実行中に、前記複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する書込要求を受信して、前記記憶手段に記憶する受信工程と、
前記制御手段により、前記受信工程によって前記書込要求が受信された場合、前記第1および第2のシミュレーション対象間のデータの読出・書込に使用されるチャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶するテーブルに記憶されている前記一のチャネルの状態が書込待ち状態か否かを判定して、前記記憶手段に記憶する判定工程と、
前記制御手段により、前記判定工程によって書込待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に前記データを格納する格納工程と、
前記制御手段により、前記格納工程によって前記データが格納された結果、前記テーブルに記憶されている前記一のチャネルの状態を初期状態に変更する変更工程と、
を実行することを特徴とするシミュレーション支援方法。
スケジューリング方式の概要を示す説明図である。 シミュレーション装置のハードウェア構成を示すブロック図である。 シミュレーションシステムのシステム構成図である。 ユーザプログラムの具体例を示す説明図である。 ハードウェアモデルの具体例を示す説明図である。 チャネルの構成を示す説明図である。 状態テーブルの記憶内容の一例を示す説明図である。 動作シーケンスの一例を示すシーケンス図である。 シミュレーション装置の機能的構成を示すブロック図である。 変更処理の一例を示す説明図である。 シミュレーション装置のシミュレーション支援処理手順の一例を示すフローチャート(その1)である。 シミュレーション装置のシミュレーション支援処理手順の一例を示すフローチャート(その2)である。
符号の説明
200 シミュレーション装置
700 状態テーブル
901 受信部
902 判定部
903 送信部
904 変更部
905 通知部
906 格納部
C,C1〜Cn チャネル
M ハードウェアモデル
P,P1 ユーザプログラム

Claims (8)

  1. 第1および第2のシミュレーション対象の協調シミュレーションを実行するコンピュータに、
    記協調シミュレーションの実行中に、前記第1および第2のシミュレーション対象間のデータの読出・書込に使用される複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する読出要求を受信
    記読出要求が受信された場合、前記チャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶する記憶手段に記憶されている前記一のチャネルの状態が読出待ち状態か否かを判定
    前記一のチャネルの状態が読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に格納されているデータを前記アクセス元に送信
    記データが送信された結果、前記記憶手段に記憶されている前記一のチャネルの状態を初期状態に変更す
    処理を実行させることを特徴とするシミュレーション支援プログラム。
  2. 前記コンピュータ
    前記一のチャネルの状態が読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に対する読出要求を受け付けたことを示す読出通知を前記アクセス先に通知する処理を実行させることを特徴とする請求項1に記載のシミュレーション支援プログラム。
  3. 前記コンピュータに
    前記一のチャネルの状態が読出待ち状態ではないと判定された場合、前記記憶手段に記憶されている一のチャネルの状態を書込待ち状態に変更する処理を実行させることを特徴とする請求項1または2に記載のシミュレーション支援プログラム。
  4. 前記コンピュータに、
    記協調シミュレーションの実行中に、前記一のチャネルを介して、前記アクセス元からアクセス先に対する書込要求を受信し
    記書込要求が受信された場合、前記記憶手段に記憶されている前記一のチャネルの状態が書込待ち状態か否かを判定し
    前記一のチャネルの状態が書込待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域にータを格納し
    記データが格納された結果、前記記憶手段に記憶されている前記一のチャネルの状態を読出待ち状態に変更する
    処理を実行させることを特徴とする請求項2または3に記載のシミュレーション支援プログラム。
  5. 前記コンピュータに、
    前記一のチャネルの状態が書込待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に対する書込要求を受け付けたことを示す書込通知を前記アクセス先に通知する処理を実行させることを特徴とする請求項4に記載のシミュレーション支援プログラム。
  6. 第1および第2のシミュレーション対象の協調シミュレーションを実行するシミュレーション装置であって、
    前記第1および第2のシミュレーション対象間のデータの読出・書込に使用されるチャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶する記憶手段と、
    前記協調シミュレーションの実行中に、前記複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する読出要求を受信する受信手段と、
    前記受信手段によって前記読出要求が受信された場合、前記記憶手段に記憶されている前記一のチャネルの状態が読出待ち状態か否かを判定する判定手段と、
    前記判定手段によって読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に格納されているデータを前記アクセス元に送信する送信手段と、
    前記送信手段によって前記データが送信された結果、前記記憶手段に記憶されている前記一のチャネルの状態を初期状態に変更する変更手段と、
    を備えることを特徴とするシミュレーション装置。
  7. 制御手段および記憶手段を備え、第1および第2のシミュレーション対象の協調シミュレーションを実行するコンピュータが、
    前記制御手段により、前記協調シミュレーションの実行中に、前記第1および第2のシミュレーション対象間のデータの読出・書込に使用される複数のチャネルのうち一のチャネルを介して、前記第1または第2のシミュレーション対象のいずれか一方(以下、「アクセス元」)から他方(以下、「アクセス先」)に対する読出要求を受信して、前記記憶手段に記憶する受信工程と、
    前記制御手段により、前記受信工程によって前記読出要求が受信された場合、前記チャネルごとに、初期状態、読出待ち状態および書込待ち状態のいずれかの状態を記憶するテーブルに記憶されている前記一のチャネルの状態が読出待ち状態か否かを判定して、前記記憶手段に記憶する判定工程と、
    前記制御手段により、前記判定工程によって読出待ち状態と判定された場合、前記一のチャネルに割り当てられた記憶領域に格納されているデータを前記アクセス元に送信する送信工程と、
    前記制御手段により、前記送信工程によって前記データが送信された結果、前記テーブルに記憶されている前記一のチャネルの状態を初期状態に変更する変更工程と、
    を実行することを特徴とするシミュレーション支援方法。
  8. ハードウェアとソフトウェアの協調検証を実行するシミュレーション装置であって、
    前記ハードウェアと前記ソフトウェア間を一対一かつ片方向の接続ごとに設けられ、それぞれが対応する前記ハードウェアと前記ソフトウェアとのシミュレーションの実行を制御するために、前記ハードウェアと前記ソフトウェアのいずれか一方(以下、「書込側」)から他方(以下、「読出側」)に対する書込要求を処理する機能、前記読出側から前記書込側に対する読出要求を処理する機能、初期状態、書込待ち状態、読出待ち状態のいずれかの状態を保持する第1の変数、前記書込側と前記読出側との間で、データの伝送に使用される第2の変数、前記書込側が読出待ち状態に、または、前記読出側が書込待ち状態に遷移する場合、読出待ち状態または書込待ち状態に遷移する前記ハードウェアまたは前記ソフトウェアのシミュレーションを中断する中断処理を実行する機能を備えた複数のチャネルと、
    前記チャネルからの要求に応じて、並列して動作する前記ハードウェアおよび前記ソフトウェア間の実行処理および中断処理をおこなうシミュレータ本体と、
    を備えることを特徴とするシミュレーション装置。
JP2008330113A 2008-12-25 2008-12-25 シミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法 Expired - Fee Related JP5293165B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008330113A JP5293165B2 (ja) 2008-12-25 2008-12-25 シミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法
US12/618,137 US8364458B2 (en) 2008-12-25 2009-11-13 Simulation program and simulation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008330113A JP5293165B2 (ja) 2008-12-25 2008-12-25 シミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法

Publications (2)

Publication Number Publication Date
JP2010152645A JP2010152645A (ja) 2010-07-08
JP5293165B2 true JP5293165B2 (ja) 2013-09-18

Family

ID=42285972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008330113A Expired - Fee Related JP5293165B2 (ja) 2008-12-25 2008-12-25 シミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法

Country Status (2)

Country Link
US (1) US8364458B2 (ja)
JP (1) JP5293165B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5625710B2 (ja) * 2010-10-05 2014-11-19 富士通セミコンダクター株式会社 シミュレーション装置、方法、及びプログラム
WO2014186938A1 (zh) 2013-05-20 2014-11-27 华为技术有限公司 一种计算机系统、高速外围组件互联端点设备的访问方法和装置
EP2940586B1 (en) * 2014-04-29 2023-03-01 Hitachi, Ltd. Method and system for testing control software of a controlled system
JP6248820B2 (ja) * 2014-06-16 2017-12-20 富士電機株式会社 連携シミュレーション装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870588A (en) * 1995-10-23 1999-02-09 Interuniversitair Micro-Elektronica Centrum(Imec Vzw) Design environment and a design method for hardware/software co-design
JPH10312315A (ja) * 1997-05-12 1998-11-24 Nec Corp ソフトウェア/ハードウェア協調シミュレーション方式
US6263303B1 (en) * 1998-10-26 2001-07-17 Sony Corporation Simulator architecture
US6230114B1 (en) * 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
GB2370134A (en) * 2000-12-15 2002-06-19 Sharp Kk Method of co-simulating a digital circuit
JP2002215703A (ja) 2001-01-16 2002-08-02 Matsushita Electric Ind Co Ltd ハードウェア/ソフトウェア協調設計方法
JP3848171B2 (ja) * 2002-02-01 2006-11-22 富士通株式会社 計算機シミュレーションプログラム、プロセッサのモデルの検証方法、及び計算機シミュレーション方法
JP2004013227A (ja) * 2002-06-03 2004-01-15 Matsushita Electric Ind Co Ltd シミュレーション装置並びにシミュレーションモデル生成プログラム
JP2004265054A (ja) * 2003-02-28 2004-09-24 Matsushita Electric Ind Co Ltd 半導体集積回路機能シミュレーション装置
JP2005018623A (ja) * 2003-06-27 2005-01-20 Sony Corp シミュレーション装置およびシミュレーション方法
JP2006350549A (ja) * 2005-06-14 2006-12-28 Hitachi Ltd 統合シミュレーションシステム
JP5558713B2 (ja) * 2005-08-19 2014-07-23 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理システム内でプロセッサ内のイベントに関連する命令およびデータを伝達するための方法
JP4667206B2 (ja) * 2005-10-31 2011-04-06 富士通セミコンダクター株式会社 マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法
US8051402B2 (en) * 2007-09-26 2011-11-01 Cadence Design Systems, Inc. Method and apparatus for implementing communication between a software side and a hardware side of a test bench in a transaction-based acceleration verification system

Also Published As

Publication number Publication date
US8364458B2 (en) 2013-01-29
JP2010152645A (ja) 2010-07-08
US20100169068A1 (en) 2010-07-01

Similar Documents

Publication Publication Date Title
CN105144094B (zh) 用于管理应用当中的导航的系统和方法
US7689734B2 (en) Method for toggling non-adjacent channel identifiers during DMA double buffering operations
CN103366338A (zh) 图像处理装置和图像处理方法
TW201044272A (en) Parallel processing method for a dual operating system
JP2007122602A (ja) マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法
JP5293165B2 (ja) シミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法
US20090204775A1 (en) Data copying method
CN101729713B (zh) 显示控制装置、图像形成装置以及显示器控制方法
WO2023201987A1 (zh) 请求处理方法、装置、设备及介质
JP5219664B2 (ja) 表示装置及び画像形成装置、並びに表示方法及びプログラム
US8359564B2 (en) Circuit design information generating equipment, function execution system, and memory medium storing program
US5850536A (en) Method and system for simulated multi-tasking
US8886512B2 (en) Simulation apparatus, computer-readable recording medium, and method
US8688428B2 (en) Performance evaluation device, performance evaluation method and simulation program
JP5652242B2 (ja) データ転送制御装置及びプログラム
JP2008276739A (ja) 情報処理システム及び情報処理プログラム
JP2008117067A (ja) アプリケーションプログラムを生成するための装置、方法、及びプログラム
JP5262774B2 (ja) シミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法
JP7151514B2 (ja) シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法
CN108984120B (zh) 存储设备路径错误的处理方法以及相关装置
KR102309714B1 (ko) 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치
JP5239647B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
JP2019016168A (ja) シミュレーションプログラム、方法、及び装置
JP2001256072A (ja) システムエミュレータ
JP4351961B2 (ja) シミュレータプログラム及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130408

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R150 Certificate of patent or registration of utility model

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