JP2007011720A - システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体 - Google Patents

システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体 Download PDF

Info

Publication number
JP2007011720A
JP2007011720A JP2005192240A JP2005192240A JP2007011720A JP 2007011720 A JP2007011720 A JP 2007011720A JP 2005192240 A JP2005192240 A JP 2005192240A JP 2005192240 A JP2005192240 A JP 2005192240A JP 2007011720 A JP2007011720 A JP 2007011720A
Authority
JP
Japan
Prior art keywords
simulator
bus
peripheral
access
interface
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.)
Withdrawn
Application number
JP2005192240A
Other languages
English (en)
Inventor
Katsuhiko Kamei
克比古 亀井
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.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2005192240A priority Critical patent/JP2007011720A/ja
Publication of JP2007011720A publication Critical patent/JP2007011720A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】 複雑な構成のシステムに対応しつつ、システムシミュレータの構成を柔軟に変更可能とする。
【解決手段】 システムシミュレータ10Aを、CPUの動作をシミュレートするインストラクションセットシミュレータ11、バスの動作をシミュレートするバスシミュレータ13、ペリフェラルの動作をシミュレートするペリフェラルシミュレータ12の3種類で構成し、各シミュレータ間で互いの状態を参照・変更可能な各インターフェース14〜16をそれぞれ設ける。
【選択図】 図1

Description

