(57)【特許請求の範囲】
【請求項１】
処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段と、
前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段と、
設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段と、
を含むことを特徴とする情報処理装置。
【請求項２】
前記実行制御手段は、前記特定のコマンドに設定されているパラメータの値が、当該特定のコマンドとは異なるコマンドが示す処理の前記処理実行主体装置のプロセッサによる実行でのパラメータの値として用いられるよう制御する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記実行制御手段は、前記処理実行主体装置のプロセッサで実行されるよう既に制御された処理の実行でのパラメータの値として、前記特定のコマンドに設定されているパラメータの値を用いるよう制御する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記実行制御手段は、前記特定のコマンドに設定されているパラメータの値に対応付けられる処理を前記処理実行主体装置のプロセッサに実行させる、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記実行制御手段は、命令列として連続している複数の前記特定のコマンドのそれぞれに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御する、
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記取得手段は、コマンドを含む情報を順次取得し、
前記実行制御手段は、前記取得手段が所定の情報を取得した後に取得する、前記特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御する、
ことを特徴とする請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
前記実行制御手段は、設定されているパラメータの値が所定の開始値である前記特定のコマンドの直後のコマンドが示す処理から設定されているパラメータの値が所定の終了値である前記特定のコマンドの直前のコマンドが示す処理までを前記処理実行主体装置のプロセッサに実行させないよう制御する、
ことを特徴とする請求項１から６のいずれか一項に記載の情報処理装置。
【請求項８】
前記実行制御手段は、前記他種プロセッサにおけるノーオペレーションコマンド、又は、前記他種プロセッサで実行されるプログラムのデバッグ用のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御する、
ことを特徴とする請求項１から７のいずれか一項に記載の情報処理装置。
【請求項９】
処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得ステップと、
前記取得ステップで取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定ステップと、
設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御ステップと、
を含むことを特徴とする情報処理方法。
【請求項１０】
処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段、
前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段、
設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段、
としてコンピュータを機能させることを特徴とするプログラム。
【請求項１１】
処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段、
前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段、
設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段、
としてコンピュータを機能させることを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
処理の実行主体となる装置（以下、処理実行主体装置と呼ぶ。）のプロセッサとは異なる種類のプロセッサ（以下、他種プロセッサと呼ぶ。）で実行可能なコマンドが示す処理を、処理実行主体装置のプロセッサで実行できるようにするエミュレーション技術が知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
プロセッサの機能が拡張されて、他種プロセッサではできなかった処理内容の制御が、処理実行主体装置のプロセッサではできるようになることがある。また、他種プロセッサでは実行されてもよい処理が、処理実行主体装置のプロセッサでは実行されるべきではないということもある。しかし、従来のエミュレーション技術では、他種プロセッサで実行可能なコマンドの設定を行うにあたって、他種プロセッサでの処理の実行に影響を与えることなく、処理実行主体装置のプロセッサでの処理の実行を制御するような設定を行うことができなかった。
【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的の１つは、他種プロセッサで実行可能なコマンドの設定を行うにあたって、他種プロセッサでの処理の実行に影響を与えることなく、処理実行主体装置のプロセッサでの処理の実行を制御するような設定を行えるようにすることにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る情報処理装置は、処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段と、前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段と、設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段と、を含むことを特徴とする。
【０００６】
また、本発明に係る情報処理方法は、処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得ステップと、前記取得ステップで取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定ステップと、設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御ステップと、を含むことを特徴とする。
【０００７】
また、本発明に係るプログラムは、処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段、前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段、設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段、としてコンピュータを機能させることを特徴とする。
【０００８】
また、本発明に係る情報記憶媒体は、処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段、前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段、設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段、としてコンピュータを機能させることを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【０００９】
本発明によれば、設定されているパラメータの値が他種プロセッサでの処理の実行に影響を与えない他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて処理実行主体装置のプロセッサによる処理の実行が制御されるので、他種プロセッサで実行可能なコマンドの設定を行うにあたって、他種プロセッサでの処理の実行に影響を与えることなく、処理実行主体装置のプロセッサでの処理の実行を制御するような設定を行えることとなる。
【００１０】
本発明の一態様では、前記実行制御手段は、前記特定のコマンドに設定されているパラメータの値が、前記処理実行主体装置のプロセッサによる他のコマンドが示す処理の実行でのパラメータの値として用いられるよう制御することを特徴とする。
【００１１】
また、本発明の一態様では、前記実行制御手段は、前記特定のコマンドに設定されているパラメータの値に対応付けられる処理を前記処理実行主体装置のプロセッサに実行させることを特徴とする。
【００１２】
また、本発明の一態様では、前記実行制御手段は、命令列として連続している複数の前記特定のコマンドのそれぞれに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御することを特徴とする。
【００１３】
また、本発明の一態様では、前記取得手段は、コマンドを含む情報を順次取得し、前記実行制御手段は、前記取得手段が所定の情報を取得した後に取得する、前記特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御することを特徴とする。
【００１４】
また、本発明の一態様では、前記実行制御手段は、設定されているパラメータの値が所定の開始値である前記特定のコマンドの直後のコマンドが示す処理から設定されているパラメータの値が所定の終了値である前記特定のコマンドの直前のコマンドが示す処理までを前記処理実行主体装置のプロセッサに実行させないよう制御することを特徴とする。
【００１５】
また、本発明の一態様では、前記実行制御手段は、前記他種プロセッサにおけるノーオペレーションコマンド、又は、前記他種プロセッサで実行されるプログラムのデバッグ用のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御することを特徴とする。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係る情報処理装置の構成図である。
【図２】本発明の一実施形態に係る情報処理装置で実現される機能の一例を示す機能ブロック図である。
【図３】一連のグラフィックスコマンドの一例を模式的に示す図である。
【図４】一連のグラフィックスコマンドの別の一例を模式的に示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【００１８】
図１は、本発明の一実施形態に係る情報処理装置１０の構成図である。本実施形態に係る情報処理装置１０は、例えば、ゲームコンソール等である。図１に示すように、本実施形態に係る情報処理装置１０の制御部は、メインプロセッサ１２及び複数のサブプロセッサ１４（１４−１、１４−２、・・・、１４−ｎ）を含んでいる。メインプロセッサ１２及びサブプロセッサ１４はいずれもバス１６に接続されており、バス１６を介して相互にデータを送受信できるようになっている。バス１６には、さらに、メインメモリ１８、画像処理部２０が接続され、入出力処理部２２を介して、ネットワークボード２４、ハードディスクドライブ２６、ＤＶＤ−ＲＯＭやＢｌｕ−ｒａｙ（登録商標）ディスクなどの光ディスクを読み取る光ディスクドライブ２８、コントローラ３０、などが接続されている。なお、入出力処理部２２には、これら以外のユニット（例えば、ＵＳＢ（Universal Serial Bus）ポートや、カメラユニットや、スピーカや、マイク等）が接続されていてももちろん構わない。
【００１９】
メインプロセッサ１２は、システム等のプログラムを実行したり、光ディスクから読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータに基づいて、各種情報処理を行ったり、サブプロセッサ１４に対する制御を行ったりする。サブプロセッサ１４は、メインプロセッサ１２からの指示に従って、各種情報処理を行ったり、情報処理装置１０の各部を、光ディスクから読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて制御したりする。また、本実施形態では、サブプロセッサ１４にはＤＭＡＣ（Direct Memory Access Controller）が内蔵されており、メインプロセッサ１２を介さずに、メインメモリ１８に対して直接アクセスできるようになっている。
【００２０】
メインメモリ１８には、光ディスクドライブ２８やハードディスクドライブ２６から読み出されたプログラム及びデータや、通信ネットワークを介して供給されたプログラム及びデータが必要に応じて書き込まれる。メインメモリ１８は、メインプロセッサ１２やサブプロセッサ１４のワークメモリとしても用いられる。また、本実施形態では、メインメモリ１８には、本実施形態に係る情報処理装置１０にインストールされるエミュレータプログラムも記憶されることとなる。
【００２１】
画像処理部２０は、ＧＰＵ（Graphical Processing Unit）とフレームバッファとを含んで構成される。ＧＰＵは、メインプロセッサ１２やサブプロセッサ１４から供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画する。フレームバッファに描画された画像は、所定のタイミングでビデオ信号に変換されてモニタ３２に出力される。なお、モニタ３２には例えば家庭用テレビ受像機や、液晶ディスプレイが用いられる。
【００２２】
本実施形態に係るモニタ３２は、左目用の画像と右目用の画像とが交互に表されるフレームシーケンシャル方式によって三次元画像表示（３Ｄ表示）を行うことができるようになっている。そして、本実施形態に係る情報処理装置１０では、予め、画像をモニタ３２に２Ｄ表示で出力するのか、３Ｄ表示で出力するのかが設定されている。そして、３Ｄ表示が設定されている際には、ＧＰＵは、入力されるグラフィックスコマンドのそれぞれについて、左目用の画像と右目用の画像の両方を、それぞれに対応付けられるフレームバッファ内の領域にレンダリングする。
【００２３】
入出力処理部２２には、ネットワークボード２４、ハードディスクドライブ２６、光ディスクドライブ２８、コントローラ３０、等が接続される。入出力処理部２２は、メインプロセッサ１２及びサブプロセッサ１４と、ネットワークボード２４、ハードディスクドライブ２６、光ディスクドライブ２８、コントローラ３０、等との間のデータ授受を制御する。
【００２４】
ネットワークボード２４は入出力処理部２２とネットワークとに接続されており、情報処理装置１０が、ネットワークを介して外部とデータ通信するのを中継するようになっている。光ディスクドライブ２８は、メインプロセッサ１２及びサブプロセッサ１４からの指示に従って、ＤＶＤ−ＲＯＭやＢｌｕ−ｒａｙ（登録商標）ディスクなどの光ディスクに記憶されたプログラムやデータを読み取る。また、ハードディスクドライブ２６は一般的なハードディスク装置であり、ハードディスクに記憶されたプログラムやデータを読み取る。光ディスクやハードディスクには各種プログラムやデータがコンピュータ読み取り可能に記憶される。なお、情報処理装置１０は、光ディスクやハードディスク以外の、他のコンピュータ読み取り可能な情報記憶媒体に記憶されたプログラムやデータを読み取り可能に構成してもよい。コントローラ３０は、汎用操作入力手段であり、ユーザが各種操作を入力するために用いられる。入出力処理部２２は、所定時間（例えば１／６０秒）ごとにコントローラ３０の各部の状態をスキャンし、その結果を表す操作状態をメインプロセッサ１２やサブプロセッサ１４に供給する。メインプロセッサ１２やサブプロセッサ１４は、ユーザによって行われた操作の内容をその操作状態に基づいて判断する。
【００２５】
本実施形態に係る情報処理装置１０では、当該情報処理装置１０とは異なる種類のプロセッサを備える装置（以下、他種装置と呼ぶ。）で実行可能なプログラムを実行するための仮想マシンとして機能するプロセスであるエミュレータが実行される。このエミュレータは、本実施形態に係る情報処理装置１０にインストールされているエミュレータプログラムを起動することにより生成される。
【００２６】
本実施形態に係るエミュレータでは、他種装置が備える２種類のプロセッサ（ＣＰＵ（Central Processing Unit）及びＧＰＵ（Graphic Processing Unit））がエミュレートされる。以下、他種装置が備えるＣＰＵを他種ＣＰＵと呼び、他種装置が備えるＧＰＵを他種ＧＰＵと呼ぶこととする。本実施形態に係る情報処理装置１０が備えるメインプロセッサ１２やサブプロセッサ１４と他種ＣＰＵとは、命令セットが異なる。また、本実施形態に係る情報処理装置１０が備える画像処理部２０に含まれるＧＰＵと他種ＧＰＵとも命令セットが異なる。
【００２７】
本実施形態では、他種ＣＰＵのエミュレートに関する処理はメインプロセッサ１２によって実行される。また、本実施形態では、エミュレートされた他種ＣＰＵが出力するグラフィックスコマンド（他種ＧＰＵが実行可能なグラフィックスコマンド）が、メインメモリ１８に書き込まれる。そして、サブプロセッサ１４が、メインメモリ１８に書き込まれたグラフィックスコマンドを、情報処理装置１０の画像処理部２０に含まれるＧＰＵが実行可能なグラフィックスコマンドに変換する。そして、画像処理部２０が、変換されたグラフィックスコマンドの実行を行う。
【００２８】
図２は、本実施形態に係る情報処理装置１０で実現される機能のうち、他種ＧＰＵが実行可能なグラフィックスコマンドに応じた処理を画像処理部２０に実行させることに関連する機能の一例を示す機能ブロック図である。なお、本実施形態に係る情報処理装置１０では、図２に示す機能以外の機能も実現されている。図２に示すように、情報処理装置１０は、当該機能に関しては、機能的に、取得部４０、特定部４２、実行制御部４４、を含んでいる。これらの機能はサブプロセッサ１４を主として実現される。
【００２９】
これらの機能は、情報処理システムである情報処理装置１０で、本実施形態に係るプログラムが実行されることにより実現される。このプログラムは、コンピュータ通信ネットワーク経由で通信インタフェースを介して他のコンピュータからダウンロードされてもよいし、光ディスク（例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなど）、ＵＳＢメモリ等のコンピュータ読み取り可能な情報記憶媒体に格納され、そこから光ディスクドライブやＵＳＢ（Universal Serial Bus）ポートなどを介して情報処理装置１０にインストールされてもよい。
【００３０】
取得部４０は、エミュレータによってエミュレートされた他種ＣＰＵが出力するグラフィックスコマンドを取得する。特定部４２は、取得部４０が取得するグラフィックスコマンドに対応付けられる処理であって、本実施形態に係る情報処理装置１０が備える画像処理部２０に含まれるＧＰＵが実行可能な処理を特定する。
【００３１】
特定部４２は、例えば、他種ＧＰＵが実行可能なグラフィックスコマンドと、画像処理部２０に含まれるＧＰＵが実行可能なグラフィックスコマンドと、が対応付けられた変換テーブルを参照して、他種ＧＰＵが実行可能なグラフィックスコマンドを、画像処理部２０に含まれるＧＰＵが実行可能なグラフィックスコマンドに変換する。このとき、他種ＧＰＵが実行可能なグラフィックスコマンドに、パラメータの値（例えば、少なくとも１つのオペランド）が設定されている場合は、そのパラメータの値を、画像処理部２０に含まれるＧＰＵが実行可能なグラフィックスコマンドが用いるパラメータの値に変換するようにしてもよい。特定部４２は、例えば、テクスチャのフォーマット変換を行ったり、画像処理部２０に含まれるＧＰＵにより描画される画像の解像度に応じたパラメータの値の特定を行ったりしてもよい。このようにして、例えば、本実施形態に係る情報処理装置１０でのＧＰＵによるフレームバッファへの画像の描画を、他種装置での他種ＧＰＵによるフレームバッファへの画像の描画よりも高解像度で行うことが可能となる。また、本実施形態では、画像処理部２０に含まれるフレームバッファにテクスチャがキャッシュされる。そして、１フレーム内で１つのテクスチャが複数回描画される際には、２回目以降の描画では、画像処理部２０に含まれるフレームバッファにキャッシュされたテクスチャが再利用され、フレームバッファへのテクスチャの再度の配置は行われない。
【００３２】
実行制御部４４は、特定部４２により特定される処理の実行を本実施形態に係る情報処理装置１０の画像処理部２０に指示する。
【００３３】
また、本実施形態では、特定部４２は、他種プロセッサにおける特定のコマンド（ここでは、例えば、ノーオペレーション（ＮＯＰ）コマンド）については、そのコマンドに設定されているパラメータの値（例えば、オペランド）に応じた処理を特定する。例えば、ＮＯＰコマンドに設定されているパラメータの値がコマンドに対応付けられる場合には、特定部４２は、そのコマンドが示す処理を特定する。また、ＮＯＰコマンドに設定されているパラメータの値が他のコマンドに用いられるパラメータの値に対応付けられる場合には、特定部４２は、ＮＯＰコマンドに設定されているパラメータの値を、他のコマンドに用いられるパラメータの値として設定することを特定する。そして、本実施形態では、実行制御部４４は、ＮＯＰコマンドに設定されているパラメータの値に応じて画像処理部２０への指示を制御する。例えば、特定のコマンドに設定されているパラメータの値に対応付けられるコマンドが示す処理が特定部４２により特定された場合には、実行制御部４４は、その処理の実行を画像処理部２０に指示する。また、例えば、既に画像処理部２０に実行を指示した処理に用いられるパラメータの値が特定部４２により特定された場合には、実行制御部４４は、特定されたパラメータの値をその処理に用いるよう画像処理部２０に指示する。このように、本実施形態に係るエミュレータでは、特定のコマンドに設定されているパラメータの値が、コマンドやパラメータの値などとして解釈されることとなる。
【００３４】
図３は、取得部４０が取得する一連のグラフィックスコマンドの一例を模式的に示す図である。本実施形態では、取得部４０によるグラフィックスコマンドの取得、特定部４２による対応する処理の特定、実行制御部４４による画像処理部２０への指示の出力、という一連の処理が、各グラフィックスコマンドについて順次行われる。
【００３５】
そして、図３に示すように、例えば、取得部４０が、メニュー画像の描画コマンドを取得した後に、ＮＯＰコマンドのパラメータの値に応じた処理の制御を開始することを表す特定の開始ビット列を取得し、その後に、パラメータの値として３Ｄ表示ではそのメニュー画像が配置される奥行きを設定する旨が設定されているＮＯＰコマンド、パラメータの値としてメニュー画像が配置される奥行きを表す数値が設定されているＮＯＰコマンドを取得した場合には、特定部４２は、３Ｄ表示において上述の数値が表す奥行きでメニュー画像を配置する処理を特定し、実行制御部４４は、その処理の実行指示を画像処理部２０に出力する。なお、本実施形態では、パラメータの値として３Ｄ表示ではそのメニュー画像が配置される奥行きを設定する旨が設定されているＮＯＰコマンドと、パラメータの値としてメニュー画像が配置される奥行きを表す数値が設定されているＮＯＰコマンドとは、命令列として連続している。
【００３６】
本実施形態では、画像処理部２０で実行可能なメニュー画像の描画コマンドを、実行制御部４４が画像処理部２０に出力する。そして、画像処理部２０に含まれるＧＰＵは、情報処理装置１０において２Ｄ表示が設定されている場合には、２Ｄ表示でのメニュー画像のフレームバッファへの描画（１枚の画像の描画）を行い、情報処理装置１０において３Ｄ表示が設定されている場合には、上述の数値が表す奥行きでメニュー画像が配置されるよう、左目用のメニュー画像と右目用のメニュー画像のフレームバッファへの描画を行う。
【００３７】
図３に例示する一連のグラフィックスコマンドのうち、ＮＯＰコマンドについては、他種ＧＰＵで実行される際には、何の処理も実行されない。また、他種ＧＰＵでは、ＮＯＰコマンドに設定されているパラメータの値は無視される。よって、ＮＯＰコマンドに設定されているパラメータの値は他種ＧＰＵでの処理の実行に影響を与えない。一方で、本実施形態に係る情報処理装置１０におけるエミュレータでは、特定部４２が、ＮＯＰコマンドについては、パラメータの値に応じた処理等を特定する。そして、実行制御部４４が、ＮＯＰコマンドに設定されているパラメータの値に応じて画像処理部２０に含まれるＧＰＵで実行される処理の実行を制御する。実行制御部４４は、例えば、ＮＯＰコマンドに設定されているパラメータの値に応じたコマンドを画像処理部２０に含まれるＧＰＵに出力したり、ＮＯＰコマンドに設定されているパラメータの値が画像処理部２０に含まれるＧＰＵによって実行される処理でのパラメータの値として用いられるよう制御したりする。また、図３の例では、本実施形態に係る情報処理装置１０は、他種プロセッサでも実行されるメニュー画像の描画処理における、本実施形態に係る情報処理装置１０の画像処理部２０で実行可能な拡張機能（拡張処理）の設定（ここでは、奥行きの設定）を、ＮＯＰコマンドに設定されているパラメータの値に基づいて行っていることとなる。
【００３８】
このようにして、本実施形態によれば、例えば、３Ｄ表示の際における所与の奥行きでのメニュー画像の表示などといった、他種ＧＰＵでは実行できない処理を本実施形態に係る情報処理装置１０の画像処理部２０で実行させるような拡張コマンドの設定を、他種ＧＰＵでの処理の実行に影響を与えることなく行うことができることとなる。また、本実施形態では、取得部４０が、特定の開始ビット列を取得した後に取得するＮＯＰコマンドに設定されているパラメータの値に応じた処理が特定部４２により特定されるので、ＮＯＰコマンドに設定されているパラメータの値を用いた処理の実行制御を行うか否かを開始ビット列により制御することができるようになっている。なお、取得部４０が特定の終了ビット列を取得した際には、それ以後に取得するＮＯＰコマンドについて、実行制御部４４が設定されているパラメータの値を用いた処理の実行制御を行わないようにしてもよい。
【００３９】
なお、以上、他種ＧＰＵでは実行できない処理であって、２Ｄ表示の際には実行されないが、３Ｄ表示の際には実行されるような処理を本実施形態に係る情報処理装置１０で行う際の拡張コマンドの設定手法について説明したが、同様にして、他種ＧＰＵでは実行できない処理であって、３Ｄ表示の際には実行されないが、２Ｄ表示の際には実行されるような処理についての拡張コマンドの設定も、本実施形態に係る情報処理装置１０で行うことができる。例えば、他種ＧＰＵでは実行できないが情報処理装置１０において実行可能であるポストエフェクト処理（例えば、輝度が高いと判定される画素に所定のＲＧＢ値を足すことで画像をぼかすブルームフィルタ処理や、所与の被写界深度とＺバッファの値との違いが大きい画素ほど、より強いブラーをかけるようにするブラー処理、など）が、３Ｄ表示が設定されている場合には実行されずに、２Ｄ表示が設定されている場合には実行されるようにしてもよい。
【００４０】
例えば、取得部４０が、メニュー画像の描画コマンドを取得した後に、ＮＯＰコマンドのパラメータの値に応じた処理の制御を開始することを表す特定の開始ビット列を取得し、その後に、パラメータの値として２Ｄ表示ではブルームフィルタ処理を実行する旨が設定されているＮＯＰコマンドを取得した場合には、特定部４２が、ブルームフィルタ処理を特定し、実行制御部４４が、その処理の実行指示を画像処理部２０に出力するようにしてもよい。そして、画像処理部２０に含まれるＧＰＵが、情報処理装置１０において２Ｄ表示が設定されている場合には、ブルームフィルタ処理を実行し、情報処理装置１０において３Ｄ表示が設定されている場合には、ブルームフィルタ処理を実行しないようにしてもよい。
【００４１】
情報処理装置１０において３Ｄ表示が設定されている際に、ゲームにおいて用いられる画像の描画の後に、上述のポストエフェクト処理を実行してしまうと、ユーザが見づらい画像がモニタ３２から出力されてしまうおそれがある。しかし、本実施形態に係る情報処理装置１０によれば、上述のポストエフェクト処理に関するコマンドを、２Ｄ表示でのみ実行される拡張コマンドとして設定することで、情報処理装置１０において３Ｄ表示が設定されている場合にはポストエフェクト処理が実行されないこととなるので、ユーザが見づらい画像がモニタ３２から出力されることを防ぐことができる。
【００４２】
また、本実施形態に係る情報処理装置１０では、他種ＧＰＵで実行される処理についてのコマンドの設定であって、２Ｄ表示の際には本実施形態に係る情報処理装置１０でも実行されるが、３Ｄ表示の際には本実施形態に係る情報処理装置１０では実行されない処理の範囲を指示するコマンド（以下、制限コマンドと呼ぶ。）の設定も可能である。制限コマンドの設定について、以下、説明する。
【００４３】
図４は、取得部４０が取得する一連のグラフィックスコマンドの別の一例を模式的に示す図である。これらのグラフィックスコマンドは命令列として連続している。図４の例では、取得部４０は、ＮＯＰコマンドのパラメータの値に応じた処理の制御を開始することを表す特定の開始ビット列を取得して、その後に、パラメータの値として、３Ｄ表示でのコマンドの実行の制限を開始する旨が設定されているＮＯＰコマンド（以下、３Ｄ実行制限開始コマンドと呼ぶ。）を取得する。そして、取得部４０は、その後、数個のグラフィックスコマンドを取得して、その後に、３Ｄ表示でのコマンドの実行を制限を終了する旨が設定されているＮＯＰコマンド（以下、３Ｄ実行制限終了コマンドと呼ぶ。）を取得する。本実施形態では、３Ｄ実行制限開始コマンド及び３Ｄ実行制限終了コマンドが制限コマンドに相当する。そして、３Ｄ実行制限開始コマンドの直後のグラフィックスコマンドが示す処理から、３Ｄ実行制限終了コマンドの直前のグラフィックスコマンドが示す処理までが、制限コマンドで実行の制限が指示される範囲の処理となる。
【００４４】
図４に例示する一連のグラフィックスコマンドのうち、ＮＯＰコマンドについては、他種ＧＰＵで実行される際には、何の処理も実行されない。また、ＮＯＰコマンドに設定されているパラメータの値は無視される。そのため、制限コマンドで実行の制限が指示される範囲の処理については、他種ＧＰＵでは実行されることとなる。
【００４５】
一方で、本実施形態に係る情報処理装置１０におけるエミュレータでは、情報処理装置１０において２Ｄ表示が設定されている場合には、３Ｄ実行制限開始コマンドや３Ｄ実行制限終了コマンドに基づく、３Ｄ表示でのコマンドの実行を制限するか否かの制御自体は行われるが、制限コマンドで実行の制限が指示される範囲の処理については実行されることとなる。そして、情報処理装置１０において３Ｄ表示が設定されている場合には、３Ｄ実行制限開始コマンドや３Ｄ実行制限終了コマンドにより、コマンドの実行を制限するか否かが制御されることとなり、制限コマンドで実行の制限が指示される範囲の処理については、特定部４２による対応する処理の特定は行われるが、実行制御部４４による特定された処理の画像処理部２０への実行指示は行われないこととなる。以上のようにして、本実施形態に係る情報処理装置１０では、制限コマンドの設定を行うことができる。
【００４６】
このようにして、例えば、他種プロセッサにおいて実行される処理であるが、情報処理装置１０において３Ｄ表示が設定されている際に実行されるべきではない処理については、その処理についてのコマンドを３Ｄ実行制限開始コマンドと３Ｄ実行制限終了コマンドの間に設定することによって、情報処理装置１０において３Ｄ表示が設定されている場合には実行されないようにすることができる。
【００４７】
また、本実施形態に係る情報処理装置１０では、同様にして、他種ＧＰＵで実行される処理についてのコマンドの設定であって、３Ｄ表示の際には本実施形態に係る情報処理装置１０でも実行されるが、２Ｄ表示の際には本実施形態に係る情報処理装置１０では実行されないような処理についての制限コマンド（例えば、２Ｄ表示でのコマンドの実行の制限を開始する旨が設定されているＮＯＰコマンド（２Ｄ実行制限開始コマンド）や２Ｄ表示でのコマンドの実行の制限を終了する旨が設定されているＮＯＰコマンド（２Ｄ実行制限終了コマンド））の設定も可能である。そして、他種プロセッサにおいて実行される処理であるが、情報処理装置１０において２Ｄ表示が設定されている際に実行されるべきではない処理については、その処理についてのコマンドを２Ｄ実行制限開始コマンドと２Ｄ実行制限終了コマンドの間に設定することによって、情報処理装置１０において２Ｄ表示が設定されている場合には実行されないようにすることができる。
【００４８】
また、本実施形態に係る情報処理装置１０では、同様にして、他種ＧＰＵで実行される処理についてのコマンドの設定であって、３Ｄ表示の際も２Ｄ表示の際も本実施形態に係る情報処理装置１０では実行されないような処理についての制限コマンド（例えば、２Ｄ表示でも３Ｄ表示でもコマンドの実行の制限を開始する旨が設定されているＮＯＰコマンド（実行制限開始コマンド）や２Ｄ表示でも３Ｄ表示でもコマンドの実行の制限を終了する旨が設定されているＮＯＰコマンド（実行制限終了コマンド））の設定も可能である。そして、他種プロセッサにおいて実行される処理であるが、情報処理装置１０において２Ｄ表示が設定されている際にも３Ｄ表示が設定されている際にも実行されるべきではない処理については、その処理についてのコマンドを実行制限開始コマンドと実行制限終了コマンドの間に設定することによって、情報処理装置１０では実行されないようにすることができる。
【００４９】
また、ある処理（例えば、フィルタ処理）を実行するにあたって、他種ＧＰＵで実行するのに適したアルゴリズム（例えば、低精度低負荷のアルゴリズム）と、本実施形態に係る情報処理装置１０で実行するのに適したアルゴリズム（例えば、高精度高負荷のアルゴリズム）と、が異なることがある。このような場合に、例えば、他種ＧＰＵで実行するのに適したアルゴリズムでの処理を示すコマンドを実行制限開始コマンドと実行制限終了コマンドの間に設定して、実行制限開始コマンドの直前のコマンド又は実行制限終了コマンドの直後のコマンドとして、本実施形態に係る情報処理装置１０で実行するのに適したアルゴリズムで処理を実行する旨がパラメータの値として設定されているＮＯＰコマンドを設定するようにしてもよい。このようにすれば、他種装置では他種ＧＰＵで実行するのに適したアルゴリズムにより処理が行われ、本実施形態に係る情報処理装置１０では画像処理部２０で実行するのに適したアルゴリズムにより処理が行われることとなる。
【００５０】
以上、他種ＧＰＵが実行可能なグラフィックスコマンドに応じた処理が画像処理部２０で実行されることについて説明した。本実施形態に係る情報処理装置１０では、以上の説明と同様の手法により、他種ＣＰＵが実行可能なコマンドに応じた処理がメインプロセッサ１２で実行される。以下、このことについて説明する。
【００５１】
本実施形態に係る情報処理装置１０で実現される機能のうち、他種ＣＰＵが実行可能なコマンドに応じた処理をメインプロセッサ１２に実行させることに関連する機能の一例を示す機能ブロック図は、図２と同様の図となる。ただし、これらの機能は、本実施形態では、メインプロセッサ１２を主として実現されることとなる。
【００５２】
これらの機能は、情報処理システムである情報処理装置１０で、本実施形態に係るプログラムが実行されることにより実現される。このプログラムは、コンピュータ通信ネットワーク経由で通信インタフェースを介して他のコンピュータからダウンロードされてもよいし、光ディスク（例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなど）、ＵＳＢメモリ等のコンピュータ読み取り可能な情報記憶媒体に格納され、そこから光ディスクドライブやＵＳＢ（Universal Serial Bus）ポートなどを介して情報処理装置１０にインストールされてもよい。
【００５３】
取得部４０は、エミュレートされたプログラムカウンタで指定されるメインメモリ１８上のアドレスに配置されている、他種ＣＰＵが実行可能なコマンドを取得する。特定部４２は、取得したコマンドに対応付けられる、メインプロセッサ１２で実行可能な処理を特定する。そして、本実施形態では、メインプロセッサ１２が、特定部４２により特定された処理を実行する。本実施形態では、取得部４０によるコマンドの取得、特定部４２による対応する処理の特定、メインプロセッサ１２による処理の実行、プログラムカウンタの値の更新、という一連の処理が、順次行われる。このことによって、他種装置で実行可能な一連のコマンドに応じた処理がメインプロセッサ１２で実行されることとなる。
【００５４】
本実施形態では、特定部４２は、特定のコマンド（ここでは、例えば、最終製品においては何の処理も実行されない、開発段階におけるデバッグ用のコマンドや、ノーオペレーション（ＮＯＰ）コマンドなど。以下、特定コマンドと呼ぶ。）については、特定コマンドに設定されているパラメータの値（例えば、オペランド）に応じた処理の制御を実行制御部４４に指示する。そして、実行制御部４４が、この指示に応じて、メインプロセッサ１２での処理の実行を制御する。例えば、取得部４０が、特定コマンドを取得した際に、実行制御部４４は、その特定コマンドに設定されているパラメータの値に応じたコマンドをメインプロセッサ１２に実行させるようにしたり、特定コマンドに設定されているパラメータの値がメインプロセッサ１２で実行される処理でのパラメータの値として用いられるよう制御したりする。
【００５５】
また、実行制御部４４は、パラメータの値としてコマンドの実行を制限を開始する旨が設定されている特定コマンドの直後のコマンドが示す処理から、パラメータの値としてコマンドの実行の制限を終了する旨が設定されている特定コマンドの直前のコマンドが示す処理についてはメインプロセッサ１２に実行させないよう制御する。
【００５６】
本実施形態では、特定部４２は、例えば、他種ＣＰＵが実行可能なコマンドと、メインプロセッサ１２が実行可能なグラフィックスコマンドと、が対応付けられた変換テーブルを参照して、他種ＣＰＵが実行可能なコマンドを、メインプロセッサ１２が実行可能なコマンドに変換する。
【００５７】
特定コマンドについては、他種ＣＰＵで実行される際には、何の処理も実行されない。また、他種ＣＰＵでは、特定コマンドに設定されているパラメータの値は無視される。よって、特定コマンドに設定されているパラメータの値は他種ＣＰＵでの処理の実行に影響を与えない。一方で、本実施形態に係る情報処理装置１０におけるエミュレータでは、特定部４２が、特定コマンドについては、パラメータの値に応じた処理等を特定する。そして、実行制御部４４が、特定コマンドに設定されているパラメータの値に応じてメインプロセッサ１２で実行される処理の実行を制御する。
【００５８】
また、本実施形態では、予め、他種ＣＰＵのシステムコールと本実施形態に係る情報処理装置１０のシステムコールとを変換するライブラリであるブリッジプログラムがメインメモリ１８にロードされている。そして、取得部４０がシステムコールのコマンドを取得した際には、このシステムコールに対応するブリッジプログラムのライブラリがコールされ、その結果、情報処理装置１０のシステムコールが実行されることとなる。
【００５９】
なお、本発明は上述の実施形態に限定されるものではない。
【００６０】
例えば、モニタ３２において３Ｄ表示を実現する方法はフレームシーケンシャル方式にには限定されない。例えば、モニタ３２が、水平走査線ごとに偏光特性を変えるパッシブグラス方式によって３Ｄ表示を実現するようにしてもよい。また、モニタ３２は、視差バリア方式によって３Ｄ表示が実現された裸眼３Ｄディスプレイであっても構わない。
【００６１】
例えば、本実施形態に係る情報処理装置１０が、情報処理装置１０外の装置に搭載されたプロセッサでの処理の実行を制御するようにしてもよい。また、本実施形態に係る情報処理システムが複数の筐体から構成されていてもよい。また、上記の具体的な文字列や図面中の具体的な文字列は例示であり、これらの文字列には限定されない。
【符号の説明】
【００６２】
１０  情報処理装置、１２  メインプロセッサ、１４  サブプロセッサ、１６  バス、１８  メインメモリ、２０  画像処理部、２２  入出力処理部、２４  ネットワークボード、２６  ハードディスクドライブ、２８  光ディスクドライブ、３０  コントローラ、３２  モニタ、４０  取得部、４２  特定部、４４  実行制御部。
【図１】
0005367020.tif 000002
【図２】
0005367020.tif 000003
【図３】
0005367020.tif 000004
【図４】
0005367020.tif 000005