JP4601577B2 - エミュレーション装置 - Google Patents

エミュレーション装置 Download PDF

Info

Publication number
JP4601577B2
JP4601577B2 JP2006128741A JP2006128741A JP4601577B2 JP 4601577 B2 JP4601577 B2 JP 4601577B2 JP 2006128741 A JP2006128741 A JP 2006128741A JP 2006128741 A JP2006128741 A JP 2006128741A JP 4601577 B2 JP4601577 B2 JP 4601577B2
Authority
JP
Japan
Prior art keywords
data
hardware
image data
emulation
target
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.)
Active
Application number
JP2006128741A
Other languages
English (en)
Other versions
JP2007299331A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2006128741A priority Critical patent/JP4601577B2/ja
Publication of JP2007299331A publication Critical patent/JP2007299331A/ja
Application granted granted Critical
Publication of JP4601577B2 publication Critical patent/JP4601577B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、互いに異なる複数のハードウェアに係るエミュレーション処理を実行可能なエミュレーション装置に関する。
近年、あるターゲットハードウェアのために開発されたソフトウェアを、ターゲットハードウェアとは異なるハードウェア(ホスト)上で動作させる、エミュレーション(emulation)と呼ばれる技術が注目されている。この技術によれば、設計変更がなされたハードウェア上で、設計変更前のハードウェア用のソフトウェアを動作させることが可能となり、ハードウェアの設計変更や買い換えに伴ってソフトウェアを書き換えたり、買い換えたりする必要がなく、ユーザの負担を軽減できる。
こうしたエミュレーション技術では、ターゲットハードウェアが備えるハードウェア資源、例えばCPU(Central Processing Unit)や、メモリ、ディスクシステム、メモリカード・リーダ・ライタなどをソフトウエアによって仮想的に実現し、ターゲットハードウェア上で実行されるべきプログラムが、これらハードウェア資源にアクセスするときには、アクセス先のハードウェア資源を実現するソフトウエアが実際のハードウェアから応答があったかのようにデータの入出力を行うことになる。
また一般に、ディスクやメモリカードなどの記憶媒体は、ホストのファイルシステム上の仮想的なファイルとして生成される。こうした記憶媒体を模したファイルでは、例えば1.44メガバイト(MB)の媒体に対応する、1.44メガバイト分の「ディスクイメージ」となっており、このディスクイメージに、記憶の対象となったデータを記録していく。例えば、このディスクイメージは、生成の時点では内部のデータは「0」で埋められており、記憶の対象となるデータが入力されるごとに、内部のデータ値を、当該記録の対象となるデータの値に設定して記録を行う。
特表2004−531788号公報
しかしながら、上記従来のエミュレーション技術において、例えば、あるターゲットハードウェアAが、エミュレーション処理を行っており、また別のターゲットハードウェアBに係るエミュレーション処理を実行していた場合に、記憶媒体内にターゲットハードウェアA用のデータと、ターゲットハードウェアB用のデータとが混在して格納されることがある。この場合、当該記憶媒体に対応するディスクイメージを生成し、各ソフトウェアのデータをそのままこのディスクイメージに格納することとなると、ターゲットハードウェアBのデータが、ターゲットハードウェアAのファイルシステム上に記録されている状態となる。
本発明は上記実情に鑑みて為されたもので、種々のターゲットハードウェアに係るエミュレーション処理を実行する際の利便性を向上できるエミュレーション装置を提供することを、その目的の一つとする。
上記従来例の問題点を解決するための本発明は、互いに異なる複数のハードウェアに係るエミュレーション処理を実行可能なエミュレーション装置であって、前記複数のハードウェアの種別ごとに、少なくとも一つの記録媒体のイメージデータを保持する記憶手段と、前記複数のハードウェアのいずれかに対応するデータを少なくとも一つ記憶する記録媒体から、当該データを読み出す読出手段と、前記読み出したデータを、それぞれの対応するハードウェアの種別に係るイメージデータ内に記録する記録手段と、を含むことを特徴としている。
ここで前記記録媒体に複数のデータが記憶されている場合に、前記読出手段が、当該複数のデータを連続的に読み出すときには、前記記録手段が、連続的に読み出された各データを、それぞれの対応するハードウェアの種別に係るイメージデータ内に振り分けて記録する、こととしてもよい。
さらに、記録媒体に複数のデータが記憶されている場合に、前記読出手段が、当該複数のデータを連続的に読み出すときに、読み出されたデータに対応するハードウェアの種別に係るイメージデータを前記記憶手段内に生成する手段であって、当該イメージデータが所定表示順において連続的に表示されることとなるよう、イメージデータを生成する手段を含んでもよい。
さらにこれら本発明のエミュレーション装置は、前記記録媒体に、エミュレーション処理において要しないデータが格納されている場合は、当該データをイメージデータに記録しないよう制御することとしてもよい。
また、本発明の一態様は、互いに異なる複数のハードウェアに係るエミュレーション処理を実行可能なエミュレーション装置であって、前記複数のハードウェアの種別ごとに、少なくとも一つの前記記録媒体のイメージデータを保持可能な記憶手段と、いずれかのハードウェアに係るエミュレーション処理の実行が開始されたときに、当該開始されたエミュレーション処理に係るハードウェアの種別に関わるイメージデータが前記記憶手段に格納されているか否かを確認し、格納されていない場合に、所定の警告処理を実行する手段と、を含むことを特徴としている。
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るエミュレーション装置1は、図1に示すように、制御部11と、記憶部12と、ストレージ部13と、入出力ユニット14と、外部記憶部15と、操作部16と、表示制御部17と、インタフェース部18とを含んで構成されている。また、このエミュレーション装置1には、インタフェース部18を介してメモリカードリーダ2が接続されている。
制御部11は、例えばプロセッサチップであり、外部記憶部15にセットされた外部記憶媒体から読み出されるプログラム(例えばパーソナルコンピュータによって実行されるアプリケーションや、ゲームプログラムなど)を記憶部12に格納して実行する。また、この制御部11はストレージ部13に格納されているプログラムに従ってエミュレーションの処理を実行する。本実施の形態では、制御部11は、複数のターゲットハードウェアのそれぞれに応じて、複数種類のエミュレーション処理を実行する。本実施の形態の制御部11の具体的な構成及び動作については、後に詳しく述べる。
記憶部12は、RAM(Random Access Memory)等の記憶素子を含んで構成され、制御部11によって実行されるプログラムを保持する。また、この記憶部12は、制御部11が処理を行うときに必要となるデータを保持するワークメモリとしても動作する。
ストレージ部13は、ハードディスクなどのディスクデバイスであり、制御部11によって実行されるプログラムを格納している。また、このストレージ部13には、制御部11がプログラムの実行過程で利用する種々のデータが保持されている。
入出力ユニット14は、いわゆるブリッジチップであり、メインバスを介して制御部11に接続され、また別のバスを介して外部記憶部15と操作部16とに接続されている。この入出力ユニット14は、制御部11から入力される指示に従って、制御部11が出力する信号(出力信号)の出力先を選択し、当該選択した出力先に対して、制御部11の出力信号を選択的に出力する。また、入出力ユニット14は、外部記憶部15や操作部16から入力される信号を制御部11に出力する。
外部記憶部15は、例えばDVD−ROM等の外部記録媒体から、記録されている情報を読み取って、入出力ユニット14を介して制御部11に出力する。本実施の形態では、この外部記憶部15にセットされる外部記憶媒体には、プログラムが暗号化されて保持され、またプログラム全体から演算されるハッシュ値が、認証情報として保持されている。操作部16は、例えばゲーム用のコントローラ、マウス、キーボード等であり、ユーザの操作を受け入れて、当該操作の内容を制御部11に出力する。
表示制御部17は、グラフィックス処理ボード等であり、制御部11から入力される指示に従って、画像を描画し、当該描画した画像の情報を外部に接続されているディスプレイ(家庭用テレビジョン装置等でもよい)に出力して、表示させる。
インタフェース部18は、例えばUSB(Universal Serial Bus)等のインタフェースであり、外部に接続されるデバイスから入力されるデータを制御部11に出力する。また、このインタフェース部18は、制御部11から入力される指示に従って、接続されているデバイスに対してデータを出力する。
メモリカードリーダ2は、エミュレーション装置1に接続されており、メモリカードを受け入れて、エミュレーション装置1から入力される指示によって、当該受け入れたメモリカードに対してデータを書き込み、また、当該受け入れたメモリカードからデータを読み出す。
次に、本実施の形態の制御部11の動作について述べる。以下の説明では、制御部11は、エミュレーションの処理として、第1のターゲットハードウェア(以下「第1ターゲット」と略称する)と、第2のターゲットハードウェア(以下「第2ターゲット」と略称する)とのエミュレーションを実行可能となっている。また、本実施の形態では、第1ターゲットまたは第2ターゲットにおいて生成された、それぞれのハードウェアでのプログラム実行時に利用されるデータを格納したメモリカードがあるものとする。
このメモリカードには、例えば図2に示すように、第1ターゲットまたは第2ターゲットのいずれか一方でのプログラム実行時に利用されるデータが少なくとも一つ格納されているケースと、図3に示すように、第1ターゲットでのプログラム実行時に利用されるデータと、第2ターゲットでのプログラム実行時に利用されるデータとが双方、少なくとも一つずつ格納されているケースと、がある。
なお、図3に示した例は、第2ターゲットによって書き込まれるメモリカードの内容例を示したもので、第1ターゲットのデータは、第2ターゲットにおいて生成された、第1ターゲットのメモリカードに対応するイメージデータ内に保持されている。
本実施の形態の制御部11は、エミュレーションの処理において利用するデータを、こうしたメモリカードから読み出して、ストレージ部13に格納する処理を実行する。この処理を行う制御部11のプログラムは、機能的には図4に示すように、読み出し部21と、ターゲット判別部22と、振り分け決定部23と、名称設定部24と、記録部25とを含んで構成される。
読み出し部21は、メモリカードリーダ2にアクセスして、メモリカードリーダ2に受け入れられているメモリカード内のデータを読み出す。本実施の形態では、図2,図3に例示するように、メモリカード内には、複数個のデータが格納されていることがあるが、この場合、読み出し部21は、各データを連続的に、順次読み出してターゲット判別部22に出力する。
ターゲット判別部22は、読み出し部21が出力する各データが、どのハードウェア上で動作するプログラムで利用されるものかを判別する。この判別を行うためには、例えば、各データのヘッダに、対応するハードウェアを特定する情報を記録しておいてもよいし、データの内容を表示して、ユーザの指示操作に応じてどのハードウェア上で動作するプログラムで利用されるものかを判別してもよい。このターゲット判別部22は、各データを、当該データがどのハードウェア上で動作するプログラムであるかを特定する情報(対応ハードウェア情報)とともに出力する。
なお、メモリカード内には、メモリカード内にデータを記録した第1ターゲット又は第2ターゲットなどのハードウェアに固有のデータ等も格納され得るが、こうしたハードウェアに固有の情報などは、エミュレーション処理において要しないデータである。そこでターゲット判別部22は、こうしたエミュレーション処理において要しないデータについては破棄し、ストレージ部13に格納しないよう制御してもよい。このようにハードウェアに固有のデータなどについてもヘッダ情報により識別可能としておけばよい。
振り分け決定部23は、ターゲット判別部22が出力するデータと、データごとの対応ハードウェア情報との入力を受けて、対応ハードウェア情報の種類ごとに、対応するデータを関連づけたエントリを含む記録データベースを生成し、記憶部12に格納する。例えば図3に示した例のように第1ターゲットのデータAと、第2ターゲットのデータBと、第1ターゲットのデータCとメモリカードに記録されており、読み出し部21がこの順序でデータを読み出した場合、振り分け決定部23は、図5に示すように、第1ターゲットを特定する対応ハードウェア情報に対してデータA及びデータCを関連づけたエントリと、第2ターゲットを特定する対応ハードウェア情報に対してデータBを関連づけたエントリとを、記録データベースに記録する。
名称設定部24は、読み出し部21が読み出しの対象としたメモリカードごとに固有の基礎名称を発行する。また、振り分け決定部23が生成した記録データベースのエントリの各々に、連続符号(例えば連番)を発行する。そして名称設定部24は、基礎名称と連続符号とを連接した名称情報を生成し、各エントリに関連づけて、記録データベースに記録する。
ここで連続符号は、ストレージ部13に格納されているのデータの一覧を、ある順序(所定表示順)で並べ替えて表示したときに、同じメモリカードから読み出したデータが連続的に表示されることとなるよう定められる符号であれば、連番であると、文字列などであるとを問わない。
記録部25は、記憶部12に格納した記録データベースを参照しつつ、この記録データベースに記録されている各データを、ストレージ部13内に格納する。本実施の形態では、これらのデータは制御部11におけるエミュレーションの処理において参照される。このためデータは、エミュレーション装置1に固有のファイルシステムにおけるデータとしてではなく、ターゲットとなるハードウェアの種別に対応するディスクやメモリカードのファイルシステムを表すイメージデータとしてストレージ部13に格納される。
ここでイメージデータは、対応するディスクやメモリカードの記録容量分のファイルとして生成される。そして当該ファイル内には、対応するハードウェアにおけるファイルシステムが形成される。つまりイメージデータは、ターゲットとなるハードウェアの種別ごとに異なる。そこで記憶部25は、記録データベースに記録されているエントリごとに、エントリに関連づけられた対応ハードウェア情報を参照して、当該参照した対応ハードウェア情報で特定されるハードウェア種別のイメージデータを生成し、ストレージ部13に格納する。
そして記録部25は、エントリごとに生成したイメージデータの各々に対し、対応するエントリに関連づけて記録データベースに記録されているデータを書き込む。
これにより、メモリカードリーダ2にセットしたメモリカードから読み出されたデータが、対応するハードウェアごとに生成されたイメージデータ内に振り分けて記録されることとなる。
このように本実施の形態によると、例えば図3に示したように、第1ターゲットのデータAと、第2ターゲットのデータBと、第1ターゲットのデータCと、第2ターゲットのハードウェア固有のデータを格納したデータWとが格納されたメモリカードを、メモリカードリーダ2に挿入し、ユーザがこのメモリカードからのデータの読み出しを指示した場合、エミュレーション装置1は、次の図6に示すように動作する。
すなわち、エミュレーション装置1は、メモリカードリーダ2に対してメモリカード内に記録されたデータの読み取りを指示し、このメモリカードに格納されている各データを、予め定められた順序で読み出す(S1)。ここでは、格納されている順に読み出すものとし、まずは第1ターゲットのデータAが読み出されるとする。
エミュレーション装置1は、このデータを利用するプログラムが対応しているハードウェアを判別する(S2)。ここでデータAは第1ターゲットにおいて動作するプログラムで利用されるので、その旨判別する。そしてエミュレーション装置1は、第1ターゲットを特定する対応ハードウェア情報と、このデータAとを関連づけて、記録データベースとして記憶部12に格納する(S3)。
エミュレーション装置1は、ここでメモリカード内のデータの読み出しが完了したか(つまり、すべてのデータを読み出したか)否かを調べる(S4)。そして読み出しが完了していないならば、処理S1に戻って処理を続ける。
この繰り返しの処理によって、データBが読み出され、第2ターゲットを特定する対応ハードウェア情報に関連づけて当該データBが記録データベース内に格納される。さらに、データCが読み出される。この段階では、第1ターゲットを特定する対応ハードウェア情報が記録データベース内に格納されているので、エミュレーション装置1は、データCを、データAとともに、第1ターゲットを特定する対応ハードウェア情報に関連づけて記録データベースに格納する。
さらにデータWについては、処理S2において、エミュレーションの処理に関係のないものであると判別される。この場合エミュレーション装置1は、このデータWを記録データベースに格納することなく破棄することとしてもよい。
一方処理S4において、読み出しが完了していれば、エミュレーション装置1は固有の基礎名称を発行する(S5)。ここで基礎名称は、例えば「名称未設定1」などとすればよい。
さらに記録データベースに格納されている対応ハードウェア情報ごとに連続符号を発行する(S6)。ここでは連続符号は連番を用いたものとし、第1ターゲットについて「_1」、第2ターゲットについて「_2」とする。そして、基礎名称と連続符号とを連接して、「名称未設定1_1」及び「名称未設定1_2」の名称を生成し、第1ターゲットの対応ハードウェア情報と、第2ターゲットの対応ハードウェア情報とに関連づけて記録データベースに格納する(名称設定処理:S7)。これにより、記録データベースの内容は図5に示すような状態となる。
エミュレーション装置1は、この記録データベースの内容を参照し、対応ハードウェア情報のうち、未だ注目エントリとして選択していないものを一つ、注目エントリとして選択する(S8)。そして、注目エントリに対応するハードウェア用のイメージデータをストレージ部13内に生成する(S9)。ここではまず第1ターゲットを注目エントリとして、ストレージ部13内に第1ターゲットに対応するイメージデータを生成する。
エミュレーション装置1は、注目エントリに関連づけて記録データベースに格納されているデータを生成したイメージデータに格納する(S10)。ここでは第1ターゲットに対応するイメージデータ内にデータA及びデータCを記録する。
さらにエミュレーション装置1は、記録データベースに未だ注目エントリとしていない対応ハードウェア情報があるか否かを調べ(S11)、注目エントリとしていない対応ハードウェア情報があれば、そのような対応ハードウェア情報を注目エントリとして選択し、処理S8に戻って処理を続ける。ここでは、第2ターゲットが未だ注目エントリとなっていないので、第2ターゲットに対応するイメージデータを生成し、このイメージデータ内にデータBを記録する。
また、処理S10において、未だ注目エントリとしていない対応ハードウェア情報がないならば、処理を終了する。
なお、エミュレーション装置1は、予めターゲットとなるハードウェアの各々について対応するイメージデータのサイズ情報を記録して保持している。そしていずれかのターゲットを注目ターゲットとして当該注目ターゲットのハードウェアに対応するイメージデータを生成する際には、当該注目ターゲットに関連づけられて記録されるサイズ情報を取得し、当該サイズ情報によって示されるデータ長のイメージデータを生成して、ストレージ部13に格納する。
また処理S3において、読み出したデータ(対象データ)を、いずれかの対応ハードウェア情報に関連づけて記録データベースに格納する際に、エミュレーション装置1は、関連づけようとする対応ハードウェア情報(対象情報)で特定されるターゲットのイメージデータのサイズ情報を取得する。そして、対象情報に関連づけられているデータのサイズの総計に、関連づけようとする対象データのサイズを加算し、この加算結果が、取得したサイズ情報を超えているか否かを調べる。ここで加算結果がサイズ情報を超えていなければ、対象データを、対象情報に関連づけて記録データベースに格納する。
一方、加算結果がサイズ情報を超えている場合は、対象情報と同じ対応ハードウェア情報のエントリを記録データベースに作成し、当該新たに生成したエントリに、対象データを関連づけて記録データベースに格納する。
つまり、一つのイメージデータのサイズを超えて複数のデータが読み出された場合には、複数のイメージデータを生成することとなるのである。
こうしてストレージ部13には、読み出し元となったメモリカードごとに異なる基礎名称と、当該メモリカードから生成されたイメージデータごとに付された連続符号とによって命名された、少なくとも一つのイメージデータが格納されるようになる。
なお、ここまでの説明では、図6の処理S1からS4のループにおいて、データを順次読み出すごとに読み出したデータのサイズを累積して加算し、当該加算結果がサイズ情報を超えている場合に、新たなエントリを生成することとしている。しかし、この処理に代えて、まず、処理S1からS4のループにおいてすべてのデータを読み出した後に、記録データベースの内容を参照してエントリを作成するようにしてもよい。
すなわち、この場合、エミュレーション装置1は、イメージデータのサイズにかかわらず、一旦、読み出したデータのすべてを、ターゲットごとに振り分けて、記録データベースに記録する。次にエミュレーション装置1は、ターゲットごと(すなわちエントリごと)に次の処理を行う。すなわち、エミュレーション装置1は、注目するエントリに関連づけられたデータのサイズ総計を算出する。そして注目するエントリのターゲットに対応するイメージデータのサイズよりも、算出したサイズ総計が大きいか否かを調べる。ここで、算出したサイズ総計が対応するイメージデータよりも大きい場合、エミュレーション装置1は、予め定めた規則に従って、注目するエントリに属するデータを、それぞれがイメージデータのサイズ以内のサイズとなるような、複数のデータ群に分割する。
ここで分割の規則は、例えば、エントリに属するデータのうち、タイトルの一部が共通するデータごとに分割する規則などがある。また、例えば読みされるデータがゲームなどのアプリケーションのデータであれば、共通するアプリケーション(ゲーム)に係るデータごとに分割してもよい。こうした規則で分割した結果として得られた複数のデータ群が、イメージデータのサイズ以内とならない場合は、さらに、格納された日付の順序などに従って、さらに多数のデータ群に分割することとしてもよい。
さらに、いずれかのターゲットに対応するイメージデータについて、複数生成する必要がない場合がある。この場合、こうしたターゲットに対応するメモリカードを読み出し元とするときには、一旦、当該メモリカードに対応するイメージデータを生成して、メモリカードの内容をそのまま、当該生成したイメージデータ内に読み出してもよい。
一例として、第1ターゲットに対応するメモリカードがXバイト、第2ターゲットに対応するメモリカードがYバイト(Y>X)と定められているとする。この場合、第2ターゲットに対応するメモリカード内に第1ターゲット用のソフトウエアのデータが格納されているときには、このデータの総量がXバイトを超えて、第1ターゲットに対応するイメージデータを複数生成する必要がある。これに対して、第2ターゲットに対応するメモリカードはYバイトと定められているため、これの内部にYバイト以上のデータが格納されることはなく、第2ターゲットに対応するイメージデータを複数生成する必要はない。以下の説明では、複数のイメージデータを生成する必要のないターゲット(ここでの第2ターゲットなど)を「確認対象外ターゲット」と呼ぶ。
このような、確認対象外ターゲットに対応する処理を行うエミュレーション装置1は、読み出し元となったメモリカードが、確認対象外ターゲットに対応するものであるか否かを確認し、確認対象外ターゲットに対応するものであれば、当該確認対象外ターゲットに対応するイメージデータを生成する。そして、当該生成したイメージデータ内に、読み出し元となったメモリカードの内容をそのまま複写して格納する。なお、このイメージデータに対しては基礎名称を発行しておく。
そして、このイメージデータ内の各データに対して、対応するハードウェアの判別を行い、他のターゲットに対応するデータが含まれていれば、当該他のターゲットに対応するイメージデータを生成して、当該他のターゲットに対応するイメージデータ内に格納する処理を行う。この場合も、連続符号の発行を行い、基礎名称に連接するなどして、他のターゲットに対応するイメージデータの名称を設定する。
一方、読み出し元となったメモリカードが、確認対象外ターゲットに対応するものでなければ、図6に示した処理を実行する。
なお、この場合において、確認対象外ターゲットに対応するメモリカード内に、他のターゲットに対応するデータのみが格納されている場合、上記の処理の結果、内容が空となった、確認対象外ターゲットのイメージデータがストレージ部13に格納されていることとなる。この場合、当該空となった確認対象外ターゲットのイメージデータは削除してもよいし、しなくてもよい。削除しない場合は、確認対象外ターゲットのメモリカードを読み出したにも関わらず、確認対象外ターゲットに対応するイメージデータがストレージ部13に見いだせないことによるユーザの不安感を払拭できる。
また、このイメージデータの名称は、ユーザが適宜変更可能となっていてもよい。また、イメージデータごとに、異なるアイコン(グラフィカルユーザインタフェースにおいてイメージデータを表す絵柄)をユーザが設定可能となっていてもよい。
次に、エミュレーション装置1が、こうして生成したイメージデータをエミュレーションの処理において利用する際の動作について述べる。
本実施の形態のエミュレーション装置1では、エミュレーションの処理において、ターゲットとなるハードウェアに備えられているインタフェースをソフトウエアによって仮想的に実現する。すなわちプログラムを実行するプロセッサからは、インタフェースがハードウェア的に実装されていたとしても、当該インタフェースを介してハードウェアからデータを読み出したり、データを出力したりするときには、当該インタフェースを介してハードウェアとのデータの入出力をソフトウエア的に行っている。そこで、ハードウェアが行うのと同様にデータの入力を受け、またハードウェアが行うのと同様の応答を入出力すれば、ソフトウエアによって、ハードウェアを仮想的に実現できる。かかるソフトウエアの構成は、エミュレータのソフトウエア技術において広く知られているので、ここでの詳細な説明を省略する。
本実施の形態では、例えば第1ターゲット、第2ターゲットにおいて、メモリカードを受け入れるメモリカードインタフェースがいずれも2つ設けられていたものとする。そこでエミュレーション装置1は、記憶部12に、これら2つのメモリカードインタフェースにそれぞれ対応する2つの仮想的なメモリインタフェースに対して、仮想的なメモリインタフェースにセットされたイメージデータを特定する情報を関連づけるためのインタフェースデータベースを保持する(図7)。ここでイメージデータを特定する情報は、イメージデータの名称としてもよい。
エミュレーション装置1は、いずれかのターゲットでのプログラムを実行するときには、図8に示すように、当該プログラムに対応するターゲットハードウェアのエミュレータとしての処理を開始し(対象となるターゲットのエミュレータの起動:S21)、起動したエミュレータのターゲットとなるハードウェアに対応するイメージデータがストレージ部13に格納されているか否かを調べる(S22)。ここで対応するイメージデータが格納されていなければ、「データが保存できませんがよろしいですか」のような文字列を表示出力して、ユーザにイメージデータを生成するか否かを問い合わせる(S23)。ユーザがイメージデータを生成する旨の応答を行うと、ここでエミュレータの処理を終了し、図6に示したデータの取り込みの処理を開始する(S24)。
なお、この処理S24では、データの取り込みを行う例に限られず、新たに空(データが格納されていない状態)のイメージデータを生成する処理を開始してもよい。また、ユーザに対して、データの取り込みを行うか、空のイメージデータを生成するかを問い合わせ、当該問い合わせに対するユーザの応答に従って、図6に示したデータの取り込みか、空のイメージデータの生成かのいずれかの処理を選択的に実行してもよい。
また処理S23においてイメージデータを生成しない旨の応答をユーザが行ったときには、エミュレーション装置1は、エミュレーションの処理を継続する(S25)。この場合、エミュレータの処理として、仮想的なメモリカードインタフェースにはメモリカードが挿入されていない状態として処理を続けることになる。
一方、処理S22において、ターゲットとなるハードウェアに対応するイメージデータがストレージ部13に格納されていれば、仮想的なメモリカードインタフェースにイメージデータを関連づけるようユーザに促す(S26)。この後、エミュレーション装置1は、エミュレーションの処理を継続する(A)。
この処理S26において、ユーザが仮想的なメモリカードインタフェースに対してイメージデータを関連づける操作を行うと、以降のプログラムの実行中に、メモリカードインタフェースへのアクセスがあったときに、当該アクセス先となったメモリカードインタフェース関連づけられたイメージデータに格納されたデータへのアクセスの処理が行われることとなる。
この処理S26においては、エミュレーション装置1は例えば、図9に示すように、ストレージ部13に格納されているイメージデータの一覧と、カーソルCとを表示し、このカーソルCをユーザの操作によって各イメージデータの間で移動させ、決定の操作が行われると、その時点でカーソルCのあるイメージデータを選択する操作が行われたとして処理を行う。
また、この図8の処理S22では、ターゲットのイメージデータがあるか否かを確認し、ターゲットのイメージデータがない場合にイメージデータを生成するなどの処理を行う例について記載したが、これに代えて、例えば処理S22において、ターゲットのイメージデータが仮想的なメモリカードインタフェースに割り当てられているか否かを調べ、割り当てられていれば、エミュレータの処理を続け、割り当てられていなければ、仮想的なメモリカードインタフェースにイメージデータを関連づけるようユーザに促すようにしてもよい。
なお、この一覧において、各イメージデータは、例えば名称順に配列される。既に説明したように本実施の形態では、同じメモリカードから読み出されたデータを保持するイメージデータには、当初は基礎名称として同じ名称が付されているので、ここで互いに隣接して表示されることとなる。
また一覧においては、各イメージデータに関連づけされたアイコンが表示される。ここでアイコンは、ユーザが特に画像を指定している場合は当該指定された画像のアイコンとなり、指定していない場合は、デフォルトで予め指定されているアイコンが表示される。このデフォルトのアイコンの画像は、各イメージデータの対応しているハードウェアごとに異なる画像としてもよい。
ユーザは、この一覧からイメージデータの一つを選択する操作を行い(図10(a))、さらにメニューを表示させる操作を行って(図10(b))、仮想的なメモリカードインタフェースへのセットを指示する「差込口割当て」を選択する。ここでは第1、第2ターゲットにおいて、メモリカードインタフェースが複数あるとしていたので、ここで「差込口割当て」が選択されると、当該複数あるメモリカードインタフェースに対応する複数の仮想的なメモリカードインタフェースのどちらにセットするか(割り当てるか)をさらに選択させる画面が表示される(図10(c))。そして、いずれかの仮想的なメモリカードインタフェースが選択されると、図7に示したインタフェースデータベースにおいて、選択された仮想的なメモリカードインタフェースに関連づけて、選択したイメージデータを特定する情報を関連づける。また、このようにして割り当てを行ったイメージデータのアイコンを、図10(d)に示すように、メモリカードインタフェースに差し込まれたかのような画像に変更する。なお、ここでどちらの仮想的なメモリカードインタフェースにセットされたのかを表す情報を併せて表示してもよい(X)。
また、このように割り当てが行われたイメージデータを、一覧から選択する操作を行い、メニューを表示させたときには、「取り出し」のメニューを表示するようにし、この「取り出し」が選択されたときには、インタフェースデータベースにおける対応するイメージデータを特定する情報を削除し、イメージデータのアイコンを、それが仮想的なメモリカードインタフェースに割り当てられる以前のアイコンの画像に戻す。
さらに本実施の形態では、エミュレーションの処理において、ターゲットでのプログラムを実行している間にも、このイメージデータの割り当てができるようにしておいてもよい。
この場合、エミュレーションの処理と並列的に実行されるユーザインタフェースの処理を起動する操作を受けて、当該ユーザインタフェースの処理において、操作部16からの指示操作の内容を受けて、エミュレーションの処理に伝達しないようにしたうえで、このユーザインタフェースにおいてメニューを表示し、この表示されるメニューに、イメージデータで表される仮想的なメモリカードの差込口を割り当てる旨のメニュー項目を含めておく。このメニューに対する操作が行われている間、エミュレーションの処理におけるターゲットのプログラムの実行は、継続されてもよい。
ユーザがこの仮想的なメモリカードの差込口を割り当てる旨のメニュー項目を選択した場合、エミュレーション装置1は、図9に示したのと同様の一覧を表示して、割り当ての対象となるイメージデータを選択させる。そして図10に示したのと同様の表示により、割り当てを実行させる。
さらにこのときには、プログラム内から書き込みを行う可能性のあることに配慮して、イメージデータの一覧を表示する際に、イメージデータの「空き容量」(生成したイメージデータのサイズのうち、イメージデータ内に記録されたデータの総データ量を差し引いた値)を演算して、それぞれのイメージデータの名称などとともに表示してもよい。
このように本実施の形態によると、第2ターゲットが、第1ターゲットのエミュレーション処理を実行していた場合に、当該第2ターゲットに対応するメモリカードなどの記憶媒体内に、第2ターゲットのデータと、第1ターゲットのデータとが混在して格納されても、これらから、それぞれ第1ターゲットに対応するイメージデータと、第2ターゲットに対応するイメージデータとを生成し、それぞれのイメージデータ内に対応するターゲットのデータを記録することとした。
本発明の実施の形態に係るエミュレーション装置とそれに接続されるメモリカードリーダの構成例を表すブロック図である。 メモリカードの内容例を表す説明図である。 メモリカードの内容の別の例を表す説明図である。 本発明の実施の形態に係るエミュレーション装置の例を表す機能ブロック図である。 本発明の実施の形態に係るエミュレーション装置における記録データベースの例を表す説明図である。 本発明の実施の形態に係るエミュレーション装置の動作例を表すフローチャート図である。 本発明の実施の形態に係るエミュレーション装置での仮想的なメモリカードインタフェースへのイメージデータの割り当てを保持するデータベースの例を表す説明図である。 本発明の実施の形態に係るエミュレーション装置におけるエミュレーション処理の動作例を表すフローチャート図である。 本発明の実施の形態に係るエミュレーション装置が表示する画面例を表す説明図である。 本発明の実施の形態に係るエミュレーション装置の表示する画面の遷移例を表す説明図である。
符号の説明
1 エミュレーション装置、2 メモリカードリーダ、11 制御部、12 記憶部、13 ストレージ部、14 入出力ユニット、15 外部記憶部、16 操作部、17 表示制御部、18 インタフェース部、21 読み出し部、22 ターゲット判別部、23 振り分け決定部、24 名称設定部、25 記録部。