本発明は、開発対象となるシステム(ターゲットシステム)をパーソナルコンピュータ(PC)やワークステーション(WS)などのシステム上で仮想的に実行するためのシステムシミュレータ、これを用いたシステムシミュレート方法、これをコンピュータに実行させるための制御プログラムおよび、これが記録されたコンピュータ読み取り可能な可読記録媒体に関する。
この種の従来のシステムシミュレータは、組み込み機器などのシステムを開発する段階で、システム上で動作するソフトウェアを検証するために用いられている。このシステムシミュレータは、ターゲットとなるシステムとは異なるシステム、例えばパーソナルコンピュータ(PC)やワークステーション(WS)などのシステム上で、ターゲットとなるシステムの動作を仮想的に実行させるものである。
図10は、従来の一般的なシステムシミュレータの基本構成例を示すブロック図である。
図10において、従来のシステムシミュレータ100は、ターゲットシステムにおけるCPU(中央演算処理装置;制御部)の動作をシミュレートするインストラクションセットシミュレータ101(Instruction Set Simulator;以後、ISSという)と、ペリフェラルの動作をシミュレートするペリフェラルシミュレータ102(以後、PSimという)とを有している。
ISS101は、システムシミュレータ100の中で、CPUのシミュレーションを行うブロックである。ターゲットとなるCPUがレジスタを持つのと同様に、ISS101も内部に仮想的なレジスタを持つ。ISS101にターゲットとなるCPU用の命令を与えると、ISS101内部でターゲットとなるCPU内部で行われる処理をシミュレーションする。
例えば、与えられた命令が論理演算を行う場合、ISS101内部に存在する仮想的なレジスタ間で演算を行い、仮想的なレジスタに結果を書き戻している。また、与えられた命令がメモリアクセスを行う場合、後述するPSim102に対してアクセス要求を出して、データの書き込みおよび読み出しを実行する。
PSim102は、システムの中に存在する各種ペリフェラルのシミュレーションを行うブロックである。ペリフェラルの例としては、メモリ、割り込みコントローラ(INTC)、タイマ、DMAC(Direct Memory Access Controler)などが挙げられる。
上記構成により、まず、ISS101からのメモリアクセスまたはI/Oアクセスを行う場合、ISS101はPSim102に対してアクセス要求を出す。
次に、アクセス要求を受けると、PSim102は、仮想的にペリフェラルの動作を行う。例えば、メモリの動作を仮想的に実行するPSim102では、PCやWSなどのメモリ上にメモリエリアを確保し、このメモリエリアにISS101からのアクセスをバイパスする。即ち、ISS101から読み込み要求(リードアクセス)があった場合、PCやWS上のメモリからデータを読み込んで、読み込みデータ(リードデータ)をISS101へ渡す。逆に、ISS101から書き込み要求(ライトアクセス)があった場合、ISS101からの書き込みデータ(ライトデータ)をPCやWS上のメモリに書き込む。
また、タイマ動作を仮想的に実行するPSim102の場合には、まず、ISS101からのレジスタ書き込み要求によって時刻が設定されると、時間が経過すると共に内部のカウンタ値を進ませる。
次に、設定された時刻になると、ISS101に対して割り込みをかけることによって、設定された時刻がきたことを通知する。これによって、タイマ動作機能が実現する。
このようにして、PSim102は、各種のペリフェラルの動作をシミュレーションすることができる。
ISS101とPSim102とを組み合わせたシステムシミュレータ100によって、パーソナルコンピュータ(PC)上で、実システムと同様のソフトウェアの実行環境を用意することが可能となり、ハードウェアがなくてもソフトウェアの検証を進めることが可能となる。
近年、性能向上を目的として、一つのシステムの中に複数のCPUを実装するマルチコアという実装方法が注目されている。
このマルチコアシステムでは、一つのシステムの中に、複数のCPUが実装される。また、この場合、ペリフェラルは、複数のCPUからアクセス可能なように設計されている。このような環境下で、それぞれのCPUが互いに協調して動作するように設計されており、システム全体の性能を向上させている。
図11は、従来のマルチコアシステムの構成例を示すブロック図である。
図11において、マルチコアシステム200は、CPU201およびCPU211がそれぞれ各バス(Bus)206,216にそれぞれ接続され、それぞれの各バス(Bus)206,216にはペリフェラル(Peripheral)202〜205および212〜215がそれぞれ接続されている。
このバス(Bus)206に接続されたペリフェラル202〜205は、CPU201からアクセスすることができる。また同様に、バス(Bus)216に接続されたペリフェラル212〜215は、CPU211からアクセスすることができる。
バス(Bus)206とバス(Bus)216とは、ブリッジ220によって接続されている。ここで、ブリッジ220とは、バス(Bus)206とバス(Bus)216とを接続するための特殊なペリフェラル(Peripheral)である。通常時、ブリッジ220は、接続された複数のバス(Bus)を分離して、アクセス要求が片方のバス(Bus)からもう片方のバス(Bus)に行かないように制御している。
これによって、CPU201がバス(Bus)206に接続されたペリフェラル202〜205にアクセスしても、バス(Bus)216側には影響がない。しかしながら、ブリッジ220に制御を加えれば、CPU201からバス(Bus)216上のペリフェラル212〜215にアクセスすることが可能となる。この場合、バス(Bus)216をCPU201側が使用し、この間はCPU211はアクセス権を持たず、アクセスを待たされるため、時間的な性能が低下する。
通常、CPU201は、バス(Bus)206上のペリフェラル202〜205をアクセスし、CPU211は、バス(Bus)216上のペリフェラル212〜215をアクセスし、強調動作が必要なときにのみ、ブリッジ220を介してもう一方のバス(Bus)にアクセスする。
これにより、通常時、CPU201はバス(Bus)206の中で、CPU211はバス(Bus)216の中でのみ処理を行い、CPU201とCPU211との間で情報の授受が必要なときにのみ、互いのバス(Bus)にアクセスする。この結果、バス(Bus)の共有による性能低下を抑えながら、協調動作が可能となる。
しかしながら、一般的なシステムシミュレータでは、インストラクションセットシミュレータ(ISS)が一つである。このため、図11のように、複数のCPUを連携して動作させるというシステムのシミュレーションを行うことができない。
そこで、例えば特許文献1には、複数のシステムシミュレータを動作させ、その間を通信路のシミュレータで接続することにより、複数のISSを協調動作させるシミュレーションシステムが開示されている。これを図12に示している。
図12は、特許文献1に開示されている従来のシミュレーションシステムの要部構成例を示すブロック図である。
図12に示すように、従来のシミュレーションシステム300では、同時に起動される複数のシステムシミュレータ301,304が設けられ、これらのシステムシミュレータ301,304の外部に、これらの間に、二つのシステムシミュレータ301,304を制御するためのシミュレータマネージャ302が設けられている。このシミュレータマネージャ302の中には、共有バスシミュレータ305と共有メモリシミュレータ303が設けられている。
システムシミュレータ301,304と、共有バスシミュレータ305および共有メモリシミュレータ303との間で通信を行って、システムシミュレータ同士のデータの授受および共有メモリへのアクセスを実現している。
システムを開発する上で、そのシステムをどのように構成するかは、そのシステムの目的によって変化する。ここで、システムの構成とは、CPUの数、ペリフェラルの数、ペリフェラルやバスの配置などである。システムの目的に応じて、これらは、最適な構成に変える必要がある。そのため、システムシミュレータについても、その構成を簡単に変えられることが望ましい。
しかしながら、一般的な従来のシステムシミュレータでは、システムシミュレータを構成する各シミュレータ間のインターフェースがシステムシミュレータ毎に異なり、システムを再構成することができない。
そこで、例えば特許文献2には、シミュレータ間を、フレームワークを用いて関連させることにより、システムシミュレータを構成するインストラクションセットシミュレータ(ISS)などの個々のシミュレータを他のシミュレータと簡単に入れ替え可能にしたシステムシミュレータが開示されている。これを図13に示している。
図13は、特許文献2に開示されている従来のシステムシミュレータの要部構成例を示すブロック図である。
図13において、従来のシミュレーションシステム400は、複数のシステムシミュレータ(SS)401,402を有している。
例えばシステムシミュレータ402は、ISS403と、ProgramROM404と、I/Oシミュレータ405(ペリフェラルシミュレータに相当)とを有している。これらのシステムシミュレータ402内の各シミュレータ403〜405は、フレームワーク上で作成され、オブジェクト間通信部406で、通信路407を介して、他の例えばシステムシミュレータ401のオブジェクト間通信部408との間でデータを授受する。
同一のフレームワークによって、他のシミュレータ409〜411を予め設計しておけば、例えばシステムシミュレータ402内の各シミュレータ403〜405に対してこれらを入れ替えることが可能となる。
また、特許文献1の場合と同様に、他のシステムシミュレータ401とシステムシミュレータ402の間でも、オブジェクト間通信部406,408によるオブジェクト間通信を行って、複数のシステムシミュレータ401,402を協調動作させることも可能となる。
なお、特許文献3では、プラットフォームコンピュータにコンピュータシステムの構成情報を入力してシミュレーション環境を設定することが開示されている。
特開平5−35534号公報 特開平11−238004号公報 特開2002−288003号公報(請求項5)
しかしながら、上記特許文献1(図12)および特許文献2(図13)の従来技術では、複雑なシステム構成を有するシステムを表現することができないという問題がある。これは、上記特許文献(図12)および特許文献2(図13)の従来技術では、独立したシステムシミュレータの接続でしかマルチコアシステムを表現することができないためである。また、システムシミュレータの接続は、共有メモリおよび共有バスといった単純な構成に限られるため、表現可能なシステムとしては、図14および図15に示すようなシステムのみである。例えば、図16に示すような複雑な構成を有するシステムを、上記特許文献1(図12)および特許文献2(図13)のシステムシミュレータによって表現することはできない。
図14に示すように、従来のシステム500は、システムシミュレータ501,506と、共通バスシミュレータ511とを有している。
システムシミュレータ501は、CPU502と、ペリフェラル503,504と、これらを接続するバス(Bus)505とを有している。
システムシミュレータ506は、CPU507と、ペリフェラル508,509と、これらを接続するバス(Bus)510とを有している。
共通バスシミュレータ511は、バス(Bus)512と、これとバス(Bus)505を接続するBridge513と、バス(Bus)512とバス(Bus)510を接続するBridge514と、バス(Bus)512に接続されるLCDC515、画像データを保存するためのSDRAM516およびその他のペリフェラル517,518とを有している。
LCDC515は、画像を表示するためにSDRAM516から頻繁にデータ転送が行われる。このため、表示系のブロックに独立してバス(Bus)512を設けている。CPU502およびCPU507とLCDC515とが独立したバスに接続されていないと、CPUがLCDC515のために待たされるという状況が頻発してしまう。このようなバス構成は、性能向上の手段としてよく使われるものである。
上記構成のシステム500の動作としては、特許文献1の従来技術によって、図12に示すシステムシミュレータ301を図14に示すシステムシミュレータ501として、また、図12に示すシステムシミュレータ304を図14に示すシステムシミュレータ506として、図12に示す共有バスシミュレータとしてのシミュレータマネージャ302を図14に示す共通バスシミュレータ511として実装することによって、シミュレーションを実行することができる。
次に、図15に示すように、別の従来のシステム600は、システムシミュレータ601,606と、これらの間に設けられたオブジェクト間通信部611とを有している。
システムシミュレータ601は、CPU602と、ペリフェラル603,604と、これらを接続するバス(Bus)605とを有しており、CPU602は、バス(Bus)605によってペリフェラル603,604に接続されている。
システムシミュレータ606は、CPU607と、ペリフェラル608,609と、これらを接続するバス(Bus)610とを有しており、CPU607は、バス(Bus)610によってペリフェラル608,609に接続されている。
オブジェクト間通信部611は、CPU602を中心とするシステムシミュレータ601のバス(Bus)605との間または、CPU607を中心とするシステム606のバス(Bus)610との間を接続可能とするブリッジ612を有している。
上記構成のシステム600の動作としては、特許文献2の従来技術によって、図13に示すシステムシミュレータ401を図15に示すシステムシミュレータ601として、図13に示すシステムシミュレータ402を図15に示すシステムシミュレータ606として、図13に示すオブジェクト間通信部406,408を図15に示すシステムシミュレータ601,606間のオブジェクト間通信部611として実装することによって、シミュレーションを実行することができる。
一方、図16に示すように、図14のシステム500にBridge701を追加した複雑な構成を持つシステム700では、前述したシステム500,600のシステムシミュレータによって表現することができない。この点について説明する。
図14の構成例のシステム500では、CPU502とCPU507の間でデータを授受するためには、バス(Bus)512を介する必要があった。しかしながら、バス(Bus)512は、LCDC515によるバス負荷が高いため、使用を避けたい。
そこで、図16の構成例のシステム700では、バス(Bus)505とバス(Bus)510の間にBridge701を加えている。バスの混雑度が性能に影響を与えるシステムでは、このような回路が設計される可能性がある。
このような図16の構成例のシステム700では、バス(Bus)505とバス(Bus)510との間の接続部分が、Bridge701の経由とバス(Bus)512の経由との2系統存在するため、単純にシステムシミュレータ間に通信インターフェースを実装する上記特許文献1および特許文献2の従来技術では、このような構成を表現することができない。
従来のシミュレータによってこのモデルをデバッグするためには、シミュレーション用にモデルを変更する必要があり、それに対応するソフトウェアも変更する必要がある。よって、この部分のデバッグは、実機が作製されるのを待って行うことになる。
また、システムシミュレータの再構成の容易さという点でも、従来技術には問題点がある。
システムシミュレータの再構成を容易にするために、特許文献2(図13)のシステム400では、システムシミュレータをISSとプログラムメモリ、I/O(ペリフェラル)シミュレータの組み合わせとして、その交換をフレームワーク上でオブジェクト間通信部を用いて行うことにより、簡単にシステムシミュレータを再構成可能としていた。しかしながら、複雑なシステムを表現するためには、この構成は、やや粗く、表現できないシステム、例えば図16のシステム700などが存在する。
近年のCPUおよびDSP(デジタル シグナル プロセッサ)では、複数のバスインターフェースを備えたものも多い。例えば、ハーバードアーキテクチャを持つCPUでは、データを取得するバスとプログラムを取得するバスが分離されている。これを図17に示している。
図17は、ハーバードアーキテクチャのCPUによる従来のシステムの構成例を示すブロック図である。
図17に示すように、この従来のシステム800において、CPU801はデータバス802とインストラクションバス803に接続されている。このインストラクションバス803にはプログラムおよびその定数が収められているプログラムROM804が接続されており、CPU801は、このプログラムROM804から命令を読みこむ。また、データバス802には、データRAM805が接続されており、CPU801が使用するデータはこのデータRAM805に格納される。
データバス802はプログラムROM804にも接続されている。これは、データとしてプログラムの定数を読みこむ場合に、この定数がプログラムROM804のROM領域内に格納されているためである。
このため、プログラムROM804は、データバス802とインストラクションバス803の両方に接続されている。両方のバスからプログラムROM805に同時にアクセスがあった場合には、どちらか片方が待たされることになる。
その他にも、マルチレイヤーバスと言われる手法が存在する。この手法では、二つのデータバスを用意しておき、二つともCPUに接続しておく。このデータバスには、他にもCPUやペリフェラルが接続されており、これらもバスを使用する。CPUは、バスにアクセスする際はバスの状態を見て、開いている方のバスに接続する。
しかしながら、特許文献2(図13)のシステム400では、ISSとペリフェラルシミュレータの間をオブジェクト間通信部406,408で接続しており、バスに関するモデル化は行っていないため、CPUが複数のバスに接続されている場合、動作を完全にシミュレーションすることができない。例えば、上記ハーバードアーキテクチャのCPUを有するシステムにおいて、データバスまたはインストラクションバスのどちらかのアクセスが待たされるという状況を再現することができない。
さらに、特許文献3では、複数のCPU構成には対応できるとしても、図16のシステム700のような複雑なバス構成については考慮されておらず、複雑なバス構成については対応できない。
本発明は、上記従来の問題を解決するもので、複雑な構成のシステムにも対応でき、容易かつ柔軟に再構成できるシステムシミュレータ、これを用いたシステムシミュレート方法、これをコンピュータに実行させるための制御プログラムおよび、これが記録されたコンピュータ読み取り可能な可読記録媒体を提供することを目的とする。
本発明のシステムシミュレータは、ターゲットシステム上で動作するソフトウェアを検証するために用いられ、該ターゲットシステムの動作を、該ターゲットシステムとは異なるシステム上で仮想的に実行するシステムシミュレータであって、該ターゲットシステムにおける中央演算処理装置(CPU)の動作をシミュレートする一または複数のインストラクションセットシミュレータと、ペリフェラルの動作をシミュレートする複数のペリフェラルシミュレータと、該CPUと該ペリフェラルを接続するバスの動作をシミュレートする複数のバスシミュレータとを有すると共に、該インストラクションセットシミュレータと該バスシミュレータの間の相互の状態を参照および変更可能とする第1インターフェースと、該バスシミュレータと該ペリフェラルシミュレータの間の相互の状態を参照および変更可能とする第2インターフェースと、該インストラクションセットシミュレータと該ペリフェラルシミュレータの間の相互の状態を参照および変更可能とする第3インターフェースとを有し、そのことにより上記目的が達成される。
また、好ましくは、本発明のシステムシミュレータにおいて、前記ターゲットシステムのブロック構成が設定された設定ファイルにしたがって必要な各シミュレータを確保し、該必要な各シミュレータ間の各インターフェースを設定可能とするシミュレータマネージャーをさらに有する。
さらに、好ましくは、本発明のシステムシミュレータにおけるペリフェラルシミュレータは、メモリ、割り込みコントローラ、タイマ、ダイレクト・メモリ・アクセス・コントローラ(DMAC)、液晶表示コントローラ(LCDC)、バス間を接続するブリッジ(Bridge)、I/Oコントローラ、発光ダイオード表示器(LED表示器)またはステッピングモータなどの周辺機器の動作をシミュレートする。
さらに、好ましくは、本発明のシステムシミュレータにおける第1インターフェースは、前記CPUからバスへのアクセスをシミュレート可能とする。
さらに、好ましくは、本発明のシステムシミュレータにおけるインストラクションセットシミュレータは、メモリ空間またはI/O空間にアクセスしたい場合に、前記第1インターフェースを介して対応するバスシミュレータを呼び出し、
リードアクセスの場合、該インストラクションセットシミュレータから該バスシミュレータにアドレスを指定し、該バスシミュレータは対応するアドレスに存在するペリフェラルシミュレータを前記第2インターフェースを介して呼び出してデータを取得して、該インストラクションセットシミュレータに該データを渡し、
ライトアクセスの場合、該インストラクションセットシミュレータから該バスシミュレータにアドレスとデータを指定し、該バスシミュレータは対応するアドレスに存在するペリフェラルシミュレータを前記第2インターフェースを介して呼び出して該データを設定する。
さらに、好ましくは、本発明のシステムシミュレータにおける第1インターフェースは、前記インストラクションセットシミュレータがアクセスしようとしたときに前記バスシミュレータが他のインストラクションセットシミュレータによって使用されている場合に、アクセスが重複しないように、優先度が低いシミュレータからの要求を保留するように設定可能とされている。
さらに、好ましくは、本発明のシステムシミュレータにおける第2インターフェースは、バスとペリフェラルとの間のアクセスをシミュレート可能とする。
さらに、好ましくは、本発明のシステムシミュレータにおけるバスシミュレータは、前記インストラクションセットシミュレータからアクセス要求を受けた場合、対応するアドレスに存在するペリフェラルシミュレータを前記第2インターフェースを介して呼び出し、 リードアクセスの場合、該バスシミュレータは該ペリフェラルシミュレータからデータを読み出して該インストラクションセットシミュレータにデータを渡し、ライトアクセスの場合、該バスシミュレータは該ペリフェラルシミュレータにデータを設定する。
さらに、好ましくは、本発明のシステムシミュレータにおけるバスシミュレータは、ペリフェラルシミュレータから他のペリフェラルシミュレータへのアクセス要求を受けた場合、対応するアドレスに存在するペリフェラルシミュレータを前記第2インターフェースを介して呼び出し、
リードアクセスの場合、該バスシミュレータは対象ペリフェラルシミュレータからデータを読み出して、要求を行ったペリフェラルシミュレータにデータを渡し、
ライトアクセスの場合、該バスシミュレータは対象ペリフェラルシミュレータにデータを設定する。
さらに、好ましくは、本発明のシステムシミュレータにおける第2インターフェースは、前記ペリフェラルシミュレータがバスシミュレータにアクセスしようとしたときに該バスシミュレータが他のシミュレータによって使用されている場合、アクセスが重複しないように、優先度が低いシミュレータからの要求を保留するように設定可能とされている。
さらに、好ましくは、本発明のシステムシミュレータにおける第3インターフェースは、前記ペリフェラルシミュレータから前記インストラクションセットシミュレータへの割り込みをシミュレート可能とする。
さらに、好ましくは、本発明のシステムシミュレータにおけるペリフェラルシミュレータは、内部状態の更新に応じて、前記インストラクションセットシミュレータに対して前記第3インターフェースを介して割り込みをかける。
さらに、好ましくは、本発明のシステムシミュレータにおけるシミュレータマネージャは、前記インストラクションセットシミュレータ、前記バスシミュレータおよび前記ペリフェラルシミュレータの各処理速度を制御可能とする。
さらに、好ましくは、本発明のシステムシミュレータにおけるシミュレータマネージャは、前記各処理速度を制御するために、前記インストラクションセットシミュレータ、前記バスシミュレータおよび前記ペリフェラルシミュレータのうちの少なくともいずれかのシミュレータの動作を一時的に停止させる。
さらに、好ましくは、本発明のシステムシミュレータにおけるターゲットシステムはパーソナルコンピュータ(PC)やワークステーション(WS)上で動作するアプリケーションプログラムとして起動される。
さらに、好ましくは、本発明のシステムシミュレータにおけるシミュレータマネージャーおよび前記各シミュレータが独立して動作するスレッドであって、前記第1〜第3インターフェースにより、共通メモリを介して状態の参照または変更が行われるか、または該各シミュレータが関数であって、該シミュレータマネージャーによってシミュレータ関数が呼び出される。
さらに、好ましくは、本発明のシステムシミュレータにおける第1〜第3インターフェースは、状態の参照および変更が可能な共有メモリ、関数呼び出しまたはメッセージ授受によって実現される。
さらに、好ましくは、本発明のシステムシミュレータにおける各シミュレータは、前記各インターフェースとして、該各シミュレータの接続関係を管理するテーブルを有する。
さらに、好ましくは、本発明のシステムシミュレータにおけるインストラクションセットシミュレータは、前記インターフェースとして、接続されているバスシミュレータの種類を管理するための接続テーブルを有し、前記インターフェースとして、割り込みがどのシミュレータから接続されているかを管理するための割り込みテーブルとを有する。
さらに、好ましくは、本発明のシステムシミュレータにおけるペリフェラルシミュレータは、前記インターフェースとして、どのシミュレータがどのような目的で接続されているのかを管理するための接続テーブルを有する。
さらに、好ましくは、本発明のシステムシミュレータにおけるバスシミュレータは、前記インターフェースとして、どのシミュレータがどのような目的で接続されているのかを管理するための接続テーブルを有する。
本発明のシステムシミュレート方法は、本発明の上記システムシミュレータを用いるシステムシミュレート方法であって、前記インストラクションセットシミュレータの動作工程として、他のシミュレータと速度を合わせるために一時停止制御可能とするウェイト処理工程と、該ウェイト処理工程後に、該インストラクションセットシミュレータがインストラクションを取得する工程と、該インストラクションが与えられると、該インストラクションセットシミュレータが該インストラクションを解析する工程と、該インストラクションがメモリからのリードまたはメモリへのライトであるかどうかを判断し、該インストラクションがメモリリードであればメモリ読み出し処理を行い、該インストラクションがメモリライトであればメモリ書き込み処理を行い、これら以外の場合には所定命令を実行して該ウェイト処理工程に戻る工程とをコンピュータにより実行し、そのことにより上記目的が達成される。
本発明のシステムシミュレート方法は、本発明の上記システムシミュレータを用いるシステムシミュレート方法であって、前記バスシミュレータの動作工程として、他のシミュレータと速度を合わせるために一時停止制御可能とするウェイト処理工程と、前記シミュレータからのアクセス要求を内部に取り込むアクセス受付処理工程と、複数のシミュレータからアクセス要求がある場合に、優先度が低いアクセス要求を保留する処理工程と、 該アクセス要求に応じたペリフェラルシミュレータを呼び出してアクセスを行う工程と、 保留したアクセス要求のウェイト処理を行った後、当該アクセス要求に応じたペリフェラルシミュレータを呼び出してアクセスを行う工程とをコンピュータにより実行し、そのことにより上記目的が達成される。
本発明のシステムシミュレート方法は、本発明の上記システムシミュレータを用いるシステムシミュレート方法であって、前記ペリフェラルシミュレータの動作工程として、 他のシミュレータと速度を合わせるために一時停止制御可能とすると共に、内部状態に応じて割り込みを発生させる必要がある場合には、対応するインストラクションセットシミュレータへ割り込み信号を出力するウェイト・割り込み処理工程と、前記シミュレータからのアクセス要求を内部に取り込むアクセス受付処理工程と、他のシミュレータからアクセス要求がなく、該ペリフェラルシミュレータから前記バスシミュレータへのアクセス要求がない場合には、該ウェイト・割り込み処理工程に戻り、該ペリフェラルシミュレータから該バスシミュレータへのアクセス要求がある場合に、対応するバスシミュレータにアクセス要求を出力して該ウェイト・割り込み処理工程に戻る工程と、複数のシミュレータからアクセス要求がある場合に、優先度が低いアクセス要求を保留する処理工程と、該ペリフェラルシミュレータがアクセス内容のアクセス処理を行う工程と、保留したアクセス要求のウェイト処理を行った後、内部状態に応じて割り込みを発生させる必要がある場合には、対応する該インストラクションセットシミュレータへ割り込み信号を出力するウェイト・割り込み処理工程とをコンピュータにより実行し、そのことにより上記目的が達成される。
さらに、好ましくは、本発明のシステムシミュレート方法において、本発明の上記インストラクションセットシミュレータの動作工程と、本発明の上記バスシミュレータの動作工程と、本発明の上記ペリフェラルシミュレータの動作工程とを有する。
本発明の制御プログラムは、本発明の上記システムシミュレート方法の各工程をコンピュータに実行させるためのものであり、そのことにより上記目的が達成される。
本発明の可読記録媒体は、本発明の上記制御プログラムが記録されたコンピュータ読み取り可能なものであり、そのことにより上記目的が達成される。
上記構成により、以下に、本発明の作用を説明する。
本発明にあっては、インストラクションセットシミュレータ(ISS)、ペリフェラルシミュレータ(PSim)、バスシミュレータ(BSim)の3種類のシミュレータを用いて、相互に状態を参照・変更可能なインターフェース(例えばテーブル)で接続関係を示すことにより、従来は対応できなかった複雑な構成のシステムにも対応可能となる。また、シミュレータマネージャにより、設定ファイルにしたがって、シミュレータの確保とインターフェースの設定をすることにより、ターゲットシステムを容易かつ柔軟に構成または再構成することが可能となる。
以上により、本発明によれば、システムシミュレータをISS、PSimおよびBSimの3種類のシミュレータによって構成し、各シミュレータ間を相互に状態の参照・変更が可能なインターフェースで接続可能とすることにより、複雑な構成に対応可能で、かつ、容易かつ柔軟に構成を変更することができる。
以下に、本発明のシステムシミュレータの具体的な実施形態1,2について説明する前に、本発明のシステムシミュレータの基本構成について説明する。
図1は、本発明のシステムシミュレータの基本構成を示すブロック図である。
図1において、本発明のシステムシミュレータ10は、ターゲットシステムにおける中央演算処理装置(CPU)の動作をシミュレートするインストラクションセットシミュレータ(ISS)11と、ペリフェラルの動作をシミュレートするペリフェラルシミュレータ(PSim)12と、CPUとペリフェラル間を接続するバスの動作をシミュレートする複数のバスシミュレータ(BSim)13と、インストラクションセットシミュレータ(ISS)11とバスシミュレータ(BSim)13の間に設けられ、相互に状態を参照および変更可能とする第1インターフェースとしてのISS・BSim間インターフェース14と、バスシミュレータ(BSim)13とペリフェラルシミュレータ(PSim)12の間に設けられ、相互に状態を参照および変更可能とする第2インターフェースとしてのBSim・PSim間インターフェース15と、ペリフェラルシミュレータ(PSim)12とインストラクションセットシミュレータ(ISS)11の間に設けられ、相互に状態を参照および変更可能とする第3インターフェースとしてのPSim・ISS間インターフェース16と、そのターゲットシステムのブロック構成が設定された設定ファイルにしたがって必要な各シミュレータを確保し、該必要な各シミュレータ間のインターフェースを設定するシミュレータマネージャー17とを有しており、ターゲットシステム上で動作するソフトウェアを検証するために用いられ、ターゲットシステムの動作を、ターゲットシステムとは異なるシステム上で仮想的に実行可能とする。
このように、本発明では、ISS11とPSim12に加えて、これらの間にBSim13を有している。BSim13は、ISS11とPSim12を接続し、その間のアクセスを調整するものである。BSim13は、ISS11またはPSim12からアクセス要求があった場合に、このアクセス要求を処理すべきPSim12を選択し、そのPSim12に対してアクセス要求を出す。また、複数のシミュレータから同時にアクセス要求があった場合、調停を行って、優先度が高いものからアクセスを処理する。このように動作することにより、BSim13は、CPUとペリフェラルを接続するバスの動作をシミュレートする。
システムシミュレータを上記3種類のシミュレータから構成することによって、複雑な構成のシステムであっても、これらのシミュレータを組み合わせれば、システムシミュレータを作製することができる。
各シミュレータ間に相互に状態を参照および変更するためのインターフェース14〜16を有している。これらの各インターフェースは、多対多接続に対応することが可能であり、例えばISS11が複数のBSimを持つBSim13(例えば二つのBSim)に接続されるような構成も可能である。また、ISS11とBSim13間のインターフェース14は、CPUからバスへのアクセスをシミュレートするために用いられる。
ISS11は、メモリ空間またはI/O(入出力)空間にアクセスしたい場合、対応するBSim13を呼び出す。リードアクセスの場合、ISS11からBSim13にリード先のアドレスを指定すると、BSim13はそのアドレスから対応するPSim12を見つけて、そのPSim12を呼び出してデータを取得してISS11にデータを渡す。また、ライトアクセスの場合、ISS11からBSim13にライト先のアドレスとライトさせたいデータを渡すと、BSim13はそのアドレスに対応するPSim12を呼び出してデータを書き込む。BSim13が複数のISS11に接続されているような場合には、ISS11がアクセスしようとしたときにBSim13がすでに他のISS11に使用されているような状況が発生し得る。この場合には、優先度を付けて、優先度が低いシミュレータからのアクセスを保留することによって、対応することができる。
BSim13とPSim12間のインターフェース15は、バスとペリフェラルとの間のアクセスをシミュレートするために用いられる。
BSim13は、ISS11だけでなく、PSim12からのアクセス要求も受け付ける。これは、DMAなどのペリフェラルはバスマスタになるからである。BSim13は、PSim12から他のPSim12へのアクセス要求を受けた場合、要求されたアドレスに対応するPSim12を呼び出して処理を行う。BSim13が複数のISS11やPSim12からアクセス要求を受けた場合には、優先度を付け、優先度が低いシミュレータからのアクセスを保留することによって、対応することができる。
PSim12からISS11へのインターフェース16は、PSim12からISS11への割り込みをシミュレートするものである。このインターフェース16によって、PSim12は、内部状態の更新に応じて、ISS11に対して割り込みを発生させることができる。
さらに、シミュレータの実装方法によっては、シミュレータ毎にシミュレーション実行速度が異なることがある。例えば、各シミュレータをそれぞれ一つのスレッドとして実装した場合、シミュレータの処理量によって、各シミュレータのシミュレーション実行速度に差が生じ、実際のシステムと動作が大きく異なる可能性がある。
このため、シミュレータマネージャ17によって、シミュレータの動作を一時停止させて速度調整可能とすることが好ましい。これにより、実行速度が速いシミュレータがある場合には、その実行速度が速いシミュレータの動作を一時停止させて他の実行速度が遅いシミュレータの動作と調整することができる。
この手法は、シミュレータに速度差を設けたい場合にも有効である。例えば、消費電力を低くするために、システム中で負荷が高い部分は高いクロック周波数で動作させるが、負荷が低い部分は低いクロック周波数で動作させるということも行われる。このようなシステムの動作をシミュレーションする場合には、各シミュレータの実行速度に速度差を設ける必要がある。
この場合、シミュレータマネージャ17によって、遅く動作させたいシミュレータを定期的に一時停止させることにより、各シミュレータの実行速度に速度差を設けることが可能となる。
また、シミュレータマネージャ17によって、ターゲットシステムのブロック構成が設定された設定ファイルにしたがって、各シミュレータを確保し、各シミュレータ間のインターフェースを設定することによって、シミュレータの再構成を容易に行うことができる。
マルチコアシステムにおいては、異なるベンダーからのコアを組み合わせてシステムを構成することがあり、複雑なシステムに対応できること、およびシミュレータの再構成が可能であることが重要である。
従来のシステムシミュレータでは、ISSおよびPSimの役割や接続関係などが厳密に決められておらず、システムに合わせて構成を変更することができなかったが、本発明のシステムシミュレータによれば、複雑なシステムであっても、システムシミュレータを容易に構成することが可能となる。
ここで、本発明のシステムシミュレータ10の具体的事例の実施形態1として、図16に示す複雑なシステム700の動作をパーソナルシステム(PC)やワークステーション(WS)上で仮想的に実行するためのシステムシミュレータについて説明する。
(実施形態1)
図2は、本発明の実施形態1に係るシステムシミュレータの要部構成例を示すブロック図である。
図2において、本実施形態1のシステムシミュレータ10Aは、図16のシステム700におけるCPU502およびCPU507の動作をシミュレートするインストラクションセットシミュレータ(ISS)111、112と、図16のシステム700におけるペリフェラル503、504、508、509、513、701、514および515〜518の動作をシミュレートするペリフェラルシミュレータ(PSim)121a、121b、122a、122b、123〜125および126〜129と、図16のシステム700におけるバス(BUS)505、510および512の動作をシミュレートするバスシミュレータ(BSim)131〜133との3種類の各シミュレータを有している。
上記PSim124は、図16のBUS505とBUS510を接続するBridge701の動作をシミュレートするものであり、上記PSim123は、図16のBUS505とBUS512を接続するBridge513の動作をシミュレートするものであり、上記PSim125は、図16のBUS510とBUS512を接続するBridge514の動作をシミュレートするものである。なお、ここでは、二つのバスに接続され、データのやり取りを二つのバス間で行うペリフェラルをBridgeとしている。
また、上記PSim122bは、メモリの動作をシミュレートするものであり、上記PSim126は、図16のLCDコントローラ515(LCDC)の動作をシミュレートするものであり、上記PSim127は、図16のSDRAMコントローラ516の動作をシミュレートするものである。
上記ISS111とBSim131の間には、相互に状態を参照および変更するために多対多接続可能とされたインターフェース141が設けられている。また、上記ISS112とBSim132の間にも、相互に状態を参照および変更するために多対多接続可能とされたインターフェース142が設けられている。これらのインターフェース141,142はそれぞれ、CPUからバスへのアクセスをシミュレートするために用いられる。
また、上記BSimとPSimとの間、例えばBSim131とPSim123との間には、相互に状態を参照および変更するために多対多接続可能とされたインターフェース151が設けられている。このインターフェース151などの各インターフェースは、バスとペリフェラルとの間のアクセスをシミュレートするために用いられる。
さらに、図16のシステム700の構成に加えて、上記PSim121bからISS112に対して、割り込み信号IRQを発生させるためのインターフェース161が設けられている。これは、PSim121bのレジスタに何らかのデータが書き込まれるなど、内部状態が更新されたときに、ISS112に対して割り込みをかけられるようにするためのものである。
さらに、システムシミュレータ10Aは、全体の制御を行い、各シミュレータ間のインターフェースの設定や速度制御を行うために、シミュレータマネージャーを171を有している。
本実施形態1のシステムシミュレータ10Aは、PC・WS上において、アプリケーションプログラムとして起動される。また、ターゲットとなる図16のブロック構成は、予め設定ファイルに記述しておくようにする。シミュレータマネージャ171は、システムシミュレータが立ち上げられると最初に起動され、上記設定ファイルにしたがって、必要なISS、BSimおよびPSimを確保し、各シミュレータ間のインターフェースを設定して、図2に示すようなシステムシミュレータ10Aを構成する。
シミュレータマネージャー171および上記各シミュレータは、独立した個々のスレッドとして動作する。シミュレータマネージャー171および各シミュレータは、共有メモリを有しており、この共有メモリを上記インターフェースとして状態の変更や参照を行うことが可能である。
なお、各シミュレータを関数として用意し、シミュレータマネージャー171によって各シミュレータ関数を呼び出すという方法でシミュレータをPCやWSに実装させてもよい。
また、各シミュレータ間のインターフェースは、共有メモリに限らず、関数呼び出し(シミュレータが関数の場合)やメッセージの授受によって実現してもよい。
さらに、各シミュレータでは、各インターフェースとして、後述する図3に示すようなテーブル(上記設定ファイルにしたがって、シミュレータマネージャによって各シミュレータにテーブルデータが設定される)によって接続関係を管理している。
図3には、図2に示すISS111、PSim121b、PSim(Bridge)124およびBSim131の各テーブルの事例を示している。
以下に、図3の各テーブルについて説明する。
ISS111は、接続テーブル1101と、割り込みテーブル1102とを有している。
ISS111接続テーブル1101は、ISS111に接続されているBSim、即ちBSim131とその種類を管理している。ISS111は、メモリアクセスが必要になった場合に、この接続テーブル1101から適切なBSim131を選択してアクセス要求を出力する。接続テーブル1101の種類の部分には、バスの種類が示されている。この例では、NORMAL(ノーマル用バス)とされているが、用途に応じて、ProgramROMに接続されるインストラクションバス、主としてデータを読み込むデータバスというように分けられる。
ISS1割り込みテーブル1102は、割り込み信号がどのシミュレータから接続されているかどうかを管理している。割り込みテーブル1102の種類の部分には、割り込みがどの割り込みに割り付けられているかが示されている。これは、CPUによっては割り込み入力が複数本設けられているためである。
PSim121bは、接続テーブル1105を有している。このPSim121b接続テーブル1105では、どのシミュレータがどのような目的で接続されているかを管理している。接続テーブル1105の種類の部分には、各シミュレータとの接続の種類が示されている。IRQは、ISS112に対して割り込みをかける出力を表わす。Slaveは、BSim131と接続されており、このBSim131からリード要求やライト要求を受けることを示している。優先度は、同時にアクセスがあった場合に、どちらを優先するかを決めるパラメータである。PSim121bの場合、接続テーブルに優先度は必要とされない。
PSim(Bridge)124は、接続テーブル1103を有している。このPSim(Bridge)124接続テーブル1103は、PSim121bの接続テーブル1105と同様であるが、種類の部分のMasterは、BSim131と接続されており、BSim131からリード要求やライト要求を受けるのみならず、BSim131に対してバスマスタとなり、バスに対してリード要求やライト要求を出力することを示している。PSim(Bridge)124は、BSim131およびBSim132から同時にアクセスを受ける可能性があるため、どちらのアクセスを優先するかを決めるためのパラメータとして優先度が設定されている。
BSim131は、接続テーブル1104を有している。このBSim131接続テーブル1104では、どのシミュレータがどのような目的で接続されているかを管理している。接続テーブル1104の種類の部分には、各シミュレータとの接続の種類が示されている。種類のISSは、BSim131にはISS111が接続されており、アクセス要求が与えられることを表わしている。種類のSlaveは、PSim121a,121bなどが接続されており、BSim131がアクセス可能なことを示している。種類のMasterは、BSim131にはPSim124が接続されており、BSim131がアクセス可能であると同時に、そのPSim124からもアクセスがあることを示している。また、接続テーブル1104のアドレスの部分には、対応するPSimがアドレス空間のどこにマッピングされているかという情報が記録されている。優先度は、同時にアクセスがあった場合に、どちらを優先するかを決めるパラメータである。BSim131は、ISS111とPSim(Bridge)124から同時にアクセスを受ける可能性があるため、どちらのアクセスを優先するかを決めるために優先度が設定されている。
以下、他のシミュレータに対しても同様の設定を行うことにより、図2のようなシステムシミュレータ10Aが構成される。ISS、PSimおよびBSimは、多対多の接続が可能なインターフェースで接続されているため、図16のようなシステム700に対しても、システムシミュレータ10Aを構成することができる。
上記構成により、図2に示すシステムシミュレータ10Aの各構成要素であるISS、PSimおよびBSimの各動作について説明する。
図4は、図2のISSの動作を説明するためのフローチャートである。
図4に示すように、まず、ステップS1では、ISSはウェイト処理を行う。これは、他のシミュレータと速度を合わせるために一時停止する処理である。このウェイト処理では、シミュレータマネージャ171に問い合わせを行い、シミュレーションの実行速度が他のものに比べて速いようであれば、シミュレータマネージャ171からシミュレータの一時停止が要求される。また、速度が調整されると、一時停止が解除され、ISSは再び動作し始める。
このウェイト処理を終えると、ステップS2において、ISSはインストラクションを取得する。この処理は、ISS接続テーブルから適切なBSimを選択し、メモリリード要求(ペリフェラルであるプログラムROMにリード要求を出す)を出力することによって行われる。
インストラクションが与えられると、ステップS3において、ISSはそのインストラクションを解析する。
ステップS4およびステップS5では、ISSはインストラクションがメモリからのリードまたはメモリへのライトであるかどうかを判断する。インストラクションがメモリリードであればステップS7でメモリ読み出し処理を行い、また、メモリライトであればステップS8でメモリ書き込み処理を行い、それ以外の場合(メモリアクセス命令ではない場合)にはステップS6で内部状態を変更して、ステップS1の処理に戻る。
図5は、図2のBSimの動作を説明するためのフローチャートである。
図5に示すように、まず、ステップS11では、BSimはウェイト処理を行う。これは、ISSの場合と同様に、シミュレーションの実行速度を調整するためである。
次に、ステップS12において、BSimはアクセス受け付け処理を行う。これは、ISSなどからのアクセス要求を内部に取り込む処理である。
ステップS13では、BSimは、他のシミュレータからアクセス要求があるか否かをチェックし、他のシミュレータからアクセス要求がない場合(NO)には、ステップS11の処理に戻る。他のシミュレータからアクセス要求があれば(YES)、次のステップS14の処理に進む。
ステップS14では、BSimは、アクセス内容を見て、複数のシミュレータから同時にアクセスがあれば、BSim接続テーブルの優先度を参照し、優先度が低い要求を保留させる。
ステップS15では、BSimは、PSimを呼び出してアクセスを行う。どのPSimを呼び出すかについては、BSim接続テーブルから判断することができるため、適切なPSimを呼び出す。
その後、ステップS16では、BSimは、保留されていたアクセスがないかどうかをチェックし、保留されていたアクセスがあれば(YES)、ステップS17でウェイト処理を行った後、ステップS15の処理へ戻る。また、保留しているアクセスがない場合(NO)には、始めの状態のステップS11の処理へ戻り、次のアクセスを待つ。
図6は、図2のPSimの動作を説明するためのフローチャートである。
図6に示すように、まず、ステップS21では、PSimはウェイト・割り込み処理を行う。これは、ISSおよびBSimの場合と同様に、シミュレーションの実行速度を調整するためである。また、ここではそれ以外に、内部状態をチェックして、割り込みを発生させる必要があれば、対応するISSへ割り込み信号を出力する。割り込み信号は、PSim接続テーブルによって管理されているため、このテーブルから適切なISSを選択して割り込みをかける。
次に、ステップS22では、PSimはアクセス受け付け処理を行う。これは、BSimなどからのアクセス要求を内部に取り込む処理である。
ステップS23では、他のシミュレータからアクセス要求があるか否かをチェックし、他のシミュレータからアクセス要求がない場合(NO)には、ステップS24の処理に進み、他のシミュレータからアクセス要求があった場合(YES)には、ステップS26の処理に進む。
ステップS24では、PSim自体からBSimへのアクセス(マスターアクセス)があるか否かをチェックして、PSim自体からBSimへのアクセス(マスターアクセス)があれば(YES)、ステップS25の処理へ進み、また、ステップS25でBSimに対してアクセス要求を出力してステップS21へ戻る。ステップS24でこのマスターアクセスがない場合(NO)にはステップS21の処理に戻る。
ステップS23で他のシミュレータからアクセス要求があった場合(YES)に、ステップS26で、PSimは、アクセス内容を見て、複数のシミュレータから同時にアクセスがあれば、PSim接続テーブルの優先度を参照し、優先度が低い要求を保留させる。
ステップS27では、PSimは、アクセス内容の処理を行い、内部状態を変更・参照させる。
その後、ステップS28では、PSimは、保留されていたアクセスがあるかどうかをチェックし、保留されていたアクセスがあれば(YES)、ステップS29でウェイト処理を行った後、ステップS27の処理に戻る。また、保留しているアクセスがない場(NO)合には、始めの状態のステップS21の処理に戻り、次のアクセスを待つ。
以下に、図2に示す本実施形態のシステムシミュレータ10Aによるシミュレーション処理について、ISS111からISS112にデータを送る場合を事例に挙げて説明する。
図7は、図2における通信プログラムの一例を示すフローチャートであり、(a)は、ISS111上で動作するプログラムであり、(b)はISS112上で動作するプログラムである。
図7(b)に示すように、初期状態では、ISS112は、ステップS33で割り込みがかかるのを待っている。
図7(a)に示すように、ISS111は、まず、ステップS31において、PSim122bに対して、ISS112へ送りたいデータを書き込む。この書き込みは、BSim131からPSim(Bridge)124、PSim(Bridge)124からBSim132、BSim132からPSim122bへとアクセス要求が伝播することによって行われる。
図3の接続テーブル1103によれば、PSim(Bridge)124は、BSim131およびBSim132に対してMasterとして登録されている。このため、PSim(Bridge)124は、BSim131およびBSim132に対して双方向のデータ通信が可能である。よって、BSim131はPSim(Bridge)124に対してアクセス要求を与えることが可能であり、また、PSim(Bridge)124はBSim132に対してアクセス要求を与えることが可能である。したがって、ISS111からPSim122bへのデータ書き込み要求は、BSim131、PSim(Bridge)124、BSim132という経路を通って書き込むことができる。
ISS111は、書き込みが完了すると、ステップS32において、PSim121bのレジスタにデータを書き込む。PSim121bは、これを受けて、ISS112に割り込みをかける。
ステップS33で割り込み待ち状態となっていたISS112では、PSim121bからのこの割り込みを受けて、ステップS34の処理に進む。
ステップS34において、ISS112は、PSim122bにアクセスして、先にISS111から書き込まれたデータを読み込む。このような手順によって、ISS111からISS112へデータを送ることが可能となる。
以上のように、本実施形態1によれば、システムシミュレータ10AをISS、PSimおよびBSimの3種類のシミュレータによって構成し、各シミュレータ間を相互に状態の参照・変更が可能なインターフェースで接続することにより、図16に示すような複雑な構成のシステム700に対応可能で、かつ、構成を容易かつ柔軟に変更可能なシステムシミュレータ10Aを実現することができる。
(実施形態2)
本実施形態2では、図17に示すシステム800の動作をPCやWS上で仮想的に実行するためのシステムシミュレータについて説明する。
図8は、本発明の実施形態2に係るシステムシミュレータの要部構成例を示すブロック図である。
図8において、システムシミュレータ10Bは、図17のシステムにおけるCPU801の動作をシミュレートするインストラクションセットシミュレータISS1201と、図17のシステム800におけるペリフェラルとしてのDataRAM805およびProgramROM804の動作をシミュレートするペリフェラルシミュレータPSim1204および1205と、図17のシステム800におけるバスとしてのdata bus802およびinstruction bus803の動作をシミュレートするバスシミュレータBSim1202およびBSim1203という3種類のシミュレータを有している。
このシステムシミュレータ10Bが設定される動作、およびISS、PSim、BSimの各シミュレータの動作については、上記実施形態1の場合と同様であるため、本実施形態2ではその説明を省略する。また、一般的なシステムでは、図8のようにデータバス1202にはデータROM1204およびプログラムROM1205の他にもペリフェラルが接続されているが、ここではその説明も省略する。
図9は、図8の各シミュレータの接続テーブルの事例を示している。
ISS1201は、接続テーブル1301を有している。このISS1201接続テーブル1301は、ISS1201に接続されているBSimとその種類を管理している。ISS1201は、メモリアクセスが必要になった場合に、この接続テーブル1301から適切なBSimを選択してアクセス要求を出力する。接続テーブル1301の種類の部分には、バスの種類が示されている。この例では、ISS1201がハーバードアーキテクチャであり、データとインストラクションでバスが別れているため、ProgramROMに接続されるインストラクションバスと、DataRAMに接続されるデータバスに分けられている。
PSim1204は、接続テーブル1302を有している。このPSim1204接続テーブル1302では、どのシミュレータがどのような目的で接続されているかを管理している。この接続テーブル1302の種類の部分には、各シミュレータとの接続の種類が示されている。Slaveは、BSimと接続されており、そのBSimからリード要求やライト要求を受けることを示している。優先度は、同時にアクセスがあった場合に、どちらを優先するかを決めるパラメータである。PSim1204の場合、接続テーブルに優先度は必要とされない。
PSim1205は、接続テーブル1303を有している。PSim1205接続テーブル1303は、PSim1204の接続テーブル1302の場合と同様であるが、BSim1202およびBSim1203から同時にアクセスを受ける可能性があるため、どちらのアクセスを優先するかを決めるためのパラメータとして優先度が設定されている。
BSim1202は、接続テーブル1304を有している。このBSim1202接続テーブル1304では、どのシミュレータがどのような目的で接続されているかを管理している。接続テーブル1304の種類の部分には、各シミュレータとの接続の種類が示されている。種類のISSは、BSim1202にISS1201が接続されており、アクセス要求が与えられることを表わしている。種類のSlaveは、PSimが接続されており、BSim1202がアクセス可能なことを示している。また、接続テーブル1304のアドレスの部分には、対応するPSimがアドレス空間のどこにマッピングされるかという情報が記録されている。優先度は、同時にアクセスがあった場合に、どちらを優先するかを決めるパラメータである。BSim11202は、ISS1201とPSim1204およびPSim1205から同時にアクセスを受ける可能性があるため、どのアクセスを優先するかを決めるために優先度が設定されている。
BSim1203は、接続テーブル1305を有している。このBSim1203接続テーブル1305は、BSim1202の接続テーブル1304の場合と同様である。
以下に、図8に示す本実施形態2のシステムシミュレータ10Bによるシミュレーション処理について、ISS1201がプログラムROMから次のインストラクションを取得すると同時に、プログラムROM中に格納されている定数をデータとして読み込む場合を事例に挙げて説明する。
CPUがパイプライン方式を採用しており、かつ、ハーバードアーキテクチャの場合、データとインストラクションのアクセスが同時に起こる可能性がある。また、読み込もうとするデータが定数である場合、この定数はデータであっても、RAMではなく、プログラムROMに格納されることになる。
まず、インストラクションを取得する動作について考える。
ISS1201は、接続テーブル1301を参照し、接続テーブル1301からBSim1203にアクセスするべきことが分かるため、BSim1203にアクセス要求を出力する。
このBSim1203では、このアクセス要求を受けると、接続テーブル1305を参照し、接続テーブル1305からPSim1205にアクセスするべきことが分かるため、PSim1205にアクセス要求を出力する。
同じタイミングで、ISS1201はデータを取得する。
ISS1201は、接続テーブル1301を参照し、接続テーブル1301からBSim1202にアクセスするべきであることが分かるため、BSim1202にアクセス要求を出力する。
BSim1202では、このアクセス要求を受けると、接続テーブル1304を参照し、接続テーブル1304からPSim1205にアクセスするべきであることが分かるため、PSim1205にアクセス要求を出力する。
BSim1202およびBSim1203から同時にアクセスを受けたPSim1205は、接続テーブル1303を参照し、BSim1202の方が優先度が高いため、まず、BSim1202に対してデータを返した後、BSim1203に対してデータを返す。
以上のように、本実施形態2によれば、システムシミュレータ10BをISS、PSimおよびBSimの3種類のシミュレータによって構成し、各シミュレータ間を相互に状態の参照・変更が可能なインターフェースで接続することにより、図17に示すようなハーバードアーキテクチュアのCPUにより、データとインストラクションでバスが別れているようなシステム800に対しても対応可能で、かつ、構成を容易かつ柔軟に変更可能なシステムシミュレータ10Bを実現することができる。
なお、上記実施形態1、2では、特に説明しなかったが、上記システムシミュレータ10Aまたは10Bを用いて、コンピュータ読み取り可能な可読記録媒体に記録された制御プログラムに基づいて、ソフトウェアとして上記図4〜図7の各フローチャートのシステムシミュレート方法を実行することができる。さらに、ここで、そのシステムシミュレート方法について説明する。
例えばインストラクションセットシミュレータの動作工程として、この制御プログラムに基づいて、他のシミュレータと速度を合わせるために一時停止可能とするウェイト処理工程と、このウェイト処理工程後に、インストラクションを取得する工程と、該インストラクションが与えられると、該インストラクションを解析する工程と、該インストラクションがメモリからのリードまたはメモリへのライトであるかどうかを判断し、このインストラクションがメモリリードであればメモリ読み出し処理を行い、このインストラクションがメモリライトであればメモリ書き込み処理を行い、それら以外の場合には内部状態を変更して上記ウェイト処理工程に戻る工程とをコンピュータにより実行する。
また、例えばバスシミュレータの動作工程として、制御プログラムに基づいて、他のシミュレータと速度を合わせるために一時停止可能とするウェイト処理工程と、このシミュレータからのアクセス要求を内部に取り込むアクセス受付処理工程と、複数のシミュレータからアクセス要求がある場合に、優先度が低いアクセス要求を保留する処理工程と、このアクセス要求に応じたペリフェラルシミュレータを呼び出してアクセスを行う工程と、 保留したアクセス要求のウェイト処理を行った後、当該アクセス要求に応じたペリフェラルシミュレータを呼び出してアクセスを行う工程とをコンピュータにより実行する。
さらに、例えばペリフェラルシミュレータの動作工程として、制御プログラムに基づいて、他のシミュレータと速度を合わせるために一時停止可能とすると共に、内部状態に応じて割り込みを発生させる必要がある場合に、対応するインストラクションセットシミュレータへ割り込み信号を出力するウェイト・割り込み処理工程と、シミュレータからのアクセス要求を内部に取り込むアクセス受付処理工程と、他のシミュレータからアクセス要求がない場合に、ペリフェラルシミュレータからバスシミュレータへのアクセス要求がなく、該ウェイト・割り込み処理工程に戻るかまたは、ペリフェラルシミュレータからバスシミュレータにアクセス要求がある場合に、対応するバスシミュレータにアクセス要求を出力してウェイト・割り込み処理工程に戻る工程と、複数のシミュレータからアクセス要求がある場合に、優先度が低いアクセス要求を保留する処理工程と、ペリフェラルシミュレータがアクセス内容のアクセス処理を行う工程と、保留したアクセス要求のウェイト処理を行った後、内部状態に応じて割り込みを発生させる必要がある場合に、対応するインストラクションセットシミュレータへ割り込み信号を出力するウェイト・割り込み処理工程とをコンピュータにより実行する。
本発明のシステムシミュレート方法は、以上のインストラクションセットシミュレータの動作工程と、バスシミュレータの動作工程と、ペリフェラルシミュレータの動作工程とを有している。
上記可読記録媒体としては、コンピュータ内のハードディスクや各種メモリ部であってもよく、または、携帯自在な光ディスク、磁気ディスクおよびICメモリであってもよい。このような携帯自在な光ディスク、磁気ディスクおよびICメモリなどの可読記録媒体からコンピュータ内のハードディスクや各種メモリ部に上記制御プログラムがダウンロードされてもよいし、無線または有線、さらにはインターネットを介してコンピュータ内のハードディスクや各種メモリ部に上記制御プログラムがダウンロードされてもよい。
なお、前述したように、ペリフェラルシミュレータは、メモリ、割り込みコントローラ、タイマ、ダイレクト・メモリ・アクセス・コントローラ(DMAC)、液晶表示コントローラ(LCDC)、バス間を接続するブリッジ(Bridge)またはI/Oコントローラなどの周辺機器の動作をシミュレートする。これは、ペリフェラルの一例として扱っているが、現実のシステムにおいてはもっと多様なペリフェラルを扱う可能性がある。それはLED表示装置(発光ダイオード表示器)やステッピングモータのような周辺機器の場合もあるし、もっと複雑なペリフェラルの可能性もある。したがって、多種多様なペリフェラルが本発明の対象になる。このような多種多様なペリフェラルも本発明のシミュレータとして実装できることは言うまでもないことである。ペリフェラルを上記メモリ〜I/Oコントローラに制限する必要は全くない。
以上のように、本発明の好ましい実施形態1,2を用いて本発明を例示してきたが、本発明は、この実施形態1,2に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態1,2の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
本発明は、開発対象となるシステム(ターゲットシステム)をパーソナルコンピュータ(PC)やワークステーション(WS)などのシステム上で仮想的に実行するためのシステムシミュレータ、これを用いたシステムシミュレート方法、これをコンピュータに実行させるための制御プログラムおよび、これが記録されたコンピュータ読み取り可能な可読記録媒体の分野において、システムシミュレータをISS、PSimおよびBSimの3種類のシミュレータによって構成し、各シミュレータ間を相互に状態の参照・変更が可能なインターフェースで接続することにより、複雑な構成に対応可能で、かつ、構成を容易かつ柔軟に変更可能なシステムシミュレータを実現することができる。
本発明のシステムシミュレータの基本構成を示すブロック図である。 本発明の実施形態1のシステムシミュレータの構成例を示すブロック図である。 図2のシステムシミュレータにおけるテーブルの一例を示す図である。 図2のシステムシミュレータにおけるISSの動作を説明するためのフローチャートである。 図2のシステムシミュレータにおけるBSimの動作を説明するためのフローチャートである。 図2のシステムシミュレータにおけるPSimの動作を説明するためのフローチャートである。 図2のシステムシミュレータによりシミュレーションされる通信プログラムの例を示すフローチャートであり、(a)はISS111上で動作するプログラムの例を示すフローチャート、(b)はISS112上で動作するプログラムの例を示すフローチャートである。 本発明の実施形態2のシステムシミュレータの要部構成例を示すブロック図である。 図8のシステムシミュレータにおけるテーブルの一例を示す図である。 従来の一般的なシステムシミュレータの基本構成例を示すブロック図である。 従来のマルチコアシステムの要部構成例を示すブロック図である。 特許文献1に開示されている従来のシミュレーションシステムの要部構成例を示すブロック図である。 特許文献2に開示されている従来のシステムシミュレータの要部構成例を示すブロック図である。 従来技術によって表現可能なシステムの一例を示すブロック図である。 従来技術によって表現可能なシステムの他の例を示すブロック図である。 従来技術によって表現できないシステムの一例を示すブロック図である。 ハーバードアーキテクチャのCPUによるシステムの一例を示すブロック図である。
符号の説明
10A、10B システムシミュレータ
11,111、112、1201 インストラクションセットシミュレータ
12、121a、121b、122a ペリフェラルシミュレータ
13、131、132、133、1202、1203 バスシミュレータ
14,141,142 インストラクションセットシミュレータ・バスシミュレータ間インターフェース
15、151 バスシミュレータ・ペリフェラルシミュレータ間インターフェース
16、161 ペリフェラルシミュレータ・インストラクションセットシミュレータ間インターフェース
17、171 シミュレータマネージャー
123、124、125 ブリッジをシミュレーションするペリフェラルシミュレータ
122b メモリをシミュレーションするペリフェラルシミュレータ
126 LCDCをシミュレーションするペリフェラルシミュレータ
127 SDRAMをシミュレーションするペリフェラルシミュレータ
1101 ISS111接続テーブル
1102 ISS111割り込みテーブル
1103 PSim(Bridge)124接続テーブル
1104 BSim131接続テーブル
1105 PSim121b接続テーブル
1204 データRAMをシミュレートするペリフェラルシミュレータ
1205 プログラムROMをシミュレートするペリフェラルシミュレータ
1301 ISS接続テーブル
1302 PSim1接続テーブル
1303 PSim2接続テーブル
1304 BSim1接続テーブル
1305 BSim2接続テーブル

