説明

情報処理装置、情報処理方法、プログラム及び情報記憶媒体

【課題】他種プロセッサで実行可能なコマンドの設定を行うにあたって、他種プロセッサでの処理の実行に影響を与えることなく、処理実行主体装置のプロセッサでの処理の実行を制御するような設定を行えるようにする。
【解決手段】取得部40は、処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する。特定部42は、取得部40により取得されるコマンドに対応付けられる、処理実行主体装置のプロセッサで実行可能な処理を特定する。実行制御部44は、設定されているパラメータの値が他種プロセッサでの処理の実行に影響を与えない他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて処理実行主体装置のプロセッサによる処理の実行を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、プログラム及び情報記憶媒体に関する。
【背景技術】
【0002】
処理の実行主体となる装置(以下、処理実行主体装置と呼ぶ。)のプロセッサとは異なる種類のプロセッサ(以下、他種プロセッサと呼ぶ。)で実行可能なコマンドが示す処理を、処理実行主体装置のプロセッサで実行できるようにするエミュレーション技術が知られている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
プロセッサの機能が拡張されて、他種プロセッサではできなかった処理内容の制御が、処理実行主体装置のプロセッサではできるようになることがある。また、他種プロセッサでは実行されてもよい処理が、処理実行主体装置のプロセッサでは実行されるべきではないということもある。しかし、従来のエミュレーション技術では、他種プロセッサで実行可能なコマンドの設定を行うにあたって、他種プロセッサでの処理の実行に影響を与えることなく、処理実行主体装置のプロセッサでの処理の実行を制御するような設定を行うことができなかった。
【0004】
本発明は上記課題に鑑みてなされたものであって、その目的の1つは、他種プロセッサで実行可能なコマンドの設定を行うにあたって、他種プロセッサでの処理の実行に影響を与えることなく、処理実行主体装置のプロセッサでの処理の実行を制御するような設定を行えるようにすることにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明に係る情報処理装置は、処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段と、前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段と、設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段と、を含むことを特徴とする。
【0006】
また、本発明に係る情報処理方法は、処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得ステップと、前記取得ステップで取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定ステップと、設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御ステップと、を含むことを特徴とする。
【0007】
また、本発明に係るプログラムは、処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段、前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段、設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段、としてコンピュータを機能させることを特徴とする。
【0008】
また、本発明に係る情報記憶媒体は、処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段、前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段、設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段、としてコンピュータを機能させることを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【0009】
本発明によれば、設定されているパラメータの値が他種プロセッサでの処理の実行に影響を与えない他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて処理実行主体装置のプロセッサによる処理の実行が制御されるので、他種プロセッサで実行可能なコマンドの設定を行うにあたって、他種プロセッサでの処理の実行に影響を与えることなく、処理実行主体装置のプロセッサでの処理の実行を制御するような設定を行えることとなる。
【0010】
本発明の一態様では、前記実行制御手段は、前記特定のコマンドに設定されているパラメータの値が、前記処理実行主体装置のプロセッサによる他のコマンドが示す処理の実行でのパラメータの値として用いられるよう制御することを特徴とする。
【0011】
また、本発明の一態様では、前記実行制御手段は、前記特定のコマンドに設定されているパラメータの値に対応付けられる処理を前記処理実行主体装置のプロセッサに実行させることを特徴とする。
【0012】
また、本発明の一態様では、前記実行制御手段は、命令列として連続している複数の前記特定のコマンドのそれぞれに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御することを特徴とする。
【0013】
また、本発明の一態様では、前記取得手段は、コマンドを含む情報を順次取得し、前記実行制御手段は、前記取得手段が所定の情報を取得した後に取得する、前記特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御することを特徴とする。
【0014】
また、本発明の一態様では、前記実行制御手段は、設定されているパラメータの値が所定の開始値である前記特定のコマンドの直後のコマンドが示す処理から設定されているパラメータの値が所定の終了値である前記特定のコマンドの直前のコマンドが示す処理までを前記処理実行主体装置のプロセッサに実行させないよう制御することを特徴とする。
【0015】
また、本発明の一態様では、前記実行制御手段は、前記他種プロセッサにおけるノーオペレーションコマンド、又は、前記他種プロセッサで実行されるプログラムのデバッグ用のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御することを特徴とする。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態に係る情報処理装置の構成図である。
【図2】本発明の一実施形態に係る情報処理装置で実現される機能の一例を示す機能ブロック図である。
【図3】一連のグラフィックスコマンドの一例を模式的に示す図である。
【図4】一連のグラフィックスコマンドの別の一例を模式的に示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【0018】
図1は、本発明の一実施形態に係る情報処理装置10の構成図である。本実施形態に係る情報処理装置10は、例えば、ゲームコンソール等である。図1に示すように、本実施形態に係る情報処理装置10の制御部は、メインプロセッサ12及び複数のサブプロセッサ14(14−1、14−2、・・・、14−n)を含んでいる。メインプロセッサ12及びサブプロセッサ14はいずれもバス16に接続されており、バス16を介して相互にデータを送受信できるようになっている。バス16には、さらに、メインメモリ18、画像処理部20が接続され、入出力処理部22を介して、ネットワークボード24、ハードディスクドライブ26、DVD−ROMやBlu−ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ28、コントローラ30、などが接続されている。なお、入出力処理部22には、これら以外のユニット(例えば、USB(Universal Serial Bus)ポートや、カメラユニットや、スピーカや、マイク等)が接続されていてももちろん構わない。
【0019】
メインプロセッサ12は、システム等のプログラムを実行したり、光ディスクから読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータに基づいて、各種情報処理を行ったり、サブプロセッサ14に対する制御を行ったりする。サブプロセッサ14は、メインプロセッサ12からの指示に従って、各種情報処理を行ったり、情報処理装置10の各部を、光ディスクから読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて制御したりする。また、本実施形態では、サブプロセッサ14にはDMAC(Direct Memory Access Controller)が内蔵されており、メインプロセッサ12を介さずに、メインメモリ18に対して直接アクセスできるようになっている。
【0020】
メインメモリ18には、光ディスクドライブ28やハードディスクドライブ26から読み出されたプログラム及びデータや、通信ネットワークを介して供給されたプログラム及びデータが必要に応じて書き込まれる。メインメモリ18は、メインプロセッサ12やサブプロセッサ14のワークメモリとしても用いられる。また、本実施形態では、メインメモリ18には、本実施形態に係る情報処理装置10にインストールされるエミュレータプログラムも記憶されることとなる。
【0021】
画像処理部20は、GPU(Graphical Processing Unit)とフレームバッファとを含んで構成される。GPUは、メインプロセッサ12やサブプロセッサ14から供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画する。フレームバッファに描画された画像は、所定のタイミングでビデオ信号に変換されてモニタ32に出力される。なお、モニタ32には例えば家庭用テレビ受像機や、液晶ディスプレイが用いられる。
【0022】
本実施形態に係るモニタ32は、左目用の画像と右目用の画像とが交互に表されるフレームシーケンシャル方式によって三次元画像表示(3D表示)を行うことができるようになっている。そして、本実施形態に係る情報処理装置10では、予め、画像をモニタ32に2D表示で出力するのか、3D表示で出力するのかが設定されている。そして、3D表示が設定されている際には、GPUは、入力されるグラフィックスコマンドのそれぞれについて、左目用の画像と右目用の画像の両方を、それぞれに対応付けられるフレームバッファ内の領域にレンダリングする。
【0023】
入出力処理部22には、ネットワークボード24、ハードディスクドライブ26、光ディスクドライブ28、コントローラ30、等が接続される。入出力処理部22は、メインプロセッサ12及びサブプロセッサ14と、ネットワークボード24、ハードディスクドライブ26、光ディスクドライブ28、コントローラ30、等との間のデータ授受を制御する。
【0024】
ネットワークボード24は入出力処理部22とネットワークとに接続されており、情報処理装置10が、ネットワークを介して外部とデータ通信するのを中継するようになっている。光ディスクドライブ28は、メインプロセッサ12及びサブプロセッサ14からの指示に従って、DVD−ROMやBlu−ray(登録商標)ディスクなどの光ディスクに記憶されたプログラムやデータを読み取る。また、ハードディスクドライブ26は一般的なハードディスク装置であり、ハードディスクに記憶されたプログラムやデータを読み取る。光ディスクやハードディスクには各種プログラムやデータがコンピュータ読み取り可能に記憶される。なお、情報処理装置10は、光ディスクやハードディスク以外の、他のコンピュータ読み取り可能な情報記憶媒体に記憶されたプログラムやデータを読み取り可能に構成してもよい。コントローラ30は、汎用操作入力手段であり、ユーザが各種操作を入力するために用いられる。入出力処理部22は、所定時間(例えば1/60秒)ごとにコントローラ30の各部の状態をスキャンし、その結果を表す操作状態をメインプロセッサ12やサブプロセッサ14に供給する。メインプロセッサ12やサブプロセッサ14は、ユーザによって行われた操作の内容をその操作状態に基づいて判断する。
【0025】
本実施形態に係る情報処理装置10では、当該情報処理装置10とは異なる種類のプロセッサを備える装置(以下、他種装置と呼ぶ。)で実行可能なプログラムを実行するための仮想マシンとして機能するプロセスであるエミュレータが実行される。このエミュレータは、本実施形態に係る情報処理装置10にインストールされているエミュレータプログラムを起動することにより生成される。
【0026】
本実施形態に係るエミュレータでは、他種装置が備える2種類のプロセッサ(CPU(Central Processing Unit)及びGPU(Graphic Processing Unit))がエミュレートされる。以下、他種装置が備えるCPUを他種CPUと呼び、他種装置が備えるGPUを他種GPUと呼ぶこととする。本実施形態に係る情報処理装置10が備えるメインプロセッサ12やサブプロセッサ14と他種CPUとは、命令セットが異なる。また、本実施形態に係る情報処理装置10が備える画像処理部20に含まれるGPUと他種GPUとも命令セットが異なる。
【0027】
本実施形態では、他種CPUのエミュレートに関する処理はメインプロセッサ12によって実行される。また、本実施形態では、エミュレートされた他種CPUが出力するグラフィックスコマンド(他種GPUが実行可能なグラフィックスコマンド)が、メインメモリ18に書き込まれる。そして、サブプロセッサ14が、メインメモリ18に書き込まれたグラフィックスコマンドを、情報処理装置10の画像処理部20に含まれるGPUが実行可能なグラフィックスコマンドに変換する。そして、画像処理部20が、変換されたグラフィックスコマンドの実行を行う。
【0028】
図2は、本実施形態に係る情報処理装置10で実現される機能のうち、他種GPUが実行可能なグラフィックスコマンドに応じた処理を画像処理部20に実行させることに関連する機能の一例を示す機能ブロック図である。なお、本実施形態に係る情報処理装置10では、図2に示す機能以外の機能も実現されている。図2に示すように、情報処理装置10は、当該機能に関しては、機能的に、取得部40、特定部42、実行制御部44、を含んでいる。これらの機能はサブプロセッサ14を主として実現される。
【0029】
これらの機能は、情報処理システムである情報処理装置10で、本実施形態に係るプログラムが実行されることにより実現される。このプログラムは、コンピュータ通信ネットワーク経由で通信インタフェースを介して他のコンピュータからダウンロードされてもよいし、光ディスク(例えば、CD−ROMやDVD−ROMなど)、USBメモリ等のコンピュータ読み取り可能な情報記憶媒体に格納され、そこから光ディスクドライブやUSB(Universal Serial Bus)ポートなどを介して情報処理装置10にインストールされてもよい。
【0030】
取得部40は、エミュレータによってエミュレートされた他種CPUが出力するグラフィックスコマンドを取得する。特定部42は、取得部40が取得するグラフィックスコマンドに対応付けられる処理であって、本実施形態に係る情報処理装置10が備える画像処理部20に含まれるGPUが実行可能な処理を特定する。
【0031】
特定部42は、例えば、他種GPUが実行可能なグラフィックスコマンドと、画像処理部20に含まれるGPUが実行可能なグラフィックスコマンドと、が対応付けられた変換テーブルを参照して、他種GPUが実行可能なグラフィックスコマンドを、画像処理部20に含まれるGPUが実行可能なグラフィックスコマンドに変換する。このとき、他種GPUが実行可能なグラフィックスコマンドに、パラメータの値(例えば、少なくとも1つのオペランド)が設定されている場合は、そのパラメータの値を、画像処理部20に含まれるGPUが実行可能なグラフィックスコマンドが用いるパラメータの値に変換するようにしてもよい。特定部42は、例えば、テクスチャのフォーマット変換を行ったり、画像処理部20に含まれるGPUにより描画される画像の解像度に応じたパラメータの値の特定を行ったりしてもよい。このようにして、例えば、本実施形態に係る情報処理装置10でのGPUによるフレームバッファへの画像の描画を、他種装置での他種GPUによるフレームバッファへの画像の描画よりも高解像度で行うことが可能となる。また、本実施形態では、画像処理部20に含まれるフレームバッファにテクスチャがキャッシュされる。そして、1フレーム内で1つのテクスチャが複数回描画される際には、2回目以降の描画では、画像処理部20に含まれるフレームバッファにキャッシュされたテクスチャが再利用され、フレームバッファへのテクスチャの再度の配置は行われない。
【0032】
実行制御部44は、特定部42により特定される処理の実行を本実施形態に係る情報処理装置10の画像処理部20に指示する。
【0033】
また、本実施形態では、特定部42は、他種プロセッサにおける特定のコマンド(ここでは、例えば、ノーオペレーション(NOP)コマンド)については、そのコマンドに設定されているパラメータの値(例えば、オペランド)に応じた処理を特定する。例えば、NOPコマンドに設定されているパラメータの値がコマンドに対応付けられる場合には、特定部42は、そのコマンドが示す処理を特定する。また、NOPコマンドに設定されているパラメータの値が他のコマンドに用いられるパラメータの値に対応付けられる場合には、特定部42は、NOPコマンドに設定されているパラメータの値を、他のコマンドに用いられるパラメータの値として設定することを特定する。そして、本実施形態では、実行制御部44は、NOPコマンドに設定されているパラメータの値に応じて画像処理部20への指示を制御する。例えば、特定のコマンドに設定されているパラメータの値に対応付けられるコマンドが示す処理が特定部42により特定された場合には、実行制御部44は、その処理の実行を画像処理部20に指示する。また、例えば、既に画像処理部20に実行を指示した処理に用いられるパラメータの値が特定部42により特定された場合には、実行制御部44は、特定されたパラメータの値をその処理に用いるよう画像処理部20に指示する。このように、本実施形態に係るエミュレータでは、特定のコマンドに設定されているパラメータの値が、コマンドやパラメータの値などとして解釈されることとなる。
【0034】
図3は、取得部40が取得する一連のグラフィックスコマンドの一例を模式的に示す図である。本実施形態では、取得部40によるグラフィックスコマンドの取得、特定部42による対応する処理の特定、実行制御部44による画像処理部20への指示の出力、という一連の処理が、各グラフィックスコマンドについて順次行われる。
【0035】
そして、図3に示すように、例えば、取得部40が、メニュー画像の描画コマンドを取得した後に、NOPコマンドのパラメータの値に応じた処理の制御を開始することを表す特定の開始ビット列を取得し、その後に、パラメータの値として3D表示ではそのメニュー画像が配置される奥行きを設定する旨が設定されているNOPコマンド、パラメータの値としてメニュー画像が配置される奥行きを表す数値が設定されているNOPコマンドを取得した場合には、特定部42は、3D表示において上述の数値が表す奥行きでメニュー画像を配置する処理を特定し、実行制御部44は、その処理の実行指示を画像処理部20に出力する。なお、本実施形態では、パラメータの値として3D表示ではそのメニュー画像が配置される奥行きを設定する旨が設定されているNOPコマンドと、パラメータの値としてメニュー画像が配置される奥行きを表す数値が設定されているNOPコマンドとは、命令列として連続している。
【0036】
本実施形態では、画像処理部20で実行可能なメニュー画像の描画コマンドを、実行制御部44が画像処理部20に出力する。そして、画像処理部20に含まれるGPUは、情報処理装置10において2D表示が設定されている場合には、2D表示でのメニュー画像のフレームバッファへの描画(1枚の画像の描画)を行い、情報処理装置10において3D表示が設定されている場合には、上述の数値が表す奥行きでメニュー画像が配置されるよう、左目用のメニュー画像と右目用のメニュー画像のフレームバッファへの描画を行う。
【0037】
図3に例示する一連のグラフィックスコマンドのうち、NOPコマンドについては、他種GPUで実行される際には、何の処理も実行されない。また、他種GPUでは、NOPコマンドに設定されているパラメータの値は無視される。よって、NOPコマンドに設定されているパラメータの値は他種GPUでの処理の実行に影響を与えない。一方で、本実施形態に係る情報処理装置10におけるエミュレータでは、特定部42が、NOPコマンドについては、パラメータの値に応じた処理等を特定する。そして、実行制御部44が、NOPコマンドに設定されているパラメータの値に応じて画像処理部20に含まれるGPUで実行される処理の実行を制御する。実行制御部44は、例えば、NOPコマンドに設定されているパラメータの値に応じたコマンドを画像処理部20に含まれるGPUに出力したり、NOPコマンドに設定されているパラメータの値が画像処理部20に含まれるGPUによって実行される処理でのパラメータの値として用いられるよう制御したりする。また、図3の例では、本実施形態に係る情報処理装置10は、他種プロセッサでも実行されるメニュー画像の描画処理における、本実施形態に係る情報処理装置10の画像処理部20で実行可能な拡張機能(拡張処理)の設定(ここでは、奥行きの設定)を、NOPコマンドに設定されているパラメータの値に基づいて行っていることとなる。
【0038】
このようにして、本実施形態によれば、例えば、3D表示の際における所与の奥行きでのメニュー画像の表示などといった、他種GPUでは実行できない処理を本実施形態に係る情報処理装置10の画像処理部20で実行させるような拡張コマンドの設定を、他種GPUでの処理の実行に影響を与えることなく行うことができることとなる。また、本実施形態では、取得部40が、特定の開始ビット列を取得した後に取得するNOPコマンドに設定されているパラメータの値に応じた処理が特定部42により特定されるので、NOPコマンドに設定されているパラメータの値を用いた処理の実行制御を行うか否かを開始ビット列により制御することができるようになっている。なお、取得部40が特定の終了ビット列を取得した際には、それ以後に取得するNOPコマンドについて、実行制御部44が設定されているパラメータの値を用いた処理の実行制御を行わないようにしてもよい。
【0039】
なお、以上、他種GPUでは実行できない処理であって、2D表示の際には実行されないが、3D表示の際には実行されるような処理を本実施形態に係る情報処理装置10で行う際の拡張コマンドの設定手法について説明したが、同様にして、他種GPUでは実行できない処理であって、3D表示の際には実行されないが、2D表示の際には実行されるような処理についての拡張コマンドの設定も、本実施形態に係る情報処理装置10で行うことができる。例えば、他種GPUでは実行できないが情報処理装置10において実行可能であるポストエフェクト処理(例えば、輝度が高いと判定される画素に所定のRGB値を足すことで画像をぼかすブルームフィルタ処理や、所与の被写界深度とZバッファの値との違いが大きい画素ほど、より強いブラーをかけるようにするブラー処理、など)が、3D表示が設定されている場合には実行されずに、2D表示が設定されている場合には実行されるようにしてもよい。
【0040】
例えば、取得部40が、メニュー画像の描画コマンドを取得した後に、NOPコマンドのパラメータの値に応じた処理の制御を開始することを表す特定の開始ビット列を取得し、その後に、パラメータの値として2D表示ではブルームフィルタ処理を実行する旨が設定されているNOPコマンドを取得した場合には、特定部42が、ブルームフィルタ処理を特定し、実行制御部44が、その処理の実行指示を画像処理部20に出力するようにしてもよい。そして、画像処理部20に含まれるGPUが、情報処理装置10において2D表示が設定されている場合には、ブルームフィルタ処理を実行し、情報処理装置10において3D表示が設定されている場合には、ブルームフィルタ処理を実行しないようにしてもよい。
【0041】
情報処理装置10において3D表示が設定されている際に、ゲームにおいて用いられる画像の描画の後に、上述のポストエフェクト処理を実行してしまうと、ユーザが見づらい画像がモニタ32から出力されてしまうおそれがある。しかし、本実施形態に係る情報処理装置10によれば、上述のポストエフェクト処理に関するコマンドを、2D表示でのみ実行される拡張コマンドとして設定することで、情報処理装置10において3D表示が設定されている場合にはポストエフェクト処理が実行されないこととなるので、ユーザが見づらい画像がモニタ32から出力されることを防ぐことができる。
【0042】
また、本実施形態に係る情報処理装置10では、他種GPUで実行される処理についてのコマンドの設定であって、2D表示の際には本実施形態に係る情報処理装置10でも実行されるが、3D表示の際には本実施形態に係る情報処理装置10では実行されない処理の範囲を指示するコマンド(以下、制限コマンドと呼ぶ。)の設定も可能である。制限コマンドの設定について、以下、説明する。
【0043】
図4は、取得部40が取得する一連のグラフィックスコマンドの別の一例を模式的に示す図である。これらのグラフィックスコマンドは命令列として連続している。図4の例では、取得部40は、NOPコマンドのパラメータの値に応じた処理の制御を開始することを表す特定の開始ビット列を取得して、その後に、パラメータの値として、3D表示でのコマンドの実行の制限を開始する旨が設定されているNOPコマンド(以下、3D実行制限開始コマンドと呼ぶ。)を取得する。そして、取得部40は、その後、数個のグラフィックスコマンドを取得して、その後に、3D表示でのコマンドの実行を制限を終了する旨が設定されているNOPコマンド(以下、3D実行制限終了コマンドと呼ぶ。)を取得する。本実施形態では、3D実行制限開始コマンド及び3D実行制限終了コマンドが制限コマンドに相当する。そして、3D実行制限開始コマンドの直後のグラフィックスコマンドが示す処理から、3D実行制限終了コマンドの直前のグラフィックスコマンドが示す処理までが、制限コマンドで実行の制限が指示される範囲の処理となる。
【0044】
図4に例示する一連のグラフィックスコマンドのうち、NOPコマンドについては、他種GPUで実行される際には、何の処理も実行されない。また、NOPコマンドに設定されているパラメータの値は無視される。そのため、制限コマンドで実行の制限が指示される範囲の処理については、他種GPUでは実行されることとなる。
【0045】
一方で、本実施形態に係る情報処理装置10におけるエミュレータでは、情報処理装置10において2D表示が設定されている場合には、3D実行制限開始コマンドや3D実行制限終了コマンドに基づく、3D表示でのコマンドの実行を制限するか否かの制御自体は行われるが、制限コマンドで実行の制限が指示される範囲の処理については実行されることとなる。そして、情報処理装置10において3D表示が設定されている場合には、3D実行制限開始コマンドや3D実行制限終了コマンドにより、コマンドの実行を制限するか否かが制御されることとなり、制限コマンドで実行の制限が指示される範囲の処理については、特定部42による対応する処理の特定は行われるが、実行制御部44による特定された処理の画像処理部20への実行指示は行われないこととなる。以上のようにして、本実施形態に係る情報処理装置10では、制限コマンドの設定を行うことができる。
【0046】
このようにして、例えば、他種プロセッサにおいて実行される処理であるが、情報処理装置10において3D表示が設定されている際に実行されるべきではない処理については、その処理についてのコマンドを3D実行制限開始コマンドと3D実行制限終了コマンドの間に設定することによって、情報処理装置10において3D表示が設定されている場合には実行されないようにすることができる。
【0047】
また、本実施形態に係る情報処理装置10では、同様にして、他種GPUで実行される処理についてのコマンドの設定であって、3D表示の際には本実施形態に係る情報処理装置10でも実行されるが、2D表示の際には本実施形態に係る情報処理装置10では実行されないような処理についての制限コマンド(例えば、2D表示でのコマンドの実行の制限を開始する旨が設定されているNOPコマンド(2D実行制限開始コマンド)や2D表示でのコマンドの実行の制限を終了する旨が設定されているNOPコマンド(2D実行制限終了コマンド))の設定も可能である。そして、他種プロセッサにおいて実行される処理であるが、情報処理装置10において2D表示が設定されている際に実行されるべきではない処理については、その処理についてのコマンドを2D実行制限開始コマンドと2D実行制限終了コマンドの間に設定することによって、情報処理装置10において2D表示が設定されている場合には実行されないようにすることができる。
【0048】
また、本実施形態に係る情報処理装置10では、同様にして、他種GPUで実行される処理についてのコマンドの設定であって、3D表示の際も2D表示の際も本実施形態に係る情報処理装置10では実行されないような処理についての制限コマンド(例えば、2D表示でも3D表示でもコマンドの実行の制限を開始する旨が設定されているNOPコマンド(実行制限開始コマンド)や2D表示でも3D表示でもコマンドの実行の制限を終了する旨が設定されているNOPコマンド(実行制限終了コマンド))の設定も可能である。そして、他種プロセッサにおいて実行される処理であるが、情報処理装置10において2D表示が設定されている際にも3D表示が設定されている際にも実行されるべきではない処理については、その処理についてのコマンドを実行制限開始コマンドと実行制限終了コマンドの間に設定することによって、情報処理装置10では実行されないようにすることができる。
【0049】
また、ある処理(例えば、フィルタ処理)を実行するにあたって、他種GPUで実行するのに適したアルゴリズム(例えば、低精度低負荷のアルゴリズム)と、本実施形態に係る情報処理装置10で実行するのに適したアルゴリズム(例えば、高精度高負荷のアルゴリズム)と、が異なることがある。このような場合に、例えば、他種GPUで実行するのに適したアルゴリズムでの処理を示すコマンドを実行制限開始コマンドと実行制限終了コマンドの間に設定して、実行制限開始コマンドの直前のコマンド又は実行制限終了コマンドの直後のコマンドとして、本実施形態に係る情報処理装置10で実行するのに適したアルゴリズムで処理を実行する旨がパラメータの値として設定されているNOPコマンドを設定するようにしてもよい。このようにすれば、他種装置では他種GPUで実行するのに適したアルゴリズムにより処理が行われ、本実施形態に係る情報処理装置10では画像処理部20で実行するのに適したアルゴリズムにより処理が行われることとなる。
【0050】
以上、他種GPUが実行可能なグラフィックスコマンドに応じた処理が画像処理部20で実行されることについて説明した。本実施形態に係る情報処理装置10では、以上の説明と同様の手法により、他種CPUが実行可能なコマンドに応じた処理がメインプロセッサ12で実行される。以下、このことについて説明する。
【0051】
本実施形態に係る情報処理装置10で実現される機能のうち、他種CPUが実行可能なコマンドに応じた処理をメインプロセッサ12に実行させることに関連する機能の一例を示す機能ブロック図は、図2と同様の図となる。ただし、これらの機能は、本実施形態では、メインプロセッサ12を主として実現されることとなる。
【0052】
これらの機能は、情報処理システムである情報処理装置10で、本実施形態に係るプログラムが実行されることにより実現される。このプログラムは、コンピュータ通信ネットワーク経由で通信インタフェースを介して他のコンピュータからダウンロードされてもよいし、光ディスク(例えば、CD−ROMやDVD−ROMなど)、USBメモリ等のコンピュータ読み取り可能な情報記憶媒体に格納され、そこから光ディスクドライブやUSB(Universal Serial Bus)ポートなどを介して情報処理装置10にインストールされてもよい。
【0053】
取得部40は、エミュレートされたプログラムカウンタで指定されるメインメモリ18上のアドレスに配置されている、他種CPUが実行可能なコマンドを取得する。特定部42は、取得したコマンドに対応付けられる、メインプロセッサ12で実行可能な処理を特定する。そして、本実施形態では、メインプロセッサ12が、特定部42により特定された処理を実行する。本実施形態では、取得部40によるコマンドの取得、特定部42による対応する処理の特定、メインプロセッサ12による処理の実行、プログラムカウンタの値の更新、という一連の処理が、順次行われる。このことによって、他種装置で実行可能な一連のコマンドに応じた処理がメインプロセッサ12で実行されることとなる。
【0054】
本実施形態では、特定部42は、特定のコマンド(ここでは、例えば、最終製品においては何の処理も実行されない、開発段階におけるデバッグ用のコマンドや、ノーオペレーション(NOP)コマンドなど。以下、特定コマンドと呼ぶ。)については、特定コマンドに設定されているパラメータの値(例えば、オペランド)に応じた処理の制御を実行制御部44に指示する。そして、実行制御部44が、この指示に応じて、メインプロセッサ12での処理の実行を制御する。例えば、取得部40が、特定コマンドを取得した際に、実行制御部44は、その特定コマンドに設定されているパラメータの値に応じたコマンドをメインプロセッサ12に実行させるようにしたり、特定コマンドに設定されているパラメータの値がメインプロセッサ12で実行される処理でのパラメータの値として用いられるよう制御したりする。
【0055】
また、実行制御部44は、パラメータの値としてコマンドの実行を制限を開始する旨が設定されている特定コマンドの直後のコマンドが示す処理から、パラメータの値としてコマンドの実行の制限を終了する旨が設定されている特定コマンドの直前のコマンドが示す処理についてはメインプロセッサ12に実行させないよう制御する。
【0056】
本実施形態では、特定部42は、例えば、他種CPUが実行可能なコマンドと、メインプロセッサ12が実行可能なグラフィックスコマンドと、が対応付けられた変換テーブルを参照して、他種CPUが実行可能なコマンドを、メインプロセッサ12が実行可能なコマンドに変換する。
【0057】
特定コマンドについては、他種CPUで実行される際には、何の処理も実行されない。また、他種CPUでは、特定コマンドに設定されているパラメータの値は無視される。よって、特定コマンドに設定されているパラメータの値は他種CPUでの処理の実行に影響を与えない。一方で、本実施形態に係る情報処理装置10におけるエミュレータでは、特定部42が、特定コマンドについては、パラメータの値に応じた処理等を特定する。そして、実行制御部44が、特定コマンドに設定されているパラメータの値に応じてメインプロセッサ12で実行される処理の実行を制御する。
【0058】
また、本実施形態では、予め、他種CPUのシステムコールと本実施形態に係る情報処理装置10のシステムコールとを変換するライブラリであるブリッジプログラムがメインメモリ18にロードされている。そして、取得部40がシステムコールのコマンドを取得した際には、このシステムコールに対応するブリッジプログラムのライブラリがコールされ、その結果、情報処理装置10のシステムコールが実行されることとなる。
【0059】
なお、本発明は上述の実施形態に限定されるものではない。
【0060】
例えば、モニタ32において3D表示を実現する方法はフレームシーケンシャル方式にには限定されない。例えば、モニタ32が、水平走査線ごとに偏光特性を変えるパッシブグラス方式によって3D表示を実現するようにしてもよい。また、モニタ32は、視差バリア方式によって3D表示が実現された裸眼3Dディスプレイであっても構わない。
【0061】
例えば、本実施形態に係る情報処理装置10が、情報処理装置10外の装置に搭載されたプロセッサでの処理の実行を制御するようにしてもよい。また、本実施形態に係る情報処理システムが複数の筐体から構成されていてもよい。また、上記の具体的な文字列や図面中の具体的な文字列は例示であり、これらの文字列には限定されない。
【符号の説明】
【0062】
10 情報処理装置、12 メインプロセッサ、14 サブプロセッサ、16 バス、18 メインメモリ、20 画像処理部、22 入出力処理部、24 ネットワークボード、26 ハードディスクドライブ、28 光ディスクドライブ、30 コントローラ、32 モニタ、40 取得部、42 特定部、44 実行制御部。