Claims (5)

  1. 第1のハードウェアに係るエミュレーション処理と、第2のハードウェアに係るエミュレーション処理と、を実行可能なエミュレーション装置であって、
    前記第2のハードウェアが、前記第1のハードウェアに係るエミュレーション処理が実行可能であり、
    前記第1のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータである第1イメージデータと、前記第2のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータである第2イメージデータとを保持する記憶手段と、
    前記第2のハードウェアでのプログラム実行時に利用されるデータである第2利用データと、前記第2のハードウェアにおいて生成された前記第1のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータ内に保持されている、前記第1のハードウェアでのプログラム実行時に利用されるデータである第1利用データと、が格納された記録媒体から、前記第1利用データと前記第2利用データとを読み出す読み出し手段と、
    前記読み出し手段により読み出された前記第1利用データを前記記憶手段に保持されている前記第1イメージデータ内に記録し、前記読み出し手段により読み出された前記第2利用データを前記記憶手段に保持されている前記第2イメージデータ内に記録する記録手段と、
    を含むことを特徴とするエミュレーション装置。
  2. 請求項1に記載のエミュレーション装置であって、
    前記記録媒体に複数のデータが記憶されている場合に、前記読出手段が、当該複数のデータを連続的に読み出すときには、
    前記記録手段が、連続的に読み出された各データを、当該データが前記第1利用データである場合に前記第1イメージデータ内に記録し、当該データが第2利用データである場合に前記第2イメージデータ内に記録する、
    ことを特徴とするエミュレーション装置。
  3. 請求項2に記載のエミュレーション装置であって、
    記録媒体に複数のデータが記憶されている場合に、前記読出手段が、当該複数のデータを連続的に読み出すときに、
    読み出されたデータに対応するハードウェアに対応する記録媒体のファイルシステムを表すイメージデータを前記記憶手段内に生成する手段であって、当該イメージデータが所定表示順において連続的に表示されることとなるよう、イメージデータを生成する手段を含むことを特徴とするエミュレーション装置。
  4. 請求項1から3のいずれか一項に記載のエミュレーション装置であって、
    前記記録媒体に、エミュレーション処理において要しないデータが格納されている場合は、当該データをイメージデータに記録しないよう制御することを特徴とするエミュレーション装置。
  5. 第1のハードウェアに係るエミュレーション処理と、第2のハードウェアに係るエミュレーション処理と、を実行可能なエミュレーション装置であって、
    前記第2のハードウェアが、前記第1のハードウェアに係るエミュレーション処理が実行可能であり、
    前記第1のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータである第1イメージデータと、前記第2のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータである第2イメージデータとを保持可能な記憶手段と、
    前記第1のハードウェア又は前記第2のハードウェアに係るエミュレーション処理の実行が開始されたときに、当該開始されたエミュレーション処理に係るハードウェアに対応する記録媒体のファイルシステムを表すイメージデータが前記記憶手段に格納されているか否かを確認し、格納されていない場合に、所定の警告処理を実行する手段と、

    前記第2のハードウェアでのプログラム実行時に利用されるデータである第2利用データと、前記第2のハードウェアにおいて生成された前記第1のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータ内に保持されている、前記第1のハードウェアでのプログラム実行時に利用されるデータである第1利用データと、が格納された記録媒体から、前記第1利用データと前記第2利用データとを読み出す読み出し手段と、
    前記読み出し手段により読み出された前記第1利用データを前記記憶手段に保持されている前記第1イメージデータ内に記録し、前記読み出し手段により読み出された前記第2利用データを前記記憶手段に保持されている前記第2イメージデータ内に記録する記録手段と、
    を含むことを特徴とするエミュレーション装置。