Claims (27)

  1. ターゲットシステム上で動作するソフトウェアを検証するために用いられ、該ターゲットシステムの動作を、該ターゲットシステムとは異なるシステム上で仮想的に実行するシステムシミュレータであって、
    該ターゲットシステムにおける中央演算処理装置(CPU)の動作をシミュレートする一または複数のインストラクションセットシミュレータと、
    ペリフェラルの動作をシミュレートする複数のペリフェラルシミュレータと、
    該CPUと該ペリフェラルを接続するバスの動作をシミュレートする複数のバスシミュレータとを有すると共に、
    該インストラクションセットシミュレータと該バスシミュレータの間の相互の状態を参照および変更可能とする第1インターフェースと、
    該バスシミュレータと該ペリフェラルシミュレータの間の相互の状態を参照および変更可能とする第2インターフェースと、
    該インストラクションセットシミュレータと該ペリフェラルシミュレータの間の相互の状態を参照および変更可能とする第3インターフェースとを有するシステムシミュレータ。
  2. 前記ターゲットシステムのブロック構成が設定された設定ファイルにしたがって必要な各シミュレータを確保し、該必要な各シミュレータ間の各インターフェースを設定可能とするシミュレータマネージャーをさらに有する請求項1に記載のシステムシミュレータ。
  3. 前記ペリフェラルシミュレータは、メモリ、割り込みコントローラ、タイマ、ダイレクト・メモリ・アクセス・コントローラ(DMAC)、液晶表示コントローラ(LCDC)、バス間を接続するブリッジ(Bridge)、I/Oコントローラ、発光ダイオード表示器またはステッピングモータなどの周辺機器の動作をシミュレートする請求項1に記載のシステムシミュレータ。
  4. 前記第1インターフェースは、前記CPUからバスへのアクセスをシミュレート可能とする請求項1に記載のシステムシミュレータ。
  5. 前記インストラクションセットシミュレータは、メモリ空間またはI/O空間にアクセスしたい場合に、前記第1インターフェースを介して対応するバスシミュレータを呼び出し、
    リードアクセスの場合、該インストラクションセットシミュレータから該バスシミュレータにアドレスを指定し、該バスシミュレータは対応するアドレスに存在するペリフェラルシミュレータを前記第2インターフェースを介して呼び出してデータを取得して、該インストラクションセットシミュレータに該データを渡し、
    ライトアクセスの場合、該インストラクションセットシミュレータから該バスシミュレータにアドレスとデータを指定し、該バスシミュレータは対応するアドレスに存在するペリフェラルシミュレータを前記第2インターフェースを介して呼び出して該データを設定する請求項1または4に記載のシステムシミュレータ。
  6. 前記第1インターフェースは、前記インストラクションセットシミュレータがアクセスしようとしたときに前記バスシミュレータが他のインストラクションセットシミュレータによって使用されている場合に、アクセスが重複しないように、優先度が低いシミュレータからの要求を保留するように設定可能とされている請求項1、4および5のいずれかに記載のシステムシミュレータ。
  7. 前記第2インターフェースは、バスとペリフェラルとの間のアクセスをシミュレート可能とする請求項1または4に記載のシステムシミュレータ。
  8. 前記バスシミュレータは、前記インストラクションセットシミュレータからアクセス要求を受けた場合、対応するアドレスに存在するペリフェラルシミュレータを前記第2インターフェースを介して呼び出し、
    リードアクセスの場合、該バスシミュレータは該ペリフェラルシミュレータからデータを読み出して該インストラクションセットシミュレータにデータを渡し、
    ライトアクセスの場合、該バスシミュレータは該ペリフェラルシミュレータにデータを設定する請求項1または7に記載のシステムシミュレータ。
  9. 前記バスシミュレータは、ペリフェラルシミュレータから他のペリフェラルシミュレータへのアクセス要求を受けた場合、対応するアドレスに存在するペリフェラルシミュレータを前記第2インターフェースを介して呼び出し、
    リードアクセスの場合、該バスシミュレータは対象ペリフェラルシミュレータからデータを読み出して、要求を行ったペリフェラルシミュレータにデータを渡し、
    ライトアクセスの場合、該バスシミュレータは対象ペリフェラルシミュレータにデータを設定する請求項1、7および8のいずれかに記載のシステムシミュレータ。
  10. 前記第2インターフェースは、前記ペリフェラルシミュレータがバスシミュレータにアクセスしようとしたときに該バスシミュレータが他のシミュレータによって使用されている場合、アクセスが重複しないように、優先度が低いシミュレータからの要求を保留するように設定可能とされている請求項1および7〜9のいずれかに記載のシステムシミュレータ。
  11. 前記第3インターフェースは、前記ペリフェラルシミュレータから前記インストラクションセットシミュレータへの割り込みをシミュレート可能とする請求項1,4および7のいずれかに記載のシステムシミュレータ。
  12. 前記ペリフェラルシミュレータは、内部状態の更新に応じて、前記インストラクションセットシミュレータに対して前記第3インターフェースを介して割り込みをかける請求項11に記載のシステムシミュレータ。
  13. 前記シミュレータマネージャは、前記インストラクションセットシミュレータ、前記バスシミュレータおよび前記ペリフェラルシミュレータの各処理速度を制御可能とする請求項2に記載のシステムシミュレータ。
  14. 前記シミュレータマネージャは、前記各処理速度を制御するために、前記インストラクションセットシミュレータ、前記バスシミュレータおよび前記ペリフェラルシミュレータのうちの少なくともいずれかのシミュレータの動作を一時的に停止させる請求項13に記載のシステムシミュレータ。
  15. 前記ターゲットシステムはパーソナルコンピュータ(PC)やワークステーション(WS)上で動作するアプリケーションプログラムとして起動される請求項1または2に記載のシステムシミュレータ。
  16. 前記シミュレータマネージャーおよび前記各シミュレータが独立して動作するスレッドであって、前記第1〜第3インターフェースにより、共通メモリを介して状態の参照または変更が行われるか、または該各シミュレータが関数であって、該シミュレータマネージャーによってシミュレータ関数が呼び出される請求項15に記載のシステムシミュレータ。
  17. 前記第1〜第3インターフェースは、状態の参照および変更が可能な共有メモリ、関数呼び出しまたはメッセージ授受によって実現される請求項1または16に記載のシステムシミュレータ。
  18. 前記各シミュレータは、前記各インターフェースとして、該各シミュレータの接続関係を管理するテーブルを有する請求項1または17に記載のシステムシミュレータ。
  19. 前記インストラクションセットシミュレータは、前記インターフェースとして、接続されているバスシミュレータの種類を管理するための接続テーブルを有し、前記インターフェースとして、割り込みがどのシミュレータから接続されているかを管理するための割り込みテーブルとを有する請求項18に記載のシステムシミュレータ。
  20. 前記ペリフェラルシミュレータは、前記インターフェースとして、どのシミュレータがどのような目的で接続されているのかを管理するための接続テーブルを有する請求項18に記載のシステムシミュレータ。
  21. 前記バスシミュレータは、前記インターフェースとして、どのシミュレータがどのような目的で接続されているのかを管理するための接続テーブルを有する請求項18に記載のシステムシミュレータ。
  22. 請求項1〜21のいずれかに記載のシステムシミュレータを用いるシステムシミュレート方法であって、
    前記インストラクションセットシミュレータの動作工程として、
    他のシミュレータと速度を合わせるために一時停止制御可能とするウェイト処理工程と、
    該ウェイト処理工程後に、該インストラクションセットシミュレータがインストラクションを取得する工程と、
    該インストラクションが与えられると、該インストラクションセットシミュレータが該インストラクションを解析する工程と、
    該インストラクションがメモリからのリードまたはメモリへのライトであるかどうかを判断し、該インストラクションがメモリリードであればメモリ読み出し処理を行い、該インストラクションがメモリライトであればメモリ書き込み処理を行い、これら以外の場合には所定命令を実行して該ウェイト処理工程に戻る工程とをコンピュータにより実行するシステムシミュレート方法。
  23. 請求項1〜21のいずれかに記載のシステムシミュレータを用いるシステムシミュレート方法であって、
    前記バスシミュレータの動作工程として、
    他のシミュレータと速度を合わせるために一時停止制御可能とするウェイト処理工程と、
    前記シミュレータからのアクセス要求を内部に取り込むアクセス受付処理工程と、
    複数のシミュレータからアクセス要求がある場合に、優先度が低いアクセス要求を保留する処理工程と、
    該アクセス要求に応じたペリフェラルシミュレータを呼び出してアクセスを行う工程と、
    保留したアクセス要求のウェイト処理を行った後、当該アクセス要求に応じたペリフェラルシミュレータを呼び出してアクセスを行う工程とをコンピュータにより実行するシステムシミュレート方法。
  24. 請求項1〜21のいずれかに記載のシステムシミュレータを用いるシステムシミュレート方法であって、
    前記ペリフェラルシミュレータの動作工程として、
    他のシミュレータと速度を合わせるために一時停止制御可能とすると共に、内部状態に応じて割り込みを発生させる必要がある場合には、対応するインストラクションセットシミュレータへ割り込み信号を出力するウェイト・割り込み処理工程と、
    前記シミュレータからのアクセス要求を内部に取り込むアクセス受付処理工程と、
    他のシミュレータからアクセス要求がなく、該ペリフェラルシミュレータから前記バスシミュレータへのアクセス要求がない場合には、該ウェイト・割り込み処理工程に戻り、該ペリフェラルシミュレータから該バスシミュレータへのアクセス要求がある場合に、対応するバスシミュレータにアクセス要求を出力して該ウェイト・割り込み処理工程に戻る工程と、
    複数のシミュレータからアクセス要求がある場合に、優先度が低いアクセス要求を保留する処理工程と、
    該ペリフェラルシミュレータがアクセス内容のアクセス処理を行う工程と、
    保留したアクセス要求のウェイト処理を行った後、内部状態に応じて割り込みを発生させる必要がある場合には、対応する該インストラクションセットシミュレータへ割り込み信号を出力するウェイト・割り込み処理工程とをコンピュータにより実行するシステムシミュレート方法。
  25. 請求項22に記載のシステムシミュレート方法のインストラクションセットシミュレータの動作工程と、
    請求項23に記載のシステムシミュレート方法のバスシミュレータの動作工程と、
    請求項24に記載のシステムシミュレート方法のペリフェラルシミュレータの動作工程とを有するシステムシミュレート方法。
  26. 請求項22〜25のいずれかに記載のシステムシミュレート方法の各工程をコンピュータに実行させるための制御プログラム。
  27. 請求項26に記載の制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体。
