| 【発明の名称】 |
エミュレート装置及び部品、エミュレーション方法、記録媒体、プログラム |
| 【発明者】 |
【氏名】豊 禎治
|
| 【要約】 |
【課題】処理能力をソフトウエアが要求する内容に応じて正しく適合させるエミュレータ技術を提供する。
【解決手段】パソコンオペレーティングシステムのような処理能力調整手段を持たないエンタテインメント装置にエミュレータ420を組み込む。エミュレータ420は、エンタテインメント装置で実行されるソフトウエアが、当該装置が具備する処理能力の変更を要求するものかどうかを判定部422で判定し、処理能力の変更を要求するものである場合は、そのソフトウエアについて事前又は事後的に供給される所定の変更パラメータにより特定される範囲内でエンタテイメント装置の処理能力を変更させる。 |
【特許請求の範囲】
【請求項1】 処理能力調整手段を持たない情報処理装置に組み込まれる装置であって、前記情報処理装置で実行されるソフトウエアが、当該情報処理装置が具備する処理能力の変更を要求するものかどうかを判定する判定手段と、前記ソフトウエアが処理能力の変更を要求するものである場合に、前記ソフトウエアについて事前又は事後的に供給される所定の変更パラメータにより特定される範囲内で前記情報処理装置の処理能力を変更させる調整手段と、を備えてなる、エミュレート装置。 【請求項2】 処理能力調整手段を持たない情報処理装置に組み込まれる装置であって、前記情報処理装置で実行されるソフトウエアが、当該情報処理装置が具備する処理能力の変更を要求するものかどうかを判定する判定手段と、前記ソフトウエアが、前記情報処理装置の機能的な処理能力の変更を要求するものである場合は当該情報処理装置の機能構成を所定の構成に変更させ、前記情報処理装置において実行される特定処理の全部又は一部の能力の変更を要求するものである場合はソフトウエア毎に事前又は事後的に供給される所定の変更パラメータにより特定される範囲で当該特定処理の能力を変更させる調整手段と、を備えてなる、エミュレート装置。 【請求項3】 前記情報処理装置が、主従関係を有する複数のプロセッサを具備するエンタテインメント装置であり、当該エンタテインメント装置におけるプロセッサの主従関係が前記ソフトウエアの種別に応じて切り替わるように構成されている、請求項1又は2記載のエミュレート装置。 【請求項4】 前記判定手段が、前記ソフトウエアを記録したメディアを識別することで前記判定を行うように構成されている、請求項1又は2記載のエミュレート装置。 【請求項5】 前記調整手段は、前記処理能力の変更を要求するソフトウエアであると判定した場合に、当該ソフトウエアに含まれるバイナリ情報を前記情報処理装置で実行可能なバイナリ情報に自動変換することにより当該情報処理装置の処理能力の変更を行うように構成されている、請求項1記載のエミュレート装置。 【請求項6】 前記調整手段が、予め用意された内部記録媒体に記録されている第1変更パラメータ、前記情報処理装置に事後的に装着される書換不能な記録媒体に記録されている第2変更パラメータ、前記情報処理装置に事後的に装着される書換可能な記録媒体に記録されている第3変更パラメータのいずれかを選択的に読み取り、読み取ったパラメータにより特定される範囲で前記処理能力の変更を行うように構成されている、請求項1ないし5のいずれかの項記載のエミュレート装置。 【請求項7】 前記調整手段が、第3変更パラメータ、第2変更パラメータ、第1変更パラメータの順に優先的に読み取るように構成されている、請求項6記載のエミュレート装置。 【請求項8】 前記変更パラメータが、ソフトウエアにより実現される複数の処理のうち情報処理装置の機能に依存した処理項目毎に定められており、前記判定手段は、前記内部記録媒体、書換不能な記録媒体又は書換可能な記録媒体のいずれかから変更パラメータが定められている処理項目があるかどうかを探索し、処理項目がある場合に前記処理能力の変更を要求するソフトウエアであると判定するように構成されるものであり、前記調整手段は、当該処理項目により特定される処理の単位時間あたりの速度を前記変更パラメータによって定まる速度に調整するように構成されるものである、請求項6記載のエミュレート装置。 【請求項9】 実行されるソフトウエアが自装置の処理能力の変更を要求するものである場合に当該要求内容を判別して前記処理能力の変更を行う手段を備えた情報処理装置に組み込まれたときに、当該情報処理装置上に、予め所定の記録媒体に記録されている第1変更パラメータ、事後的に装着される書換不能な記録媒体に記録されている第2変更パラメータ、事後的に装着される書換可能な記録媒体に記録されている第3変更パラメータのいずれかを選択的に読み取り、読み取ったパラメータにより特定される範囲内で前記処理能力を変更する手段を形成させる、エミュレート部品。 【請求項10】 処理能力調整手段を持たない情報処理装置において実行される方法であって、前記情報処理装置に読みとられるソフトウエアが、当該情報処理装置が具備する処理能力の変更を要求するものかどうかを判定する過程と、前記ソフトウエアが前記処理能力の変更を要求するものと判定された場合に、当該ソフトウエアについて事前又は事後的に供給される所定の変更パラメータにより特定される範囲内で前記処理能力を変更させる過程とを含む、ソフトウエアのエミュレーション方法。 【請求項11】 処理能力調整手段を持たない情報処理装置に、下記の処理を実行させるためのプログラムが記録されている、前記情報処理装置が読み取り可能な記録媒体。 (1)前記情報処理装置で実行されるソフトウエアが、当該情報処理装置が具備する処理能力の変更を要求するものかどうかを判定する処理、(2)前記ソフトウエアが前記処理能力の変更を要求するものである場合に当該ソフトウエアについて事前又は事後的に供給される所定の変更パラメータにより特定される範囲内で前記処理能力を変更させる処理。 【請求項12】 実行されるソフトウエアに応じて自装置の処理能力の変更を可能にする手段を備えた情報処理装置に離脱自在に装着される記録媒体であって、前記情報処理装置の起動後前記ソフトウエアの実行前に読み取られる第1領域に前記ソフトウエアの種別を前記情報処理装置に認識させるための種別コードが記録されており、第1領域の次に前記情報処理装置に読み取られる第2領域に、前記ソフトウエアが前記処理能力の変更を要求するものである場合に読みとられる当該処理能力の変更部分及び変更量を特定するための所定の変更パラメータが記録されている、前記情報処理装置が読み取り可能な記録媒体。 【請求項13】 処理能力調整手段を持たない情報処理装置に、下記の処理を実行させるためのプログラム。 (1)前記情報処理装置で実行されるソフトウエアが、当該情報処理装置が具備する処理能力の変更を要求するものかどうかを判定する処理、(2)前記ソフトウエアが前記処理能力の変更を要求するものである場合に当該ソフトウエアについて事前又は事後的に供給される所定の変更パラメータにより特定される範囲内で前記処理能力を変更させる処理。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、例えばエンタテインメント装置のような情報処理装置において使用されるエミュレーション技術に係り、より詳しくは、ある情報処理装置用に開発されたアプリケーションソフトウエアを、処理能力が異なる他の情報処理装置で適切に実行できるようにするための改良された手法に関する。 【0002】 【従来の技術】処理能力が相対的に高いエンタテインメント装置(以下、「上位機」)で、処理能力が相対的に低いエンタテインメント装置(以下、「下位機」)用のアプリケーションソフトウエア(以下、「対象AP」)を実行しようとする場合、あるいは、他のエンタテインメント装置用の対象APを特定のエンタテインメント装置で実行しようとする場合に、上位機又は特定のエンタテインメント装置に於いてエミュレート装置が使用されている。エミュレート装置の基本的な機能は、対象APの実行が本来的に予定されたエンタテインメント装置の実行環境を他のエンタテインメント装置上で形成するものであり、ソフトウエア、ハードウエア、あるいはこれらの組合せによって実現される。 【0003】 【発明が解決しようとする課題】従来のエミュレータ装置では、対象APに含まれるコマンドの組合せによっては、エンタテインメント装置で該当処理を行うときの動作タイミングが、本来的に予定された対象AP用の動作タイミングと合致せず、不具合が生じる場合がある。このような事態を防止するためには、対象APの動作タイミングを実行環境に合致させるように補正するためのパラメータ(「変更パラメータ」)を用意しておくことが考えられる。 【0004】しかし、どの対象APが変更パラメータを必要とするか、変更パラメータによる補正をどの程度にしたら良いかが、エンタテインメント装置の出荷後に判明する場合がある。この場合は、エンタテインメント装置を回収して、エミュレート装置の同期タイミングを変更すれば良いが、これは煩わしい作業である。 【0005】このような事態は、エンタテインメント装置のみならず、オペレーティング・システムのような処理能力調整手段を持たない情報処理装置で使用されるエミュレート装置において共通に生じる。 【0006】本発明の主たる課題は、このような問題を解消して、情報処理装置の処理能力を対象AP用に正しく適合させることができる、エミュレート装置、エミュレート部品、エミュレーション方法及びプログラムを提供することにある。 【0007】 【課題を解決するための手段】本発明が提供するエミュレート装置は、処理能力調整手段を持たない情報処理装置に組み込まれる装置であって、前記情報処理装置で実行されるソフトウエアが当該情報処理装置が具備する処理能力の変更を要求するものかどうかを判定する判定手段と、前記ソフトウエアが処理能力の変更を要求するものである場合に、前記ソフトウエアについて事前又は事後的に供給される所定の変更パラメータにより特定される範囲内で前記情報処理装置の処理能力を変更させる調整手段とを備えてなる。調整手段は、より具体的には、前記ソフトウエアが前記情報処理装置の機能的な処理能力の変更を要求するものである場合は当該情報処理装置の機能構成を所定の構成に変更させ、前記情報処理装置において実行される特定処理の全部又は一部の能力の変更を要求するものである場合はソフトウエア毎に事前又は事後的に供給される所定の変更パラメータにより特定される範囲で当該特定処理の能力を変更させるように構成する。「処理能力調整手段を持たない情報処理装置」とは、例えば、パーソナルコンピュータやワークステーションのようにオペレーティング・システムを搭載したものではない、簡易なコンピュータないしシステムをいう。 【0008】本発明が適用される情報処理装置は、例えば主従関係を有する複数のプロセッサを具備するエンタテインメント装置である。このようなエンタテインメント装置では、プロセッサの主従関係が前記ソフトウエアの種別に応じて切り替わるように構成する。判定手段は、前記ソフトウエアを記録したメディアを識別することで前記判定を行うように構成される。あるいは、処理能力の変更を要するソフトウエアであると判定した場合に、当該ソフトウエアに含まれるバイナリ情報を前記情報処理装置で実行可能なバイナリ情報に自動変換することにより構成される。調整手段は、予め用意された内部記録媒体に記録されている第1変更パラメータ、前記情報処理装置に事後的に装着される書換不能な記録媒体に記録されている第2変更パラメータ、前記情報処理装置に事後的に装着される書換可能な記録媒体に記録されている第3変更パラメータのいずれかを選択的に読み取り、読み取ったパラメータにより特定される範囲で前記処理能力の変更を行うように構成される。各変更パラメータは、ソフトウエアにより実現される複数の処理のうち情報処理装置の機能に依存した処理項目毎に定められている。前記判定手段は、具体的には、前記内部記録媒体、書換不能な記録媒体又は書換可能な記録媒体のいずれかから変更パラメータが定められている処理項目があるかどうかを探索し、処理項目がある場合に前記処理能力の変更を要求するソフトウエアであると判定するように構成される。この場合、前記調整手段は、当該処理項目により特定される処理の単位時間あたりの速度を前記変更パラメータによって定まる速度に調整するように構成される。 【0009】本発明は、また、情報処理装置において読みとられるソフトウエアのエミュレーション方法を提供する。この方法は、上記のような処理能力調整手段を持たない情報処理装置において実行される方法であって、実行されるソフトウエアが、前記情報処理装置が具備する処理能力の変更を要求するものかどうかを判定する過程と、変更を要求するものである場合に前記ソフトウエアについて事前又は事後的に供給される所定の変更パラメータにより特定される範囲内で前記処理能力を変更させる過程とを含む方法である。 【0010】本発明は、さらに、処理能力調整手段を持たない情報処理装置に、下記の処理を実行させるためのプログラムが記録されている、前記情報処理装置が読み取り可能な記録媒体、及びこのようなプログラムを提供する。 (1)前記情報処理装置で実行されるソフトウエアが、当該情報処理装置が具備する処理能力の変更を要求するものかどうかを判定する処理、(2)前記ソフトウエアが前記変更を要求するものである場合に当該ソフトウエアについて事前又は事後的に供給される所定の変更パラメータで特定される範囲内で前記処理能力を変更させる処理。また、実行されるソフトウエアに応じて自装置の処理能力の変更を行う手段を備えた情報処理装置に離脱自在に装着される記録媒体であって、前記情報処理装置の起動後前記ソフトウエアの実行前に読み取られる第1領域に前記ソフトウエアの種別を前記情報処理装置に認識させるための種別コードが記録されており、第1領域の次に前記情報処理装置に読み取られる第2領域に、前記ソフトウエアが前記処理能力の変更を要求するものである場合に読みとられる当該処理能力の変更部分及び変更量を特定するための所定の変更パラメータが記録されている、前記情報処理装置が読み取り可能な記録媒体を提供する。 【0011】 【発明の実施の形態】以下、図面を用いて、本発明の実施の形態について詳細に説明する。 =第1実施形態=第1実施形態では、処理能力調整手段を持たない情報処理装置の一例となるエンタテインメント装置に組み込まれるエミュレート装置の実施の形態を説明する。ここでは、処理能力が各種画像の描画速度であるものとし、変更パラメータは、特定の画像処理の際の描画速度を調整するものであることを前提として説明する。但し、描画速度は、エンタテインメント装置が具備する処理能力の例示である。 【0012】<上位機>図1は、本発明のエミュレート装置が組み込まれるエンタテインメント装置の要部構成図である。このエンタテインメント装置は、MPU(micro processor unit)100とGP(graphical processor)110とが専用バス101で接続され、MPU100とIOP(I/O processor)120とがバス(SBUS)102で接続され、さらに、メディアからソフトウエア等を読みとるメディアデコーダ130、音処理手段であるSPU(sound processor unit)140及びROM(read only memory)150が、バス(SSBUS)103を通じてIOP120に接続されている。MPU100はメインメモリ160を備え、IOP120はIOPメモリ170を備えている。IOP120には、さらに、コントローラ180とメモリカード190とが接続されている。 【0013】MPU100の基本的な機能は、ROM150に格納された各種プログラムや、CDやDVD等のメディア200からメインメモリ160にロードされた対象APを実行することによって、所定の処理を行うことである。GP110は、このエンタテインメント装置の描画処理機能を受け持つグラフィックスプロセッサである。具体的には、MPU100からの指示に従って対象APについての描画処理を行う。 【0014】IOP120は、MPU100と周辺装置(メディアデコーダ130やSPU140等)との間のデータのやり取りを制御する入出力用サブ・プロセッサ(MPU100に対して従となるプロセッサ)である。メディアデコーダ130は、メディア200からデータを読み出し、そのメインメモリ160への転送を行う。SPU140は、サウンド再生処理プロセッサであり、サウンドバッファ(不図示)に格納された圧縮波形データを、MPU100等からの発音命令に基づき所定のサンプリング周波数で再生する。 【0015】ROM150は、本発明のエミュレート部品の一例となるもので、起動時等にMPU100やIOP120が実行するプログラムが格納されている読み出し専用のメモリである。ROM150には、MPU100とIOP120とが共用するプログラム並びに各プロセッサ専用のプログラムが分離して格納される。MPU100専用のプログラムとしては、後述するエミュレータ用のプログラムがある。メインメモリ160、IOPメモリ170は、それぞれMPU100、IOP120の作業用メモリとして機能する。コントローラ180は、ゲーム等の実行中に、プレイヤーの意図をアプリケーション等に伝達するインタフェースである。 【0016】メモリカード190は、書換可能な可搬性の不揮発性二次記録媒体であり、MPU100で実行された処理の処理結果や設定情報などが格納される。また、後述する本発明のエミュレータによる画像処理速度を微調整するための変更パラメータが格納されるようになっている。 【0017】本実施形態では、メディア200は、書換不能な可搬性記録媒体であることを想定している。このメディア200には、プログラムやプログラムを実行する際に必要となるデータ類が格納される。これらのデータの中には、メディア200が上位機用のデータが格納されているか下位機用のデータが格納されているかを判別するためのコードも含まれる。下位機用のデータには、エミュレータによる描画速度を微調整するための変更パラメータが含まれる。 【0018】<下位機>図1のエンタテインメント装置に対して下位機となるエンタテインメント装置の概要を説明する。このエンタテインメント装置は、図2に示されるように、メインメモリ270を備えたCPU(central processor unit)220にGPU(graphic processor unit)210及びコントローラ280が接続され、さらに、バス290を介してCDデコーダ230、SPU240、ROM250がCPU220に接続されている。CPU220の基本的な機能は、ROM250に格納されたプログラムや、CD300からメインメモリ270にロードされたプログラムを実行することによって、所定の処理を行うことである。CPU220の動作周波数は、上位機のMPU100の動作周波数より低い周波数となっている。GPU210は、CPU220からの指示に従って描画処理を行うグラフィックスプロセッサである。GPU210は、画像表示のためのCRTC機能やフレームバッファ(不図示)に対するポリゴンの描画機能を備える。CDデコーダ230は、CD300からその記録情報を読み出し、そのメインメモリ270への転送を行う。ROM250には、起動時等にCPU220によって実行されるプログラムが格納されている。 【0019】<エミュレート装置>エミュレート装置は、下位機との間で描画その他の処理の互換性を確保するために、機能的な処理能力を変更できるようにする第1機能、及びソフトウエアに応じて特定処理の速度を変更できるようにする第2機能を上位機に形成する。これらの各機能は、ソフトウエア的に形成しても良いが、ここでは、それらの機能を、上位機が備えるハードウエアと別途用意したソフトウエアとを組み合わせて実現する場合の例を挙げる。 (第1機能)第1機能は、MPU100又はIOP120が所定のプログラムを読み込んで実行することにより、2つの動作モード、すなわち、「通常モード」と「エミュレーションモード」とを選択的に切り替え、これによりエンタテインメント装置の機能構成を所定の構成に変更させる機能である。専用のファームウエアを設けてこの第1の機能を他の機能と分担するようにしても良い。この第1機能によって、上位機は、通常は通常モードで動作し、下位機用の対象APを実行するときに、エミュレーションモードに移行するようになる。下位機用の対象APかどうかの判別手法については、後述する。本実施形態では、エミュレーションモードでは、上位機のIOP120を下位機のCPU220として機能させ、MPU100及びGP110を下位機のGPU210として機能させる。これは、例えばIOP120が、CPU220と同一のプロセッサ・コアを備えるようにすることで実現できる。IOP120は、下位機のCPU220での実行用に用意された対象APをそのまま実行でき、下位機の場合と同様の処理動作を行う。IOP120のプロセッサ・コアは、下位機のCPU220用に用意された対象APをそのまま実行し、同様の動作を行うもの(例えば、バイナリ・コンパティブルなプロセッサ・コア)であれば良いが、本実施形態では、下位機のエンタテインメント装置との互換性をより高くするため、同一のプロセッサ・コアを用いている。 【0020】IOP120のクロックの周波数は、通常モードでは37.5MHz、エミュレーションモードでは、下位機のCPU220の動作周波数に対応した周波数、例えば33MHz、あるいは対象APを実行するのに最も適したクロックの周波数に切り替わるようにする。これにより、対象AP側が下位機のハードウエアに対して、1クロックのレベルで動作を最適化している場合であっても、確実に動作させることができる。 【0021】MPU100及びIOP120は、そのインタフェースを動作モードに応じて切り替える。エミュレーションモードでは、IOP120は、MPU100に対して、CPU220と同じインタフェースを提供し、MPU100も、IOP120に対して、GPU210と同じインタフェースを提供する。 【0022】SPU140も、エミュレーションモードと通常モードとでその動作が切り替わるようにする。すなわち、エミュレーションモードでは、下位機のSPU240とまったく同じものとして動作する。一方、通常モードでは、SPU240よりも高性能なサウンド処理を行う手段として動作する。SPU140のクロックの周波数は、エミュレーションモードでは、CD−ROMのサンプリング周波数に対応して44.1KHzとなり、通常モードでは、DVDのサンプリング周波数に対応して、48KHzとなる。 【0023】次に、第1機能の内容をより詳しく説明する。 (動作モード判定)エミュレート装置は、上位機の電源投入等を契機に、メディアデコーダ130を通じてドライブ中のメディア200が上位機用のものか、下位機用のものかを判別する。この判別は、エンタテインメント装置に最初に読み込まれるメディア200の第1領域に上位機用か或いは下位機用かを示す種別コードを記録しておき、これを読み込むとともに、メディアデコーダ130内のメディア種別レジスタ(図示せず)を参照することにより可能となる。判別の結果、上位機用のメディア200であった場合は、上位機を通常モードで立ち上げる。ドライブに何も入っていない場合も同様となる。一方、ドライブ中のメディア200が下位機用のものであった場合は、エミュレーションモードで立ち上げる。 【0024】(動作モード切替)エミュレート装置は、2系統のリセット信号を生成し、これらのリセット信号に基づいて、上記の通常モードとエミュレーションモードを切り替える。リセット信号の生成機構の一例を図3に示す。図3に示されるように、エミュレート装置は、電源コントロール/リセットIC310から出力される信号をRESET・IN信号として用いる。このRESET・IN信号は、リセット制御回路330及びOR回路340、350に入力される。リセット制御回路330からは、2種類の信号(CTL1、CTL2)が出力される。これらの信号は、OR回路340、350の他方の入力信号となる。OR回路340から出力されるのがRESET1信号、OR回路350から出力されるのがRESET2信号である。RESET1信号は、上位機のMPU100及びGP110に入力される。MPU100からは、SRESET信号が出力される。一方、RESET2信号は、IOP120及びSPU140等のSSBUS103上の各種装置に入力される。IOP120及びSPU140等には、MPU100からのSRESET信号も入力される。 【0025】以上の構成において、上位機の電源投入、あるいは上位機が備えるリセットスイッチ320の押下検知を契機に、電源コントロール/リセットIC310が、RESET・IN信号をアサートする。電源コントロール/リセットIC310は、すべての電源が立ち上がって、所定時間が経過すると、RESET・IN信号をネゲートする。リセット制御回路330は、RESET・IN信号がアサートされると、OR回路340、350に対する信号(CTL1、CTL2)をアサートする。そして、所定時間経過後、まず、IOP120、SPU140に供給されているRESET信号(RESET2)をネゲートする。これによりOR回路350に対する信号(CTL2)がネゲートされる。その後、MPU100、GP110に供給されているRESET信号(RESET1)をネゲートする。これにより、OR回路340に対する信号(CTL1)がネゲートされる。このようにRESET信号の解除のタイミングをMPU100等とIOP120等とでずらしているのは、IOP120がある程度確実に動作を開始してから、MPU100、GP110が動作を開始するようにするためである。 【0026】RESET信号(RESET1信号、RESET2信号)でリセットされた、MPU100、IOP120、SPU140等は、通常モードでの動作を開始する。そして、必要な初期化処理終了後に、エミュレーションモードに移行する場合は、MPU100が、SRESET信号をアサートする。このSRESET信号によりリセットされたIOP120及びSPU140等は、それぞれエミュレーションモードでの動作を開始する。 【0027】(インタフェース切替)前述のように、動作モードの切替に際しては、MPU100とIOP120との間のインタフェースの切り替えも行われる。以下、図4を参照して、このインタフェース切替の概要を説明する。 【0028】前提として、MPU100内あるいはその周辺にIOPインタフェース部(IOP I/F)500を設け、IOP120あるいはその周辺にMPUインタフェース部(MPU I/F)510を設けておく。IOPインタフェース部500内には2系統の内部インタフェース部(SIF部520、PGPU I/F530)が並列接続されている。MPUインタフェース部510にも2系統の内部インタフェース部(SIF部540、GPU I/F550)が並列接続されている。 【0029】SIF部520は、MPU100において、通常モード時のバス102のSBUSインタフェースを提供する。PGPUインタフェース部530は、MPU100において、エミュレーションモード時に、擬似的に下位機のGPU210と同じインタフェースを提供する。SIF部520及びPGPUインタフェース部530は、それぞれ、転送データを格納するFIFOバッファ及び転送制御等に使われるレジスタ群を備える。SIF部540は、IOP120において、通常モード時のバス102のSBUSインタフェースを提供する。GPUインタフェース部550は、IOP120において、エミュレーションモード時に、下位機のCPU220と同様のGPUインタフェースを提供する。 【0030】IOPインタフェース部500は、MPU100の内部バスのバスクロック(150MHz)に同期して動作する。一方、MPUインタフェース部510は、IOP120の動作周波数に同期して動作する。すなわち、通常モードでは、37.5(=150/4)MHzのクロックに同期して動作し、エミュレーションモードでは、後述するエミュレータ420から供給されるクロックの1/2の周波数のクロックに同期して動作する。このため、通常モードにおけるMPU100、IOP120間の通信は、同期通信になり、エミュレーションモードにおけるMPU100、IOP120間の通信は、非同期通信になる。PGPUインタフェース部530は、エミュレーションモードにおける非同期通信を吸収するためのロジックを含んでおり、IOP120から供給されるクロック(PGCLK:33MHz)が入力される。 【0031】以上のような構成の下、通常モード時は、MPU100においては、IOP120に対するインタフェースとしてSIF部520が使われ、IOP120においては、MPU100に対するインタフェースとしてSIF部540が使われる。エミュレーションモード時は、MPU100においては、PGPUインタフェース部530が使われ、IOP120においては、GPUインタフェース部550が使われる。 【0032】MPU100におけるSIF部520とPGPUインタフェース部530との切り替えは、ソフトウエア的に行われる。すなわち、リセット時は、SIF部520が選択され、その後、MPU100のプロセッサ・コアが実行するソフトウエアによって、MPU100内の特定の制御レジスタヘの書き込みが行われると、PGPUインタフェース部530に切り替えられる。IOP120におけるSIF部540とGPUインタフェース部550との切り替えは、リセット時にハードウエア的に行われる。すなわち、IOP120が、RESET信号(RESET2)でリセットされると、SIF部540が選択され、SRESET信号でリセットされると、GPUインタフェース部550が選択される。 【0033】(処理能力調整)上述のように、エミュレーションモードに移行する際には画像処理速度が変更される。この画像処理速度の変更の仕組みを図5及び図6を参照して説明する。なお、ここでは、MPU100が、入力クロックを複数用意されているものの中からいずれかの周波数に変換してIOP120に出力するPLL回路410の機能を有しているものとする。 【0034】MPU100は、上位機が具備するクロック発生器400をPLL410で周波数変換し、内部の各プロセッサ・コアの基準クロック、内部バスのバスクロック、GP110へのデータ転送の基準クロック、通常モード時の動作基準クロック、エミュレーションモード時の動作基準クロックを生成し、これを選択的にIOP120に供給する。 【0035】IOP120は、エミュレーションモード時には、MPU100から供給される所定周波数のクロックで下位機のCPU220として画像処理を行うが、特定の画像処理については、その画像処理速度が、後述するエミュレータ420によって微調整される。 【0036】(第2機能)次に、上位機における第2機能の具体例(微調整機能)を説明する。この機能は、図5に示したエミュレータ420によって実現される。エミュレータ420は、MPU100又は別途設けたCPUがエミュレータ用プログラムを読み込むことにより実現される以下のような機能ブロック、すなわち、カウンタ部421、判定部422、処理能力調整部423を備えるものである。エミュレータ用プログラムは、例えばROM150に記録されている。 【0037】カウンタ部421は、クロック発生器400で発生するクロックを一定時間毎にカウントする。判定部422は対象APが、上位機により実行されるべき特定処理の全部又は一部の能力の変更を要求するものかどうかを判定するものであり、処理能力調整部423は、ROM150、メディア200、メモリカード190のいずれかから選択的に読み取った変更パラメータにより特定される範囲で当該特定処理の能力を変更させるものである。本実施形態による変更パラメータは、例えば図6(A)に示されるようなものである。すなわち、調整対象タイトル(対象AP)毎に定めた特定の画像処理速度の調整量、例えばポリゴン描画スピード、スプライト描画スピード・・・の調整量である。図中、「0」は調整を要しないことを意味する。「1」、「2」は調整量である。処理能力調整部423は、この調整量に基づいて該当処理の速度の微調整を行う。微調整は、本来、クロック発生器400に基づく速度で行うべき描画の結果の出力タイミングを、調整量で定まるクロック分だけ遅延させることにより実現する。この遅延処理は、例えば、図6(B)に示すように、描画の結果の出力処理の過程でカウント値Cに調整量Xをセットし、カウンタ部421によるカウントのたびにカウント値Cを1ずつ減らし、そして、カウント値Cが0に達した時点で描画の結果を出力させることをその内容とする。 【0038】変更パラメータの読み取り順序は、メモリカード190があれば、それを最優先とする。メモリカード190が、対象APの変更パラメータを保持していない、或いはメモリカード190が装着されていない場合は、メディア200からの読み取りを試みる。メディア200が対象APの変更パラメータを保持していない場合は、ROM150からの読み取りを試みる。このように読取順序を定めているのは、以下の理由による。メモリカード190は、書き換え自在の記録媒体なので、もしも変更パラメータが古い情報であれば、それに他の情報が上書きされているはずであり、変更パラメータが記録されているということは、それが事後的に配給された最新のものであるという推定がある。よって、このメモリカード190を最先に探索する。メディア200は、可搬性のものであること、事後的に安価に変更パラメータを記録して配給できるものであること、通常は対象APが主たる情報として記録されており、変更パラメータが必要な対象APであれば、通常は、それが記録されていること、事後的に変更パラメータを配給する形態としては最も一般的であるという推定がある。メディア200が書き換え自在のものであれば、書き換え不能なものに優先させることは、メモリカード190の場合と同様である。ROM150は、書き換え不能な記録媒体であり、変更パラメータが記録されているのであれば、それは出荷時に記録されたものであるという推定がある。よって、以上の順序で変更パラメータを読み取るようにすれば、最新の変更パラメータを読み取る可能性が高くなる。 【0039】このように、エミュレータ420を備え、ROM150、メディア200、メモリカード190のいずれかから変更パラメータを選択的に読み取って特定処理の能力を任意に調整できるようにしたので、エンタテインメント装置の出荷後に処理能力を変更する必要がある対象AP名、変更の程度(調整範囲)が判明した場合であっても、煩わしい作業を経ずに、それを行うことができるようになる。なお、以上は、一つの対象APについて一つの変更パラメータを用いる場合の例であるが、同一の対象APに対して、ROM150、メディア200、メモリカード190のそれぞれに異なる変更パラメータを記録しておき、これらを任意に選択できるような構成も可能である。このようにすれば、変更可能な処理の種類や変更範囲の幅が広がる。 【0040】<運用形態>次に、エミュレート装置を組み込んだ上位機の動作を説明する。図7は、ブートシーケンスの処理の流れを示す図である。 【0041】電源投入或いはリセットスイッチが押されることにより、RESET信号(RESET1、RESET2)が発生する。MPU100及びIOP120は、まず、同一のブート・ベクトル・アドレスからプログラムの実行を開始する(S601)。上述のとおり本実施形態では、MPU100とIOP120とが同じアーキテクチャのプロセッサなので、ブート・ベクトル・アドレスも同一になっている。このとき、IOP120は、ROM150に直接アクセスしに行くが、MPU100は、IOP120を介して、ROM150にアクセスしに行くことになる。IOP120は、自分の初期化処理を先にするため、必要な初期化処理を終えるまで、MPU100にバスの使用権を与えず、MPU100を待ち状態にさせておく(S602)。 【0042】リセット時にMPU100及びIOP120によってアクセスされるROM150の領域には、プロセッサIDを獲得し、自分がMPU100かIOP120かを判断し、その結果に応じて、各プロセッサ用のコードにジャンプするというコードが格納されている。IOP120及びMPU100は、当該コードを実行することにより、それぞれ自分用のコードヘジャンプする。 【0043】IOP120は、自分用のコードヘジャンプすると、まず、今回のリセットがRESET信号によるリセットか、SRESET信号によるリセットかを判別する。IOP120は、特定の制御レジスタのビットを参照することにより、RESET信号によるリセットか、SRESET信号によるリセットかを判別できる。この場合、RESET信号によるリセットであるので、上位機のエンタテインメント装置としての起動を行うため、ハードウエアを上位機のエンタテインメント装置用に初期化する。そして、周辺装置(コントローラ、メディアドライブ等)のドライバのセットアップを行う。 【0044】必要な初期化処理を終了すると、IOP120は、待ち状態にあったMPU100の動作を開始させ(この状態を「MPUオン」とする)、MPU100からのリクエスト待ち状態になる(S603)。MPUオンは、IOP120が特定の制御レジスタのビットを書き替えることで行われる。 【0045】MPU100は、初期化処理を終了したIOP120によって、ROM150へのアクセスが許可されると(MPUオンになると)、ROM150の読み出し処理を行い、読み出したプログラムの実行を開始する(S604、S605)。当該プログラムにおいて、MPU100は、IOP120と同様に、自己のプロセッサIDを獲得し、自分用(MPU100用)のコードヘジャンプし、下位機と自己とで共通のオープニング画面の表示を行う。 【0046】次に、ドライブに装着されているメディア200の種別判定を行う(S606)。メディアデコーダ130は、RESET信号(RESET2)によりリセットされると、ドライブに挿入されているメディア200を識別し、その結果(上位機用メディアである/下位機用メディアである/メディアなし等)を、メディアデコーダ130内のメディア種別レジスタに反映して、コマンド待ち状態になる。 【0047】メディア種別の判定の結果、上位機用のメディア200が装着されているか、または、メディアなしの場合は、そのまま、上位機として立ち上がり、上位機用のロゴ表示等を行う(S607)。その後、MPU100は、メディア200から上位機用の対象APをメインメモリ160にロードして、実行を開始する。対象APの実行中、描画処理を行う場合は、GP110に対して描画を指示し、音声を出力する場合は、IOP120を介して、SPU140に対して音声出力を指示する。 【0048】メディア種別の判定の結果、ドライブに下位機用のメディア200が装着されていた場合は、エミュレーションモードに切り替えて、下位機として立ち上げる(S608,S609)。このとき、MPU100は、エミュレータプログラムをROM150からメインメモリ160ヘロードして実行し、エミュレータ420を形成する。 【0049】エミュレータ420は、メモリカード190にアクセスしてその対象AP用の変更パラメータが存在するかどうかを調べる。メモリカード190に変更パラメータが存在しない、或いはメモリカード190が装着されていない場合は、メディア200にアクセスして、その対象AP用の変更パラメータが存在するかどうかを調べる。メディア200に変更パラメータが記録されていない場合は、ROM150にアクセスする。変更パラメータを見つけた場合は、それを読み取って、前述のように処理速度の微調整を行う。いずれにも変更パラメータが存在しない場合は、微調整を行う必要がないと判定し、次のステップに進む。 【0050】その後、インタフェース切替及びクロック切替を行う。この結果、IOP120が、下位機のCPU220と同様の動作を開始し、下位機用のロゴ表示等を行い、互換カーネルをブートする。以後、IOP120は、下位機用の対象APを実行する。対象APの実行中、グラフィックスの描画を行う場合、IOP120は、MPU100に対してGPUコマンドを送信することによって描画を指示し、また、音声を出力する場合は、エミュレーションモードのSPU140に対して音声出力を指示する。 【0051】エミュレーションモードでは、MPU100が、下位機のGPU210として機能する。そのため、描画処理用のデータないしコマンドのフォーマット変換を行う必要がある。つまり、MPU100は、IOP120から送信されてくるGPU用のデータ等を、GP110で実行可能なようにするため、GP用のデータ等に変換する。この場合のMPU100における処理手順を示したのが図8である。PGPUインタフェース部530内のFIFOに、GPUフォーマットの描画パケットが書き込まれると、MPU100に対する割り込みが発生する。この割り込みを受けると、MPU100は、GPUフォーマットの描画パケットをPGPUインタフェース部530のFIFOから取り出す(S701)。そして、このGPUフォーマットの描画パケットをGPフォーマットの描画パケットヘ変換し、メインメモリ160に書き出す(S702)。その後、変換されたGPフォーマットの描画パケットを、GP110へ転送する(S703)。 【0052】描画コマンドのフォーマット変換の具体例を説明する。ここでは、3角形のポリゴン描画コマンドのフォーマット変換の例を説明する。GP110は、Zバッファ方式を採用し、GPU210は、Zバッファ方式を採用していないものとする。図9(a)は、この場合のGPUコマンドのフォーマット、同図(b)は、GPコマンドのフォーマットである。GPUコマンドは、1ワード、32ビットであり、GPコマンドは、1ワード、64ビットである。同図(a)、(b)において、「Code」は、描画種類を識別するためのコード、B,G,Rは、色情報である。X,Yは、座標情報であり、Zは奥行き情報である。GP110は、Zバッファ方式を採用しているため、描き順によらずに優先順位をコントロール可能である。一方、GPU210は、Zバッファ方式を採用していないので、GPUコマンドには、奥行き情報は含まれない。そのため、GPフォーマットに変換する際、Zには同一の所定値を入れる。 【0053】MPU100は、IOP120から図9(a)に示すようなGPUパケットを受け取ると、先頭の1ワードを解釈することでコマンドの種類を決定し、続くデータの内容を解釈する。そして、この解釈されたデータを並び替え、RGB,XYの精度を変換して、図9(b)に示すGPコマンドパケットを生成して、GP110へ転送する。 【0054】このように、本実施形態のエミュレート装置は、対象APが、上位機が具備する処理能力の変更を要求するものかどうかを判定し、変更部分が機能的な処理能力の変更を要求するものである場合は上位機の機能構成を変更させ、実行される特定処理の能力の変更を要求するものである場合は変更パラメータにより特定される範囲で当該特定処理の能力を変更させるようにしたので、下位機用の対象APの微妙な処理要素の違いを、事前又は事後的に上位機で確実に吸収し、その対象APを適切に実行できるようになる。 【0055】特に、エミュレータ420で、特定処理の際の処理速度を事後的に任意に調整できるようにし、しかも、そのための変更パラメータをメモリカード190、メディア200、ROM150に記録して配給できるようにしたので、対象AP用の最適な処理速度を容易に実現できるようになる。 【0056】なお、本実施形態では、エミュレート装置をハードウエアとソフトウエアの組合せによって実現した場合の例を示したが、これらをすべてソフトウエアによって実現する場合は、少なくとも上述のインタフェース切替、処理速度調整及びフォーマット変換のための機能を実現するためのプログラムをエンタテインメント装置の出荷時に所定のメモリ領域に記録しておき、運用時にこれをMPU100等が読み込んで実行するようにする。プログラムを事後的に配給可能なROMその他の記録媒体に記録し、運用時にこれをMPU100等が読み込んで実行するようにしても良い。 【0057】エミュレータ420を形成するためのエミュレータ用プログラムについても、エンタテインメント装置に事後的に交換可能な記録媒体に記録するようにしても良い。 【0058】本実施形態では、エンタテインメント装置に適用した場合について説明したが、オペレーティング・システムのような画像処理速度の調整手段を持たない他の情報処理装置についても同様に適用できることは、いうまでもないところである。なお、オペレーティング・システムが搭載されている情報処理装置にプログラムを読み込ませて実行させて本発明を実施しようとする場合は、少なくともそのプログラムに画像処理速度の調整手段を抑止する機能を組み込むことによって、対応が可能である。 【0059】=第2実施形態=次に、本発明の第2実施形態について説明する。ここでは、本発明のエミュレート装置を、事後的に取得可能なソフトウエアによって実現する場合の一例を示す。エミュレート装置を実現する上で重要なのは、他の情報処理装置用の対象APに含まれるバイナリ情報(上記のポリゴン描画コマンド等)を、その対象APを実行する側で解釈して対応処理を行えるようにすることである。通常、三次元画像の実時間処理では多量且つ多段階の演算処理を必要とするため、ハードウエアでその一部の機能、特に画像処理エンジンを実現している。しかし、対象APによっては、それを実行する側の画像処理エンジンの一部の機能を利用できるものもある。また、ある装置用の対象APであることが判明している場合は、その装置用の画像処理環境を、実行する側の装置で予め構築しておけば、それ以降は、当該装置で対象AP及び同種のAPを実行することができる。 【0060】この実施形態では、他装置用の対象APの画像処理環境(画像処理エンジンとの併用を含む)を実現するためのプログラムを、CPU及び画像処理エンジンを備えた情報処理装置で読み込んで実行することにより、メディア識別機能、画像処理環境形成機能を形成する。メディア識別機能は、対象APがどの装置用のものかを識別し、識別結果により対象APが画像処理エンジンの処理能力の変更を要するか否かを判定する。画像処理環境形成機能は、メディア識別機能により画像処理エンジンの処理能力の変更を要すると判定した場合に、対象APの画像処理環境を実現するものである。 【0061】前述のように、対象APを記録するメディアには、その対象APがどの装置用のものかを識別できるようにするための種別コード、あるいは対象APの内容を識別するためのタイトル情報が記録されている。そこで、この実施形態では、情報処理装置のCPUが、そのドライブに対象APを入れてブートした後に種別コード又はタイトル情報を読み出し、メディア識別機能により現状の画像処理エンジンの処理能力の変更を要するか否かを判定する。変更を要すると判定した場合、画像処理環境形成機能により、対象APに含まれるバイナリ情報を実行側の情報処理装置のバイナリ情報に自動変換することにより処理能力を変更するように構成されている。 【0062】第2実施形態のエミュレート装置は、対象APがどの装置用のものかを識別して、それを実行する側の情報処理装置の処理能力を最適な値に変更するようにしたので、他装置用のAPを適切に実行できるようになる。さらに処理能力の微調整が必要な場合は、第1実施形態と同様な手順で微調整を行うことになる。逆に、情報処理装置は、対象APが他装置のものである場合に、エミュレート装置による処理能力の変更を中止して動作しないようにすることも可能である。 【0063】 【発明の効果】以上の説明から明らかなように、本発明によれば、情報処理装置の処理能力を対象AP用に正しく適合させることができるようになるという、優れた効果が得られる。
|
| 【出願人】 |
【識別番号】395015319 【氏名又は名称】株式会社ソニー・コンピュータエンタテインメント
|
| 【出願日】 |
平成13年2月6日(2001.2.6) |
| 【代理人】 |
【識別番号】100099324 【弁理士】 【氏名又は名称】鈴木 正剛 (外2名)
|
| 【公開番号】 |
特開2002−132496(P2002−132496A) |
| 【公開日】 |
平成14年5月10日(2002.5.10) |
| 【出願番号】 |
特願2001−30228(P2001−30228) |
|