JP2006128741A 2006-05-02 2006-05-02 エミュレーション装置 Active JP4601577B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006128741A JP4601577B2 (ja) 2006-05-02 2006-05-02 エミュレーション装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006128741A JP4601577B2 (ja) 2006-05-02 2006-05-02 エミュレーション装置

Publications (2)

Publication Number Publication Date
JP2007299331A JP2007299331A (ja) 2007-11-15
JP4601577B2 true JP4601577B2 (ja) 2010-12-22

Family

ID=38768751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006128741A Active JP4601577B2 (ja) 2006-05-02 2006-05-02 エミュレーション装置

Country Status (1)

Country Link
JP (1) JP4601577B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62274342A (ja) * 1986-05-22 1987-11-28 Nec Corp クロスソフトウエアフアイルによるクロスソフトウエアシステムの管理方式
JP2004531788A (ja) * 2000-12-21 2004-10-14 コネクティクス コーポレイション エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62274342A (ja) * 1986-05-22 1987-11-28 Nec Corp クロスソフトウエアフアイルによるクロスソフトウエアシステムの管理方式
JP2004531788A (ja) * 2000-12-21 2004-10-14 コネクティクス コーポレイション エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法

Also Published As

Publication number Publication date
JP2007299331A (ja) 2007-11-15