JP2005192240A 2005-06-30 2005-06-30 システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体 Withdrawn JP2007011720A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005192240A JP2007011720A (ja) 2005-06-30 2005-06-30 システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005192240A JP2007011720A (ja) 2005-06-30 2005-06-30 システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体

Publications (1)

Publication Number Publication Date
JP2007011720A true JP2007011720A (ja) 2007-01-18

Family

ID=37750124

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005192240A Withdrawn JP2007011720A (ja) 2005-06-30 2005-06-30 システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体

Country Status (1)

Country Link
JP (1) JP2007011720A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204006A (ja) * 2007-02-16 2008-09-04 Fujitsu Ltd ソフトウェア生成装置及びシミュレーションシステム
JP2010102496A (ja) * 2008-10-23 2010-05-06 Mitsubishi Electric Corp システムシミュレーション装置
WO2011046089A1 (ja) * 2009-10-16 2011-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP2011215810A (ja) * 2010-03-31 2011-10-27 Fujitsu Ltd シミュレーション装置
WO2012023397A1 (ja) 2010-08-20 2012-02-23 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
US9251308B2 (en) 2012-07-23 2016-02-02 International Business Machines Corporation Simulation method, system, and program
US11106478B2 (en) 2017-11-10 2021-08-31 Mitsubishi Electric Corporation Simulation device, simulation method, and computer readable medium

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204006A (ja) * 2007-02-16 2008-09-04 Fujitsu Ltd ソフトウェア生成装置及びシミュレーションシステム
JP2010102496A (ja) * 2008-10-23 2010-05-06 Mitsubishi Electric Corp システムシミュレーション装置
JP5379862B2 (ja) * 2009-10-16 2013-12-25 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
WO2011046089A1 (ja) * 2009-10-16 2011-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
GB2486136A (en) * 2009-10-16 2012-06-06 Ibm Simulation method, system and program
CN102576325A (zh) * 2009-10-16 2012-07-11 国际商业机器公司 模拟方法、系统及程序
GB2486136B (en) * 2009-10-16 2012-12-26 Ibm Simulation method, system, and program
DE112010004037T5 (de) 2009-10-16 2013-01-03 International Business Machines Corporation Simulationsverfahren, -system und -programm
JP2011215810A (ja) * 2010-03-31 2011-10-27 Fujitsu Ltd シミュレーション装置
WO2012023397A1 (ja) 2010-08-20 2012-02-23 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
CN103098032A (zh) * 2010-08-20 2013-05-08 国际商业机器公司 仿真方法、系统和程序
JP5583773B2 (ja) * 2010-08-20 2014-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
KR101522477B1 (ko) * 2010-08-20 2015-05-21 인터내셔널 비지네스 머신즈 코포레이션 시뮬레이션 방법, 시스템 및 프로그램
CN103098032B (zh) * 2010-08-20 2015-10-14 国际商业机器公司 仿真方法和系统
US9251308B2 (en) 2012-07-23 2016-02-02 International Business Machines Corporation Simulation method, system, and program
US11106478B2 (en) 2017-11-10 2021-08-31 Mitsubishi Electric Corporation Simulation device, simulation method, and computer readable medium

