(57)【要約】【課題】  ソフトウェアを使用することによって簡単な構成で、ベースＯＳ上でターゲットシステムをエミュレーションで実現する際の入出力処理を高速化すること。【解決手段】  メモリ初期化手段１０１はターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳ３のアドレス変換対象外としてベースシステムのメモリ６にマッピングする。高速転送処理手段１０３はエミュレータ４でターゲットシステムのＯＳ２のアドレス変換を実施した後の物理アドレス転送リストを作成する。ドライバ１０２は物理アドレス転送リストに基づいて、メモリ初期化手段１０１により確保されたベースシステムのメモリ８と周辺装置１１にアクセスする。【選択図】  図１
2005267293.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳのアドレス変換対象外としてベースシステムのメモリにマッピングするメモリ割当手段と、
エミュレータでターゲットシステムの論理アドレスをベースシステムの物理アドレスに変換したリストである物理アドレス転送リストを作成するリスト生成手段と、
前記物理アドレス転送リストに基づいて、前記メモリ割当手段により確保された前記ベースシステムのメモリとＩ／Ｏ部に接続された周辺装置にアクセスするアクセス手段とを備えて成り、
前記ターゲットシステムの入出力処理要求を、前記ターゲットシステムの論理アドレスと物理アドレス間の変換は前記ターゲットシステムのＯＳとエミュレータで行い、ベースシステムの論理アドレスと物理アドレス間の変換を行わずに、前記リスト生成手段が作成した物理アドレス転送リストにより、前記アクセス手段が前記周辺装置および前記メモリに直接アクセスすることを特徴するコンピュータシステムのエミュレーション方式。
【請求項２】
前記メモリ割当手段は、ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳが使用する領域とは異なる領域にマッピングすることを特徴する請求項１記載のコンピュータシステムのエミュレーション方式。
【請求項３】
前記メモリ割当手段は、システムの立ち上げ時に、前記ターゲットシステムが使用するメモリ領域を、前記ベースシステムのＯＳのアドレス変換対象外として前記ベースシステムの前記メモリにマッピングすることを特徴とする請求項１又は２記載のコンピュータシステムのエミュレーション方式。
【請求項４】
前記物理アドレス転送リストは、転送するデータの物理アドレスと転送長を組にしたデータを転送ブロック分積み上げたリストであることを特徴とする請求項１乃至３のいずれか一に記載のコンピュータシステムのエミュレーション方式。
【請求項５】
コンピュータを、
ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳのアドレス変換対象外としてベースシステムのメモリにマッピングするメモリ割当手段と、
エミュレータでターゲットシステムのＯＳのアドレス変換を実施した後の物理アドレス転送リストを作成するリスト生成手段と、
前記物理アドレス転送リストに基づいて、前記メモリ割当手段により確保された前記ベースシステムのメモリとＩ／Ｏ部に接続された周辺装置にアクセスするアクセス手段として機能させると共に、
前記ターゲットシステムの入出力処理要求を、前記ターゲットシステムの論理アドレスと物理アドレス間の変換は前記ターゲットシステムのＯＳとエミュレータで行い、ベースシステムの論理アドレスと物理アドレス間の変換を行わずに、前記リスト生成手段が作成した物理アドレス転送リストにより、前記アクセス手段が前記周辺装置および前記メモリに直接アクセスするように機能させることを特徴するプログラム。
【請求項６】
コンピュータを、前記メモリ割当手段がターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳが使用する領域とは異なる領域にマッピングするように機能させることを特徴とする請求項５記載のプログラム。
【請求項７】
コンピュータを、前記メモリ割当手段がシステムの立ち上げ時に、前記ターゲットシステムが使用するメモリ領域を、前記ベースシステムのＯＳのアドレス変換対象外として前記ベースシステムの前記メモリにマッピングするように機能させることを特徴とする請求項５又は６記載のプログラム。
【請求項８】
コンピュータを、前記物理アドレス転送リストが、転送するデータの物理アドレスと転送長を組にしたデータを転送ブロック分積み上げたリストであるように機能させることを特徴とする請求項５乃至７のいずれか一に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのエミュレーション方式及びエミュレーション用プログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータシステムにおいて、特定のハードウェアをソフトウェアで模倣し、同等の機能を実現するようにしたエミュレーション方式が開発されている（例えば、特許文献１〜５参照。）。
従来のコンピュータシステムのエミュレーションの方法としては、エミュレートされる側のシステム（ターゲットシステム）が、エミュレートする側のシステム（ベースシステム）におけるＯＳ（Operating System）（ベースＯＳ）上のエミュレータによりアプリケーションとして実装されているものが一般的である。
【０００３】
図５は従来のコンピュータのエミュレーション方式の構成例を示すブロック図である。図５において、１はアプリケーションプログラム、２はターゲットシステムのＯＳ（ターゲットＯＳ）、３はベースシステムのＯＳ、４はエミュレータ、５はプロセッサ（ＣＰＵ）、６はメモリ、７はベースＯＳメモリ領域、８はターゲットＯＳメモリ領域、９はＩ／Ｏ（Input-Output）バス（入出力バス）、１０はＩ／Ｏカード、１１は周辺装置である。周辺装置１１としては、例えば、磁気ディスク装置、光磁気ディスク、ＤＶＤ、ＣＤ−ＲＯＭ等の種々の装置がある。
図６は図５の構成例におけるメモリマップと動作イメージを示す図である。
【０００４】
図５及び図６において、ターゲットＯＳ２はベースＯＳ３上で動作するエミュレータ４を介してベースＯＳ３上のアプリケーションとして動作する。従って、ターゲットＯＳ２用のターゲットＯＳメモリ領域８は、ベースシステムのメモリ６上のベースＯＳ３用のベースＯＳメモリ領域７内に、アプリケーションプログラム用として確保される。つまり、ターゲットＯＳ２がメモリアクセスする場合、エミュレータ４を介してベースＯＳ３のアドレス変換機能を使い、ベースＯＳメモり領域７内のターゲットＯＳメモリ領域８をアクセスすることになる。また、ターゲットＯＳ２がベースシステムに接続された周辺装置１１をアクセスする際は、同様にエミュレータ４を介して、ベースＯＳ３のドライバからＩ／Ｏバス９やＩ／Ｏカード１０を経由してベースシステムの周辺装置１１に動作指示を行う。
【０００５】
実際の動作ではターゲットＯＳ２上で動作するアプリケーション１がメモリアクセスする際、ターゲットＯＳ２でアドレス変換が行われ、さらにエミュレータ４を介してベースＯＳ３でベースシステムのハードウェアをアクセスするためのアドレス変換を行う２段階のアドレス変換が必要である。
また、ターゲットＯＳ２上のアプリケーション１が直接、ベースＯＳメモリ領域７をアクセスすることはできない。ターゲットＯＳ２もエミュレータ４を介さずにベースＯＳメモリ領域７をアクセスすることはできないため、アプリケーション１がアクセスできるようにターゲットＯＳメモリ領域８にデータを渡すには、ベースＯＳメモリ領域７からエミュレータ４によりターゲットＯＳメモリ領域８に転送する必要がある。
【０００６】
周辺装置からの読み出し動作を例に説明すると、アプリケーション１が入出力処理、例えばファイルの読み込み処理を要求すると、それを受けたターゲットＯＳ２がＩ／Ｏ命令を発行し（Ｉ／Ｏ命令発行（処理（１）））、Ｉ／Ｏ命令はエミュレータ４を介してベースＯＳ３に通知され、ベースＯＳ３はＩ／Ｏ部（Ｉ／Ｏバス９及びＩ／Ｏカード１０）を起動する（Ｉ／Ｏ起動（処理（２）））。周辺装置１１はメモリ６のベースＯＳメモリ領域７にデータ転送し（データ転送（処理（３）））、ベースＯＳメモリ領域７を介してターゲットＯＳメモリ領域８にデータコピーが行われた後（メモリコピー（処理（４）））、ベースＯＳ３からエミュレータを介して、ターゲットＯＳ２経由でアプリケーション１に終了報告が行われる（終了報告（処理（５）））。
【０００７】
このように、エミュレーションではない通常のコンピュータシステムでは１回のアドレス変換と１回のメモリアクセスで済んでいたところ、前記従来のエミュレーションシステムでは２回のアドレス変換と２回のメモリアクセスが必要になってしまう。
これらの問題の要因は、ターゲットＯＳ２およびベースＯＳ３に手を加えないで、ベースＯＳ３の提供する機能をそのまま利用してエミュレーションを実現しているところにある。つまり、エミュレータ４はターゲットＯＳ２とベースＯＳ３の間を橋渡しする機能だけを担っている。このエミュレーション実現方法は、従来から常套手段になっているが、エミュレーションシステムの性能向上を阻害する要因でもあった。
【０００８】
一方、前記特許文献４には、ターゲットマシン（ＰＤＡ、携帯電話等）のアプリケーション開発をソフトウェア開発装置（パソコン（ＰＣ）等）で行う際に、ターゲットマシンのアプリケーション開発で有用なデバッグ機能、開発環境を提供することを課題とするソフトウェア開発装置および開発プログラムが開示されている。
しかしながら、前記特許文献４記載の発明は、ターゲットシステムの物理・論理アドレスを意識してはいるものの、それはターゲットシステムのアプリケーションを開発する上で、物理メモリの使用状況をソフトウェア開発装置で確かめるためのものであり（例えば、特許文献４の段落「００１４」、「００１５」参照）、ターゲットマシンをソフトウェア開発装置上でエミュレートした時のターゲット側の論理メモリ、物理メモリについてだけ言及しているにすぎない。ソフトウェア開発装置側の論理メモリ、物理メモリについては何等触れておらず、前述した問題を解決することはできない。
【０００９】
また、特許文献５には、コンピュータシステムのエミュレーションにおいてターゲットマシンの入出力処理を高速化することを目的とする計算機装置が開示されている。
しかしながら、前記特許文献５記載の発明は、専用ハードウェアによりベースマシンとターゲットマシンの入出力アドレス変換を切り換えながら行っているため、専用のハードウェアが必要になるという問題がある。
【００１０】
【特許文献１】特開平７−３３４３７２号公報
【特許文献２】特開平１０−１３３９１０号公報
【特許文献３】特開２０００−３２２２８９号公報
【特許文献４】特開２００３−１５０４０４号公報
【特許文献５】特開平５−１２１８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は上述した問題点に鑑み成されたもので、ソフトウェアを使用することによって簡単な構成で、ベースＯＳ上でターゲットシステムをエミュレーションで実現する際の入出力処理を高速化することを課題としている。
【課題を解決するための手段】
【００１２】
本発明によれば、ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳのアドレス変換対象外としてベースシステムのメモリにマッピングするメモリ割当手段と、エミュレータでターゲットシステムの論理アドレスをベースシステムの物理アドレスに変換したリストである物理アドレス転送リストを作成するリスト生成手段と、前記物理アドレス転送リストに基づいて、前記メモリ割当手段により確保された前記ベースシステムのメモリとＩ／Ｏ部に接続された周辺装置にアクセスするアクセス手段とを備えて成り、前記ターゲットシステムの入出力処理要求を、前記ターゲットシステムの論理アドレスと物理アドレス間の変換は前記ターゲットシステムのＯＳとエミュレータで行い、ベースシステムの論理アドレスと物理アドレス間の変換を行わずに、前記リスト生成手段が作成した物理アドレス転送リストにより、前記アクセス手段が前記周辺装置および前記メモリに直接アクセスすることを特徴するコンピュータシステムのエミュレーション方式が提供される。
【００１３】
メモリ割当手段は、ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳのアドレス変換対象外としてベースシステムのメモリにマッピングする。リスト生成手段は、エミュレータでターゲットシステムの論理アドレスをベースシステムの物理アドレスに変換したリストである物理アドレス転送リストを作成する。アクセス手段は、前記物理アドレス転送リストに基づいて、前記メモリ割当手段により確保された前記ベースシステムのメモリとＩ／Ｏ部に接続された周辺装置にアクセスする。このようにして、前記ターゲットシステムの入出力処理要求を、前記ターゲットシステムの論理アドレスと物理アドレス間の変換は前記ターゲットシステムのＯＳとエミュレータで行い、ベースシステムの論理アドレスと物理アドレス間の変換を行わずに、前記リスト生成手段が作成した物理アドレス転送リストにより、前記アクセス手段が前記周辺装置および前記メモリに直接アクセスする。
【００１４】
ここで、前記メモリ割当手段は、ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳが使用する領域とは異なる領域にマッピングするように構成してもよい。
また、前記メモリ割当手段は、システムの立ち上げ時に、前記ターゲットシステムが使用するメモリ領域を、前記ベースシステムのＯＳのアドレス変換対象外として前記ベースシステムの前記メモリにマッピングするように構成してもよい。
また、前記物理アドレス転送リストは、転送するデータの物理アドレスと転送長を組にしたデータを転送ブロック分積み上げたリストであるように構成してもよい。
【００１５】
また、本発明によれば、コンピュータを、ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳのアドレス変換対象外としてベースシステムのメモリにマッピングするメモリ割当手段と、エミュレータでターゲットシステムのＯＳのアドレス変換を実施した後の物理アドレス転送リストを作成するリスト生成手段と、前記物理アドレス転送リストに基づいて、前記メモリ割当手段により確保された前記ベースシステムのメモリとＩ／Ｏ部に接続された周辺装置にアクセスするアクセス手段として機能させると共に、前記ターゲットシステムの入出力処理要求を、前記ターゲットシステムの論理アドレスと物理アドレス間の変換は前記ターゲットシステムのＯＳとエミュレータで行い、ベースシステムの論理アドレスと物理アドレス間の変換を行わずに、前記リスト生成手段が作成した物理アドレス転送リストにより、前記アクセス手段が前記周辺装置および前記メモリに直接アクセスするように機能させることを特徴するプログラムが提供される。
【００１６】
コンピュータはプログラムを実行することにより、ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳのアドレス変換対象外としてベースシステムのメモリにマッピングするメモリ割当手段と、エミュレータでターゲットシステムのＯＳのアドレス変換を実施した後の物理アドレス転送リストを作成するリスト生成手段と、前記物理アドレス転送リストに基づいて、前記メモリ割当手段により確保された前記ベースシステムのメモリとＩ／Ｏ部に接続された周辺装置にアクセスするアクセス手段として機能すると共に、前記ターゲットシステムの入出力処理要求を、前記ターゲットシステムの論理アドレスと物理アドレス間の変換は前記ターゲットシステムのＯＳとエミュレータで行い、ベースシステムの論理アドレスと物理アドレス間の変換を行わずに、前記リスト生成手段が作成した物理アドレス転送リストにより、前記アクセス手段が前記周辺装置および前記メモリに直接アクセスするように機能する。
【００１７】
ここで、コンピュータを、前記メモリ割当手段がターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳが使用する領域とは異なる領域にマッピングするよう機能させるようにプログラムを構成してもよい。
また、コンピュータを、前記メモリ割当手段がシステムの立ち上げ時に、前記ターゲットシステムが使用するメモリ領域を、前記ベースシステムのＯＳのアドレス変換対象外として前記ベースシステムの前記メモリにマッピングするように機能させるようにプログラムを構成してもよい。
また、コンピュータを、前記物理アドレス転送リストが、転送するデータの物理アドレスと転送長を組にしたデータを転送ブロック分積み上げたリストであるように機能させるようにプログラムを構成してもよい。
【発明の効果】
【００１８】
本発明によれば、専用のハードウェアを使用することなくソフトウェアを使用することによって簡単な構成で、ベースＯＳ上でターゲットシステムをエミュレーションで実現する際の入出力処理を高速化可能なエミュレーション方式を提供することが可能になる。
また、本発明によれば、専用のハードウェアを使用することなく簡単な構成で、ベースＯＳ上でターゲットシステムをエミュレーションで実現する際の入出力処理を高速化可能なエミュレーション方式を実現するためのプログラムを提供することが可能になる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図１は本発明の実施の形態に係るコンピュータのエミュレーション方式に用いるコンピュータシステムの構成を示すブロック図である。また、図２は、図１のシステムにおけるメモリマップと動作イメージを示す図である。
図１において、１はアプリケーションプログラム、２はターゲットシステムのＯＳ（Operating System；オペレーティングシステム）（ターゲットＯＳ）、３はベースシステムのＯＳ（ベースＯＳ）、４はエミュレータ、５はプロセッサ（ＣＰＵ）、６はメモリ、７はベースＯＳ３用のベースＯＳメモリ領域、８はターゲットＯＳ２用のターゲットＯＳメモリ領域、９はＩ／Ｏ（Input Output；入出力）バス、１０は入出力手段としてのＩ／Ｏカード、１１は周辺装置（例えば、磁気ディスク装置）である。前記構成要素５、６、９、１０、１１はコンピュータを構成するハードウェア要素である。
【００２０】
メモリ領域の割当を行うメモリ割当手段として機能するメモリ初期化手段１０１は、システム起動時等のメモリ初期設定の際に、ターゲットシステムが使用するメモリ領域を、ベースＯＳ３のアドレス変換の対象としないように、即ちアドレス変換対象外でベースシステムのメモリ６にマッピングする機能を提供するものである。周辺装置１１やメモリ６にアクセスするアクセス手段として機能するドライバ１０２は、メモリ初期化手段１０１により確保されたベースシステムのメモリ６とＩ／Ｏカード１０に接続された周辺装置１１にアクセスする機能を提供するものである。リストを生成するリスト生成手段として機能する高速転送処理手段１０３は、ドライバ１０２がベースシステムの物理アドレスでアクセスできるように、エミュレータでターゲットシステムのＯＳのアドレス変換を実施した後の『物理アドレス転送リスト』を準備してドライバ１０２に渡す機能を提供するものである。メモリ初期化手段１０１、ドライバ１０２、高速転送処理手段１０３はコンピュータ（換言すればプロセッサ５）がメモリ６等の記憶手段に記憶したプログラムを実行することにより得られる機能である。
【００２１】
このように本実施の形態では、ターゲットシステムが発行する入出力処理要求はターゲットシステムの論理アドレスと物理アドレス間でのアドレス変換後、ベースシステムの論理アドレスと物理アドレス間でのアドレス変換は行わずに、エミュレータの高速転送処理手段１０３が作成した『物理アドレス転送リスト』によりドライバ１０２が周辺装置に直接アクセスすることができるように構成されている。
尚、以下の説明では、図１のアプリケーション１、ターゲットＯＳ２、ベースＯＳ３、エミュレータ４、プロセッサ５、メモリ６、ベースＯＳメモリ領域７、ターゲットＯＳメモリ領域８、Ｉ／Ｏバス９、Ｉ／Ｏカード１０、周辺装置（例えば、磁気ディスク装置）１１は、当業者にとってよく知られており、また本実施の形態とは直接関係しないので、これら構成の詳細な説明は省略している。
【００２２】
先ず、本発明の実施の形態の概要を説明すると、本実施の形態は、コンピュータシステムのエミュレーション方式において、エミュレートされる側のシステム（以下、ターゲットシステム）の入出力処理をエミュレートするシステム（以下、ベースシステム）に専用ハードウェアを追加することなく、ソフトウェア的に入出力処理を高速に行うことを特徴とするものであり又、コンピュータが前記エミュレーション方式を実行できるようにするためのプログラムを提供するものである。
【００２３】
図１および図２において、メモリ初期化手段１０１は、システム立ち上げ時の初期設定の際にターゲットシステムが使用するメモリ領域を、ベースＯＳ３のアドレス変換対象外でベースシステムのメモリ６にマッピングする機能を提供する。
ドライバ１０２は、メモリ初期化手段１０１により確保されたベースシステムのメモリ６とＩ／Ｏカード１０に接続された周辺装置１１にアクセスする機能を提供する。
高速転送処理手段１０３は、ドライバ１０２がベースシステムの物理アドレスでアクセスできるように、エミュレータ４でターゲットシステムのＯＳ２のアドレス変換を実施した後の『物理アドレス転送リスト』を準備してドライバ１０２に渡す機能を提供する。即ち、高速転送処理手段１０３は、ドライバ１０２がベースシステムの物理アドレスでアクセスできるように、ターゲットシステムの論理アドレスをベースシステムの物理アドレスに変換したリストである物理アドレス転送リストを作成する。
【００２４】
このように本実施の形態では、ターゲットシステムの入出力処理要求をターゲットシステムの論理アドレスと物理アドレス間の変換はターゲットＯＳ２とエミュレータ４で行い、ベースシステムの論理アドレスと物理アドレス間の変換を行わずに、エミュレータ４の高速転送処理手段１０３が作成した『物理アドレス転送リスト』によりドライバ１０２が周辺装置１１およびメモリ６に直接アクセスするので、ターゲットシステムの入出力処理を高速に実行することができるようになる。
【００２５】
即ち、従来行っていた２段階のアドレス変換という問題と、ターゲットＯＳメモリ領域とベースＯＳメモリ領域間のデータコピーという問題とを解決する手段として、本実施の形態では先ず、ターゲットＯＳメモリ領域８とベースＯＳメモリ領域７を分離してベースシステムのメモリ６に割当てる手段（メモリ初期化手段１０１）を設け、ターゲットＯＳメモリ領域８はベースシステムのアドレス変換対象外で、即ち、アドレス変換の対象としないようにメモリ６にマッピングできるようにする。次に、メモリ初期化手段１０１により確保されたベースシステムのメモリにアクセス可能なドライバ１０２を設ける。さらに、ドライバ１０２がベースシステムの物理アドレスでアクセスできるように、エミュレータ４でターゲットＯＳ２のアドレス変換を実施した後の『物理アドレス転送リスト』を準備して前記ドライバ１０２に渡す高速転送処理手段１０３を設けている。
【００２６】
図３は、高速転送処理手段１０３が作成した『物理アドレス転送リスト』を示す図である。物理アドレス転送リストは、転送するデータの物理アドレスと転送長（レングス）を組にしたデータを転送ブロック分（図３ではサイズ（ｎ））積み上げたリストである。図３の物理アドレス転送リストは、転送ブロックがｎ組（サイズがｎ）の前記データによって構成されている。前記物理アドレスは、エミュレータ４でターゲットシステムの論理アドレスを変換して得られたベースシステムの物理アドレスである。
図４は、本実施の形態に係るコンピュータシステムのエミュレーション方式の動作を説明するためのシーケンスチャートである。
【００２７】
以下、図１〜図４を用いて、本実施の形態の動作について詳細に説明する。特に、本実施の形態に係るコンピュータシステムのエミュレーション方式を適用したコンピュータシステムにおいて、ファイル読み込み処理の一連の流れについては詳細に説明する。
まず、コンピュータシステムの電源投入時の初期設定時またはエミュレーションシステム起動の初期設定時にメモリ初期化手段１０１がベースシステムのメモリ６にベースＯＳメモリ領域７とターゲットＯＳメモリ領域８を個別に確保し、ターゲットＯＳメモリ領域８をアドレス変換対象外に設定する（図４のステップＳ−１）。
【００２８】
アプリケーション１が入出力処理、例えばファイルの読み込み処理を要求すると、それを受けたターゲットＯＳ２がＩ／Ｏ命令を発行し（図１のＩ／Ｏ発行命令（処理（１）））、エミュレータ４がターゲットシステムのＩ／Ｏ命令をベースシステムのそれに置き換え、ベースシステムでのＩ／Ｏ処理に変換して、Ｉ／Ｏ部（Ｉ／Ｏバス９、Ｉ／Ｏカード）を起動する（図１のＩ／Ｏ起動（処理（２））、図４のステップＳ−２、３、４）。
エミュレータ４はベースシステムでのＩ／Ｏ処理に変換する際、高速転送処理手段１０３により、ベースシステムの物理アドレスでドライバ１０２がアクセスできるようにターゲットシステム論理アドレスをベースシステムの物理アドレスに変換して、図３の『物理アドレス転送リスト』を作成する（図４のステップＳ−５、６）。
【００２９】
次に、エミュレータ４はドライバ１０２に『物理アドレス転送リスト』を渡し、データ転送処理を起動する。ドライバ１０２は『物理アドレス転送リスト』に従い、周辺装置１１とメモリ６間のデータ転送処理を行う（図１のデータ転送（処理３））。データ転送処理が終了すると、ドライバ１０２はエミュレータ４にデータ転送が終了したことを通知する（図４のステップＳ−７、８、９、１０、１１）。
エミュレータ４はドライバ１０２からデータ転送終了通知を受け取ると、Ｉ／Ｏ処理の終了処理を行い、ターゲットＯＳ２にＩ／Ｏ命令の終了を通知する。ターゲットＯＳ２はＩ／Ｏ命令の終了処理を行い、アプリケーション１に対してファイルの読み込みが完了したことを通知する（図１の終了報告（処理４））。アプリケーション１はターゲットＯＳ２からの通知によりファイルの読み込み処理を終了する（ステップＳ−１２、１３、１４）。
【００３０】
以上説明したように、本実施の形態に係るコンピュータのエミュレーション方式によれば、ターゲットシステムが使用するメモリ領域を、ベースシステムのＯＳ２のアドレス変換対象外としてベースシステムのメモリ６にマッピングするメモリ初期化手段１０１と、エミュレータ４でターゲットシステムのＯＳ２の論理アドレスをベースシステムの物理アドレスに変換して得られた物理アドレス転送リストを作成する高速転送処理手段１０３と、前記物理アドレス転送リストに基づいて、メモリ初期化手段１０１により確保された前記ベースシステムのメモリ６とＩ／Ｏ部（Ｉ／Ｏバス９、Ｉ／Ｏカード１０）に接続された周辺装置１１にアクセスするドライバ１０２とを備えて成り、前記ターゲットシステムの入出力処理要求を、前記ターゲットシステムの論理アドレスと物理アドレス間の変換は前記ターゲットシステムのＯＳ２とエミュレータ４で行い、ベースシステムの論理アドレスと物理アドレス間の変換を行わずに、高速転送処理手段１０３が作成した物理アドレス転送リストにより、ドライバ１０２が周辺装置１１およびメモリ８に直接アクセスすることを特徴としている。
【００３１】
このように、システム起動時等のメモリ初期設定時に、ターゲットＯＳメモリ領域８とベースＯＳメモリ領域７を分離してベースシステムのメモリ６に確保する手段（メモリ初期化手段１０１）を設け、ターゲットＯＳメモリ領域８はベースシステムのアドレス変換の対象外としてメモリ６にマッピングしているので、アプリケーション１およびターゲットＯＳ２がベースシステムのメモリ６にアクセスする際のアドレス変換を２回から１回に削減して入出力処理を高速化することが可能になる。
【００３２】
また、本実施の形態に係るエミュレーション方式によれば、メモリ初期化手段１０１により確保されたベースシステムのメモリにアクセス可能なドライバ１０２を設け、さらに、ドライバ１０２がベースシステムの物理アドレスでアクセス出来るように、エミュレータ４でターゲットシステムのアドレス変換を実施した後の『物理アドレス転送リスト』を準備して前記ドライバ１０２に渡す高速転送処理手段１０３を設けているので、ターゲットシステムのアドレス変換を１回行った後は直接ベースシステムのメモリおよび周辺装置にアクセスして入出力処理を高速化することが可能になる。
【００３３】
また、ターゲットシステムの入出力処理要求において、ターゲットシステムの論理−物理アドレス変換をターゲットＯＳ２とエミュレータ４で行い、ベースＯＳ３によるベースシステムの論理アドレスと物理アドレス間の変換を行わずに、エミュレータの高速転送処理手段１０３が作成した『物理アドレス転送リスト』によりドライバ１０２が周辺装置およびメモリ６に直接アクセスするように構成することにより、ターゲットシステムの入出力処理を高速に実行することができるコンピュータシステムのエミュレーション方式を提供することが可能になる。
【００３４】
即ち、これにより、前述した従来のコンピュータシステムのエミュレーション方式が有していた問題である、ターゲットＯＳ２上で動作するアプリケーション１がメモリアクセスする際、ターゲットＯＳ２でアドレス変換が行われ、さらにエミュレータ４を介してベースＯＳ３でベースシステムのハードウェアをアクセスするためのアドレス変換を行う２段階のアドレス変換が必要であるのため、入出力処理の高速化を妨げているという問題、ターゲットＯＳ２上のアプリケーション１が直接、ベースＯＳメモリ領域７をアクセスすることはできないという問題、あるいは、ターゲットＯＳ２もエミュレータ４を介さずにベースＯＳメモリ領域７をアクセスすることはできないため、アプリケーション１がアクセスできるようにターゲットＯＳメモリ領域８にデータを渡すには、ベースＯＳメモリ領域７からエミュレータ４によりターゲットＯＳメモリ領域８に転送する必要があるため、入出力処理の高速化を妨げているという問題を解決することが可能になる。
【００３５】
また、本実施の形態に係るプログラムによれば、本実施の形態に係るプログラムをコンピュータで実行させることによって前記エミュレーション方式を実現することが可能になる。
【産業上の利用可能性】
【００３６】
本発明によれば、メモリや磁気ディスクへの入出力処理をはじめとする各種の入出力処理を高速化するためのエミュレーション方式に適用することが可能である。
【図面の簡単な説明】
【００３７】
【図１】本発明の最良の実施形態に用いるシステムの構成を示すブロック図である。
【図２】本発明の最良の実施形態に用いるシステム構成例におけるメモリマップと動作イメージを示す図である。
【図３】本発明の最良の実施形態で使用する物理アドレス転送リストを示す図である。
【図４】本発明の最良の実施形態のシーケンスチャートである。
【図５】従来のエミュレーション方式に用いるシステムの構成を示すブロック図である。
【図６】従来のエミュレーション方式に用いるシステムにおけるメモリマップと動作イメージを示す図である。
【符号の説明】
【００３８】
１・・・アプリケーション
２・・・ターゲットＯＳ
３・・・ベースＯＳ
４・・・エミュレータ
５・・・プロセッサ
６・・・メモリ
７・・・ベースＯＳメモリ領域
８・・・ターゲットＯＳメモリ領域
９・・・Ｉ／Ｏバス
１０・・・入出力手段としてのＩ／Ｏカード
１１・・・周辺装置
１０１・・・メモリ割当手段としてのメモリ初期化手段
１０２・・・アクセス手段としてのドライバ
１０３・・・リスト生成手段としての高速転送処理手段
【図１】
2005267293.tif 000003
【図２】
2005267293.tif 000004
【図３】
2005267293.tif 000005
【図４】
2005267293.tif 000006
【図５】
2005267293.tif 000007
【図６】
2005267293.tif 000008