(57)【特許請求の範囲】
【請求項１】
データの転送に関する命令処理をエミュレートするデバイスエミュレーション処理と、前記命令処理以外の命令処理をエミュレートするＣＰＵエミュレーション処理とを並列に実行して計算機をエミュレートする計算機のエミュレーション方法であって、
前記ＣＰＵエミュレーション処理を実行するＣＰＵエミュレーション部が有するサイズ更新部が、前記データの入出力の開始から前記データの転送が終了までの期間に前記ＣＰＵエミュレーション部において実行される命令の数に応じて区切られた期間であるタームと前記データの総転送可能サイズとに基づいて定められる、前記タームにおいて転送可能なデータのサイズであるカレント転送可能サイズを設定するサイズ更新ステップと、
前記デバイスエミュレーション処理を実行するデバイスエミュレーション部が有するデータ転送部が、前記カレント転送可能サイズが設定された場合に、設定された前記カレント転送可能サイズに応じたデータを転送するデータ転送ステップと、
前記ＣＰＵエミュレーション部が有する命令エミュレーション部が、前記タームにおける前記データのカレント転送可能サイズに応じた数の命令処理を実行する命令エミュレーションステップと、
前記デバイスエミュレーション部が有する転送処理実行部が、前記タームにおける命令処理よりも前記タームにおける前記カレント転送可能サイズに応じたデータの転送が早く終了した場合に、次のタームにおける前記カレント転送可能サイズが定められるまでデータの転送を待たせて前記命令エミュレーション処理との間で同期をとる転送処理実行ステップと、
前記ＣＰＵエミュレーション部が有する同期処理部が、前記データの転送が終了するまで前記カレント転送可能サイズの設定および前記命令処理を繰り返し実行させ、前記データの転送が終了した時点で前記命令処理の実行を待たせて前記デバイスエミュレーション処理との間で同期をとる同期処理ステップと、
を含むことを特徴とする計算機のエミュレーション方法。
【請求項２】
前記命令エミュレーションステップにおいて、前記デバイスエミュレーション部に対して前記データの転送状況を報告させるためのステータス要求を行い、前記転送処理実行ステップにおいて、前記ステータス要求に応じて前記命令エミュレーション部に前記データの転送状況を報告する、ことを特徴とする請求項１に記載の計算機のエミュレーション方法。
【請求項３】
前記命令エミュレーションステップにおいて、前記デバイスエミュレーション部に対して前記データの転送を中断させる転送中断要求を行い、前記転送処理実行ステップにおいて、前記転送中断要求を受けた際に前記カレント転送可能サイズに応じたデータの転送が完了するまで前記データの転送を続行し、前記データの転送が完了した時点で前記命令エミュレーション部に転送中断を報告する、ことを特徴とする請求項１に記載の計算機のエミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期処理をエミュレーション可能な計算機エミュレーションの技術に関するものである。
【背景技術】
【０００２】
近年、計算機の開発は大規模化、複雑化していく一方、短期開発や開発工数の削減が急務となっている。そのため開発対象の計算機で用いるソフトウェアや、検証用プログラムの開発にはエミュレータを用いた並行開発の環境が必須である。一方、このデバッグ用エミュレータには、主に次の２つの機能が要求される。１つは、デバッグ環境として要求される再現性を確保する機能であり、もう１つは、検証精度を向上させるために非同期処理をエミュレーションする機能である。ここで再現性とは、検証の手順が同じであれば異なるデバッグ環境でも同じ現象が再現する性質のことである。デバッグ用エミュレータがこの機能を有していないと、多大な工数を投じて検出した不良も、場合によっては修正することが不可能になってしまう。前者の機能を実現する典型的な方法は、シングルスレッドの制御下で非同期処理を命令処理群の一部として実行する方法である。
【０００３】
一方、後者の機能を実現する典型的な方法は、マルチスレッドの制御下で命令処理と非同期処理と並列処理させる方法である。
【０００４】
しかし、この２つの機能要求は背反するものであり、一般に非同期処理を命令処理の一部として実現すると再現性は容易に確保できるが、非同期処理の実現が困難となる。一方、マルチスレッドを用いる方式の場合、非同期性は容易に実現可能であるが、再現性の確保はほぼ不可能となる。
【０００５】
アプリケーションプログラムを開発する上で、近年特に重要なファクタがある。近年ＣＰＵの高性能化は周波数の向上からHyper-Threadingテクノロジ（Ｒ）、マルチコアへと新たな方向へ進化してきており、他のアプリケーションと共生し、実行環境のＣＰＵ資源の有効活用が求められている。また並列処理に重点がシフトしたことによって、動作環境の単一ＣＰＵの速度向上に従属させたエミュレータの高速化も鈍化してきている。これらを解決するためには、マルチスレッドによる非同期処理の実現、ひいては複数ＣＰＵの有効活用が必要である。
【０００６】
なおこの種の技術として関連するものには、例えば特許文献１に記載された技術などがある。
【０００７】
【特許文献１】特開平０４−２７７８４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のように、マルチスレッドを用いて非同期処理を実現する方法は、再現性が確保できない。この解決策として、非同期処理を細分化し、命令処理と命令処理の間で非同期処理の断片を反復的に実行することで非同期性を確保する方法がある。これは、命令処理と非同期処理の断片をシングルスレッド制御下で同期的に実行することによって再現性を確保し、一方では非同期処理を細分化したことによって非同期処理の中間的な状態を有しているため、細分化の粒度を変更することで非同期処理のイベントを任意の時点で命令処理側に対し報告することが可能な非同期性を兼ね備えた方法である。
【０００９】
しかしながら、この方法はシングルＣＰＵの環境に特化した方法であり、近年の計算機が有する複数ＣＰＵを有効活用する実行効率のよいエミュレーションを期待できない。
【００１０】
本発明の目的は、計算機が内蔵する複数ＣＰＵをエミュレーションに活用するとともに、非同期処理のエミュレーションと再現性の確保を両立できるエミュレーションを実現することにある。
【課題を解決するための手段】
【００１１】
本発明は、データの転送に関する命令処理をエミュレートするデバイスエミュレーション処理と、前記命令処理以外の命令処理をエミュレートするＣＰＵエミュレーション処理とを並列に実行して計算機をエミュレートする計算機のエミュレーション方法であって、前記ＣＰＵエミュレーション処理を実行するＣＰＵエミュレーション部が有するサイズ更新部が、前記データの入出力の開始から前記データの転送が終了までの期間に前記ＣＰＵエミュレーション部において実行される命令の数に応じて区切られた期間であるタームと前記データの総転送可能サイズとに基づいて定められる、前記タームにおいて転送可能なデータのサイズであるカレント転送可能サイズを設定するサイズ更新ステップと、前記デバイスエミュレーション処理を実行するデバイスエミュレーション部が有するデータ転送部が、前記カレント転送可能サイズが設定された場合に、設定された前記カレント転送可能サイズに応じたデータを転送するデータ転送ステップと、前記ＣＰＵエミュレーション部が有する命令エミュレーション部が、前記タームにおける前記データのカレント転送可能サイズに応じた数の命令処理を実行する命令エミュレーションステップと、前記デバイスエミュレーション部が有する転送処理実行部が、前記タームにおける命令処理よりも前記タームにおける前記カレント転送可能サイズに応じたデータの転送が早く終了した場合に、次のタームにおける前記カレント転送可能サイズが定められるまでデータの転送を待たせて前記命令エミュレーション処理との間で同期をとる転送処理実行ステップと、前記ＣＰＵエミュレーション部が有する同期処理部が、前記データの転送が終了するまで前記カレント転送可能サイズの設定および前記命令処理を繰り返し実行させ、前記データの転送が終了した時点で前記命令処理の実行を待たせて前記デバイスエミュレーション処理との間で同期をとる同期処理ステップと、を含むことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、計算機の複数ＣＰＵをエミュレーションに活用できるとともに、非同期処理のエミュレーションと再現性の確保の両方を満たすことができる。
【発明を実施するための最良の形態】
【００１３】
以下の実施形態は、命令エミュレーションに対する非同期な処理としてデバイスエミュレーションをとりあげる。命令エミュレーションは、通常の命令処理をエミュレートするものであり、デバイスエミュレーションは、入出力装置と主記憶との間のデータ転送をエミュレートするものである。エミュレーションに用いるハードウェアはマルチコアＣＰＵ又はマルチＣＰＵを備える計算機とし、そのオペレーティングシステム（ＯＳ）はマルチスレッド制御可能なものとし、命令エミュレーションとデバイスエミュレーションを各々異なるスレッドにより実行させ、エミュレーションの実行効率向上を図る。また入出力動作の開始からデータ転送終了までの期間を以下タームと呼ぶ中間的な期間で区切る。タームは、処理命令数で計数され、転送可能なデータサイズ（基準スループット）と対応づけられる。デバイスエミュレーションが必要に応じてターム終了時点で命令エミュレーションと中間的な同期をとることによって非同期処理のエミュレーションを実現し、一方、命令エミュレーションがデータ転送終了時点でデバイスエミュレーションと非同期処理全体についての同期をとることによってエミュレーションを利用するテストの再現性を確保する。
【００１４】
以下、本発明の実施例について図面に基づいて詳細に説明する。
【００１５】
図１は、本発明による一実施例の構成図である。１は既存のパーソナルコンピュータ（以下ＰＣと略称する）であり、ハードウェアとしてはマルチコアＣＰＵ（もしくはマルチＣＰＵ）を備え、これらＣＰＵの特性を活かすことのできるＯＳが稼動する。計算機エミュレータ３は、開発対象とする計算機をエミュレーションするためのソフトウェアであり、ＰＣ１のハードウェアおよびそのＯＳ上で稼動する。被テストプログラム２は、ユーザがデバッグしようとしている開発対象の計算機のためのプログラムであり、新規開発のＯＳ又はＯＳとアプリケーションの少なくとも一部であり、新規開発の計算機の機械語命令によって構成されている。被テストプログラム２は、入出力動作の非同期処理を含む。
【００１６】
計算機エミュレータ３は、スループット定義部４、ＣＰＵエミュレータ部５およびデバイスエミュレータ部６の各プログラムと、主記憶エミュレーション部７を有する。スループット定義部４は、エミュレータ内部の内部変数である基準スループット４１を設定し、ＰＣ１のメモリに保持する。
【００１７】
ＣＰＵエミュレータ部５は、命令エミュレーション部５１と割り込みエミュレーション部５２から構成される。命令エミュレーション部５１は、被テストプログラム２に含まれる命令をそのシーケンスに従って順次実行する。命令エミュレーション部５１は、ＰＣ１と同一命令をそのままＰＣ１で実行し、ＰＣ１と異なる命令についてはＰＣ１の命令を用いてエミュレーションする。割り込みエミュレーション部５２は、デバイスエミュレータ部６からの割り込み処理を実行するプログラムであり、割り込み処理部５２１、割り込みターム算出部５２２および同期処理部５２３を有する。割り込み処理部５２１は、デバイスエミュレータ部６からの割り込みを受け付け、割り込み処理自体を実行する。割り込みターム算出部５２２は、後述の総転送可能サイズと基準スループット４１を用いてデータ転送終了割り込みが発生する時期を事前に算出する。同期処理部５２３は、非同期処理側であるデバイスエミュレータ部６からのデータ転送終了割り込みと、ＣＰＵエミュレータ部５の命令処理の進行状態とを同期させる。
【００１８】
デバイスエミュレータ部６は、命令エミュレーション部５１によって起動され、エラー要因の事前チェックの後、入出力装置と主記憶との間のデータ転送処理をエミュレーションする。デバイスエミュレータ部６は、総転送可能サイズ６１を保持し、また転送可能サイズ管理部６２と転送処理実行部６３を有する。総転送可能サイズ６１は、デバイスエミュレータ部６によって算出される総転送可能サイズであり、ＰＣ１のメモリに保持される。転送可能サイズ管理部６２は、入出力動作の終了までの間の中間的な転送可能サイズであって、ＣＰＵエミュレータ部５によって通知されたカレント転送可能サイズを保持する。転送処理実行部６３は、入出力装置と主記憶との間の非同期な転送処理をエミュレートするために、主記憶エミュレーション部７のデータ領域間のデータ転送を実行する。
【００１９】
主記憶エミュレーション部７は、ＰＣ１のメモリの一部領域であり、計算機エミュレータ３に入力された被テストプログラム２、被テストプログラム２への入力データ、被テストプログラム２によって読み書きされるデータおよびデバイスエミュレーションのためのデータ領域を保持する。ＣＰＵエミュレータ部５は、主記憶エミュレーション部７との間で命令やデータを読み書きする。またデバイスエミュレータ部６は、主記憶エミュレーション部７のデータ領域間のデータ転送のためにデータを読み書きする。
【００２０】
ＣＰＵエミュレータ部５およびデバイスエミュレータ部６は、ＰＣ１のＯＳによって各々異なるスレッドが割り当てられ、また異なるコアＣＰＵあるいはＣＰＵが割り当てられ、ハードウェア的およびソフトウェア的に並行動作する。
【００２１】
図２は、スループット定義部４の構成を示す図である。スループット定義部４は、擬似乱数による設定機能４２および手動指定による設定機能４３の各プログラム機能を有し、基準スループット４１を設定する。基準スループット４１は、一定期間（ターム）の間の非同期処理スループット、例えば転送可能なデータのサイズである。ここでタームは、入出力動作の終了までの間に周期的に繰り返される中間的な期間であり、基準スループット４１で指定される非同期処理スループットに対応する処理命令スループット、例えば転送可能サイズのデータ転送の間に連続実行される命令の数によって計数される。新設命令などのエミュレートされる命令は１命令として計数される。擬似乱数による設定機能４２は、ある閾値の下に発生させた擬似乱数を基準スループット４１として設定する。手動指定による設定機能４３は、ＰＣ１の入力装置を介して入力されたデータを基準スループット４１として設定する。手動指定による設定機能４３は、エミュレーションによる事象の再現を確認する場合や、基準スループット４１として特定の値を設定する場合に用いられる。基準スループット４１と上記のタームを調整することによって、動作中のＣＰＵエミュレータ部５の任意の時点でデバイスシミュレータ部６からの終了割り込みを発生させることが可能となる。タームを時間ではなく、命令数で設定する理由は、エミュレーションがＰＣ１で実行される計算機エミュレータ３以外のプログラム実行の影響を受けないようにするためである。
【００２２】
図３は、スループット定義部４の処理手順を示すフローチャートである。スループット定義部４は、入力装置を介する指示によって手動指定か否かを判別し（ステップ４０１）、手動指定の場合には、入力された基準スループットをメモリに格納し（ステップ４０４）、処理を終了する。擬似乱数方式の場合には、擬似乱数を発生させ（ステップ４０２）、その値が閾値以内であるか否かを判別し（ステップ４０３）、値が閾値の基準を満たすまで繰り返しステップ４０２を実行する。基準を満たした場合には、スループット定義部４は、その値を基準スループット４１として設定する（ステップ４０４）。
【００２３】
図４は、命令エミュレーション部５１の構成を示す図である。命令エミュレーション部５１は、一般的な命令をエミュレーションする機能５１１と、非同期に処理される命令をエミュレーションする機能５１２の各プログラム機能を有する。一般的な命令をエミュレーションする機能５１１は、ＰＣ１と異なる命令や新設命令をエミュレーションする機能を含む。非同期に処理される命令をエミュレーションする機能５１２は、入出力命令をエミュレーションする機能を含む。入出力命令は、主記憶上の開始アドレスと転送サイズを指定し、デバイスエミュレータ部６を起動するための入出力要求に変換される。
【００２４】
図５は、割り込みエミュレーション部５２の構成を示す図であり、同期処理部５２３の詳細構成を示す。同期処理部５２３は、転送終了通知受信機能５２３１、最大転送可能サイズ更新機能５２３２および終了割り込み同期機能５２３３の各プログラム機能を有する。転送終了通知受信機能５２３１は、デバイスエミュレータ部６から送られるデータ転送完了報告を保持する。最大転送可能サイズ更新機能５２３２は、ＣＰＵエミュレータ部５の命令実行の進行に従って、次のタームの終了時点あるいはデータ転送終了時点までにデータ転送可能なサイズを更新し、デバイスエミュレータ部６に通知する。終了割り込み同期機能５２３３は、割り込みターム算出部５２２が算出したデータ転送終了時期になってもデバイスエミュレータ部６からデータ転送完了報告による割り込みを受け取っていない場合に、命令処理を中断してデバイスエミュレータ部６の動作との同期をとる。
【００２５】
図６は、転送可能サイズ管理部６２の構成を示す図である。転送可能サイズ管理部６２は、転送エラー要因事前検出部６２１とカレント転送可能サイズ管理部６２２の各プログラムを有する。転送エラー要因事前検出部６２１は、アドレス例外検出機能６２１１、アクセス違反検出機能６２１２、および記憶保護検出機能６２１３の各プログラム機能を有する。アドレス例外検出機能６２１１は、ＣＰＵエミュレータ部５から指定された主記憶アドレスのアドレス例外を検出する。アクセス違反検出機能６２１２は、アクセスを許さない主記憶領域へのアクセスを検出する。記憶保護検出機能６２１３は、被テストプログラム２のＯＳが指定する保護領域へのアクセスを検出する。転送エラー要因事前検出部６２１は、ＣＰＵエミュレータ部５から指定された主記憶上のデータ転送領域についてアクセス例外があるか否かを判定する。その結果として、転送可能サイズ管理部６２は、アクセス例外が生じるまでに転送可能なデータサイズを算出し、総転送可能サイズ６１を設定する。デバイスエミュレータ部６は、アクセス例外が生じるまでデータ転送を続け、アクセス例外が生じた場合にはその時点で各アクセス例外による入出力終了割り込みを発生させる。カレント転送可能サイズ管理部６２２は、総転送可能サイズ６１のうち、次のタームの転送終了時点までに転送可能なデータのサイズを保持する。カレント転送可能サイズは、ＣＰＵエミュレータ部５によって通知される。
【００２６】
図７は、転送処理実行部６３の構成を示す図である。転送処理実行部６３は、データ転送機能６３１、カレント転送可能サイズチェック機能６３２、中間ステータス生成機能６３３およびデータ転送完了通知機能６３４の各プログラム機能を有する。データ転送機能６３１は、主記憶エミュレーション部７のデータ領域間の実際のデータ転送を行う。カレント転送可能サイズチェック機能６３２は、現在の転送可能サイズまでデータ転送したか否かを判定する。中間ステータス生成機能６３３は、ＣＰＵエミュレータ部５からのステータス要求に応答して中間的なステータスを報告する場合に備えて中間ステータスを生成する。中間ステータスの１つとして、デバイスエミュレータ部６は、どこまでデータ転送が済んだかを示す転送済データサイズを保持する。ＣＰＵエミュレータ部５に報告される転送済データサイズは、直前のターム終了時点における転送済データサイズとなる。データ転送完了通知機能６３４は、データ転送が終了する時点で割り込みによりＣＰＵエミュレータ部５にその旨を報告する。
【００２７】
図８は、本実施例による計算機エミュレータ３のシーケンス図である。ＣＰＵエミュレータ部５からデバイスエミュレータ部６に対し入出力要求（８０１）が出されると、デバイスエミュレータ部６は、データ転送を実行する前にエラー要因の事前チェック（８０２）を実施する。エラー要因がない場合には要求サイズ全て、エラー要因がある場合にはエラー直前までのサイズを総転送サイズとしてＣＰＵエミュレータ部５に通知する（８０３）。
【００２８】
この通知を受けたＣＰＵエミュレータ部５は、基準スループット４１をもとに、どのタームまで命令実行処理が進行したら割り込みを受け付けなくてはいけないかを計算する（８０４）。図８の例では、第３タームの途中でデータ転送割り込みを受け付けることになる。すなわちデータ転送が終了するのは転送終了報告（８１７）を受け取る時点であり、ＣＰＵエミュレータ部５がこの割り込みを認識するのはt3（８１８）の時点である。ＣＰＵエミュレータ部５は、t3の時点でデバイスエミュレータ部６からの割り込みを同期的に受領する必要がある。
【００２９】
割り込みタームの算出が完了すると、ＣＰＵエミュレータ部５は、デバイスエミュレータ部６に対し、第１タームに関する「カレント転送可能サイズ＃１（８０６）」を通知する。通知後、ＣＰＵエミュレータ部５は、第１タームに関する命令実行＃１（８０８）を行う。通知を受けたデバイスエミュレータ部６は、データ転送動作を開始し、通知された転送可能サイズ分のデータ転送＃１（８０７）を実行する。命令実行＃１（８０８）とデータ転送＃１（８０７）とは、上記のようにＰＣ１のＯＳの下で並行して実行される。図示するように、データ転送＃１（８０７）が命令実行＃１（８０８）よりも早期に完了した場合には、デバイスエミュレータ部６は、ＣＰＵエミュレータ部５と同期をとるためにＰＣ１のＯＳに対して待ち状態とし、命令実行＃１（８０８）の終了を待つ。このときデバイスエミュレータ部６のスレッドを実行していたＰＣ１のＣＰＵが開放される。
【００３０】
命令実行＃１（８０８）の実行が終了すると、ＣＰＵエミュレータ部５は、デバイスエミュレータ部６に対し、第２タームに関する「カレント転送可能サイズ＃２（８１１）」を通知し、第１タームと同様に命令実行＃２（８１２）とデータ転送＃２（８１１）とが並行して実行される。この例の第２タームでは、命令実行＃２（８１２）が終了する時点t2（８１３）でデータ転送＃２（８１１）が完了していない。しかしＣＰＵエミュレータ部５は、デバイスエミュレータ部６の動作と同期をとることなく、第３タームに関する「カレント転送可能サイズ＃３（８１４）」をデバイスエミュレータ部６に通知した後、そのまま第３タームに関する命令実行＃３（８１５）を続行する。通知を受けたデバイスエミュレータ部６は、データ転送＃２（８１１）に続き、データ転送終了（９０３）まで第３タームに関するデータ転送＃２'（８１６）を連続実行する。
【００３１】
データ転送＃２'（８１６）が完了したとき、デバイスエミュレータ部６は、割り込みによりＣＰＵエミュレータ部５に転送完了報告（８１７）を行う。ＣＰＵエミュレータ部５は、命令実行＃３（８１５）が終了した時点t3（８１８）で転送終了報告（８１７）を受け取っていればそのまま次の処理に移る。時点t3で転送終了報告（８１７）を受け取っていなければ、ＣＰＵエミュレータ部５は、デバイスエミュレータ部６と同期をとるためにＰＣ１のＯＳに対して待ち状態とし、データ転送＃２'（８１６）の終了を待つ。このときＣＰＵエミュレータ部５のスレッドを実行していたＰＣ１のＣＰＵが開放される。
【００３２】
図９は、ＣＰＵエミュレータ部５がデバイスエミュレータ部６にステータス要求（８１９）を発行し、デバイスエミュレータ部６がＣＰＵエミュレータ部５に中間ステータスを報告する場合のシーケンス図である。この例は、ＣＰＵエミュレータ部５が第２タームの途中でステータス要求を発行する場合を示す。デバイスエミュレータ部６は、第２タームの現在の状態ではなく、第１タームのデータ転送＃１（８０７）を終了した時点t1（８０９）のステータスを報告する。これにより、ＣＰＵエミュレータ部５による命令実行と、デバイスエミュレータ部６によるデータ転送との整合性をとることができる。例えば、ＣＰＵエミュレータ部５は、データ転送＃１（８０７）によって主記憶エミュレーション部７に転送されたデータを読み込むことができるが、タイミングのずれによりまだ転送されていないデータを読み込むような不具合を避けることができる。
【００３３】
図１０は、第２タームの途中でＣＰＵエミュレータ部５からデバイスエミュレータ部６にデータ転送の中断要求（８２０）が発行された場合のシーケンス図である。ＣＰＵエミュレータ部５は、被テストプログラム２に含まれる転送中断要求をエミュレーションにより実行し、転送中断要求（８２０）を発行する。転送中断要求（８２０）を受けたデバイスエミュレータ部６は、現在の転送可能サイズ＃２のデータ転送を完了するデータ転送＃２（８１１）の終了までデータ転送を続行し、転送完了した時点で割り込みにより転送中断を報告する（８２１）。これにより、ＣＰＵエミュレータ部５は、割り込みが発生するまで停止することなく命令処理を実行することができる。
【００３４】
なお上記実施例は、ＣＰＵエミュレータ部５とデバイスエミュレータ部６をマルチスレッド制御により並行動作させるものであるが、マルチスレッド制御の代わりに両者をマルチプロセス制御により並行動作させてもよい。
【図面の簡単な説明】
【００３５】
【図１】実施例の計算機エミュレータの構成図である。
【図２】スループット定義部の構成図である。
【図３】スループット定義部の処理手順を示すフローチャートである。
【図４】命令エミュレーション部の機能構成図である。
【図５】割り込みエミュレーション部の機能構成図である。
【図６】転送可能バイト数管理部の機能構成図である。
【図７】転送処理実行部の機能構成図である。
【図８】実施例の計算機エミュレータのシーケンス図である。
【図９】実施例の計算機エミュレータの他のシーケンス図である。
【図１０】実施例の計算機エミュレータのさらに他のシーケンス図である。
【符号の説明】
【００３６】
３：計算機エミュレータ、５：ＣＰＵエミュレータ部、６：デバイスエミュレータ部、４１：基準スループット、５１：命令エミュレーション部、５２：割り込みエミュレーション部、６１：総転送可能サイズ、６２：転送可能サイズ管理部、６３：転送処理実行部。
【図１】
0004825058.tif 000002
【図２】
0004825058.tif 000003
【図３】
0004825058.tif 000004
【図４】
0004825058.tif 000005
【図５】
0004825058.tif 000006
【図６】
0004825058.tif 000007
【図７】
0004825058.tif 000008
【図８】
0004825058.tif 000009
【図９】
0004825058.tif 000010
【図１０】
0004825058.tif 000011