Similar Documents

Publication Publication Date Title
JP2007011720A (ja) システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体
JP5578713B2 (ja) 情報処理装置
JP2009026113A (ja) シミュレーション装置及びプログラム
TW201537447A (zh) 雲端計算之大型儲存虛擬化
JP2006155624A (ja) 仮想化ロジック
TWI403955B (zh) 用於在虛擬化環境中共享音訊子系統的裝置、方法與系統
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
JP2008532167A (ja) 割込み制御器を有するデータ処理システム及び割込み制御方法
JP2008059192A (ja) ハード・ソフト協調検証用シミュレータ
US20120179901A1 (en) Computer apparatus
US20080281576A1 (en) Interface board, simulator, synchronization method, and synchronization program
CN1312583C (zh) 仿真装置和仿真方法
US11106478B2 (en) Simulation device, simulation method, and computer readable medium
US11392406B1 (en) Alternative interrupt reporting channels for microcontroller access devices
US20230111884A1 (en) Virtualization method, device, board card and computer-readable storage medium
CN112559336B (zh) 自适应调试异构计算芯片的方法、装置、系统及主板芯片
US11106395B2 (en) Application execution apparatus and application execution method
JP2016197446A (ja) デバイスプロキシ装置及びそれを含む計算機システム
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
Kostelijk Misleading architecting tradeoffs [DVD hard-disk architecture tradeoff analysis method]
JP7441981B2 (ja) 切り替え可能モデルを有する自律運転シミュレーションアーキテクチャを提供するためのシステムと方法
JP2012027952A (ja) シミュレーション装置
JP2009223762A (ja) 協調検証装置
JP2011081623A (ja) シミュレーション装置、方法およびプログラム
JPH1185673A (ja) 共有バスの制御方法とその装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902