【特許請求の範囲】
【請求項1】
処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段と、
前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段と、
設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段と、
を含むことを特徴とする情報処理装置。
【請求項2】
前記実行制御手段は、前記特定のコマンドに設定されているパラメータの値が、前記処理実行主体装置のプロセッサによる他のコマンドが示す処理の実行でのパラメータの値として用いられるよう制御する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記実行制御手段は、前記特定のコマンドに設定されているパラメータの値に対応付けられる処理を前記処理実行主体装置のプロセッサに実行させる、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記実行制御手段は、命令列として連続している複数の前記特定のコマンドのそれぞれに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御する、
ことを特徴とする請求項1から3のいずれか一項に記載の情報処理装置。
【請求項5】
前記取得手段は、コマンドを含む情報を順次取得し、
前記実行制御手段は、前記取得手段が所定の情報を取得した後に取得する、前記特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御する、
ことを特徴とする請求項1から4のいずれか一項に記載の情報処理装置。
【請求項6】
前記実行制御手段は、設定されているパラメータの値が所定の開始値である前記特定のコマンドの直後のコマンドが示す処理から設定されているパラメータの値が所定の終了値である前記特定のコマンドの直前のコマンドが示す処理までを前記処理実行主体装置のプロセッサに実行させないよう制御する、
ことを特徴とする請求項1から5のいずれか一項に記載の情報処理装置。
【請求項7】
前記実行制御手段は、前記他種プロセッサにおけるノーオペレーションコマンド、又は、前記他種プロセッサで実行されるプログラムのデバッグ用のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサでの処理の実行を制御する、
ことを特徴とする請求項1から6のいずれか一項に記載の情報処理装置。
【請求項8】
処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得ステップと、
前記取得ステップで取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定ステップと、
設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御ステップと、
を含むことを特徴とする情報処理方法。
【請求項9】
処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段、
前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段、
設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段、
としてコンピュータを機能させることを特徴とするプログラム。
【請求項10】
処理の実行主体となる処理実行主体装置のプロセッサとは異なる種類のプロセッサである他種プロセッサで実行可能なコマンドを取得する取得手段、
前記取得手段により取得されるコマンドに対応付けられる、前記処理実行主体装置のプロセッサで実行可能な処理を特定する特定手段、
設定されているパラメータの値が前記他種プロセッサでの処理の実行に影響を与えない前記他種プロセッサにおける特定のコマンドに設定されているパラメータの値に応じて前記処理実行主体装置のプロセッサによる処理の実行を制御する実行制御手段、
としてコンピュータを機能させることを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−8243(P2013−8243A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2011−141186(P2011−141186)
【出願日】平成23年6月24日(2011.6.24)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】