Similar Documents

Publication Publication Date Title
CN102929786B (zh) 非易失性存储设备集合的易失性存储器表示
US7660604B2 (en) Mobile terminal
JP3522250B2 (ja) パーティション作成方法および削除方法、プログラムを記録した記録媒体、情報処理装置
JP5149912B2 (ja) 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用
CN1873689B (zh) 图像处理设备、方法和存储有程序的存储介质
US20130305191A1 (en) Image selection device and control method thereof
JP2854636B2 (ja) 携帯可能媒体の発行装置及び発行方法
JP2006351004A (ja) 携帯端末機のメモリ管理方法
CN103703436A (zh) 数据处理装置、数据处理方法、数据处理程序、以及记录该程序的计算机可读取的记录介质
JP2009043162A (ja) 仮想ライブラリ装置、仮想ライブラリシステム、仮想ライブラリ装置の論理ボリューム複写方法。
JPH09319769A (ja) データベースシステム及びネットワークデータベースシステム及びデータ検索方法
US6233664B1 (en) Apparatus and method for swapping contents between main memory and auxiliary memory and web video phone adopting the apparatus
WO2004057456A1 (ja) 印刷制御装置及び印刷制御方法
CN100365601C (zh) 仿真系统和仿真方法
JP4601577B2 (ja) エミュレーション装置
JP5014871B2 (ja) プログラム起動装置、プログラム起動方法、起動処理プログラム及び集積回路
JP4897359B2 (ja) メモリ管理装置及びメモリ管理方法及びプログラム
KR101106568B1 (ko) 모바일기기용 파일 정렬 시스템 및 그 방법
US20020083291A1 (en) Nonvolatile semiconductor memory
JP4197679B2 (ja) 印刷制御装置及び印刷制御方法
CN1638843B (zh) 游戏装置及其控制方法
JP2006031123A (ja) Usbメモリ装置およびusbメモリ装置制御プログラム
JPH1021123A (ja) 情報処理装置
JP2006309536A (ja) ファイル管理プログラム、及びファイル管理装置
JP2004199827A (ja) データ書き込み装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091228

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4601577

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250